Beschikbaar toolkit-uitgave Hax 4.1, die de gelijknamige programmeertaal op hoog niveau met meerdere paradigma's bevat, met sterk typen, een cross-compiler en een standaardbibliotheek met functies. Het project ondersteunt vertaling naar C++, HashLink/C, JavaScript, C#, Java, PHP, Python en Lua, evenals compilatie naar JVM, HashLink/JIT, Flash en Neko bytecode, met toegang tot de native mogelijkheden van elk doelplatform. Compilercode gedistribueerd door onder de GPLv2-licentie, en de standaardbibliotheek en virtuele machines ontwikkeld voor Haxe HashLink и Neko onder de MIT-licentie.
Taal is expressiegericht met krachtig typen. Objectgeoriënteerde, generieke en functionele programmeertechnieken worden ondersteund. De Haxe-syntaxis ligt dicht bij ECMAScript en breidt uit de functies ervan zoals statisch typen, autotype-inferentie, patroonmatching, generieke methoden, op iterator gebaseerde for-lussen, AST-macro's, GADT (Generalized Algebraic Data Types), abstracte typen, anonieme structuren, vereenvoudigde array-definities, voorwaardelijke compilatie-expressies, het koppelen van metagegevens aan velden , klassen en expressies, stringinterpolatie ("'Mijn naam is $name'"), typeparameters ('new Main ("foe")') en veel meer.
klasse Test {
statische functie hoofd() {
laatste mensen = [
"Elizabeth" => "Programmeren",
"Joel" => "Ontwerp"
];
for (naam => baan in mensen) {
trace('$name doet $job voor de kost!');
}
}
}
Nieuwe functies in versie 4.1:
Optimalisatie van staartrecursie toegevoegd.
Er is een nieuwe uniforme API toegevoegd voor de afhandeling van uitzonderingen.
De constructie "try {} catch(e) {}" is toegestaan als afkorting voor "try {} catch(e: haxe.Exception) {}".
SSL-ondersteuning toegevoegd aan de eval-interpreter.
De doel-JVM wordt niet langer als experimenteel beschouwd.
Voor Language Server Protocol is ondersteuning voor de functies “Goto Implementation” en “Find references” toegevoegd.
Verbeterde naamgeving van tijdelijke lokale variabelen in gegenereerde code. Overbodige "return" verwijderd; in pijlfuncties zonder retourwaarde.
php: Geoptimaliseerde "Std.isOfType" voor basistypen.
php: Gegenereerde arrays implementeren nu de native interfaces “Iterator”, “IteratorAggregate”, “Countable”.
cs: Metagegevens "@:assemblyMeta" en "@:assemblyStrict" toegevoegd.
python: implementatie van "__contains__" toegevoegd aan anonieme objecten
en "__getitem__", waardoor ze kunnen worden gebruikt als woordenboeken in de gegenereerde code.
jvm: Aanzienlijk verbeterde prestaties dankzij een nieuwe manier om toegang te krijgen tot getypte functies en om extra interfaces te genereren in gevallen waarin objecten worden gebruikt als anonieme structuren (dynamisch opzoeken van eigenschappen wordt voorkomen):
Verbeteringen in de standaardbibliotheek:
Functie "Array.contains" toegevoegd.
"Array.keyValueIterator" toegevoegd, die sleutel-waarde-iteratie voor arrays implementeert ("for (key => waarde in array)").