Nim 1.2.0 منتشر شد

نسخه جدید زبان برنامه نویسی سیستم نیم منتشر شد. ناسازگاری جزئی با نسخه 1.0 دارد، به عنوان مثال به دلیل تبدیل نوع سختگیرانه تر. اما در این مورد یک flag -useVersion:1.0 وجود دارد.

نوآوری اصلی یک جمع آوری زباله جدید است که توسط گزینه -gc:arc فعال شده است. نویسنده زبان، آندریاس رامپ، قصد دارد مقاله مفصلی در مورد مزایای ARC بنویسد، اما در حال حاضر شما را به خواندن دعوت می کند. با عملکرد خود در FOSDEM، که نتایج معیار را نشان می دهد.

  • کامپایلر اکنون از گزینه --asm برای بررسی راحت تر کد اسمبلی تولید شده پشتیبانی می کند.
  • align pragma را می توان روی متغیرها و فیلدهای شی استفاده کرد، این شبیه به alignas در C/C++ است.
  • عملگر =sink اکنون اختیاری است. کامپایلر اکنون می تواند از ترکیب =destroy و copyMem برای جابجایی کارآمد اشیا در اطراف استفاده کند.
  • تبدیل به اعداد صحیح بدون علامت در زمان اجرا بررسی نمی شود. جزئیات در https://github.com/nim-lang/RFCs/issues/175
  • نحو جدید برای lvalue: var b {.byaddr.} = expr، متصل از طریق import std/decls
  • کامپایلر از یک سوییچ جدید -panics:on پشتیبانی می کند که خطاهای زمان اجرا مانند IndexError یا OverflowError را به خطاهای مهلکی تبدیل می کند که از طریق try قابل تشخیص نیستند. این می تواند کارایی زمان اجرا و اندازه برنامه را بهبود بخشد.
  • کد JS تولید شده فقط از فاصله ها به جای ترکیبی از فضاها و تب ها استفاده می کند.
  • کامپایلر پشتیبانی از pragma .localPassc را اضافه کرده است، که می تواند برای مدیریت گزینه های C(++) ویژه یک فایل C(++) که از ماژول Nim فعلی تولید می شود، استفاده شود.
  • Nimpretty دیگر استدلال منفی برای تنظیم تورفتگی نمی پذیرد، زیرا این کار باعث شکستن فایل ها می شد.
  • ماکروهای جدید اضافه شده اند (جمع آوری، دوپ کردن، ضبط)، که از طریق شکر وارداتی متصل می شوند.

علاوه بر این، تغییرات زیادی به کتابخانه استاندارد اضافه شده است و بسیاری از اشکالات رفع شده است.

منبع: linux.org.ru

اضافه کردن نظر