Na voljo izdaja kompleta orodij Haxe 4.1, ki vključuje istoimenski visokonivojski programski jezik z več paradigmami z močnim tipkanjem, navzkrižnim prevajalnikom in standardno knjižnico funkcij. Projekt podpira prevajanje v C++, HashLink/C, JavaScript, C#, Java, PHP, Python in Lua, kot tudi kompilacijo v JVM, HashLink/JIT, Flash in Neko bytecode, z dostopom do izvornih zmogljivosti vsake ciljne platforme. Koda prevajalnika distributer pod licenco GPLv2 ter standardne knjižnice in virtualnih strojev, razvitih za Haxe HashLink и Neko pod licenco MIT.
Jezik je izrazno usmerjeni z močnim tipkanjem. Podprte so tehnike objektno usmerjenega, splošnega in funkcionalnega programiranja. Sintaksa Haxe je blizu ECMAScriptu in širi njegove funkcije, kot so statično tipkanje, sklepanje o samodejnem tipu, ujemanje vzorcev, generiki, zanke for na osnovi iteratorjev, makri AST, GADT (generalni algebraični podatkovni tipi), abstraktni tipi, anonimne strukture, poenostavljene definicije matrik, izrazi pogojnega prevajanja, pripenjanje metapodatkov v polja , razredi in izrazi, interpolacija nizov (»'Ime mi je $name'«), parametri tipa ('novo glavno ("foo")') in veliko več.
razred Test {
statična funkcija main() {
končni ljudje = [
"Elizabeth" => "Programiranje",
"Joel" => "Oblikovanje"
];
za (ime => delo v ljudeh) {
trace('$name opravlja $job za preživetje!');
}
}
}
Nove funkcije v različici 4.1:
Dodana optimizacija repne rekurzije.
Dodan nov poenoten API za obravnavanje izjem.
Konstrukt "try {} catch(e) {}" je dovoljen kot okrajšava za "try {} catch(e: haxe.Exception) {}".
Tolmaču eval dodana podpora za SSL.
Ciljni JVM se ne šteje več za poskusnega.
Za protokol jezikovnega strežnika je bila dodana podpora za funkciji »Goto Implementation« in »Find references«.
Izboljšano poimenovanje začasnih lokalnih spremenljivk v ustvarjeni kodi. Odstranjen odvečni "return;" v puščičnih funkcijah brez vrnjene vrednosti.
Kombinacije dostopa (get, default) so dovoljene na poljih (le getter, privzeto vedenje dodelitve).
Dovoli operatorje povečanja in zmanjšanja za polja abstraktne vrste.
Izboljšano vstavljanje zank for z uporabo anonimnih iteratorjev.
js: Izboljšana implementacija StringMap za ES5.
js: generiranje spremenljivk let je bilo dodano možnosti prevajalnika “-D js-es=6”, generiranje razredov ES6 je bilo izboljšano.
php: Ustvarjena polja zdaj izvajajo izvorne vmesnike »Iterator«, »IteratorAggregate«, »Countable«.
cs: Dodani metapodatki "@:assemblyMeta" in "@:assemblyStrict".
python: dodana implementacija "__contains__" anonimnim objektom
in "__getitem__", kar omogoča njihovo uporabo kot slovarje v ustvarjeni kodi.
jvm: Bistveno izboljšana zmogljivost zahvaljujoč novemu načinu dostopa do vnesenih funkcij in generiranju dodatnih vmesnikov v primerih, ko se objekti uporabljajo kot anonimne strukture (dinamično iskanje lastnosti je preprečeno):
Izboljšave v standardni knjižnici:
Dodana funkcija "Array.contains".
Dodan "Array.keyValueIterator", ki implementira iteracijo ključ-vrednost za nize ("za (ključ => vrednost v nizu)").
Dodan tip omejitve "haxe.Constraints.NotVoid".
Funkciji »findIndex« in »foldi« sta bili dodani razredu »Lambda«.
Implementiran »matrični dostop« (dostop prek »arr[i]«) in iteracija ključ-vrednost za »haxe.ds.HashMap«.
jvm: Implementirane različice »StringMap«, »sys.thread.Lock«, »sys.thread.Thread«, specifične za JVM.
java/jvm: uporabljene izvorne izvedbe »MD5«, »SHA-1« in »SHA-256« za module »haxe.crypto«.