Në dispozicion lëshimi i paketës së veglave Haxe 4.1, i cili përfshin gjuhën e programimit të nivelit të lartë me shumë paradigmë me të njëjtin emër me shtypje të fortë, një ndër-përpilues dhe një bibliotekë standarde funksionesh. Projekti mbështet përkthimin në C++, HashLink/C, JavaScript, C#, Java, PHP, Python dhe Lua, si dhe përpilimin në JVM, HashLink/JIT, Flash dhe Neko bytecode, me akses në aftësitë vendase të çdo platforme të synuar. Kodi i përpiluesit shperndare nga nën licencën GPLv2, dhe bibliotekën standarde dhe makinat virtuale të zhvilluara për Haxe HashLink и neko nën licencën MIT.
Gjuha është të orientuar drejt shprehjes me shtypje të fortë. Mbështeten teknikat e programimit të orientuara drejt objekteve, gjenerike dhe funksionale. Sintaksa Haxe është afër ECMAScript dhe zgjerohet veçoritë e tij si shtypja statike, konkluzionet automatike, përputhja e modeleve, gjenerikët, unazat e bazuara në iterator, makrotë AST, GADT (Llojet e të Dhënave Algjebrike të Përgjithshme), llojet abstrakte, strukturat anonime, përkufizimet e thjeshtuara të grupeve, shprehjet e përpilimit të kushtëzuar, bashkëngjitja e meta të dhënave në fusha , klasat dhe shprehjet, interpolimi i vargjeve ("My name is $name"), parametrat e tipit ('new Main ("foo")') dhe me shume.
testi i klasës {
funksioni statik main() {
njerëzit e fundit = [
"Elizabeth" => "Programim",
"Joel" => "Dizajn"
];
për (emri => punë në njerëz) {
trace('$name bën $punë për të jetuar!');
}
}
}
Karakteristikat e reja në versionin 4.1:
Optimizimi i rekursionit të bishtit të shtuar.
U shtua një API e re e unifikuar për trajtimin e përjashtimeve.
Konstrukti "try {} catch(e) {}" lejohet si një stenografi për "provo {} catch(e: haxe.Exception) {}".
U shtua mbështetje SSL për përkthyesin eval.
Objektivi JVM nuk konsiderohet më eksperimental.
Për Protokollin e Serverit të Gjuhës, është shtuar mbështetje për funksionet "Shko Implementimi" dhe "Gjej referenca".
Emërtimi i përmirësuar i ndryshoreve të përkohshme lokale në kodin e krijuar. U hoq "kthimi" i tepërt; në funksionet me shigjetë pa vlerë kthyese.
Kombinimet e aksesit (merr, parazgjedhje) lejohen në fusha (vetëm marrës, sjellje e paracaktuar e caktimit).
Lejo operatorët e rritjes dhe zvogëlimit për fushat llojet abstrakte.
Përmirësimi i rreshtimit të sytheve for duke përdorur përsëritës anonimë.
js: Implementimi i përmirësuar i StringMap për ES5.
js: Gjenerimi i variablave let është shtuar në opsionin e përpiluesit “-D js-es=6”, gjenerimi i klasave ES6 është përmirësuar.
lua: "StringIterator" i optimizuar, trajtimi i gabimeve është përmirësuar.
php: Optimizuar "Std.isOfType" për llojet bazë.
php: Vargjet e krijuara tani zbatojnë ndërfaqet vendase "Iterator", "IteratorAggregate", "Countable".
cs: Metadatat e shtuara "@:assemblyMeta" dhe "@:assemblyStrict".
python: shtoi zbatimin e "__contains__" në objekte anonime
dhe "__getitem__", e cila i lejon ata të përdoren si fjalorë në kodin e krijuar.
jvm: Performanca e përmirësuar ndjeshëm falë një mënyre të re për të aksesuar funksionet e shtypura dhe për të gjeneruar ndërfaqe shtesë në rastet kur objektet përdoren si struktura anonime (kërkimi dinamik i pronave parandalohet):
Përmirësimet në bibliotekën standarde:
U shtua funksioni "Array.contains".
U shtua "Array.keyValueIterator", i cili zbaton përsëritjen e vlerave kyçe për vargje ("for (key => vlera në grup)").
Lloji i kufizimit të shtuar "haxe.Constraints.NotVoid".
Funksionet "findIndex" dhe "foldi" janë shtuar në klasën "Lambda".
U zbatua "qasja në grup" (qasja përmes "arr[i]") dhe përsëritja e vlerës së çelësit për "haxe.ds.HashMap".
jvm: Versione specifike të implementuara për JVM të "StringMap", "sys.thread.Lock", "sys.thread.Thread".
java/jvm: Implementime të përdorura origjinale të "MD5", "SHA-1" dhe "SHA-256" për modulet "haxe.crypto".
makro: U shtua "haxe.macro.Context.containsDisplayPosition(pos)".
nullsafety: Modaliteti "strikt" tani trajtohet si një filetim i vetëm; shtoi modalitetin "StrictThreaded".
"Std.is" është zhvlerësuar në favor të "Std.isOfType".
U shtua një paralajmërim kur përdorni variabla lokale pa vlera në mbyllje.
js: "i pashtypur __js__(kodi, args)" është i vjetëruar, i zëvendësuar nga "js.Syntax.code(code, args)".
php/neko: "neko.Web" dhe "php.Web" janë zhvlerësuar dhe do të zhvendosen në bibliotekën "hx4compat" më vonë.