Нашри забони барномасозии Haxe 4.1

Дастрас нашри асбобҳо Haxe 4.1, ки забони бисёрпарадигмаи сатҳи баланди барномасозии ҳамон номро бо чопкунии қавӣ, компилятори кросс ва китобхонаи стандартии функсияҳоро дар бар мегирад. Лоиҳа тарҷумаро ба C++, HashLink/C, JavaScript, C#, Java, PHP, Python ва Lua, инчунин тартиб додани JVM, HashLink/JIT, Flash ва Neko байткоди бо дастрасӣ ба имкониятҳои аслии ҳар як платформаи мавриди ҳадаф дастгирӣ мекунад. Рамзи компилятор паҳн мекунад дар доираи иҷозатномаи GPLv2 ва китобхонаи стандартӣ ва мошинҳои виртуалӣ, ки барои Haxe таҳия шудаанд HashLink и Неко таҳти иҷозатномаи MIT.

Забон аст ба ифода нигаронида шудааст бо чопкунии сахт. Усулҳои барномасозии ба объект нигаронидашуда, умумӣ ва функсионалӣ дастгирӣ карда мешаванд. Синтаксиси Haxe ба ECMAScript наздик аст ва васеъ мекунад Хусусиятҳои он ба монанди чопкунии статикӣ, хулосаи автоматӣ, мувофиқати намуна, генерикҳо, итератор дар асоси ҳалқаҳо, макросҳои AST, GADT (Намудҳои умумии додаҳои алгебравӣ), навъҳои абстрактӣ, сохторҳои беном, таърифҳои массиви соддакардашуда, ифодаҳои компиляцияи шартӣ, замима кардани метамаълумот ба майдонҳо , синфҳо ва ифодаҳо, интерполясияи сатр («'Номи ман $name'»), навъи параметрҳо ('нави асосӣ ("foo")') ва хеле бештар.

санҷиши синф {
Функсияи статикӣ main() {
одамони ниҳоӣ = [
"Элизабет" => "Барномасозӣ",
"Ҷоэл" => "Тарроҳӣ"
];

барои (ном => кор дар одамон) {
trace('$name $кор барои зиндагӣ мекунад!');
}
}
}

Хусусиятҳои нав дар версияи 4.1:

  • Оптимизатсияи рекурсии думи иловашуда.
  • API-и нави ягона барои коркарди истисно илова карда шуд.
  • Сохтмони "try {} catch(e) {}" ҳамчун стенография барои "try {} catch(e: haxe.Exception) {}" иҷозат дода мешавад.
  • Дастгирии SSL ба тарҷумони арзёбӣ илова карда шуд.
  • JVM-и мақсаднок дигар таҷрибавӣ ҳисобида намешавад.
  • Барои Protocol Server Language, дастгирии функсияҳои "Goto Implementation" ва "Find Resources" илова карда шудааст.
  • Номгузории беҳтаршудаи тағирёбандаҳои маҳаллӣ дар коди тавлидшуда. "Бозгашти" зиёдатӣ хориҷ карда шуд; дар функсияҳои тир бе арзиши бозгашт.
  • Комбинатсияҳои дастрасӣ (гирифтан, пешфарз) дар майдонҳо иҷозат дода мешаванд (танҳо қабулкунанда, рафтори таъиноти пешфарз).
  • Ба операторҳои афзоиш ва камкунӣ барои майдонҳо иҷозат диҳед намудҳои абстрактӣ.
  • Дохилкунии такмилёфтаи ҳалқаҳо бо истифода аз итераторҳои номаълум.
  • js: Татбиқи беҳтаршудаи StringMap барои ES5.
  • js: Ба варианти компилятор "-D js-es=6" тавлиди тағирёбандаҳои литсензия илова карда шуд, тавлиди синфҳои ES6 такмил дода шуд.
  • lua: "StringIterator" оптимизатсияшуда, коркарди хатогиҳо беҳтар карда шуд.
  • php: Optimized "Std.isOfType" барои намудҳои асосӣ.
  • php: Массивҳои тавлидшуда ҳоло интерфейсҳои аслии "Iterator", "IteratorAggregate", "Hesabшаванда" -ро амалӣ мекунанд.
  • cs: Метамаълумотҳои иловашудаи "@:assemblyMeta" ва "@:assemblyStrict".
  • python: татбиқи иловагии "__contains__" ба объектҳои номаълум
    ва "__getitem__", ки ба онҳо имкон медиҳад ҳамчун луғатҳо дар рамзи тавлидшуда истифода бурда мешавад.

  • jvm: Ба туфайли роҳи нави дастрасӣ ба функсияҳои чопшуда ва тавлиди интерфейсҳои иловагӣ дар ҳолатҳое, ки объектҳо ҳамчун сохторҳои номаълум истифода мешаванд (ҷустуҷӯи динамикии моликият пешгирӣ карда мешавад) ба таври назаррас беҳтар карда шуд:
    Нашри забони барномасозии Haxe 4.1

Такмилҳо дар китобхонаи стандартӣ:

  • Функсияи "Array.contains" илова карда шуд.
  • "Array.keyValueIterator" илова карда шуд, ки итератсияи калид-арзишро барои массивҳо амалӣ мекунад ("барои (калиди => арзиши дар массив)").
  • Навъи маҳдудияти иловашуда "haxe.Constraints.NotVoid".
  • Функсияҳои "findIndex" ва "foldi" ба синфи "Lambda" илова карда шудаанд.
  • Татбиқи "дастрасии массив" (дастрасӣ тавассути "arr[i]") ва итератсияи калидӣ барои "haxe.ds.HashMap".
  • jvm: Версияҳои мушаххаси JVM-и "StringMap", "sys.thread.Lock", "sys.thread.Thread" амалӣ карда шуданд.
  • java/jvm: Татбиқи аслии "MD5", "SHA-1" ва "SHA-256" барои модулҳои "haxe.crypto" истифода шудааст.
  • макро: Иловашуда "haxe.macro.Context.containsDisplayPosition(pos)".
  • nullsafety: Ҳолати "қатъӣ" ҳоло ҳамчун риштаи ягона баррасӣ мешавад; режими "StrictThreaded" илова карда шуд.
  • "Std.is" ба фоидаи "Std.isOfType" бекор карда шудааст.
  • Ҳангоми истифодаи тағирёбандаҳои маҳаллӣ бидуни арзишҳо дар бастаҳо огоҳӣ илова карда шуд.
  • js: "ntyped __js__(code, args)" бекор карда шудааст ва бо "js.Syntax.code(code, args)" иваз карда шудааст.
  • php/neko: "neko.Web" ва "php.Web" бекор карда шудаанд ва дертар ба китобхонаи "hx4compat" интиқол дода мешаванд.

Дар нашри оянда ба нақша гирифта шудаанд:

  • Такмилдиҳии мудири баста хахелиб.
  • Системаи асинхронӣ дар асоси API лиув.
  • Корутинҳо.
  • Эълон кардани функсияҳои статикии модулӣ ва тағирёбандаҳо бидуни эҷоди синфҳо (аллакай дар сохтмонҳои шабона дастрасанд).

Манбаъ: opennet.ru

Илова Эзоҳ