Ukukhutshwa kwe-Haxe 4.2 toolkit kuyafumaneka, equka i-multi-paradigm yolwimi lweprogram yezinga eliphezulu legama elifanayo kunye nokuchwetheza okunamandla, umqokeleli we-cross-compiler kunye nelayibrari eqhelekileyo yemisebenzi. Iprojekthi isekela ukuguqulelwa kwi-C ++, i-HashLink / C, i-JavaScript, i-C #, i-Java, i-PHP, i-Python kunye ne-Lua, kunye nokuhlanganiswa kwi-JVM, i-HashLink / i-JIT, i-Flash kunye ne-Neko bytecode, kunye nokufikelela kwizakhono zomthonyama zeplatifomu nganye ekujoliswe kuyo. Ikhowudi yokuhlanganisa isasazwa phantsi kwelayisenisi ye-GPLv2, kwaye ilayibrari esemgangathweni kunye ne-HashLink kunye ne-Neko yoomatshini benyani abaphuhliselwe i-Haxe banikwe ilayisenisi phantsi kwelayisenisi ye-MIT.
Ulwimi lujolise kwintetho ngokuchwetheza ngamandla. Iinkqubo ezijolise kwinjongo, igeneric kunye neendlela ezisebenzayo zokucwangcisa ziyaxhaswa. I-syntax ye-Haxe ikufutshane ne-ECMAScript kwaye iyandisa ngeempawu ezifana nokuchwetheza okumileyo, uhlobo oluzenzekelayo lwentelekelelo, ukuthelekisa ipateni, iigenerics, i-iterator-based for looops, i-AST macros, i-GADT (Iintlobo zeDatha ye-Algebraic ngokubanzi), iintlobo ezingabonakaliyo, izakhiwo ezingachazwanga, zenziwe lula. iinkcazelo uluhlu, amabinzana kuqulunqo olunemiqathango, incamathela imetadata kwimimandla, iiklasi kunye nentetho, umtya wofakelo ('Igama lam ndingu-$igama'), chwetheza iparameters ('entsha Engundoqo (“foo”)') kunye nabanye abaninzi. Uvavanyo lweklasi { static function main () { final people = [ "Elizabeth" => "Ucwangciso", "Joel" => "Yila" ]; kuba (igama => umsebenzi ebantwini) { trace ('$igama lenza umsebenzi we-$ ukuze uziphilise!'); }}}
Iimpawu ezitsha kwinguqulo 4.2:
- Объявление статичных переменных и функций на уровне модуля, без необходимости оборачивания в класс.
- Inkxaso yeeklasi ze "classic" abstract kunye nemisebenzi.
- Uzalisekiso lwendalo lwemisebenzi eyahlukeneyo yazo zonke iindawo ekujoliswe kuzo (i-haxe.Rest) kunye nokongezwa kwengxoxo yomsebenzisi wokwandisa "f(...array)".
- Реализация цикла событий (event loop) для отдельных потоков («sys.thread.Thread.events»).
- "@:inheritDoc" imetadata yokufumana ilifa uhlobo/uxwebhu lommandla.
- Indlela yokulayisha ngaphezulu kwenkxaso kwiindlela zangaphandle kuwo onke amaqonga ekujoliswe kuwo.
- Пересылка в абстракт конструктора, лежащего в основе его типа с помощью метаданных «@:forward.new».
- Kongezwe "EIs" umakhi ukuya "haxe.macro.Expr".
- Ukukwazi ukwenza uhlobo olungabonakaliyo olwahlukileyo "@:forward.variance".
- Представление типа «Any» как «Dynamic» при унификации вариантности.
- В пакет «haxe.exceptions» добавлены некоторые базовые типы исключений.
- Inkxaso yokuncamathisela imethadatha xa kubhengezwa iinguqu.
- Функция «StringTools.unsafeCharAt», используемая при строковой итерации.
- eval (интерпретатор): в пакете «eval.luv» добавлены привязки к «libuv».
- eval: привязки к родным реализациям «Int64» и «UInt64» через пакет «eval.integers».
- cs: Ukuphunyezwa kweesokethi ze-UDP.
- cs: "cs.Syntax" imodyuli yofakelo lwangaphakathi lwekhowudi ye-C #.
- I-jvm: Yongezwe i-"-D jvm.dynamic-level=x" iflegi ukulawula inani lemveliso eyenziweyo yekhowudi eguqukayo. 0 = akukho, 1 = intsimi yokufunda / ukubhala kakuhle, 2 = ukuvalwa kwendlela ngexesha lokuqokelela.
- java, jvm: Inkxaso ye "--java-lib <directory>" iflegi.
- python: ukuthunga ukuphunyezwa kwe-API.
Uphuculo ngokubanzi:
- "expr is SomeType" ayifuni kusongwa kwizibiyeli.
- Ukunyuswa kokuphambili ku-"@:usebenzisa" uhlobo lwezandiso.
- Разрешено использование статических расширений типа через «super».
- Ukukwazi ukuseta imethadatha kwiindawo "@:noDoc".
- Uhlobo lwe-abstract "Imephu" yenziwa i-transitive.
- Inkxaso ye-"@:native" kubakhi be-enum.
- Поддержка «@:using» на объявлениях типа («typedefs»).
- Iimpazamo ze-Multiline zisebenzisa "..." njengesimaphambili semigca elandelayo.
- Переработан вывод типов, анонимные структуры лучше преобразуются в явные типы и «закрываются» по завершению функции.
- Ukunika udidi lwemisebenzi ngaphandle kweengxoxo njenge "()->..." endaweni ka "Void->...".
- Ключевое слово «function» разрешено в качестве имени пакета.
- Ukuphuculwa kokungaphakathi kwezinto.
- cs: Inkxaso eyongeziweyo ye.NET 5.0.
- cpp: Inkxaso yabakhi bomthonyama kwiiklasi zangaphandle.
- php: Добавлен «php.Syntax.customArrayDecl» для объявления нативного массива.
- php: Обновлены внешние методы (externs) для различных функций и классов.
- php: Оптимизирована реализация анонимных структур.
- hl: Пропуск компиляции при отсутствии изменений в модулях.
- lua: Ukusebenzisa "hx-lua-simdjson" ukwahlula i-json.
- jvm: Снижена нагрузка на CPU в реализации «sys.thread.Lock».
- js: Улучшена совместимость с Google Closure Compiler.
- Null Ukhuseleko: Qwalasela "@:nullSafety(Cima)" xa uchaza izinto eziguquguqukayo: "var @:nullSafety(Valiwe) v".
Также до новой версий компилятора обновлено дополнение к редактору VSCode, в котором появились подсказки с генерацией недостающих полей интерфейсов, простых и абстрактных классов, а также методов свойств.
umthombo: opennet.ru