Disponebla liberigo de ilaro Haxe 4.1, kiu inkluzivas la samnoman mult-paradigma altnivelan programlingvon kun forta tajpado, kruckompililon kaj norman bibliotekon de funkcioj. La projekto subtenas tradukadon al C++, HashLink/C, JavaScript, C#, Java, PHP, Python kaj Lua, same kiel kompilon al JVM, HashLink/JIT, Flash kaj Neko-bajtokodo, kun aliro al la indiĝenaj kapabloj de ĉiu celplatformo. Kompilkodo distribuita de sub la GPLv2-licenco, kaj la norma biblioteko kaj virtualaj maŝinoj evoluigitaj por Haxe HashLink и neko sub la MIT-licenco.
Lingvo estas esprimorientita kun forta tajpado. Objekt-orientitaj, senmarkaj kaj funkciaj programaj teknikoj estas subtenataj. Haxe-sintakso estas proksima al ECMAScript kaj vastiĝas ĝiaj trajtoj kiel ekzemple senmova tajpado, aŭtotipa inferenco, padronkongruo, senmarkaj, iterator-bazitaj por bukloj, AST-makrooj, GADT (Ĝeneraligitaj Algebraj Datumoj-Tipoj), abstraktaj tipoj, anonimaj strukturoj, simpligitaj tabeldifinoj, kondiĉaj kompilesprimoj, alkroĉante metadatenojn al kampoj , klasoj kaj esprimoj, ĉeninterpolado ("'Mia nomo estas $nomo'"), tajpu parametrojn ('nova Ĉefa ("foo")') kaj multe pli.
klastesto {
senmova funkcio ĉefa () {
finaj homoj = [
"Elizabeth" => "Programado",
"Joel" => "Dezajno"
];
por (nomo => laboro en homoj) {
trace('$nomo faras $laboron por vivteni!');
}
}
}
Novaj funkcioj en versio 4.1:
Aldonita vosta rekursia optimumigo.
Aldonita nova unuigita API por esceptotraktado.
La konstruo "provu {} catch(e) {}" estas permesita kiel stenografio por "provu {} catch(e: haxe.Escepto) {}".
Aldonita SSL-subteno al la evala interpretisto.
La cela JVM ne plu estas konsiderata eksperimenta.
Por Lingva Servila Protokolo, subteno por la funkcioj "Iru Efektivigo" kaj "Trovi referencojn" estis aldonita.
Plibonigita nomado de provizoraj lokaj variabloj en generita kodo. Forigita redunda "reveno;" en sago funkcioj sen revena valoro.
Alirkombinaĵoj (get, default) estas permesitaj sur kampoj (nur getter, defaŭlta asigno konduto).
Permesu pliigi kaj malpliigi operatorojn por kampoj abstraktaj tipoj.
Plibonigita enliniado de for-bukloj uzante anonimajn iteratorojn.
js: Plibonigita StringMap-efektivigo por ES5.
js: Generacio de let-variabloj estis aldonita al la kompilila opcio "-D js-es=6", generacio de ES6-klasoj estis plibonigita.
php: Generataj tabeloj nun efektivigas la denaskajn interfacojn "Iterator", "IteratorAggregate", "Countable".
cs: Aldonitaj metadatenoj "@:assemblyMeta" kaj "@:assemblyStrict".
python: aldonis efektivigon de "__contains__" al anonimaj objektoj
kaj "__getitem__", kiu permesas ilin esti uzataj kiel vortaroj en la generita kodo.
jvm: Signife plibonigita agado danke al nova maniero aliri tajpitajn funkciojn kaj generi pliajn interfacojn en kazoj kie objektoj estas uzataj kiel anonimaj strukturoj (dinamika serĉo de proprietoj estas malhelpita):
Plibonigoj en la norma biblioteko:
Aldonita "Array.contains" funkcio.
Aldonita "Array.keyValueIterator", kiu efektivigas ŝlosilvaloran ripeton por tabeloj ("por (ŝlosilo => valoro en tabelo)").
Aldonita limtipo "haxe.Constraints.NotVoid".
La funkcioj "findIndex" kaj "foldi" estis aldonitaj al la "Lambda" klaso.
Efektivigita "araliro" (aliro per "arr[i]") kaj ŝlosilvalora ripeto por "haxe.ds.HashMap".
jvm: Efektivigitaj JVM-specifaj versioj de "StringMap", "sys.thread.Lock", "sys.thread.Thread".
java/jvm: Uzis indiĝenajn efektivigojn de "MD5", "SHA-1" kaj "SHA-256" por la "haxe.crypto" moduloj.