నిమ్ 1.4.0 ప్రోగ్రామింగ్ లాంగ్వేజ్ విడుదల

నిమ్ సిస్టమ్ ప్రోగ్రామింగ్ లాంగ్వేజ్ యొక్క కొత్త వెర్షన్ విడుదల చేయబడింది, ఇది ఈ సెప్టెంబర్‌లో దాని ఒక సంవత్సరం వార్షికోత్సవాన్ని జరుపుకుంది. మొదటి స్థిరమైన వెర్షన్. భాష సింటాక్స్‌లో పైథాన్‌తో సమానంగా ఉంటుంది మరియు పనితీరులో దాదాపు C++ లాగా ఉంటుంది. ప్రకారం FAQ మాడ్యులా 3, డెల్ఫీ, అడా, సి++, పైథాన్, లిస్ప్, ఒబెరాన్ (సహకారం క్రమంలో) నుండి భాష భారీగా రుణాలు తీసుకుంటుంది.


C/C++/Objective-C/JSలో కంపైల్ చేయగల సామర్థ్యం కారణంగా ప్రతిచోటా పని చేస్తుంది. ఇది మద్దతు ఇస్తుంది మాక్రోలు, OOP, జెనరిక్స్, మినహాయింపులు, హాట్ కోడ్ స్వాప్ ఇవే కాకండా ఇంకా. లైసెన్స్: MIT.

అత్యంత ముఖ్యమైన మార్పులు:

  • ARC నుండి అల్గారిథమ్‌ని ఉపయోగించే కొత్త ORC చెత్త కలెక్టర్ ఉంది, కానీ అదే సమయంలో వృత్తాకార సూచనలను ప్రత్యేక పద్ధతిలో నిర్వహిస్తుంది. -gc:orc ఎంపిక ద్వారా ప్రారంభించబడింది. ARC/ORC తేడాల గురించి ఒక గొప్ప వ్యాసం ఉంది.

  • కఠినమైన ఫంక్షన్ నిర్వచనాల కోసం ఒక మోడ్ జోడించబడింది, ఇది ఆబ్జెక్ట్ మ్యుటబిలిటీ కోసం అదనపు తనిఖీని అనుమతిస్తుంది. {.ప్రయోగాత్మకం: "స్ట్రిక్ట్‌ఫంక్స్".} ప్రాగ్మా ద్వారా లేదా --ప్రయోగాత్మకం:స్ట్రిక్ట్‌ఫంక్స్ కీ ద్వారా సక్రియం చేయబడింది.

  • కీవర్డ్‌ని ఇప్పుడు ఆపరేటర్‌గా ఉపయోగించవచ్చు.

  • .noalias ప్రాగ్మా జోడించబడింది. కీవర్డ్ అందించగల సామర్థ్యాన్ని పెంచడానికి ఇది C పరిమితి కీవర్డ్‌కి మ్యాప్ చేస్తుంది.

  • నిర్దిష్ట హెచ్చరికలను ఇప్పుడు --warningAsError[X]:on|off ద్వారా లోపాలుగా మార్చవచ్చు.

  • కొత్త కమాండ్: nim r main.nim [args...], ఇది main.nimని కంపైల్ చేస్తుంది మరియు రన్ చేస్తుంది మరియు --usenimcacheని కలిగి ఉంటుంది, తద్వారా ఫలితం $nimcache/main$exeExtలో నిల్వ చేయబడుతుంది, అదే లాజిక్‌ని ఉపయోగించి nim c - మూలాలు మారనప్పుడు పునఃసంకలనం నుండి బయటపడటానికి r. ఉదాహరణ:

nim r కంపైలర్/nim.nim --help # మొదటిసారిగా సంకలనం చేయబడింది
echo 'దిగుమతి OS; echo getCurrentCompilerExe()' | nim r - # ఇది కూడా పని చేస్తుంది
nim r కంపైలర్/nim.nim --fullhelp # రీకంపైలేషన్ లేకుండా
nim r —nimcache:/tmp మెయిన్ # బైనరీ /tmp/mainలో సేవ్ చేయబడింది

  • కొత్త సూచన -hint:msgOrigin జోడించబడింది, ఇది కంపైలర్ ఎక్కడ లోపం/హెచ్చరిక సందేశాలను సృష్టించిందో చూపుతుంది. సందేశం ఎక్కడ నుండి వచ్చిందో స్పష్టంగా లేనప్పుడు ఇది సహాయపడుతుంది.

  • బ్యాకెండ్‌ని మార్చడానికి ఫ్లాగ్ —బ్యాకెండ్:js|c|cpp|objc (లేదా -b:js, మొదలైనవి) జోడించబడింది.

  • బైనరీలను నిమ్‌కాష్‌కి అవుట్‌పుట్ చేయడానికి --usenimcache ఫ్లాగ్ జోడించబడింది.

  • కీలు తీసివేయబడ్డాయి: --oldNewlines, --laxStrings, --oldast, --oldgensym

  • nimsuggest యుటిలిటీ ఇప్పుడు ప్రీ-డిక్లరేషన్‌ను మాత్రమే కాకుండా, డెఫ్ అభ్యర్థన కోసం అమలు స్థానాన్ని కూడా చూపుతుంది.

అదనంగా, ప్రామాణిక లైబ్రరీకి అనేక మార్పులు మరియు అనేక బగ్ పరిష్కారాలు జోడించబడ్డాయి.

మూలం: linux.org.ru