Itusilẹ ti ede siseto Haxe 4.1

Wa itusilẹ irinṣẹ Haxe 4.1, eyiti o pẹlu ede siseto ipele-giga pupọ-pupọ ti orukọ kanna pẹlu titẹ agbara, alakopọ-agbelebu ati ile-ikawe boṣewa ti awọn iṣẹ. Ise agbese na ṣe atilẹyin itumọ si C ++, HashLink/C, JavaScript, C #, Java, PHP, Python ati Lua, bakanna bi akopọ si JVM, HashLink/JIT, Flash ati Neko bytecode, pẹlu iraye si awọn agbara abinibi ti aaye ibi-afẹde kọọkan. koodu alakojo pin nipasẹ labẹ iwe-aṣẹ GPLv2, ati ile-ikawe boṣewa ati awọn ẹrọ foju ti dagbasoke fun Haxe HashLink и neko labẹ iwe-aṣẹ MIT.

Ede ni ikosile-Oorun pẹlu lagbara titẹ. Orun-Oorun, jeneriki ati awọn ilana siseto iṣẹ jẹ atilẹyin. Sintasi Haxe sunmo ECMAScript ati gbooro sii awọn ẹya ara rẹ gẹgẹbi titẹ aimi, itọkasi autotype, ibaamu ilana, awọn jeneriki, ipilẹ-itunse fun awọn losiwajulosehin, AST macros, GADT (Awọn oriṣi Data Algebraic Gbogbogbo), awọn oriṣi afọwọṣe, awọn ẹya ailorukọ, awọn asọye orun ti o rọrun, awọn ikosile iṣakojọpọ ipo, fifi metadata si awọn aaye , awọn kilasi ati awọn ikosile, okun interpolation ("'Orukọ mi ni $name'"), tẹ awọn paramita ('tuntun Akọkọ ("foo")') ati pelu pelu.

Idanwo kilasi {
iṣẹ aimi akọkọ() {
eniyan ikẹhin = [
"Elizabeth" => "Ìṣètò",
"Joel" => "Apẹrẹ"
];

fun (orukọ => iṣẹ ni awọn eniyan) {
itopase('$orukọ ṣe $iṣẹ fun igbesi aye!');
}
}
}

Awọn ẹya tuntun ni ẹya 4.1:

  • Imudara atunṣe iru ti a ṣafikun.
  • Ṣafikun API iṣọkan tuntun kan fun mimu iyasọtọ.
  • Itumọ "gbiyanju {} apeja (e) {}" jẹ idasilẹ bi ọna kukuru fun "gbiyanju {} catch(e: haxe.Exception) {}".
  • Ṣe afikun atilẹyin SSL si onitumọ eval.
  • JVM ibi-afẹde ko ni ka si esiperimenta mọ.
  • Fun Ilana olupin Ede, atilẹyin fun awọn iṣẹ “Imuṣẹ Goto” ati “Wa awọn itọkasi” ti ṣafikun.
  • Imudara si lorukọ awọn oniyipada agbegbe igba diẹ ninu koodu ti ipilẹṣẹ. Apopada kuro "pada;" ni itọka awọn iṣẹ lai a pada iye.
  • Awọn akojọpọ wiwọle (gba, aiyipada) ni a gba laaye lori awọn aaye (getter nikan, ihuwasi iṣẹ iyansilẹ aiyipada).
  • Gba alekun ati idinku awọn oniṣẹ fun awọn aaye áljẹbrà orisi.
  • Imudara inlining ti fun awọn losiwajulosehin nipa lilo awọn iterators ailorukọ.
  • js: Imudara imuse StringMap fun ES5.
  • js: Iran ti jẹ ki awọn oniyipada ti ni afikun si aṣayan alakojọ “-D js-es=6”, iran ti awọn kilasi ES6 ti ni ilọsiwaju.
  • lua: "StringIterator" iṣapeye, imudara aṣiṣe dara si.
  • php: Iṣapeye "Std.isOfType" fun awọn iru ipilẹ.
  • php: Awọn akojọpọ ti ipilẹṣẹ ni bayi ṣe imuse awọn atọkun abinibi “Iterator”, “IteratorAggregate”, “Countable”.
  • cs: Ti ṣafikun metadata "@: assemblyMeta" ati "@: apejọStrict".
  • Python: afikun imuse ti "__contains__" si awọn nkan ailorukọ
    ati "__getitem__", eyiti o fun laaye laaye lati lo bi awọn iwe-itumọ ni koodu ti ipilẹṣẹ.

  • jvm: Iṣe ilọsiwaju ni pataki ọpẹ si ọna tuntun ti iraye si awọn iṣẹ ti a tẹ ati ṣiṣẹda awọn atọkun afikun ni awọn ọran nibiti a ti lo awọn nkan bi awọn ẹya ailorukọ (ṣayẹwo ohun-ini ti o ni agbara ni idilọwọ):
    Itusilẹ ti ede siseto Haxe 4.1

Awọn ilọsiwaju ninu ile-ikawe boṣewa:

  • Fi kun "Array.contains" iṣẹ.
  • Ṣe afikun "Array.keyValueIterator", eyiti o ṣe imuse isọdọtun iye-bọtini fun awọn akojọpọ ("fun (bọtini => iye ninu akopọ)").
  • Fikun iru ihamọ "haxe.Constraints.NotVoid".
  • Awọn iṣẹ “FindIndex” ati “foldi” ti jẹ afikun si kilasi “Lambda”.
  • Ti ṣe imuse “wiwọle orun” (iwọle nipasẹ “arr[i]”) ati aṣetunṣe iye bọtini fun “haxe.ds.HashMap”.
  • jvm: Ṣiṣe awọn ẹya JVM-pato ti "StringMap", "sys.thread.Lock", "sys.thread.Thread".
  • java/jvm: Awọn imuṣẹ abinibi ti a lo ti "MD5", "SHA-1" ati "SHA-256" fun awọn modulu "haxe.crypto".
  • Makiro: Fi kun "haxe.macro.Context.containsDisplayPosition (pos)".
  • nullsafety: "Muna" mode ti wa ni bayi mu bi nikan asapo; kun mode "StrictThreaded".
  • "Std.is" ni a ti parẹ ni ojurere ti "Std.isOfType".
  • Ṣafikun ikilọ nigba lilo awọn oniyipada agbegbe laisi awọn iye ni awọn pipade.
  • js: "ti ko tẹ __js__(koodu, args)" ti wa ni idinku, rọpo nipasẹ "js.Syntax.code(koodu, args)".
  • php/neko: "neko.Web" ati "php.Web" ni a ti parẹ ati pe wọn yoo gbe lọ si ile-ikawe "hx4compat" nigbamii.

Ni awọn tókàn Tu ti wa ni ngbero:

  • Awọn ilọsiwaju oluṣakoso idii haxelib.
  • Eto Asynchronous API orisun libuv.
  • Coroutines.
  • N kede awọn iṣẹ aimi apọjuwọn ati awọn oniyipada laisi ṣiṣẹda awọn kilasi (ti wa tẹlẹ ni awọn ile alẹ).

orisun: opennet.ru

Fi ọrọìwòye kun