Sgaoileadh cànan prògramadh Haxe 4.1

Ri fhaighinn sgaoileadh innealan Hagh 4.1, a tha a’ toirt a-steach cànan prògramadh àrd-ìre ioma-paradigm den aon ainm le clò-sgrìobhadh làidir, tar-chruinniche agus leabharlann àbhaisteach de ghnìomhan. Bidh am pròiseact a’ toirt taic do eadar-theangachadh gu C ++, HashLink/C, JavaScript, C#, Java, PHP, Python agus Lua, a bharrachd air a bhith a’ cur ri chèile gu JVM, HashLink/JIT, Flash agus Neko bytecode, le cothrom air comasan dùthchasach gach àrd-ùrlar targaid. Còd compiler air a sgaoileadh le fo chead GPLv2, agus an leabharlann àbhaisteach agus innealan brìgheil a chaidh a leasachadh airson Haxe HashLink и neko fo chead MIT.

Tha cànan stèidhichte air abairt le sgrìobhadh làidir. Thathas a’ toirt taic do dhòighean prògramaidh a tha stèidhichte air cuspair, gnèitheach agus gnìomh. Tha co-chòrdadh Haxe faisg air ECMAScript agus a ’leudachadh na feartan aige leithid clò-sgrìobhadh statach, co-dhùnadh autotype, maidseadh phàtranan, gnèitheachd, stèidhichte air iterator airson lùban, macros AST, GADT (Seòrsaichean Dàta Ailgéabrach Coitcheann), seòrsaichean eas-chruthach, structaran gun urra, mìneachaidhean sreath simplichte, abairtean cruinneachaidh cumhach, a’ ceangal meata-dàta ri raointean , clasaichean agus abairtean, eadar-theangachadh sreang (“'Is e $name an t-ainm a th’ orm’”), paramadairean seòrsa (‘Prìomh ùr ("foo")') agus tòrr a bharrachd.

Deuchainn clas {
prìomh ghnìomh statach () {
daoine deireannach = [
"Ealasaid" => "Prògramachadh",
"Joel" => "Dealbhadh"
];

airson (ainm => obair ann an daoine) {
lorg ('Tha $name a' dèanamh $work airson bith-beò!');
}
}
}

Feartan ùra ann an dreach 4.1:

  • Optimization ath-chuairteachaidh earball a bharrachd.
  • Chuir sinn API aonaichte ùr ris airson làimhseachadh eisgeachd.
  • Tha an togail "feuch {} glac(e) {}" ceadaichte mar làmh-ghoirid airson "feuch {} glac (e: haxe. Exception) {}".
  • Chuir sinn taic SSL ris an eadar-theangair eval.
  • Chan eilear a’ beachdachadh air an targaid JVM mar dheuchainneach tuilleadh.
  • Airson Language Server Protocol, chaidh taic airson na gnìomhan “Goto Implementation” agus “Lorg iomraidhean” a chur ris.
  • Ainmeachadh nas fheàrr air caochladairean ionadail sealach ann an còd gineadh. Iomradh air falbh "tilleadh;" ann an gnìomhan saighead gun luach tilleadh.
  • Tha cothlamadh ruigsinneachd (faigh, bunaiteach) ceadaichte air raointean (getter a-mhàin, giùlan sònrachaidh bunaiteach).
  • Leig le gnìomhaichean àrdachadh is lughdachadh airson raointean seòrsaichean geàrr-chunntas.
  • Inlining nas fheàrr airson lùban a’ cleachdadh iterators gun urra.
  • js: Buileachadh StringMap nas fheàrr airson ES5.
  • js: Chaidh gineadh caochladairean leigeil a chur ris an roghainn cruinneachaidh “-D js-es = 6”, tha ginealach de chlasaichean ES6 air a leasachadh.
  • lua: "StringIterator" air a bharrrachadh, chaidh làimhseachadh mhearachdan nas fheàrr.
  • php: "Std.isOfType" Optimized airson seòrsaichean bunaiteach.
  • php: Tha arrays gineadh a-nis a’ cur an gnìomh an eadar-aghaidh dùthchasach “Iterator”, “IteratorAggregate”, “Countable”.
  • cs: Chaidh meata-dàta a chur ris "@:assemblyMeta" agus "@:assemblyStrict".
  • python: cuir an gnìomh “__contains__” ri nithean gun urra
    agus "__getitem__", a leigeas leotha an cleachdadh mar fhaclairean sa chòd a chaidh a chruthachadh.

  • jvm: Coileanadh air a leasachadh gu mòr le taing do dhòigh ùr air faighinn gu gnìomhan clò-sgrìobhte agus a’ cruthachadh eadar-aghaidh a bharrachd ann an cùisean far a bheil nithean air an cleachdadh mar structaran gun urra (tha casg air lorg seilbh fiùghantach):
    Sgaoileadh cànan prògramadh Haxe 4.1

Leasachaidhean anns an leabharlann àbhaisteach:

  • Chaidh gnìomh “Array.contains” a chur ris.
  • Chaidh "Array.keyValueIterator" a chur ris, a chuireas an gnìomh tionndadh luach-iuchrach airson arrays ("airson (key => luach ann an sreath)").
  • Seòrsa cuingealachaidh a bharrachd "haxe.Constraints.NotVoid".
  • Chaidh na gnìomhan “findIndex” agus “foldi” a chur ris a’ chlas “Lambda”.
  • Chaidh “ruigsinneachd sreath” a chuir an gnìomh (ruigsinneachd tro “arr[i]”) agus tionndadh luach-iuchrach airson “haxe.ds.HashMap”.
  • jvm: Tionndaidhean sònraichte de JVM de "StringMap", "sys.thread.Lock", "sys.thread.Thread".
  • java/jvm: Cleachdaidhean dùthchasach de "MD5", "SHA-1" agus "SHA-256" airson na modalan "haxe.crypto".
  • macro: Air a chur ris "haxe.macro.Context.containsDisplayPosition(pos)".
  • nullsafety: Tha am modh "Strict" a-nis ga làimhseachadh mar aon snàthainn; chuir am modh "StrictThreaded" ris.
  • Chan eil "Std.is" air a mholadh airson "Std.isOfType".
  • Chaidh rabhadh a chuir ris nuair a bhios tu a’ cleachdadh caochladairean ionadail gun luachan ann an dùnadh.
  • js: tha “neo-chlàraichte __js__ (còd, args)” air a mholadh, agus “js.Syntax.code(code, args)” na àite.
  • php/neko: tha “neko.Web” agus “php.Web” air an ìsleachadh agus thèid an gluasad chun leabharlann “hx4compat” nas fhaide air adhart.

Anns an ath fhoillseachadh air am planadh:

  • Leasachaidhean manaidsear pacaid haxelib.
  • Asynchronous siostam API stèidhichte libh.
  • Coroutines.
  • Ag ainmeachadh gnìomhan modular statach agus caochladairean gun a bhith a’ cruthachadh chlasaichean (ri fhaighinn mar-thà ann an togalaichean oidhche).

Source: fosgailtenet.ru

Cuir beachd ann