Derxistina zimanê bernamesaziyê Haxe 4.1

Berdeste serbestberdana toolkit Haxe 4.1, ku zimanê bernamesaziya pir-paradîgmaya asta bilind a bi heman navî bi tîpên xurt, hevberhevkerek û pirtûkxaneyek standard a fonksiyonan vedihewîne. Proje wergera C++, HashLink/C, JavaScript, C#, Java, PHP, Python û Lua, û hem jî berhevkirina JVM, HashLink/JIT, Flash û Neko bytecode piştgirî dike, bi gihîştina kapasîteyên xwemalî yên her platforma armancê. Koda berhevkar belav kirin ji hêla di bin lîsansa GPLv2 de, û pirtûkxaneya standard û makîneyên virtual ku ji bo Haxe hatine pêşve xistin HashLink и neko di bin lîsansa MIT.

Ziman e îfade-oriented bi tîpên xurt. Teknolojiyên bernamesaziya objekt-oriented, gelemperî û fonksiyonel têne piştgirî kirin. Hevoksaziya Haxe nêzîkî ECMAScript û berfireh dike taybetmendiyên wê yên wekî tîpkirina statîk, înfaza ototîp, hevberdana nimûne, generîk, îterator-based lûpkan, makroyên AST, GADT (Cûreyên Daneyên Cebrî yên Giştî), celebên razber, strukturên nenas, pênaseyên rêzê yên hêsan, vegotinên berhevkirina şertî, girêdana metadata bi qadan , çîn û biwêjan, navberkirina rêzan ("Navê min $name ye"), parametreyên binivîsin ('New Sereke ("foo")') û gelek zêdetir.

testa dersê {
fonksiyona statîk sereke() {
final people = [
"Elizabeth" => "Bernamekirin",
"Joel" => "Design"
];

ji bo (nav => kar di mirovan de) {
trace('$name ji bo debara xwe $kar dike!');
}
}
}

Нововведения версии 4.1:

  • Добавлена оптимизация хвостовой рекурсии.
  • API-yek yekbûyî ya nû ji bo karanîna îstîsnayan zêde kir.
  • Çêkirina "biceribîne {} catch(e) {}" wek kurtenivîsa "ceribandine {} catch(e: haxe.Exception) {} destûr dide.
  • Piştgiriya SSL li wergêra eval zêde kir.
  • Armanc JVM êdî ceribandinek nayê hesibandin.
  • Ji bo Protokola Pêşkêşkara Ziman, piştgirî ji bo fonksiyonên "Pêkanîna Goto" û "Referansê Bibîne" hate zêdekirin.
  • Di koda hatî çêkirin de navên guhêrbarên herêmî yên demkî çêtir kirin. "vegera" zêde hate rakirin; di fonksiyonên tîrê de bêyî nirxek vegerê.
  • Kombînasyona gihîştinê (bidestxistin, xwerû) li ser qadan têne destûr kirin (tenê wergir, tevgera peywira xwerû).
  • Destûrê bide operatorên zêdekirin û kêmkirinê ji bo zeviyan cureyên razber.
  • Bi karanîna îteratorên nenas ve xêzkirina pêlavên pêşkeftî.
  • js: Ji bo ES5 pêkanîna StringMap-ê çêtir kirin.
  • js: В опцию компилятора «-D js-es=6» добавлена генерация let переменных, улучшена генерация ES6 классов.
  • lua: "StringIterator" xweşbîn kirin, guheztina xeletiyê baştir kirin.
  • php: Ji bo celebên bingehîn "Std.isOfType" çêtirîn.
  • php: Rêzikên çêkirî naha navberên xwemalî "Iterator", "IteratorAggregate", "Countable" pêk tînin.
  • cs: Metadata "@:assemblyMeta" û "@:assemblyStrict" zêde kir.
  • python: pêkanîna "__contains__" li tiştên nenas zêde kir
    û "__getitem__", ku destûrê dide wan ku di koda hatî çêkirin de wekî ferheng werin bikar anîn.

  • jvm: Bi saya rêgezek nû ya gihîştina fonksiyonên tîpkirî û hilberîna navbeynkariyên zêde di rewşên ku tişt wekî avahiyên nenas têne bikar anîn de performansa berbiçav çêtir bûye (lêgerîna taybetmendiya dînamîkî tê asteng kirin):
    Derxistina zimanê bernamesaziyê Haxe 4.1

Pêşketinên di pirtûkxaneya standard de:

  • Fonksiyona "Array.contains" lê zêde kir.
  • Добавлен «Array.keyValueIterator», реализующий key-value итерацию для массивов («for (key => value in array)»).
  • Tîpa astengiyê "haxe.Constraints.NotVoid" lê zêde kir.
  • Fonksiyonên "findIndex" û "foldi" li çîna "Lambda" hatine zêdekirin.
  • Ji bo "haxe.ds.HashMap" "gihîştina array" (gihîştin bi "arr[i]") û dubarekirina nirx-kilît hate pêkanîn.
  • jvm: Guhertoyên JVM-taybet ên "StringMap", "sys.thread.Lock", "sys.thread.Thread".
  • java/jvm: Ji bo modulên "haxe.crypto" pêkanînên xwemal ên "MD5", "SHA-1" û "SHA-256" bikar anîn.
  • macro: Добавлен «haxe.macro.Context.containsDisplayPosition(pos)».
  • nullsafety: Moda "Strict" niha wekî yek tîrê tê hesibandin; moda "StrictThreaded" zêde kir.
  • "Std.is" di berjewendiya "Std.isOfType" de hate betal kirin.
  • Dema ku guhêrbarên herêmî bêyî nirx di girtinan de bikar tînin hişyariyek lê zêde kirin.
  • js: "__js__(kod, args) nenivîsandî" tê qewirandin, bi "js.Syntax.code(kod, args)" tê guhertin.
  • php/neko: "neko.Web" û "php.Web" hatin betalkirin û paşê dê bên veguhestin pirtûkxaneya "hx4compat".

Di serbestberdana paşîn de têne plankirin:

  • Pêşveçûnên rêveberê pakêtê haxelib.
  • Pergala Asynchronous API-ya bingehîn libuv.
  • Сопрограммы (coroutines).
  • Daxuyankirina fonksiyon û guhêrbarên statîk ên modular bêyî afirandina dersan (jixwe di avahiyên şevê de peyda dibin).

Source: opennet.ru

Add a comment