انتشار Nim 0.20 را می توان به عنوان یک نامزد انتشار برای اولین نسخه پایدار 1.0 مشاهده کرد، از جمله چندین تغییر سازگار با شکستن لازم برای تشکیل اولین شاخه پایدار که وضعیت زبان را متعهد می شود. نسخه 1.0 به عنوان یک نسخه پشتیبانی پایدار و طولانی مدت تبلیغ می شود که تضمین می شود سازگاری با عقب را در بخش تثبیت شده زبان حفظ کند. به طور جداگانه، یک حالت آزمایشی نیز در کامپایلر موجود خواهد بود که در آن ویژگیهای جدیدی که ممکن است سازگاری با عقب را از بین ببرند، توسعه خواهند یافت.
از تغییرات ارائه شده در Nim 0.20، می توان به موارد زیر اشاره کرد:
- "نه" اکنون همیشه یک عملگر یکنواخت است، یعنی. عباراتی مانند "اظهار (نه a)" اکنون نامعتبر هستند و فقط "اظهار نه a" مجاز است.
- بررسی های سخت برای تبدیل اعداد صحیح و اعداد واقعی در زمان کامپایل فعال هستند، به عنوان مثال. عبارت "const b = uint16(-1)" اکنون منجر به خطا می شود، زیرا -1 را نمی توان به یک نوع عدد صحیح بدون علامت تبدیل کرد.
- باز کردن تاپل ها برای ثابت ها و متغیرهای حلقه ارائه شده است.
به عنوان مثال، تکالیفی مانند 'const (d, e) = (7, "eight")' و "for (x, y) در f" اکنون می توانند استفاده شوند. - مقداردهی اولیه پیش فرض هش ها و جداول ارائه شده است. به عنوان مثال، پس از اعلام "var s: HashSet[int]"، می توانید بلافاصله "s.incl(5)" را اجرا کنید، که قبلاً منجر به خطا می شد.
- بهبود محتوای اطلاعاتی خطاها برای مشکلات مربوط به عملگر "مورد" و فهرست آرایه خارج از محدوده.
- تغییر طول جدول در طول تکرار ممنوع است.
منبع: opennet.ru