Nim 1.2.0 թողարկում

Թողարկվել է Nim համակարգի ծրագրավորման լեզվի նոր տարբերակը։ Այն ունի մասնակի անհամատեղելիություն 1.0 տարբերակի հետ, օրինակ՝ ավելի խիստ տեսակի փոխակերպման պատճառով: Բայց այս դեպքում կա դրոշ -useVersion:1.0:

Հիմնական նորամուծությունը նոր աղբահավաք է, որը միացված է -gc:arc տարբերակով: Լեզվի հեղինակ Անդրեաս Ռամպֆը պատրաստվում է մանրամասն հոդված գրել ARC-ի առավելությունների մասին, սակայն առայժմ հրավիրում է կարդալ. FOSDEM-ում իր ելույթով, որը ցույց է տալիս հենանիշի արդյունքները:

  • Կոմպիլյատորն այժմ աջակցում է --asm տարբերակը արտադրված հավաքման կոդի ավելի հարմար փորձաքննության համար:
  • Align pragma-ն կարող է օգտագործվել օբյեկտի փոփոխականների և դաշտերի վրա, սա նման է C/C++-ի հավասարեցմանը:
  • =sink օպերատորն այժմ ընտրովի է: Կազմողն այժմ կարող է օգտագործել =destroy-ի և copyMem-ի համակցությունը՝ օբյեկտներն արդյունավետ տեղափոխելու համար:
  • Փոխակերպումները անստորագիր ամբողջ թվերի չեն ստուգվում գործարկման ժամանակ: Մանրամասները՝ մեջ https://github.com/nim-lang/RFCs/issues/175
  • Նոր շարահյուսություն lvalue-ի համար՝ var b {.byaddr.} = expr, միացված է ներմուծման std/decls-ի միջոցով
  • Կազմողն աջակցում է նոր switch-panics:on, որը գործարկման ժամանակի սխալները, ինչպիսիք են IndexError-ը կամ OverflowError-ը, վերածում է ճակատագրական սխալների, որոնք հնարավոր չէ հայտնաբերել փորձի միջոցով: Սա կարող է բարելավել գործարկման ժամանակի արդյունավետությունը և ծրագրի չափը:
  • Ստեղծված JS կոդը օգտագործում է միայն բացատներ՝ բացատների և ներդիրների խառնաշփոթի փոխարեն:
  • Կազմողն ավելացրել է աջակցություն .localPassc պրագմայի համար, որը կարող է օգտագործվել ընթացիկ Nim մոդուլից ստեղծվող C(++) ֆայլի հատուկ C(++) backend տարբերակները մշակելու համար:
  • Nimpretty-ն այլևս չի ընդունում նահանջ սահմանելու բացասական փաստարկը, քանի որ սա ֆայլերի խախտում էր:
  • Ավելացվել են նոր մակրոներ (հավաքել, հանել, գրավել)՝ միացված շաքարավազի ներմուծման միջոցով։

Բացի այդ, բազմաթիվ փոփոխություններ են ավելացվել ստանդարտ գրադարանում և բազմաթիվ սխալների շտկումներ:

Source: linux.org.ru

Добавить комментарий