Haxe 4.1 proqramlaşdırma dilinin buraxılışı

Mövcuddur alət dəsti buraxılışı Haxe 4.1Güclü yazma, çarpaz kompilyator və standart funksiyalar kitabxanası ilə eyniadlı çoxparadiqmalı yüksək səviyyəli proqramlaşdırma dilini özündə cəmləşdirir. Layihə C++, HashLink/C, JavaScript, C#, Java, PHP, Python və Lua dillərinə tərcüməni, həmçinin JVM, HashLink/JIT, Flash və Neko bayt koduna kompilyasiyanı, hər bir hədəf platformanın yerli imkanlarına çıxışı dəstəkləyir. Kompilyator kodu yayılır GPLv2 lisenziyası və Haxe üçün hazırlanmış standart kitabxana və virtual maşınlar HashLink и Neko MIT lisenziyası altında.

Dildir ifadə yönümlü güclü yazma ilə. Obyekt yönümlü, ümumi və funksional proqramlaşdırma üsulları dəstəklənir. Haxe sintaksisi ECMAScript-ə yaxındır və genişlənir onun statik yazma, avtotipdən nəticə çıxarma, nümunə uyğunluğu, generiklər, döngələr üçün iterator əsaslı, AST makroları, GADT (Ümumiləşdirilmiş Cəbri Məlumat Tipləri), abstrakt tiplər, anonim strukturlar, sadələşdirilmiş massiv tərifləri, şərti tərtib ifadələri, sahələrə metadata əlavə etmək kimi xüsusiyyətləri , siniflər və ifadələr, sətir interpolasiyası (“'Mənim adım $namedir'”), parametrləri yazın ('yeni Əsas ("foo")') və daha çox.

sinif testi {
statik funksiya main() {
son insanlar = [
"Elizabeth" => "Proqramlaşdırma",
"Joel" => "Dizayn"
];

üçün (ad => insanlarda iş) {
trace('$name dolanmaq üçün $iş edir!');
}
}
}

4.1 versiyasında yeni funksiyalar:

  • Quyruq rekursiyasının optimallaşdırılması əlavə edildi.
  • İstisnaların idarə edilməsi üçün yeni vahid API əlavə edildi.
  • "try {} catch(e) {}" konstruksiyasına "try {} catch(e: haxe.Exception) {}" üçün stenoqram kimi icazə verilir.
  • Qiymətləndirici tərcüməçiyə SSL dəstəyi əlavə edildi.
  • Hədəf JVM artıq eksperimental hesab edilmir.
  • Language Server Protocol üçün “Goto Implementation” və “Find References” funksiyaları üçün dəstək əlavə edilmişdir.
  • Yaradılmış kodda müvəqqəti yerli dəyişənlərin təkmilləşdirilmiş adlandırılması. Lazımsız "qaytarma" silindi; qaytarılması dəyəri olmayan ox funksiyalarında.
  • Sahələrdə giriş kombinasiyalarına (almaq, defolt) icazə verilir (yalnız alıcı, standart təyin davranışı).
  • Sahələr üçün artırma və azaltma operatorlarına icazə verin mücərrəd növlər.
  • Anonim iteratorlardan istifadə edərək for looplarının təkmilləşdirilmiş daxil edilməsi.
  • js: ES5 üçün təkmilləşdirilmiş StringMap tətbiqi.
  • js: “-D js-es=6” kompilyator seçiminə let dəyişənlərinin yaradılması əlavə edildi, ES6 siniflərinin generasiyası yaxşılaşdırıldı.
  • lua: "StringIterator" optimallaşdırılıb, səhvlərin idarə edilməsi təkmilləşdirilib.
  • php: Əsas növlər üçün optimallaşdırılmış "Std.isOfType".
  • php: Yaradılmış massivlər indi “Iterator”, “IteratorAggregate”, “Countable” yerli interfeyslərini həyata keçirir.
  • cs: "@:assemblyMeta" və "@:assemblyStrict" metadata əlavə edildi.
  • python: anonim obyektlərə "__contains__" tətbiqi əlavə edildi
    və "__getitem__", yaradılan kodda onları lüğət kimi istifadə etməyə imkan verir.

  • jvm: Obyektlərin anonim strukturlar kimi istifadə edildiyi hallarda (dinamik əmlak axtarışının qarşısı alınır) tipli funksiyalara daxil olmaq və əlavə interfeyslər yaratmaq üçün yeni üsul sayəsində əhəmiyyətli dərəcədə təkmilləşdirilmiş performans:
    Haxe 4.1 proqramlaşdırma dilinin buraxılışı

Standart kitabxanada təkmilləşdirmələr:

  • "Array.contains" funksiyası əlavə edildi.
  • Massivlər üçün açar-dəyər iterasiyasını həyata keçirən "Array.keyValueIterator" əlavə edildi ("for (açar => massivdə dəyər)").
  • "haxe.Constraints.NotVoid" məhdudiyyət növü əlavə edildi.
  • “FindIndex” və “foldi” funksiyaları “Lambda” sinfinə əlavə edilmişdir.
  • Həyata keçirilən "massiv girişi" ("arr[i]" vasitəsilə giriş) və "haxe.ds.HashMap" üçün açar-dəyər iterasiyası.
  • jvm: "StringMap", "sys.thread.Lock", "sys.thread.Thread" in JVM-ə məxsus versiyaları həyata keçirilir.
  • java/jvm: "haxe.crypto" modulları üçün "MD5", "SHA-1" və "SHA-256"-nın yerli tətbiqlərindən istifadə edilmişdir.
  • makro: "haxe.macro.Context.containsDisplayPosition(pos)" əlavə edildi.
  • nullsafety: "Ciddi" rejim indi tək yivli kimi qəbul edilir; "StrictThreaded" rejimi əlavə etdi.
  • "Std.is" "Std.isOfType" lehinə köhnəlmişdir.
  • Bağlamalarda dəyəri olmayan yerli dəyişənlərdən istifadə edərkən xəbərdarlıq əlavə edildi.
  • js: "tiplənməmiş __js__(code, args)" köhnəlmişdir, "js.Syntax.code(code, args)" ilə əvəz edilmişdir.
  • php/neko: "neko.Web" və "php.Web" köhnəlmişdir və daha sonra "hx4compat" kitabxanasına köçürüləcəkdir.

Növbəti buraxılışda planlaşdırılır:

  • Paket meneceri təkmilləşdirmələri haxelib.
  • Asinxron sistem API əsasında libuv.
  • Korutinlər.
  • Siniflər yaratmadan modul statik funksiyaların və dəyişənlərin elan edilməsi (artıq gecə quruluşlarında mövcuddur).

Mənbə: opennet.ru

Добавить комментарий