toolkit release , dy't de multi-paradigma heech nivo programmeartaal mei deselde namme omfettet mei sterke typen, in cross-compiler en in standert bibleteek fan funksjes. It projekt stipet oersetting nei C++, HashLink/C, JavaScript, C#, Java, PHP, Python en Lua, lykas kompilaasje nei JVM, HashLink/JIT, Flash en Neko bytecode, mei tagong ta de native mooglikheden fan elk doelplatfoarm. Kompilator koade ûnder de GPLv2 lisinsje, en de standert bibleteek en firtuele masines ûntwikkele foar Haxe и ûnder de MIT-lisinsje.
Taal is mei sterk typen. Objekt-rjochte, generike en funksjonele programmearringtechniken wurde stipe. Haxe syntaksis is tichtby ECMAScript en syn funksjes lykas statysk typen, autotype-ynferinsje, patroan oerienkomst, generika, iterator-basearre foar loops, AST-makro's, GADT (Generalized Algebraic Data Types), abstrakte typen, anonime struktueren, ferienfâldige array-definysjes, betingsten kompilaasje-útdrukkingen, heakjen fan metadata oan fjilden , klassen en útdrukkingen, tekenrige ynterpolaasje ("'Myn namme is $namme'"), type parameters ('nije Main ("foo")') en .
klasse Test {
statyske funksje main() {
lêste minsken = [
"Elizabeth" => "Programmearje",
"Joel" => "Design"
];
foar (namme => baan yn minsken) {
trace('$name docht $job foar in libben!');
}
}
}
Nije funksjes yn ferzje 4.1:
- Tafoege sturt rekursje optimalisaasje.
- In nije ferienige API tafoege foar ôfhanneling fan útsûnderingen.
- It konstruksje "besykje {} fangen(e) {}" is tastien as in koarting foar "besykje {} catch(e: haxe.Exception) {}".
- SSL-stipe tafoege oan de eval-tolk.
- It doel JVM wurdt net langer as eksperiminteel beskôge.
- Foar Language Server Protocol is stipe foar de funksjes "Goto Implementation" en "Find references" tafoege.
- Ferbettere nammejouwing fan tydlike lokale fariabelen yn oanmakke koade. Ferwiderje oerstallige "return;" yn pylk funksjes sûnder werom wearde.
- Tagongskombinaasjes (get, standert) binne tastien op fjilden (allinnich getter, standert opdrachtgedrach).
- Tastean increment en decrement operators foar fjilden .
- Ferbettere ynlining fan foar loops mei anonime iterators.
- js: Ferbettere StringMap-ymplemintaasje foar ES5.
- js: Generaasje fan lit fariabelen is tafoege oan de gearstaller opsje "-D js-es = 6", generaasje fan ES6 klassen is ferbettere.
- lua: "StringIterator" optimalisearre, flater ôfhanneling ferbettere.
- php: Optimalisearre "Std.isOfType" foar basistypen.
- php: Generearre arrays implementearje no de native ynterfaces "Iterator", "IteratorAggregate", "Telbere".
- cs: Metadata tafoege "@:assemblyMeta" en "@:assemblyStrict".
- python: tafoege ymplemintaasje fan "__contains__" oan anonime objekten
en "__getitem__", wêrtroch't se brûkt wurde as wurdboeken yn 'e oanmakke koade. - jvm: Oanmerklik ferbettere prestaasjes troch in nije manier om tagong te krijen ta typte funksjes en ekstra ynterfaces te generearjen yn gefallen wêr't objekten wurde brûkt as anonime struktueren (dynamysk opsykjen fan eigendom wurdt foarkommen):
Ferbetteringen yn 'e standertbibleteek:
- Added "Array.contains" funksje.
- Added "Array.keyValueIterator", dy't kaai-wearde-iteraasje ymplementearret foar arrays ("foar (key => wearde yn array)").
- Added constraint type "haxe.Constraints.NotVoid".
- De funksjes "findIndex" en "foldi" binne tafoege oan 'e klasse "Lambda".
- Implementearre "array tagong" (tagong fia "arr [i]") en kaai-wearde iteraasje foar "haxe.ds.HashMap".
- jvm: Ymplementearre JVM-spesifike ferzjes fan "StringMap", "sys.thread.Lock", "sys.thread.Thread".
- java/jvm: Brûkte native ymplemintaasjes fan "MD5", "SHA-1" en "SHA-256" foar de "haxe.crypto" modules.
- makro: Added "haxe.macro.Context.containsDisplayPosition (pos)".
- nullsafety: "Strikt" modus wurdt no behannele as ien thread; tafoege "StrictThreaded" modus.
- "Std.is" is ôfkard yn it foardiel fan "Std.isOfType".
- In warskôging tafoege by it brûken fan lokale fariabelen sûnder wearden yn slutingen.
- js: "untyped __js__(koade, args)" wurdt ôfret, ferfongen troch "js.Syntax.code(koade, args)".
- php/neko: "neko.Web" en "php.Web" binne ôfret en wurde letter ferpleatst nei de "hx4compat" bibleteek.
Yn de folgjende release :
- Pakket manager ferbetterings .
- Asynchronous systeem API basearre .
- Coroutines.
- Modulêre statyske funksjes en fariabelen ferklearje sûnder klassen te meitsjen (al beskikber yn nachtlike builds).
Boarne: opennet.ru
