نم 1.4.0 پروگرامنگ زبان کی ریلیز

نم سسٹم پروگرامنگ لینگویج کا ایک نیا ورژن جاری کیا گیا ہے، جس نے اس ستمبر میں اپنی ایک سال کی سالگرہ منائی۔ پہلا مستحکم ورژن. زبان نحو میں Python سے ملتی جلتی ہے، اور کارکردگی میں تقریباً C++ کی طرح ہے۔ کے مطابق اکثر پوچھے جانے والے سوالات زبان اس سے بہت زیادہ مستعار لیتی ہے (شراکت کی ترتیب میں): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.


C/C++/Objective-C/JS میں مرتب کرنے کی صلاحیت کی بدولت ہر جگہ کام کرتا ہے۔ یہ سپورٹ کرتا ہے۔ میکرو, او او پی, عام, استثناء, گرم کوڈ کا تبادلہ اور بہت کچھ. لائسنس: ایم آئی ٹی۔

سب سے اہم تبدیلیاں:

  • ایک نیا ORC کوڑا اٹھانے والا ہے جو ARC سے الگورتھم کا استعمال کرتا ہے، لیکن ساتھ ہی سرکلر حوالوں کو ایک خاص طریقے سے ہینڈل کرتا ہے۔ -gc:orc آپشن کے ذریعے فعال کیا گیا۔ ARC/ORC اختلافات کے بارے میں بہت اچھا مضمون ہے.

  • سخت فنکشن کی تعریف کے لیے ایک موڈ شامل کیا گیا ہے، جو آبجیکٹ کی تبدیلی کے لیے ایک اضافی چیک کو قابل بناتا ہے۔ pragma {.experimental: "strictFuncs"} کے ذریعے یا --experimental:strictFuncs کلید کے ذریعے چالو کیا گیا۔

  • from کی ورڈ کو اب آپریٹر کے طور پر استعمال کیا جا سکتا ہے۔

  • شامل کر دیا گیا .noalias pragma. یہ کلیدی لفظ کی کارکردگی کو بڑھانے کے لیے C محدود مطلوبہ الفاظ کا نقشہ بناتا ہے۔

  • مخصوص انتباہات کو اب --warningAsError[X]:on|off کے ذریعے غلطیوں میں تبدیل کیا جا سکتا ہے۔

  • نئی کمانڈ: nim r main.nim [args...]، جو main.nim کو مرتب اور چلاتی ہے، اور اس میں --usenimcache شامل ہے تاکہ نتیجہ $nimcache/main$exeExt میں محفوظ ہو، اسی منطق کا استعمال کرتے ہوئے nim c - جب ذرائع تبدیل نہیں ہوئے ہیں تو دوبارہ مرتب کرنے سے چھٹکارا حاصل کرنا۔ مثال:

nim r compiler/nim.nim --help # پہلی بار مرتب کیا گیا۔
echo 'import OS؛ echo getCurrentCompilerExe()' | nim r - # یہ بھی کام کرتا ہے۔
nim r compiler/nim.nim --fullhelp # دوبارہ مرتب کیے بغیر
nim r —nimcache:/tmp مین # بائنری کو /tmp/main میں محفوظ کیا گیا

  • ایک نیا اشارہ شامل کیا گیا -hint:msgOrigin، جو دکھائے گا کہ کمپائلر نے غلطی/انتباہی پیغامات کہاں پیدا کیے ہیں۔ یہ اس وقت مدد کرتا ہے جب یہ واضح نہ ہو کہ پیغام کہاں سے آیا ہے۔

  • بیک اینڈ کو تبدیل کرنے کے لیے جھنڈا شامل کیا گیا —backend:js|c|cpp|objc (یا -b:js، وغیرہ)۔

  • nimcache میں آؤٹ پٹ بائنریز میں --usenimcache پرچم شامل کیا گیا۔

  • ہٹائی گئی کلیدیں: --oldNewlines، --laxStrings، --oldast، --oldgensym

  • nimsuggest یوٹیلیٹی اب نہ صرف پری ڈیکلریشن دکھاتی ہے بلکہ ڈیف درخواست کے لیے عمل درآمد کی جگہ بھی دکھاتی ہے۔

اس کے علاوہ، معیاری لائبریری میں بہت سی تبدیلیاں شامل کی گئی ہیں اور بہت سے بگ فکس کیے گئے ہیں۔

ماخذ: linux.org.ru