Haxe 4.2 programazio hizkuntzaren kaleratzea

Haxe 4.2 tresna-kitaren bertsio bat dago eskuragarri, eta izen bereko paradigma anitzeko maila handiko programazio-lengoaia idazketa sendoarekin, konpilatzaile gurutzatua eta funtzioen liburutegi estandarra biltzen ditu. Proiektuak C++, HashLink/C, JavaScript, C#, Java, PHP, Python eta Luarako itzulpena onartzen du, baita JVM, HashLink/JIT, Flash eta Neko bytecoderako konpilazioa ere, xede-plataforma bakoitzaren jatorrizko gaitasunetarako sarbidearekin. Konpiladore-kodea GPLv2 lizentziapean banatzen da, eta liburutegi estandarrak eta Haxerentzat garatutako HashLink eta Neko makina birtualak MIT lizentziapean daude.

Hizkuntza esamoldeari zuzenduta dago idazketa sendoarekin. Objektuetara zuzendutako programazio-teknikak, generikoak eta funtzionalak onartzen dira. Haxe-ren sintaxia ECMAScript-etik hurbil dago eta idazketa estatikoa, auto-mota inferentzia, patroi-ematea, generikoak, iteratzaileetan oinarritutako begiztak, AST makroak, GADT (Generalized Aljebraic Data Types), mota abstraktuak, egitura anonimoak, sinplifikatuak bezalako ezaugarriekin zabaltzen du. definizioak arrayak, baldintzazko konpilaziorako esamoldeak, eremu, klase eta esamoldeei metadatuak eranstea, kateen interpolazioa ('Nire izena $izena da'), motako parametroak ('Nagusi berria (β€œfoo”)') eta beste asko. class Test { static function main() { final people = [ "Elizabeth" => "Programazioa", "Joel" => "Diseinua" ]; for (izena => lana pertsonengan) { trace('$izek $lana egiten du bizimodua!'); } } }

Ezaugarri berriak 4.2 bertsioan:

  • Modulu mailan aldagai eta funtzio estatikoak deklaratzea, klase batean bildu beharrik gabe.
  • Klase eta funtzio abstraktu "klasikoetarako" euskarria.
  • Helburu-plataforma guztietan (haxe.Rest) funtzio variadikoen ezarpen natiboa eta β€œf(...array)” argumentua hedatzeko operadorea gehitzea.
  • Bakarkako harietarako gertaera-begizta bat ezartzea ("sys.thread.Thread.events").
  • "@:inheritDoc" metadatuak mota/eremuen dokumentazioa heredatzeko.
  • Xede-plataforma guztietan kanpoko metodoetarako metodoak gainkargatzeko laguntza.
  • Bere motaren azpian dagoen eraikitzailea abstraktura birbidaltzea "@:forward.new" metadatuak erabiliz.
  • "EIs" eraikitzailea gehitu da "haxe.macro.Expr".
  • "@:forward.variance"-rekin mota abstraktuaren aldaera bat egiteko gaitasuna.
  • "Edozein" motaren irudikapena "Dinamika" gisa aldakuntza bateratzean.
  • "haxe.exceptions" paketeari oinarrizko salbuespen mota batzuk gehitu zaizkio.
  • Aldagaiak deklaratzerakoan metadatuak eransteko laguntza.
  • "StringTools.unsafeCharAt" funtzioa kateak errepikatzeko erabiltzen da.
  • eval (interprete): "eval.luv" paketean "libuv"-i loturak gehitu zaizkio.
  • eval: "Int64" eta "UInt64" inplementazio natiboetarako loturak "eval.integers" paketearen bidez.
  • cs: UDP socket ezarpena.
  • cs: "cs.Syntax" modulua C# kodea lerroan sartzeko.
  • jvm: "-D jvm.dynamic-level=x" marka gehitu da kode dinamikorako sortutako optimizazio kopurua kontrolatzeko. 0 = bat ere ez, 1 = eremuaren irakurketa/idazketa optimizazioa, 2 = metodoa ixten da konpilazio garaian.
  • java, jvm: "--java-lib <direktorioa>" banderaren euskarria.
  • python: harikako APIaren ezarpena.

Hobekuntza orokorrak:

  • "expr da SomeType" ez da beharrezkoa parentesi artean biltzea.
  • Lehentasuna handitu da "@:using" motako luzapenak.
  • "Super" bidez mota estatikoko luzapenak erabiltzeko aukera ematen du.
  • Metadatuak "@:noDoc" eremuetan ezartzeko gaitasuna.
  • "Mapa" mota abstraktua iragankorra da.
  • "@:native"-ren laguntza enum eraikitzaileetan.
  • "@:using"-rako laguntza mota-deklarazioetan ("typedefs").
  • Lerro anitzeko erroreek "..." erabiltzen dute hurrengo lerroetarako aurrizki gisa.
  • Mota inferentzia berritu egin da, egitura anonimoak hobeto bihurtzen dira mota esplizituetara eta "itxi" egiten dira funtzioa amaitzen denean.
  • Argumenturik gabeko funtzio motak "()->..." bezala ondorioztatzen ditu "Void->..."-ren ordez.
  • "funtzioa" gako-hitza pakete-izen gisa onartzen da.
  • Objektuen lerrokadura hobetua.
  • cs: .NET 5.0rako euskarria gehitu da.
  • cpp: kanpoko klaseetarako jatorrizko eraikitzaileentzako euskarria.
  • php: "php.Syntax.customArrayDecl" gehitu da jatorrizko array bat deklaratzeko.
  • php: Kanpo-metodo eguneratuak hainbat funtzio eta klasetarako.
  • php: Egitura anonimoen ezarpen optimizatua.
  • hl: Saltatu konpilazioa moduluetan aldaketarik ez badago.
  • lua: "hx-lua-simdjson" erabiliz json analizatzeko.
  • jvm: CPU karga murriztu da "sys.thread.Lock" ezarpenean.
  • js: Google Closure Compiler-ekin bateragarritasun hobetua.
  • Null Safety: kontuan hartu "@:nullSafety(Off)" aldagaiak deklaratzerakoan: "var @:nullSafety(Off) v".

Era berean, VSCode editorearen gehitzea konpilatzailearen bertsio berrira eguneratu da, zeinetan iradokizunak agertu diren interfazeen eremuak, klase sinpleak eta abstraktuak eta propietate metodoak sortzearekin batera.

Iturria: opennet.ru

Gehitu iruzkin berria