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.
Qu'est-ce qui a été fait dans l'intervalle?
benchs.haxe.org
, Haxe. , AlexHaxe.
https://benchs.haxe.org/, â github.
, . Haxe â , JVM - ( , ). , , .
Haxe 4.1
Haxe 4.1 ( Haxe 4.0). 4.1 :
- JVM ( JVM ). , .
- SSL Haxe (eval-)
- . , . .
- , , .
, Haxe 4.1 , , . ( ), Haxe 4.1 IDE.
dts2hx
2 Haxe 4.1 dts2hx â TypeScript Haxe-, JavaScript. , JavaScript-.
Haxe Foundation, dts2hx ( , ).
Haxe 4.1:
JVM-. â - ( pull request ), .. - â Java-. ( ), , , , , Haxe- JVM - Java. JVM- â Haxe, :
- Java, ,
- Haxe - JVM, JavaScript-
- . â jar-
- JVM â , Haxe. , , Java â ( ). , formatter ( formatter ) JVM- .
SSL eval- ( Haxe) https- .
API Mbed TLS SSL ( Haxe SSL).
haxe.Exception
.
(, , , ). Haxe 4.1 (.. ), haxe.Exception
( ) -.
, haxe.Exception
. , , haxe.Exception
(, ), "" , haxe.Exception
. , Dynamic
(.. ) Haxe 4.1.
: Haxe haxe.CallStack
, . (rethrow exception), . ( ).
, :
- . , - ( ), ,
-
haxe.Exception
. , Haxe - . , Haxe jar jar Java, , Haxe-, Java- - .
catch
â , haxe.Exception
.
Tail recursion elimination
(tail recursion elimination) .
, , , ( ).
, , .
( -D analyzer_optimize
).
, (inline), (final) . , ( ).
-D no_tre
.
Haxe 4.1 :
- ,
- Null- (Null Safety) â StrictThreaded, , . Strict- , .
- , ( JavaScript Source Maps) â .
-
Std.is
(deprecated),Std.isOfType
.is
( Haxe 4.2).
Haxe Evolution 2020
- Haxe Evolution, Haxe ( , , ).
. issue , .
â Void
" " (unit type). , : Void
, , , - . , Void
(Promise
), . Haxe .
, .. , , Void
, , Void
.
, Haxe , â . . , : , @.haxe.meta.MetadataType
, . , .. , â , . , .
- . : , ( ); , - , .
Haxe, . , this
( ). , . , : Haxe as
, , .
- (generic types) . , (, ) - (, String
). , typedef
, , , .
, , , , , , , ?
this
, , . , .. . , , .
(type parameter variance of enum).
, , enum
Int
, enum
Float
( ) â , . , , , . , .
, .. â enum
, (, ). , C#, in
out
-.
Haxe 4.2
, Haxe .
Haxe 4.2. , .. , ( , ).
:
(Module-level static fields), , - . , , . , .
, . "" Java:
- ,
Shape
, API â Shape
vertices()
, . Square
.
, - , .
sys.thread.Thread
Haxe 4.2 ( , ) â (event loops) ( NodeJS libuv):
- ,
- . , - (callback)
- , .. Haxe 4.2, , , . Haxe 4.2 , .
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)
.
(, Thread.create()
, API ) , sys.thread.NoEventLoopException
.
: secondary
, , ( secondary
).
â "", , , .
: "" , , ( , ) . , , , , , Sys.sleep(2)
â .
( ):
- ( )
- (variance forwarding), "" (underlying type)
- (constructor forwarding). Haxe 4.1 (
@:forward
@:forwardStatics
), Haxe 4.2@:forward.new
.
:
, (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;
(variance forwarding) . :
Haxe 4.1 Array<Int>
Array<Money>
, Money
â , Int
. , @:forward.variance
, "" , , Int
, Money
.
Any
, . Dynamic
, -. Any
.
, :
- Haxe 4.2
is
. Haxe 4.1 â .is
Std.isOfType()
( ), . - Python API â
sys.thread.Thread
. - (object inlining). . , , , .
- . , , 2- Haxe ( 1 2). , , , , .
WIP
Haxe 4.2, :
API. API , API.
API C API , , API .
API , .
API Libuv, Haxe (eval-), API Libuv , .
OCaml- Luv.
, Libuv ( ).
:
- 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.
Merci pour l'attention! J'espÚre que vous avez trouvé ce matériel intéressant.