Actualités de l'univers Haxe

Une petite conférence en ligne HaxeIn 2020 a eu lieu le 14 octobre . L'un des orateurs était Alexander Kuzmenko , le développeur du compilateur Haxe. La conférence d'

Alexandre est un compte rendu du travail effectué depuis février 2020 (lorsque HaxeUp Hambourg était hébergé par Inno Games). Je porte à votre attention une transcription de son discours.







image







Qu'est-ce qui a été fait dans l'intervalle?



benchs.haxe.org



, Haxe. , AlexHaxe.

https://benchs.haxe.org/, — github.

, . Haxe — , JVM - ( , ). , , .







image







Haxe 4.1



Haxe 4.1 ( Haxe 4.0). 4.1 :







  • JVM ( JVM ). , .
  • SSL Haxe (eval-)
  • . , . .
  • , , .


, Haxe 4.1 , , . ( ), Haxe 4.1 IDE.







image







dts2hx



2 Haxe 4.1 dts2hx — TypeScript Haxe-, JavaScript. , JavaScript-.

Haxe Foundation, dts2hx ( , ).







image







Haxe 4.1:

JVM-. — - ( pull request ), .. - — Java-. ( ), , , , , Haxe- JVM - Java. JVM- — Haxe, :







  • Java, ,
  • Haxe - JVM, JavaScript-
  • . — jar-
  • JVM — , Haxe. , , Java — ( ). , formatter ( formatter ) JVM- .


image







SSL eval- ( Haxe) https- .

API Mbed TLS SSL ( Haxe SSL).







image







haxe.Exception



.

(, , , ). Haxe 4.1 (.. ), haxe.Exception



( ) -.

, haxe.Exception



. , , haxe.Exception



(, ), "" , haxe.Exception



. , Dynamic



(.. ) Haxe 4.1.







image







: Haxe haxe.CallStack



, . (rethrow exception), . ( ).







image







, :







  • . , - ( ), ,
  • haxe.Exception



    . , Haxe
  • . , Haxe jar jar Java, , Haxe-, Java- - .


image







catch



— , haxe.Exception



.







image







Tail recursion elimination



(tail recursion elimination) .

, , , ( ).

, , .







image







( -D analyzer_optimize



).

, (inline), (final) . , ( ).

-D no_tre



.







image







Haxe 4.1 :







  • ,
  • Null- (Null Safety) — StrictThreaded, , . Strict- , .
  • , ( JavaScript Source Maps) — .
  • Std.is



    (deprecated), Std.isOfType



    . is



    ( Haxe 4.2).


image







Haxe Evolution 2020



- Haxe Evolution, Haxe ( , , ).

. issue , .







image







— Void



" "
(unit type). , : Void



, , , - . , Void



(Promise



), . Haxe .

, .. , , Void



, , Void



.







image







— . AST . .







image







, Haxe , — . . , : , @.haxe.meta.MetadataType



, . , .. , — , . , .







image







— . , , - , , . , .







image







( C# Java) . , Haxe . , .







image







- . : , ( ); , - , .







image







— , . Haxe — , , . , .







image







Haxe, . , this



( ). , . , : Haxe as



, , .







image







- (generic types) . , (, ) - (, String



). , typedef



, , , .

, , , , , , , ?







image







this



, , . , .. . , , .







image







(type parameter variance of enum).

, , enum



Int



, enum



Float



( ) — , . , , , . , .

, .. — enum



, (, ). , C#, in



out



-.







image







Haxe 4.2



, Haxe .

Haxe 4.2. , .. , ( , ).







:

(Module-level static fields), , - . , , . , .







image







, . "" Java:







  • ,


Shape



, API — Shape



vertices()



, . Square



.

, - , .







image







sys.thread.Thread



Haxe 4.2 ( , ) — (event loops) ( NodeJS libuv):







  • ,
  • . , - (callback)
  • , .. Haxe 4.2, , , . Haxe 4.2 , .


image







API sys.thread.Thread



— Thread.createWithEventLoop()



, , . , , , , :

, :







secondary.events.run(() -> {
    trace(‘This is printed from the secondary thread’);
});
      
      





, secondary



.







, , , secondary



, , :







mainThread.events.run(() -> {
    trace(‘This is printed from the main thread’);
});
      
      





( ).







, .. Haxe , secondary



, , , secondary



. Sys.sleep(2)



.







image







(, Thread.create()



, API ) , sys.thread.NoEventLoopException



.







: secondary



, , ( secondary



).







image







— "", , , .







: "" , , ( , ) . , , , , , Sys.sleep(2)



— .







image









( ):







  • ( )
  • (variance forwarding), "" (underlying type)
  • (constructor forwarding). Haxe 4.1 (@:forward



    @:forwardStatics



    ), Haxe 4.2 @:forward.new



    .


— 40 -.







image







:

, (transitive casting), @:transitive



. .







("" ). Haxe 4.1 (Array<Int>



) , Collection



. , Collection



Array<Int>



( Items



). Haxe 4.2 ( ) — @:transitive



Collection



, Items



, , Collection



Array<Int>



(.. Items



Array<Int>



):

var collection:Collection = [123];









, Array<Int>



Collection



:

var array:Array<Int> = collection;









image







(variance forwarding) . :

Haxe 4.1 Array<Int>



Array<Money>



, Money



— , Int



. , @:forward.variance



, "" , , Int



, Money



.







Any



, . Dynamic



, -. Any



.







image







, :







  • Haxe 4.2 is



    . Haxe 4.1 — . is



    Std.isOfType()



    ( ), .
  • Python API — sys.thread.Thread



    .
  • (object inlining). . , , , .
  • . , , 2- Haxe ( 1 2). , , , , .


image







WIP



Haxe 4.2, :

API. API , API.







API C API , , API .







API , .







image







API Libuv, Haxe (eval-), API Libuv , .







OCaml- Luv.

, Libuv ( ).







image









:







  • Haxe
  • il y aura des implĂ©mentations multiplateformes de types entiers tels que les entiers 8 et 16 bits, signĂ©s et non signĂ©s, etc.
  • il y aura Ă©galement un support pour les mĂ©thodes avec un nombre variable d'arguments (arguments de repos). Les travaux sur eux avaient dĂ©jĂ  commencĂ©, mais ont Ă©tĂ© reportĂ©s.


image







Merci pour l'attention! J'espÚre que vous avez trouvé ce matériel intéressant.








All Articles