Berita dari alam semesta Haxe

Konferensi online kecil HaxeIn 2020 berlangsung pada 14 Oktober . Salah satu pembicara adalah Alexander Kuzmenko , pengembang kompiler Haxe. Pembicaraan

Alexander adalah penjelasan tentang pekerjaan yang dilakukan sejak Februari 2020 (ketika HaxeUp Hamburg yang diselenggarakan oleh Inno Games berlangsung). Saya sampaikan kepada Anda transkrip pidatonya.







gambar







Apa yang telah dilakukan dalam waktu sela?



benchs.haxe.org



, Haxe. , AlexHaxe.

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

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







gambar







Haxe 4.1



Haxe 4.1 ( Haxe 4.0). 4.1 :







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


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







gambar







dts2hx



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

Haxe Foundation, dts2hx ( , ).







gambar







Haxe 4.1:

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







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


gambar







SSL eval- ( Haxe) https- .

API Mbed TLS SSL ( Haxe SSL).







gambar







haxe.Exception



.

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



( ) -.

, haxe.Exception



. , , haxe.Exception



(, ), "" , haxe.Exception



. , Dynamic



(.. ) Haxe 4.1.







gambar







: Haxe haxe.CallStack



, . (rethrow exception), . ( ).







gambar







, :







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



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


gambar







catch



— , haxe.Exception



.







gambar







Tail recursion elimination



(tail recursion elimination) .

, , , ( ).

, , .







gambar







( -D analyzer_optimize



).

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

-D no_tre



.







gambar







Haxe 4.1 :







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



    (deprecated), Std.isOfType



    . is



    ( Haxe 4.2).


gambar







Haxe Evolution 2020



- Haxe Evolution, Haxe ( , , ).

. issue , .







gambar







Void



" "
(unit type). , : Void



, , , - . , Void



(Promise



), . Haxe .

, .. , , Void



, , Void



.







gambar







. AST . .







gambar







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



, . , .. , — , . , .







gambar







. , , - , , . , .







gambar







( C# Java) . , Haxe . , .







gambar







- . : , ( ); , - , .







gambar







, . Haxe — , , . , .







gambar







Haxe, . , this



( ). , . , : Haxe as



, , .







gambar







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



). , typedef



, , , .

, , , , , , , ?







gambar







this



, , . , .. . , , .







gambar







(type parameter variance of enum).

, , enum



Int



, enum



Float



( ) — , . , , , . , .

, .. — enum



, (, ). , C#, in



out



-.







gambar







Haxe 4.2



, Haxe .

Haxe 4.2. , .. , ( , ).







:

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







gambar







, . "" Java:







  • ,


Shape



, API — Shape



vertices()



, . Square



.

, - , .







gambar







sys.thread.Thread



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







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


gambar







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)



.







gambar







(, Thread.create()



, API ) , sys.thread.NoEventLoopException



.







: secondary



, , ( secondary



).







gambar







— "", , , .







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



— .







gambar









( ):







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



    @:forwardStatics



    ), Haxe 4.2 @:forward.new



    .


— 40 -.







gambar







:

, (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;









gambar







(variance forwarding) . :

Haxe 4.1 Array<Int>



Array<Money>



, Money



— , Int



. , @:forward.variance



, "" , , Int



, Money



.







Any



, . Dynamic



, -. Any



.







gambar







, :







  • Haxe 4.2 is



    . Haxe 4.1 — . is



    Std.isOfType()



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



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


gambar







WIP



Haxe 4.2, :

API. API , API.







API C API , , API .







API , .







gambar







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







OCaml- Luv.

, Libuv ( ).







gambar









:







  • Haxe
  • akan ada implementasi lintas platform jenis integer seperti integer 8 dan 16-bit, ditandatangani dan tidak ditandatangani, dll.
  • juga akan ada dukungan untuk metode dengan sejumlah variabel argumen (argumen istirahat). Pengerjaannya sudah dimulai, namun ditunda.


gambar







Terima kasih atas perhatiannya! Saya harap Anda menemukan materi ini menarik.








All Articles