Gefa út forritunarmálið Haxe 4.1

Laus losun verkfærakista Haxe 4.1, sem felur í sér samnefnt forritunarmál á háu stigi með mörgum hugmyndum, með sterkri vélritun, krossþýðanda og stöðluðu aðgerðasafni. Verkefnið styður þýðingar yfir í C++, HashLink/C, JavaScript, C#, Java, PHP, Python og Lua, sem og samantekt á JVM, HashLink/JIT, Flash og Neko bætikóða, með aðgang að innfæddum möguleikum hvers markvettvangs. Þjálfarakóði dreift af undir GPLv2 leyfinu, og staðlaða bókasafnið og sýndarvélar þróaðar fyrir Haxe HashLink и Neko undir MIT leyfi.

Tungumálið er tjáningarmiðað með sterkri vélritun. Hlutbundin, almenn og hagnýt forritunartækni er studd. Haxe setningafræði er nálægt ECMAScript og stækkar eiginleikar þess eins og kyrrstætt vélritun, sjálfvirka ályktun, mynstursamsvörun, almennar tölur, endurtekningar-undirstaða fyrir lykkjur, AST fjölvi, GADT (almennar algebraískar gagnategundir), óhlutbundnar tegundir, nafnlausar uppbyggingar, einfaldaðar fylkisskilgreiningar, skilyrtar samsetningartjáningar, tengja lýsigögn við reiti , flokkar og orðatiltæki, strengjaskipti ("'Nafn mitt er $nafn'"), tegundarbreytur ('nýr aðal ("fó")') og miklu meira.

bekkjarpróf {
static fall main() {
lokafólk = [
"Elizabeth" => "Forritun",
"Joel" => "Hönnun"
];

fyrir (nafn => starf í fólki) {
trace('$nafn vinnur $vinnu fyrir lífsviðurværi!');
}
}
}

Nýir eiginleikar í útgáfu 4.1:

  • Bætt við hagræðingu á hala endurkomu.
  • Bætt við nýju sameinuðu API til að meðhöndla undantekningar.
  • Byggingin „reyna {} catch(e) {}“ er leyfð sem stytting fyrir „reyna {} catch(e: haxe.Exception) {}“.
  • Bætti SSL stuðningi við eval túlkinn.
  • Markmið JVM er ekki lengur talið tilraunaverkefni.
  • Fyrir Language Server Protocol hefur stuðningi við „Goto Implementation“ og „Find references“ aðgerðir verið bætt við.
  • Bætt nafngift á tímabundnum staðbundnum breytum í mynduðum kóða. Fjarlægði óþarfa „til baka;“ í örvaaðgerðum án skilagildis.
  • Aðgangssamsetningar (geta, sjálfgefið) eru leyfðar á reitum (aðeins getter, sjálfgefin úthlutunarhegðun).
  • Leyfa aukningu og lækkun rekstraraðila fyrir reiti abstrakt tegundir.
  • Bætt innflétting af for-lykkjum með því að nota nafnlausa endurtekningu.
  • js: Bætt StringMap útfærsla fyrir ES5.
  • js: Myndun leyfða breytna hefur verið bætt við þýðandavalkostinn „-D js-es=6“, kynslóð ES6 flokka hefur verið endurbætt.
  • lua: „StringIterator“ fínstillt, villumeðferð bætt.
  • php: Bjartsýni „Std.isOfType“ fyrir grunngerðir.
  • php: Mynduð fylki innleiða nú innfædda viðmótin „Iterator“, „IteratorAggregate“, „Countable“.
  • cs: Bætti við lýsigögnum „@:assemblyMeta“ og „@:assemblyStrict“.
  • python: bætti útfærslu á "__contains__" við nafnlausa hluti
    og "__getitem__", sem gerir þeim kleift að nota sem orðabækur í myndaða kóðanum.

  • jvm: Verulega bætt afköst þökk sé nýrri leið til að fá aðgang að vélrituðum aðgerðum og búa til viðbótarviðmót í þeim tilvikum þar sem hlutir eru notaðir sem nafnlaus bygging (komin í veg fyrir uppflettingu eiginleika):
    Gefa út forritunarmálið Haxe 4.1

Umbætur á venjulegu bókasafni:

  • Bætt við "Array.contains" virka.
  • Bætt við "Array.keyValueIterator", sem útfærir lykilgildi endurtekningu fyrir fylki ("fyrir (lykill => gildi í fylki)").
  • Bætt við þvingunargerðinni "haxe.Constraints.NotVoid".
  • „findIndex“ og „foldi“ aðgerðunum hefur verið bætt við „Lambda“ flokkinn.
  • Innleiddur "fylkisaðgangur" (aðgangur í gegnum "arr[i]") og endurtekningu lykilgilda fyrir "haxe.ds.HashMap".
  • jvm: Innleiddar JVM-sértækar útgáfur af "StringMap", "sys.thread.Lock", "sys.thread.Thread".
  • java/jvm: Notaði innbyggðar útfærslur á „MD5“, „SHA-1“ og „SHA-256“ fyrir „haxe.crypto“ einingarnar.
  • macro: Bætt við "haxe.macro.Context.containsDisplayPosition(pos)".
  • nullsafety: "Strangur" háttur er nú meðhöndlaður sem einn þráður; bætt við „StrictThreaded“ ham.
  • „Std.is“ hefur verið afskrifað í þágu „Std.isOfType“.
  • Bætt við viðvörun þegar staðbundnar breytur eru notaðar án gilda í lokunum.
  • js: "óritaður __js__(kóði, args)" er úrelt, í stað þess kemur "js.Syntax.code(kóði, args)".
  • php/neko: „neko.Web“ og „php.Web“ hafa verið úrelt og verða færð í „hx4compat“ bókasafnið síðar.

Í næstu útgáfu eru fyrirhugaðar:

  • Umbætur á pakkastjóra haxelib.
  • Ósamstilltur kerfi API byggt libuv.
  • Coroutines.
  • Lýsa yfir kyrrstæðum einingum og breytum án þess að búa til flokka (þegar fáanlegt í næturbyggingum).

Heimild: opennet.ru

Bæta við athugasemd