Nim ծրագրավորման լեզվի թողարկում 1.4.0

Թողարկվել է Nim համակարգի ծրագրավորման լեզվի նոր տարբերակը, որն այս սեպտեմբերին լրացավ իր մեկ տարին։ առաջին կայուն տարբերակը. Լեզուն շարահյուսությամբ նման է Python-ին, իսկ կատարողականով գրեթե նման է C++-ին։ Համաձայն FAQ Լեզուն մեծապես փոխառվում է (ըստ ներդրման կարգի)՝ Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon:


Աշխատում է ամենուր՝ շնորհիվ C/C++/Objective-C/JS կոմպիլյացիայի հնարավորության: Այն աջակցում է մակրոներ, OOP, գեներատորներ, բացառություններ, տաք կոդերի փոխանակում և շատ ավելին: Լիցենզիա՝ MIT.

Ամենաէական փոփոխությունները.

  • Գոյություն ունի նոր ORC աղբահան, որն օգտագործում է ARC-ի ալգորիթմը, բայց միևնույն ժամանակ շրջանաձև հղումներ է վարում հատուկ ձևով: Միացված է -gc:orc տարբերակով: ARC/ORC տարբերությունների մասին հիանալի հոդված կա.

  • Ավելացվել է ֆունկցիաների խիստ սահմանումների ռեժիմ, որը հնարավորություն է տալիս լրացուցիչ ստուգել օբյեկտների փոփոխականությունը: Ակտիվացված է պրագմայի {.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 - r ազատվել վերակազմավորումից, երբ աղբյուրները չեն փոխվել։ Օրինակ:

nim r compiler/nim.nim --help # կազմվել է առաջին անգամ
echo 'ներմուծում os; echo getCurrentCompilerExe()' | nim r - # սա նույնպես աշխատում է
nim r կոմպիլյատոր/nim.nim --fullhelp # առանց վերակոմպիլյացիայի
nim r —nimcache:/tmp main # երկուական պահպանված /tmp/main-ում

  • Ավելացվեց նոր հուշում -hint:msgOrigin, որը ցույց կտա, թե որտեղ է կոմպիլյատորը ստեղծել սխալ/նախազգուշական հաղորդագրություններ: Սա օգնում է, երբ պարզ չէ, թե որտեղից է եկել հաղորդագրությունը:

  • Ավելացվեց դրոշ —backend:js|c|cpp|objc (կամ -b:js և այլն)` հետնամասը փոխելու համար:

  • Ավելացվեց --usenimcache դրոշը nimcache-ում երկուականներ դուրս բերելու համար:

  • Բանալիները հեռացված են՝ --oldNewlines, --laxStrings, --oldast, --oldgensym

  • Այժմ nimsuggest կոմունալը ցույց է տալիս ոչ միայն նախնական հայտարարագիրը, այլ նաև def հարցումի իրականացման վայրը:

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

Source: linux.org.ru