Kutulutsidwa kwa chilankhulo cha pulogalamu Haxe 4.2

Kutulutsidwa kwa zida za Haxe 4.2 kulipo, komwe kumaphatikizapo chilankhulo chambiri chapadigm chapamwamba kwambiri cha dzina lomwelo ndi zilembo zolimba, zophatikizira pamtanda ndi laibulale yokhazikika yantchito. Pulojekitiyi imathandizira kumasulira kwa C ++, HashLink/C, JavaScript, C#, Java, PHP, Python ndi Lua, komanso kuphatikiza ku JVM, HashLink/JIT, Flash ndi Neko bytecode, ndi mwayi wopeza mphamvu zakubadwa za nsanja iliyonse yomwe mukufuna. Khodi yophatikizira imagawidwa pansi pa layisensi ya GPLv2, ndipo laibulale yokhazikika ndi makina a HashLink ndi Neko opangidwira Haxe ali ndi chilolezo pansi pa layisensi ya MIT.

Chilankhulochi chimakhazikika pamawu ndikulemba mwamphamvu. Njira zopangira zinthu, zokhazikika komanso zogwira ntchito zimathandizidwa. Syntax ya Haxe ili pafupi ndi ECMAScript ndipo imakulitsa ndi zinthu monga kulemba mokhazikika, kutengera mtundu wa auto-type, mafananidwe amtundu, ma generics, iterator-based for looops, AST macros, GADT (Generalized Algebraic Data Types), mitundu yosadziwika, mawonekedwe osadziwika, osavuta. matanthauzo osiyanasiyana, mawu ophatikiza zokhazikika, kuphatikiza metadata ku minda, makalasi ndi mawu, kumasulira kwa zingwe ('Dzina langa ndi $name'), mtundu wa magawo ('New Main("foo")') ndi zina zambiri. class Test {static function main() { final people = [ "Elizabeth" => "Programming", "Joel" => "Design" ]; kwa (dzina => ntchito mwa anthu) { trace(β€˜$name does $ job for a live!’); }}}

Zatsopano mu mtundu 4.2:

  • Kulengeza zosinthika zokhazikika ndi ntchito pamlingo wa module, popanda kufunikira kuzikulunga mkalasi.
  • Thandizo la "classic" abstract makalasi ndi ntchito.
  • Kukhazikitsa kwachilengedwe kwa magwiridwe antchito amitundu yonse pamapulatifomu onse omwe mukufuna (haxe.Rest) ndikuwonjezera mawu owonjezera "f(...array)".
  • Kukhazikitsidwa kwa loop ya zochitika pa ulusi uliwonse ("sys.thread.Thread.events").
  • "@:inheritDoc" metadata yotengera zolembedwa zamtundu/gawo.
  • Njira yowonjezera chithandizo cha njira zakunja pamapulatifomu onse omwe mukufuna.
  • Kutumiza womanga kutengera mtundu wake ku chidziwitso pogwiritsa ntchito metadata ya "@:forward.new".
  • Anawonjezera "EIs" womanga ku "haxe.macro.Expr".
  • Kutha kupanga mtundu wosiyana ndi "@:forward.variance".
  • Kuyimira mtundu wa "Aliyense" ngati "Dynamic" pogwirizanitsa kusintha.
  • Onjezani mitundu ina yosiyana ndi phukusi la "haxe.exceptions".
  • Kuthandizira kumangirira metadata polengeza zosintha.
  • Ntchito "StringTools.unsafeCharAt" yogwiritsidwa ntchito pobwereza zingwe.
  • eval (wotanthauzira): Zowonjezera zomangirira ku "libuv" mu phukusi "eval.luv".
  • eval: zomangirira pazokhazikitsidwa za "Int64" ndi "UInt64" kudzera pa phukusi la "eval.integers".
  • cs: kukhazikitsa socket ya UDP.
  • cs: "cs.Syntax" gawo loyikapo pamzere C # code.
  • jvm: Anawonjezera mbendera ya "-D jvm.dynamic-level=x" kuti muwongolere kuchuluka kwa kukhathamiritsa komwe kumapangidwa pamakhodi amphamvu. 0 = palibe, 1 = kukhathamiritsa kwamunda / kulemba, 2 = kutsekedwa kwa njira panthawi yophatikiza.
  • java, jvm: Kuthandizira mbendera ya "--java-lib ".
  • python: kukhazikitsa API.

Zowonjezera zambiri:

  • "expr ndi SomeType" sikutanthauza kukulunga m'makolo.
  • Kuchulukitsa kwamtundu wa "@:using" kumawonjezera.
  • Amalola kugwiritsa ntchito zowonjezera zamtundu wa static kudzera pa "super".
  • Kutha kukhazikitsa metadata ku "@:noDoc" minda.
  • Mtundu wosawoneka bwino wa "Mapu" umasinthidwa kukhala wosinthika.
  • Thandizo la "@:native" pa omanga enum.
  • Thandizo la "@:using" pazolengeza zamtundu ("typedefs").
  • Zolakwa za mizere ingapo zimagwiritsa ntchito "..." monga chiyambi cha mizere yotsatira.
  • Kufotokozera kwamtundu kwakonzedwanso, zomanga zosadziwika zimasinthidwa bwino kukhala mitundu yowonekera ndi "kutsekedwa" ntchitoyo ikatha.
  • Kutengera mtundu wa ntchito popanda mikangano ngati "()->..." m'malo mwa "Void-> ...".
  • Mawu ofunikira a "function" amaloledwa ngati dzina la phukusi.
  • Kupititsa patsogolo kuyika kwazinthu.
  • cs: Thandizo lowonjezera la .NET 5.0.
  • cpp: Thandizo la omanga mbadwa zamakalasi akunja.
  • php: Yowonjezedwa "php.Syntax.customArrayDecl" kulengeza gulu lakwawo.
  • php: Njira zosinthidwa zakunja zantchito ndi makalasi osiyanasiyana.
  • php: Kukonzekera kokhazikika kwazinthu zosadziwika.
  • hl: Dumphani kuphatikiza ngati palibe kusintha kwa ma module.
  • lua: Kugwiritsa ntchito "hx-lua-simdjson" kusanthula json.
  • jvm: Kuchepetsa kuchuluka kwa CPU pakukhazikitsa "sys.thread.Lock".
  • js: Kulumikizana bwino ndi Google Closure Compiler.
  • Null Safety: Ganizirani "@:nullSafety(Off)" polengeza zosintha: "var @:nullSafety(Off) v".

Komanso, kuwonjezera kwa mkonzi wa VSCode kwasinthidwa ku mtundu watsopano wa compiler, momwe zidziwitso zawonekera ndi m'badwo wa minda yosowa yolumikizirana, makalasi osavuta komanso osamveka, komanso njira zanyumba.

Source: opennet.ru

Kuwonjezera ndemanga