Hoʻokuʻu ʻia ka ʻōlelo papahana Haxe 4.1

Loaʻa hoʻokuʻu mea hana Haxe 4.1, e pili ana i ka ʻōlelo hoʻolālā kiʻekiʻe-paradigm o ka inoa like me ka paʻi paʻa, kahi cross-compiler a me kahi waihona maʻamau o nā hana. Kākoʻo ka papahana i ka unuhi ʻana iā C++, HashLink/C, JavaScript, C#, Java, PHP, Python a me Lua, a me ka hoʻohui pū ʻana iā JVM, HashLink/JIT, Flash a me Neko bytecode, me ka loaʻa ʻana o nā mana maoli o kēlā me kēia kahua paʻa. Code mea hōʻuluʻulu mahele ʻia e ma lalo o ka laikini GPLv2, a me ka waihona maʻamau a me nā mīkini virtual i kūkulu ʻia no Haxe HashLink и neko ma lalo o ka laikini MIT.

ʻO ka ʻōlelo manaʻo ʻōlelo me ka paʻi ʻana ikaika. Kākoʻo ʻia nā ʻenehana hoʻonohonoho hoʻonohonoho kikoʻī, generic a me ka hana. Kokoke ʻo Haxe syntax i ECMAScript a hoʻonui ʻO kona mau hiʻohiʻona e like me ka paʻi paʻa, autotype inference, pattern matching, generics, iterator-based for loops, AST macros, GADT (Generalized Algebraic Data Types), abstract types, anonymous structures, simplified array definitions, conditional compilation expressions, attaching metadata to fields. , nā papa a me nā ʻōlelo, ka hoʻopili string (“'ʻO koʻu inoa ʻo $name'"), ʻano ʻano ʻāpana ('nui hou ("foo")') a nui hou aku.

papa hoao {
hana paʻa () {
kanaka hope = [
"Elizabeth" => "Hoʻolālā",
"Joel" => "Hoʻolālā"
];

no (inoa => hana i loko o kanaka) {
trace('$inoa ke hana i $hana no ke ola!');
}
}
}

Nā hiʻohiʻona hou i ka mana 4.1:

  • Hoʻohui ʻia ka hoʻonui ʻana i ka huelo.
  • Hoʻohui i kahi API hui hou no ka mālama ʻokoʻa.
  • Ua ʻae ʻia ke kūkulu "hoʻāʻo {} hopu (e) {}" ma ke ʻano he pōkole no "hoʻāʻo {} hopu (e: haxe.Exception) {}".
  • Hoʻohui i ke kākoʻo SSL i ka unuhi ʻōlelo eval.
  • ʻAʻole i manaʻo hou ʻia ka JVM i manaʻo ʻia he hoʻokolohua.
  • No ka Language Server Protocol, kākoʻo ʻia nā hana "Goto Implementation" a me "Find references".
  • Hoʻomaikaʻi ʻia ka inoa ʻana o nā mea hoʻololi kūloko kūloko i ka code i hana ʻia. Wehe ʻia ka "hoʻi;" i nā hana pua me ka waiwai ʻole.
  • Ua ʻae ʻia nā hui pū ʻana (loaʻa, paʻamau) ma nā kahua (getter wale nō, ʻano hana paʻamau).
  • E ʻae i ka hoʻonui a me ka hoʻemi ʻana i nā mea hana no nā kahua ʻano abstract.
  • Hoʻomaikaʻi i ka hoʻopili ʻana o nā puka lou me ka hoʻohana ʻana i ka inoa inoa ʻole.
  • js: Hoʻonui i ka hoʻokō StringMap no ES5.
  • js: Ua hoʻohui ʻia ka hana ʻana o nā mea hoʻololi let i ke koho compiler "-D js-es=6", ua hoʻomaikaʻi ʻia ka hanauna o nā papa ES6.
  • lua: "StringIterator", hoʻomaikaʻi ʻia ka hoʻoponopono hewa.
  • php: Hoʻopili ʻia "Std.isOfType" no nā ʻano kumu.
  • php: Hoʻokomo ʻia nā papa hana i kēia manawa i nā pilina maoli "Iterator", "IteratorAggregate", "Countable".
  • cs: Hoʻohui metadata "@:assemblyMeta" a me "@:assemblyStrict".
  • python: hoʻohui i ka hoʻokō o "__contains__" i nā mea inoa ʻole
    a me "__getitem__", hiki iā lākou ke hoʻohana ʻia ma ke ʻano he puke wehewehe ʻōlelo ma ke code i hana ʻia.

  • jvm: Ua hoʻomaikaʻi maikaʻi ʻia ka hana ma muli o kahi ala hou o ke komo ʻana i nā hana i paʻi ʻia a me ka hana ʻana i nā mea hoʻopili hou i nā hihia i hoʻohana ʻia nā mea ma ke ʻano he hale inoa ʻole (ua pale ʻia ka nānā ʻana i ka waiwai):
    Hoʻokuʻu ʻia ka ʻōlelo papahana Haxe 4.1

Nā hoʻomaikaʻi i ka waihona maʻamau:

  • Hoʻohui ʻia ka hana "Array.contains".
  • Hoʻohui ʻia ʻo "Array.keyValueIterator", nāna e hoʻokō i ka ʻike waiwai kī no nā arrays ("no (key => value in array)").
  • Hoʻohui ʻia ke ʻano "haxe.Constraints.NotVoid".
  • Ua hoʻohui ʻia nā hana "findIndex" a me "foldi" i ka papa "Lambda".
  • Hoʻokomo ʻia ka "ʻokoʻa hui" (ke kiʻi ma o "arr[i]") a me ka ʻike waiwai kī no "haxe.ds.HashMap".
  • jvm: Hoʻokō ʻia nā mana JVM-specific o "StringMap", "sys.thread.Lock", "sys.thread.Thread".
  • java/jvm: Hoʻohana ʻia nā hoʻokō ʻōiwi o "MD5", "SHA-1" a me "SHA-256" no nā modula "haxe.crypto".
  • macro: Hoʻohui ʻia "haxe.macro.Context.containsDisplayPosition(pos)".
  • nullsafety: Ua mālama ʻia ke ʻano "Strict" ma ke ʻano he kaula hoʻokahi; hoʻohui ʻia ke ʻano "StrictThreaded".
  • Ua hoʻopau ʻia ʻo "Std.is" no ka "Std.isOfType".
  • Hoʻohui ʻia kahi ʻōlelo aʻo i ka wā e hoʻohana ai i nā loli kūloko me ka ʻole o nā waiwai i nā pani.
  • js: "ʻaʻole i kākau ʻia __js__(code, args)" ua hoʻopau ʻia, pani ʻia e "js.Syntax.code(code, args)".
  • php/neko: "neko.Web" a me "php.Web" ua hoʻopau ʻia a e hoʻoneʻe ʻia i ka waihona "hx4compat" ma hope.

I ka hoʻokuʻu hou ʻana ua hoʻolālā ʻia:

  • Nā hoʻomaikaʻi ʻana o ka luna pūʻolo haxelib.
  • API no ka ʻōnaehana Asynchronous libuv.
  • Coroutines.
  • Ke hoʻolaha nei i nā hana static modular a me nā ʻano like ʻole me ka hana ʻole ʻana i nā papa (ua loaʻa i nā hale kūkulu pō).

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka