پروگرامنگ لینگویج Haxe 4.1 کی ریلیز

دستیاب ٹول کٹ کی رہائی ہیکس 4.1جس میں مضبوط ٹائپنگ، ایک کراس کمپائلر اور فنکشنز کی ایک معیاری لائبریری کے ساتھ اسی نام کی ملٹی پیراڈائم ہائی لیول پروگرامنگ لینگویج شامل ہے۔ یہ پروجیکٹ C++، HashLink/C، JavaScript، C#، Java، PHP، Python اور Lua میں ترجمہ کے ساتھ ساتھ JVM، HashLink/JIT، Flash اور Neko bytecode کی تالیف، ہر ٹارگٹ پلیٹ فارم کی مقامی صلاحیتوں تک رسائی کے ساتھ تعاون کرتا ہے۔ کمپائلر کوڈ نے بانٹا GPLv2 لائسنس کے تحت، اور Haxe کے لیے تیار کردہ معیاری لائبریری اور ورچوئل مشینیں۔ ہیش لنک и نیکو MIT لائسنس کے تحت.

زبان ہے۔ اظہار پر مبنی مضبوط ٹائپنگ کے ساتھ۔ آبجیکٹ پر مبنی، عام اور فنکشنل پروگرامنگ تکنیکوں کی حمایت کی جاتی ہے۔ ہیکس نحو ECMAScript کے قریب ہے اور پھیلتا ہے اس کی خصوصیات جیسے کہ جامد ٹائپنگ، آٹو ٹائپ انفرنس، پیٹرن میچنگ، جنرکس، ایٹریٹر پر مبنی لوپس، AST میکروز، GADT (عمومی الجبری ڈیٹا ٹائپس)، تجریدی اقسام، گمنام ڈھانچے، آسان صف کی تعریفیں، مشروط تالیف کے تاثرات، فیلڈ میٹا ڈیٹا کو منسلک کرنا۔ , کلاسز اور ایکسپریشنز، سٹرنگ انٹرپولیشن ("'My name is $name'")، ٹائپ پیرامیٹرز ('new Main' ("foo")') اور بہت زیادہ.

کلاس ٹیسٹ {
جامد فنکشن مین () {
حتمی لوگ = [
"الزبتھ" => "پروگرامنگ"،
"جوئل" => "ڈیزائن"
];

(نام => لوگوں میں نوکری) کے لیے
trace('$name کرتا ہے $job for a living!');
}
}
}

ورژن 4.1 میں نئی ​​خصوصیات:

  • شامل کی گئی ٹیل ریکریشن آپٹیمائزیشن۔
  • استثنیٰ سے نمٹنے کے لیے ایک نیا متحد API شامل کیا گیا۔
  • "try {} catch(e) {}" کی تعمیر کو "try {} catch(e: haxe.Exception) {}" کے شارٹ ہینڈ کے طور پر استعمال کرنے کی اجازت ہے۔
  • ایول انٹرپریٹر میں SSL سپورٹ شامل کر دی گئی۔
  • ہدف JVM کو اب تجرباتی نہیں سمجھا جاتا ہے۔
  • لینگویج سرور پروٹوکول کے لیے، "Goto Implementation" اور "Find References" فنکشنز کے لیے سپورٹ شامل کر دی گئی ہے۔
  • جنریٹڈ کوڈ میں عارضی مقامی متغیرات کے ناموں کو بہتر بنایا گیا ہے۔ فالتو "واپسی؛" کو ہٹا دیا گیا واپسی کی قدر کے بغیر تیر کے فنکشنز میں۔
  • رسائی کے مجموعے (گیٹ، ڈیفالٹ) کو فیلڈز پر اجازت ہے (صرف حاصل کرنے والا، پہلے سے طے شدہ اسائنمنٹ رویہ)۔
  • فیلڈز کے لیے انکریمنٹ اور ڈیکرمنٹ آپریٹرز کو اجازت دیں۔ خلاصہ اقسام.
  • گمنام تکرار کنندگان کا استعمال کرتے ہوئے لوپس کے لیے بہتر ان لائننگ۔
  • js: ES5 کے لیے بہتر StringMap نفاذ۔
  • js: کمپائلر آپشن "-D js-es=6" میں let variables کی جنریشن شامل کر دی گئی ہے، ES6 کلاسز کی جنریشن کو بہتر بنایا گیا ہے۔
  • lua: "StringIterator" کو بہتر بنایا گیا، غلطی سے نمٹنے میں بہتری آئی۔
  • php: بنیادی اقسام کے لیے آپٹمائزڈ "Std.isOfType"۔
  • php: تیار کردہ صفیں اب مقامی انٹرفیس "Iterator"، "IteratorAggregate"، "Countable" کو نافذ کرتی ہیں۔
  • cs: میٹا ڈیٹا "@:assemblyMeta" اور "@:assemblyStrict" شامل کیا گیا۔
  • python: گمنام اشیاء پر "__contains__" کا نفاذ شامل کیا گیا۔
    اور "__getitem__"، جو انہیں تیار کردہ کوڈ میں لغات کے طور پر استعمال کرنے کی اجازت دیتا ہے۔

  • jvm: نمایاں طور پر بہتر کارکردگی کا شکریہ ٹائپ کردہ فنکشنز تک رسائی حاصل کرنے اور اضافی انٹرفیس بنانے کے نئے طریقے کی بدولت ان صورتوں میں جہاں اشیاء کو گمنام ڈھانچے کے طور پر استعمال کیا جاتا ہے (متحرک پراپرٹی کی تلاش کو روکا جاتا ہے):
    پروگرامنگ لینگویج Haxe 4.1 کی ریلیز

معیاری لائبریری میں بہتری:

  • "Array.contains" فنکشن شامل کر دیا گیا۔
  • شامل کیا گیا "Array.keyValueIterator"، جو arrays کے لیے کلیدی قدر کی تکرار کو لاگو کرتا ہے ("for (key => قدر میں array)")۔
  • رکاوٹ کی قسم "haxe. Constraints.NotVoid" شامل کی گئی۔
  • "فائنڈ انڈیکس" اور "فولڈی" فنکشنز کو "لیمبڈا" کلاس میں شامل کیا گیا ہے۔
  • "arr[i]" کے ذریعے رسائی اور "haxe.ds.HashMap" کے لیے کلیدی قدر کی تکرار کو لاگو کیا گیا۔
  • jvm: "StringMap"، "sys.thread.Lock"، "sys.thread.Thread" کے JVM-مخصوص ورژن نافذ کیے گئے۔
  • java/jvm: "haxe.crypto" ماڈیولز کے لیے "MD5"، "SHA-1" اور "SHA-256" کے مقامی نفاذ کا استعمال کیا گیا۔
  • میکرو: شامل کیا گیا "haxe.macro.Context.containsDisplayPosition(pos)"۔
  • nullsafety: "سخت" موڈ کو اب سنگل تھریڈڈ سمجھا جاتا ہے۔ "StrictThreaded" موڈ شامل کیا گیا۔
  • "Std.is" کو "Std.isOfType" کے حق میں فرسودہ کر دیا گیا ہے۔
  • بندش میں قدروں کے بغیر مقامی متغیرات کا استعمال کرتے وقت ایک انتباہ شامل کیا گیا۔
  • js: "غیر ٹائپ شدہ __js__(code, args)" فرسودہ ہے، اس کی جگہ "js.Syntax.code(code، args)" ہے۔
  • php/neko: "neko.Web" اور "php.Web" کو فرسودہ کر دیا گیا ہے اور بعد میں "hx4compat" لائبریری میں منتقل کر دیا جائے گا۔

اگلی ریلیز میں منصوبہ بندی کر رہے ہیں:

  • پیکیج مینیجر میں بہتری ہیکسلیب.
  • اسینکرونس سسٹم API پر مبنی libuv.
  • کوروٹینز۔
  • کلاسز بنائے بغیر ماڈیولر سٹیٹک فنکشنز اور متغیرات کا اعلان کرنا (پہلے سے ہی رات کی تعمیر میں دستیاب ہے)۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں