Sakin harshen shirye-shirye Haxe 4.1

Akwai sakin kayan aiki Haxe 4.1, wanda ya haɗa da Multi-paradigm high-level programming languages ​​na suna iri ɗaya tare da bugu mai ƙarfi, mai haɗawa da madaidaicin ɗakin karatu na ayyuka. Aikin yana goyan bayan fassarar zuwa C++, HashLink/C, JavaScript, C#, Java, PHP, Python da Lua, da kuma haɗawa zuwa JVM, HashLink/JIT, Flash da Neko bytecode, tare da samun damar yin amfani da damar ɗan ƙasa na kowane dandamali na manufa. Lambar tarawa rarraba ta ƙarƙashin lasisin GPLv2, da daidaitaccen ɗakin karatu da injunan kama-da-wane da aka haɓaka don Haxe HashLink и Neko karkashin lasisin MIT.

Harshe shine magana-daidaitacce tare da bugu mai ƙarfi. Dabarun shirye-shirye masu dacewa da abu, gamayya da ayyuka suna tallafawa. Haxe syntax yana kusa da ECMAScript kuma yana faɗaɗa fasalullukan sa kamar bugu na tsaye, inference autotype, matching juna, Generics, tushen tushen don madaukai, AST macros, GADT (Nau'in Bayanan Algebraic Gabaɗaya), nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan bayanan algebraic ne, ma'anar ma'anar tsararru waɗanda aka sauƙaƙe, maganganun haɗaɗɗiyar yanayi, haɗa metadata zuwa filayen. , azuzuwan da kalamai, kirtani interpolation ("'Sunana $name'"), rubuta sigogi ('sabuwar Main("foo")'), da kuma fiye da haka.

Gwajin aji {
babban aiki a tsaye() {
mutane na ƙarshe = [
"Elizabeth" => "Shirye-shiryen",
"Joel" => "tsara"
];

don (suna => aiki a cikin mutane) {
gano('$ sunan yana yin $ aiki don rayuwa!');
}
}
}

Sabbin fasali a cikin sigar 4.1:

  • An ƙara haɓaka maimaitawar wutsiya.
  • An ƙara sabon API ɗin haɗe-haɗe don keɓanta kulawa.
  • An ba da izinin gina "gwada {} kama (e) {}" a matsayin gajeriyar hannu don "gwada {} kama (e: haxe.Exception) {}".
  • Ƙara goyon bayan SSL ga mai fassarar eval.
  • JVM manufa ba a ɗauka a matsayin gwaji.
  • Don Ƙa'idar Sabar Harshe, an ƙara goyan bayan ayyukan "Goto Implementation" da "Nemo nassoshi" ayyuka.
  • Ingantacciyar suna na masu canjin gida na wucin gadi a cikin lambar da aka samar. An cire m "dawo;" a cikin ayyukan kibiya ba tare da ƙimar dawowa ba.
  • Ana ba da izinin haɗin shiga (samu, tsoho) akan filayen (getter kawai, dabi'un aikin tsoho).
  • Bada izinin haɓakawa da rage masu aiki don filayen Abstract iri.
  • Ingantattun madogaran madaukai ta amfani da na'urorin da ba a san su ba.
  • js: Ingantaccen aiwatar da StringMap don ES5.
  • js: An ƙara ƙarni na masu canji zuwa zaɓin mai tarawa "-D js-es=6", an inganta ƙarni na azuzuwan ES6.
  • lua: "StringIterator" ingantacce, an inganta sarrafa kuskure.
  • php: Ingantaccen "Std.isOfType" don nau'ikan tushe.
  • php: Ƙirƙirar tsararraki yanzu suna aiwatar da musaya na asali "Iterator", "IteratorAggregate", "Kidaya".
  • cs: Ƙara metadata "@: assemblyMeta" da "@: majalisaStrict".
  • Python: ƙara aiwatar da "__contains__" zuwa abubuwan da ba a san su ba
    da "__getitem__", wanda ke ba su damar amfani da su azaman ƙamus a cikin lambar da aka ƙirƙira.

  • jvm: Ingantacciyar ingantacciyar aikin godiya ga sabuwar hanyar samun damar ayyukan da aka buga da kuma samar da ƙarin mu'amala a lokuta inda ake amfani da abubuwa azaman tsarin da ba a san su ba (an hana bincikar dukiya):
    Sakin harshen shirye-shirye Haxe 4.1

Haɓakawa a daidaitaccen ɗakin karatu:

  • Ƙara aikin "Array.contains".
  • An ƙara "Array.keyValueIterator", wanda ke aiwatar da ƙimar maɓalli don tsararru ("don (maɓalli => ƙima a cikin tsararru)").
  • Ƙara nau'in ƙuntatawa "haxe.Constraints.NotVoid".
  • Ayyukan "findIndex" da "foldi" an ƙara su zuwa ajin "Lambda".
  • Aiwatar da "hanzar da tsararru" (shirin shiga ta hanyar "arr[i]") da maɓalli-daraja don "haxe.ds.HashMap".
  • jvm: An aiwatar da takamaiman nau'ikan JVM na "StringMap", "sys.thread.Lock", "sys.thread.Thread".
  • java/jvm: An yi amfani da aiwatarwa na asali na "MD5", "SHA-1" da "SHA-256" don samfuran "haxe.crypto".
  • macro: Ƙara "haxe.macro.Context.containsDisplayPosition(pos)".
  • nullsafety: Yanayin "Tsarin" yanzu ana ɗaukarsa azaman zaren zare ɗaya; an ƙara yanayin "StrictThreaded".
  • "Std.is" an soke shi a matsayin "Std.isOfType".
  • Ƙara gargadi lokacin amfani da masu canji na gida ba tare da ƙima ba a cikin rufewa.
  • js: "wanda ba a buga __js__(code, args)" an soke shi, an maye gurbinsa da "js.Syntax.code(code, args)".
  • php/neko: "neko.Web" da "php.Web" an soke su kuma za a tura su zuwa ɗakin karatu na "hx4compat" daga baya.

A cikin sakin gaba an shirya:

  • Inganta mai sarrafa fakiti haxelib.
  • API ɗin tushen tsarin Asynchronous libuv.
  • Coroutines.
  • Bayyana ayyuka a tsaye da masu canji ba tare da ƙirƙirar azuzuwan ba (an riga an samu a ginin dare).

source: budenet.ru

Add a comment