Verëffentlechung vun der Programméiersprooch Haxe 4.1
Verfügbar Toolkit Verëffentlechung Haxe 4.1, déi d'Multi-Paradigme High-Level Programméierungssprooch mam selwechten Numm enthält mat staarken Tippen, e Cross-Compiler an eng Standardbibliothéik vu Funktiounen. De Projet ënnerstëtzt d'Iwwersetzung op C++, HashLink/C, JavaScript, C#, Java, PHP, Python a Lua, souwéi d'Kompilatioun op JVM, HashLink/JIT, Flash an Neko Bytecode, mat Zougang zu den gebiertege Fäegkeeten vun all Zilplattform. Compiler Code verdeelt duerch ënner der GPLv2 Lizenz, an der Standardbibliothéik a virtuelle Maschinnen entwéckelt fir Haxe HashLink и Neko ënner der MIT Lizenz.
Sprooch ass Ausdrock-orientéiert mat staarken Tippen. Objektorientéiert, generesch a funktionell Programméierungstechnike ginn ënnerstëtzt. Haxe Syntax ass no bei ECMAScript an erweidert seng Features wéi statesch Tippen, Autotype-Inferenz, Mustermatching, Generik, Iterator-baséiert fir Loops, AST Makroen, GADT (Generaliséiert Algebraic Data Types), abstrakt Typen, anonyme Strukturen, vereinfacht Array Definitiounen, bedingend Kompiléierungsausdréck, Metadaten u Felder befestegt , Klassen an Ausdréck, String Interpolatioun ("'Mäi Numm ass $name'"), Typparameter ('nei Main("foo")'), an vill méi.
Klass Test {
statesch Funktioun main() {
final people = [
"Elizabeth" => "Programméiere",
"Joel" => "Design"
];
fir (Numm => Aarbecht a Leit) {
trace('$Numm mécht $Job fir e Liewen!');
}
}
}
Nei Features an der Versioun 4.1:
Schwanz Rekursioun Optimisatioun bäigefüügt.
Eng nei vereenegt API bäigefüügt fir Ausnamhandhabung.
De Konstrukt "probéieren {} catch(e) {}" ass erlaabt als Ofkierzung fir "probéieren {} catch(e: haxe.Exception) {}".
SSL Support fir den eval Dolmetscher bäigefüügt.
Den Zil JVM gëtt net méi als experimentell ugesinn.
Fir Language Server Protocol ass Ënnerstëtzung fir d'Funktiounen "Goto Implementation" an "Find References" bäigefüügt.
Verbesserte Benennung vun temporäre lokalen Variablen am generéierte Code. Geläscht redundante "zréck;" an Pfeil Funktiounen ouni Retour Wäert.
Zougang Kombinatioune (get, Default) sinn op Felder erlaabt (nëmmen getter, Standard Aufgab Verhalen).
Erlaabt d'Operateure fir Felder ze erhéijen an erofzesetzen abstrakt Typen.
Verbesserte Inlining vu fir Loops mat anonyme Iteratoren.
js: Verbesserte StringMap Implementatioun fir ES5.
js: Generatioun vu loosse Variablen gouf an d'Compileroptioun "-D js-es = 6" bäigefüügt, d'Generatioun vun ES6 Klassen gouf verbessert.
php: Generéiert Arrays implementéieren elo déi gebierteg Interfaces "Iterator", "IteratorAggregate", "Countable".
cs: Added Metadaten "@:assemblyMeta" an "@:assemblyStrict".
python: dobäi Ëmsetzung vun "__contains__" un anonym Objete
an "__getitem__", wat erlaabt hinnen als Dictionnairen am generéiert Code benotzt ginn.
jvm: Däitlech verbessert Leeschtung dank engem neie Wee fir Zougang zu getippten Funktiounen ze kréien an zousätzlech Interfaces ze generéieren a Fäll wou Objekter als anonyme Strukture benotzt ginn (dynamesch Eegeschafte Lookup gëtt verhënnert):
Verbesserungen an der Standardbibliothéik:
Zousätzlech "Array.contains" Funktioun.
"Array.keyValueIterator" bäigefüügt, deen d'Schlësselwäert-Iteratioun fir Arrays implementéiert ("fir (Schlëssel => Wäert an der Array)").
Agesate Constraint Typ "haxe.Constraints.NotVoid".
D'Funktioun "findIndex" an "Foldi" goufen an d'Klass "Lambda" bäigefüügt.
Implementéiert "Array Zougang" (Zougang iwwer "arr[i]") a Schlësselwäert Iteratioun fir "haxe.ds.HashMap".
jvm: Implementéiert JVM-spezifesch Versioune vun "StringMap", "sys.thread.Lock", "sys.thread.Thread".
java/jvm: Benotzt gebierteg Implementatioune vun "MD5", "SHA-1" an "SHA-256" fir d'"haxe.crypto" Moduler.