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.
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ọ):
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.