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.
  • lua: "StringIterator" optimiséiert, Feeler Ëmgank verbessert.
  • php: Optimiséiert "Std.isOfType" fir Basistypen.
  • 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):
    Verëffentlechung vun der Programméiersprooch Haxe 4.1

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.
  • macro: dobäigesat "haxe.macro.Context.containsDisplayPosition(pos)".
  • nullsafety: "Strikt" Modus gëtt elo als eenzeg thread behandelt; derbäigesat "StrictThreaded" Modus.
  • "Std.is" gouf zugonschte vun "Std.isOfType" ofgeschaaft.
  • Eng Warnung bäigefüügt wann Dir lokal Variablen benotzt ouni Wäerter an Zoumaache.
  • js: "ontypéiert __js__(Code, args)" gëtt ofgeschaaft, ersat duerch "js.Syntax.code(Code, args)".
  • php/neko: "neko.Web" an "php.Web" goufen ofgeschaaft a ginn spéider an d'"hx4compat" Bibliothéik geplënnert.

An der nächster Verëffentlechung geplangt sinn:

  • Package Manager Verbesserungen haxelib.
  • Asynchrone System API baséiert libv.
  • Coroutinen.
  • Modulär statesch Funktiounen a Variablen erklären ouni Klassen ze kreéieren (schon verfügbar an Nightly Builds).

Source: opennet.ru

Setzt e Commentaire