Te tukunga o te reo hootaka Haxe 4.1

Wātea tuku kete taputapu Haxe 4.1, kei roto ko te reo hotaka taumata-tiketike-maha o te ingoa kotahi me te kaha patopato, he whakahiato whakawhiti me te whare pukapuka paerewa o nga mahi. Ka tautokohia e te kaupapa te whakamaoritanga ki C++, HashLink/C, JavaScript, C#, Java, PHP, Python me Lua, me te whakahiato ki te JVM, HashLink/JIT, Flash me te Neko bytecode, me te whai waahi ki nga kaha taketake o ia papaapapa whaainga. Waehere whakahiato tohaina e i raro i te raihana GPLv2, me te whare pukapuka paerewa me nga miihini mariko i whakawhanakehia mo Haxe HashLink и neko i raro i te raihana MIT.

Ko te reo whakapuaki-whakaaro me te tuhi kaha. Kei te tautokohia nga tikanga kaupapa-a-ahua, tikanga whanui me te mahi. He tata te wetereo Haxe ki te ECMAScript me whakawhanui ona ahuatanga penei i te patopato pateko, te whakatauira autotype, te taurite tauira, te momo, te kaiwhakariterite mo nga koropiko, nga tonotono AST, GADT (Nga Momo Raraunga Taurangi Whanui), nga momo waitara, nga hanganga ingoamuna, nga whakamaarama hurangi ngawari, nga kupu whakahiato herenga, te taapiri metadata ki nga mara , nga karaehe me nga korero, te honohono aho (“'Ko toku ingoa ko $ingoa'”), momo tawhā ('Matua hou ("foo")') me nui noa atu.

Whakamātautau akomanga {
mahi pateko matua() {
iwi whakamutunga = [
"Elizabeth" => "Patakataka",
"Joel" => "Hoahoa"
];

mo (ingoa => mahi i roto i nga tangata) {
trace('$ingoa he $mahi hei oranga!');
}
}
}

Nga waahanga hou i te putanga 4.1:

  • Kua taapirihia te arotautanga whakahekenga hiku.
  • I taapirihia he API whakakotahi hou mo te whakahaere motuhake.
  • Ko te hanga "try {} catch(e) {}" ka whakaaetia hei kupu poto mo "try {} catch(e: haxe.Exception) {}".
  • Kua taapirihia te tautoko SSL ki te kaiwhakamaori eval.
  • Ko te whaainga JVM kua kore e kiia he whakamatautau.
  • Mo te Kawa Tūmau Reo, kua taapirihia te tautoko mo nga mahi "Goto Implementation" me "Kimi tohutoro".
  • Kua pai ake te whakaingoatanga o nga taurangi rohe rangitahi i roto i te waehere kua hangaia. Kua tangohia te "hoki mai;" i nga mahi pere kaore he uara whakahoki.
  • Ko nga huinga uru (whiwhi, taunoa) ka whakaaetia i runga i nga mara (te tiki anake, te whanonga taumahi taunoa).
  • Whakaaetia te whakanui me te whakaheke i nga kaiwhakahaere mo nga mara momo waitara.
  • Kua pai ake te whakaurunga mo nga koropiko ma te whakamahi i nga kaitoro ingoamuna.
  • js: Kua pai ake te whakatinanatanga o StringMap mo ES5.
  • js: Kua taapirihia te whakaputanga o nga taurangi tuku ki te kowhiringa whakahiato "-D js-es=6", kua pai ake te whakatipuranga o nga karaehe ES6.
  • lua: "StringIterator" kua pai ake, kua pai ake te whakahaere hapa.
  • php: Kua arotauhia "Std.isOfType" mo nga momo turanga.
  • php: Ka whakatinanahia e nga rarangi hangai nga atanga taketake "Iterator", "IteratorAggregate", "Countable".
  • cs: Kua taapirihia nga metadata "@:assemblyMeta" me "@:assemblyStrict".
  • python: tāpirihia te whakatinanatanga o "__contains__" ki nga taonga kore ingoa
    me "__getitem__", e taea ai te whakamahi hei papakupu i roto i te waehere kua hangaia.

  • jvm: Kua tino pai ake te mahinga na te huarahi hou mo te uru atu ki nga mahi kua patohia me te whakaputa atanga taapiri i roto i nga keehi ka whakamahia nga taonga hei hanga ingoamuna (ka araihia te rapu rawa hihiri):
    Te tukunga o te reo hootaka Haxe 4.1

Nga whakapai ake i te whare pukapuka paerewa:

  • Kua taapirihia te mahi "Array.contains".
  • Kua taapirihia "Array.keyValueIterator", e whakatinana ana i te huringa uara-matua mo nga hurangi ("mo te (matua => uara i roto i te huinga)").
  • Momo herenga taapiri "haxe.Constraints.NotVoid".
  • Ko nga mahi "findIndex" me "foldi" kua taapirihia ki te akomanga "Lambda".
  • I whakatinanahia te "whakauru huinga" (whakauru ma te "arr[i]") me te whitinga uara-matua mo "haxe.ds.HashMap".
  • jvm: I whakatinanahia nga momo JVM-motuhake o "StringMap", "sys.thread.Lock", "sys.thread.Thread".
  • java/jvm: I whakamahia nga whakamahinga taketake o "MD5", "SHA-1" me "SHA-256" mo nga waahanga "haxe.crypto".
  • tonotono: Kua taapirihia "haxe.macro.Context.containsDisplayPosition(pos)".
  • nullsafety: Ko te aratau "kaha" ka kiia he miro kotahi; tāpirihia te aratau "StrictThreaded".
  • "Std.is" kua whakakorehia mo te "Std.isOfType".
  • Kua taapirihia he whakatupato i te wa e whakamahi ana i nga taurangi rohe kaore he uara i roto i nga katinga.
  • js: "Kaore i tuhia __js__(waehere, args)" kua whakakorehia, ka whakakapihia e "js.Syntax.code(waehere, args)".
  • php/neko: "neko.Web" me "php.Web" kua whakakorehia, ka nukuhia ki te whare pukapuka "hx4compat" i muri mai.

I te tukunga e whai ake nei kua whakamaheretia:

  • Ko nga whakapainga a te kaiwhakahaere kete haxelib.
  • API pūnaha tukutahi libuv.
  • Coroutines.
  • Te whakapuaki i nga mahi static modular me nga taurangi me te kore e hanga karaehe (kei te waatea i roto i nga hanga po).

Source: opennet.ru

Tāpiri i te kōrero