даступны рэліз інструментара Haxe 4.1, Які ўключае аднайменны мультипарадигменный высокаўзроўневую мову праграмавання са строгай тыпізацыяй, крос-кампілятар і стандартную бібліятэку функцый. Праектам падтрымліваецца трансляцыя ў З++, HashLink/C, JavaScript, C#, Java, PHP, Python і Lua, а таксама кампіляцыя ў байт-код JVM, HashLink/JIT, Flash і Neko, з доступам да родных магчымасцяў кожнай мэтавай платформы. Код кампілятара распаўсюджваецца пад ліцэнзіяй GPLv2, а стандартнай бібліятэкі і якія развіваюцца для Haxe віртуальных машын HashLink и Neko пад ліцэнзіяй MIT.
Мова з'яўляецца expression-арыентаваным са строгай тыпізацыяй. Падтрымліваюцца прыёмы аб'ектна-арыентаванага, абагульненага і функцыянальнага праграмавання. Сінтаксіс Haxe блізкі да ECMAScript і пашырае яго такімі магчымасцямі як статычная тыпізацыя, аўтавывад тыпаў, супастаўленне шаблонаў, джэнерыкі, заснаваны на ітэратарах цыкл "for", AST-макрасы, GADT (Generalized Algebraic Data Types), абстрактныя тыпы, ананімныя структуры, спрошчаныя вызначэння масіваў, выразы для ўмоўнай кампіцы прымацаванне метададзеных да палёў, класаў і выразаў, інтэрпаляцыя радкоў («'My name is $name'»), параметры тыпаў ('new Main («foo»)') і шмат іншага.
клас Тэст {
static function main() {
final people = [
"Elizabeth" => "Programming",
"Joel" => "Design"
];
for (name => job in people) {
trace('$name маеш $job for a living!');
}
}
}
Новаўвядзенні версіі 4.1:
Дададзена аптымізацыя хваставой рэкурсіі.
Дададзена новае уніфікаванае API для апрацоўкі выключэнняў.
Дазволена канструкцыя "try {} catch(e) {}" як скарачэнне для "try {} catch(e: haxe.Exception) {}".
У інтэрпрэтатар eval дададзена падтрымка SSL.
Мэтавая платформа JVM больш не лічыцца эксперыментальнай.
Для Language Server Protocol дададзена падтрымка функцый "Goto Implementation" і "Find references".
Палепшана найменне часовых лакальных зменных у згенераваным кодзе. Выдалены залішнія «return;» у стрелочных функцыях без якое вяртаецца значэння.
Да палёў дазволена камбінацыя доступу (get, default) (толькі гетэр, паводзіны для прысвойвання па змаўчанні).
Дазволены аператары інкрэмента і дэкрэменту для палёў абстрактных тыпаў.
Палепшана ўбудаванне (inlining) for-цыклаў з выкарыстаннем ананімных ітэратараў.
js: Палепшана рэалізацыя StringMap для ES5.
js: У опцыю кампілятара "-D js-es=6" дададзена генерацыя let зменных, палепшана генерацыя ES6 класаў.
php: Аптымізаваны "Std.isOfType" для базавых тыпаў.
php: Згенераваныя масівы зараз рэалізуюць натыўныя інтэрфейсы "Iterator", "IteratorAggregate", "Countable".
cs: Дададзены метадаты "@:assemblyMeta" і "@:assemblyStrict".
python: у ананімныя аб'екты дададзена рэалізацыя «__contains__»
і "__getitem__", што дазваляе выкарыстоўваць іх як слоўнікі ў згенераваным кодзе.
jvm: Значна падвышаная прадукцыйнасць дзякуючы новаму спосабу звароту да тыпізаваных функцый і генерацыі дадатковых інтэрфейсаў у выпадках выкарыстання аб'ектаў як ананімных структур (прадухілены дынамічны пошук уласцівасцяў):
Паляпшэнні ў стандартнай бібліятэцы:
Дададзена функцыя "Array.contains".
Дададзены "Array.keyValueIterator", які рэалізуе key-value ітэрацыю для масіваў ("for (key => value in array)").
Дададзена абмежаванне тыпу "haxe.Constraints.NotVoid".
У клас "Lambda" дададзены функцыі "findIndex" і "foldi".
Рэалізаваны "array access" (доступ праз "arr[i]") і key-value ітэрацыя для "haxe.ds.HashMap".
jvm: Рэалізаваны JVM-спецыфічныя версіі "StringMap", "sys.thread.Lock", "sys.thread.Thread".
java/jvm: Выкарыстаны натыўныя рэалізацыі "MD5", "SHA-1" і "SHA-256" для модуляў "haxe.crypto".