Vydanie programovacieho jazyka Haxe 4.2

K dispozícii je vydanie sady nástrojov Haxe 4.2, ktorá obsahuje rovnomenný vysokoúrovňový programovací jazyk s viacerými paradigmami so silným písaním, krížový kompilátor a štandardnú knižnicu funkcií. Projekt podporuje preklad do C++, HashLink/C, JavaScript, C#, Java, PHP, Python a Lua, ako aj kompiláciu do JVM, HashLink/JIT, Flash a Neko bytecode s prístupom k natívnym schopnostiam každej cieľovej platformy. Kód kompilátora je distribuovaný pod licenciou GPLv2 a štandardná knižnica a virtuálne stroje HashLink a Neko vyvinuté pre Haxe sú licencované pod licenciou MIT.

Jazyk je orientovaný na výraz so silným písaním. Podporované sú objektovo orientované, generické a funkčné programovacie techniky. Syntax Haxe je blízka ECMAScriptu a rozširuje ho o funkcie ako statické písanie, odvodenie automatického typu, porovnávanie vzorov, generiká, cykly založené na iterátoroch, makrá AST, GADT (Generalized Algebraic Data Types), abstraktné typy, anonymné štruktúry, zjednodušené polia definícií, výrazy pre podmienenú kompiláciu, pripájanie metadát k poliam, triedam a výrazom, interpolácia reťazcov ('Moje meno je $name'), parametre typu ('nové Hlavné („foo“)') a mnoho ďalších. class Test { statická funkcia main() { final people = [ "Elizabeth" => "Programovanie", "Joel" => "Design" ]; for (meno => práca v ľuďoch) { trace('$meno robí $prácu na živobytie!'); } } }

Nové funkcie vo verzii 4.2:

  • Deklarovanie statických premenných a funkcií na úrovni modulu bez potreby ich zabaľovania do triedy.
  • Podpora „klasických“ abstraktných tried a funkcií.
  • Natívna implementácia variadických funkcií pre všetky cieľové platformy (haxe.Rest) a pridanie operátora rozšírenia argumentov „f(...array)“.
  • Implementácia slučky udalostí pre jednotlivé vlákna („sys.thread.Thread.events“).
  • Metadáta "@:inheritDoc" pre dedenie dokumentácie typu/pole.
  • Podpora preťaženia metód pre externé metódy na všetkých cieľových platformách.
  • Preposielanie konštruktora, ktorý je základom jeho typu, do abstraktu pomocou metadát „@:forward.new“.
  • Pridaný konštruktor "EIs" do "haxe.macro.Expr".
  • Schopnosť vytvoriť variant abstraktného typu s "@:forward.variance".
  • Znázornenie typu „Akýkoľvek“ ako „Dynamický“ pri zjednocovaní variácie.
  • Do balíka "haxe.exceptions" boli pridané niektoré základné typy výnimiek.
  • Podpora pripájania metadát pri deklarovaní premenných.
  • Funkcia "StringTools.unsafeCharAt" používaná na iteráciu reťazca.
  • eval (interpret): Pridané väzby k "libuv" v balíku "eval.luv".
  • eval: väzby na natívne implementácie „Int64“ a „UInt64“ prostredníctvom balíka „eval.integers“.
  • cs: Implementácia soketu UDP.
  • cs: Modul “cs.Syntax” pre inline vkladanie kódu C#.
  • jvm: Pridaný príznak „-D jvm.dynamic-level=x“ na riadenie počtu vygenerovaných optimalizácií pre dynamický kód. 0 = žiadne, 1 = optimalizácia čítania/zápisu poľa, 2 = uzavretie metódy v čase kompilácie.
  • java, jvm: Podpora pre príznak "--java-lib <adresár>".
  • python: implementácia vlákna API.

Všeobecné vylepšenia:

  • "expr is SomeType" nevyžaduje zalamovanie do zátvoriek.
  • Zvýšená priorita pre rozšírenia typu „@:using“.
  • Umožňuje použitie rozšírení statického typu cez "super".
  • Možnosť nastaviť metadáta do polí „@:noDoc“.
  • Abstraktný typ „Mapa“ je prechodný.
  • Podpora pre "@:native" na konštruktoroch enum.
  • Podpora pre "@:using" na deklaráciách typu ("typedefs").
  • Viacriadkové chyby používajú "..." ako predponu pre nasledujúce riadky.
  • Inferencia typu bola prepracovaná, anonymné štruktúry sa lepšie prevedú na explicitné typy a po dokončení funkcie sa „uzatvoria“.
  • Odvodzovanie typu funkcií bez argumentov ako "()->..." namiesto "Void->...".
  • Kľúčové slovo "function" je povolené ako názov balíka.
  • Vylepšené vkladanie predmetov.
  • cs: Pridaná podpora pre .NET 5.0.
  • cpp: Podpora natívnych konštruktorov pre externé triedy.
  • php: Pridané „php.Syntax.customArrayDecl“ na deklarovanie natívneho poľa.
  • php: Aktualizované externé metódy pre rôzne funkcie a triedy.
  • php: Optimalizovaná implementácia anonymných štruktúr.
  • hl: Preskočte kompiláciu, ak nenastali žiadne zmeny v moduloch.
  • lua: Použitie "hx-lua-simdjson" na analýzu json.
  • jvm: Znížené zaťaženie procesora v implementácii "sys.thread.Lock".
  • js: Vylepšená kompatibilita s Google Closure Compiler.
  • Null Safety: Pri deklarovaní premenných zvážte "@:nullSafety(Off)": "var @:nullSafety(Off) v".

Na novú verziu kompilátora bol aktualizovaný aj prídavok do editora VSCode, v ktorom sa objavili rady s generovaním chýbajúcich polí rozhraní, jednoduchých a abstraktných tried, ako aj metód vlastností.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre stránky s DDoS ochranou, VPS VDS servery 🔥 Kúpte si spoľahlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster