ఐదు సంవత్సరాల అభివృద్ధి తర్వాత అందుబాటులో ఉంది విడుదల లువా 5.4, వేగవంతమైన మరియు కాంపాక్ట్ స్క్రిప్టింగ్ ప్రోగ్రామింగ్ లాంగ్వేజ్ ఎంబెడెడ్ లాంగ్వేజ్గా విస్తృతంగా ఉపయోగించబడుతుంది (ఉదాహరణకు, కాన్ఫిగరేషన్ లేదా రైటింగ్ ఎక్స్టెన్షన్లను నిర్వచించడం కోసం). లువా ఇంటర్ప్రెటర్ కోడ్ C మరియు లో వ్రాయబడింది ద్వారా పంపిణీ చేయబడింది MIT లైసెన్స్ కింద.
లువా అనుబంధ శ్రేణులు మరియు భాష యొక్క ఎక్స్టెన్సిబుల్ సెమాంటిక్స్ ఉపయోగించడం ద్వారా శక్తివంతమైన డేటా వివరణ సామర్థ్యాలతో సరళమైన విధానపరమైన వాక్యనిర్మాణాన్ని మిళితం చేస్తుంది. లువా డైనమిక్ టైపింగ్ను ఉపయోగిస్తుంది, స్వయంచాలక చెత్త సేకరణతో రిజిస్టర్-ఆధారిత వర్చువల్ మెషీన్ పైన పనిచేసే భాషా నిర్మాణాలను బైట్కోడ్గా మారుస్తుంది. వ్యాఖ్యాత అనేది లైబ్రరీ వలె రూపొందించబడింది, ఇది C మరియు C++ భాషలలోని ప్రాజెక్ట్లలో సులభంగా విలీనం చేయబడుతుంది.
చెత్త కలెక్టర్ యొక్క కొత్త ఆపరేషన్ మోడ్ అమలు చేయబడింది - "తరాల“, ఇది గతంలో అందుబాటులో ఉన్న పెరుగుతున్న చెత్త సేకరణ మోడ్ను పూర్తి చేసింది. కొత్త మోడ్లో సంక్షిప్త క్రాల్ను మరింత తరచుగా అమలు చేయడం, ఇటీవల సృష్టించిన వస్తువులను మాత్రమే కవర్ చేయడం. ఒక చిన్న ట్రావెర్సల్ తర్వాత, కావలసిన మెమరీ వినియోగాన్ని సాధించడం సాధ్యం కానట్లయితే మాత్రమే అన్ని వస్తువుల పూర్తి ట్రావర్సల్ నిర్వహించబడుతుంది. ఈ విధానం అధిక పనితీరును సాధించడానికి మరియు తక్కువ సమయం పాటు నివసించే పెద్ద సంఖ్యలో వస్తువులను నిల్వ చేసేటప్పుడు మెమరీ వినియోగాన్ని తగ్గించడానికి మిమ్మల్ని అనుమతిస్తుంది.
"const" లక్షణంతో నిర్వచించబడిన స్థిరమైన వేరియబుల్స్ను నిర్వచించే సామర్థ్యం జోడించబడింది. ఇటువంటి వేరియబుల్స్ ఒక్కసారి మాత్రమే కేటాయించబడతాయి మరియు ఒకసారి ప్రారంభించబడితే, మార్చబడదు.
వేరియబుల్స్ కోసం మద్దతు జోడించబడింది "మూసివేయవలసినది", ఇవి "క్లోజ్" అట్రిబ్యూట్ని ఉపయోగించి కేటాయించబడతాయి మరియు స్థిరమైన స్థానిక వేరియబుల్లను (కాన్స్ట్ అట్రిబ్యూట్తో) పోలి ఉంటాయి, వాటి నుండి విభిన్నంగా ఉంటాయి, విలువ మూసివేయబడినప్పుడు ("__close" పద్ధతి అంటారు) స్కోప్ నుండి నిష్క్రమించినప్పుడల్లా, ఉదాహరణకు, బ్లాక్ యొక్క సాధారణ పూర్తయిన తర్వాత, బ్రేక్/గోటో/రిటర్న్ ఉపయోగించి పరివర్తన లేదా లోపం సంభవించినప్పుడు నిష్క్రమించండి.
టైప్ చేయండి "యూజర్డేటా", ఇది లువా వేరియబుల్స్లో ఏదైనా C డేటాను నిల్వ చేయగల సామర్థ్యాన్ని అందిస్తుంది (మెమొరీలో డేటా బ్లాక్ను సూచిస్తుంది లేదా C పాయింటర్ను కలిగి ఉంటుంది), ఇప్పుడు అనేక విలువలను కలిగి ఉంటుంది (అనేక మెటాటేబుల్లను కలిగి ఉంటుంది).
సూడోరాండమ్ సంఖ్యలను రూపొందించడానికి ఫంక్షన్ యొక్క కొత్త అమలు అందించబడింది - math.random.
వ్యక్తీకరణను ఉపయోగించి నిర్ణయించబడే హెచ్చరికల వ్యవస్థ జోడించబడింది హెచ్చరిస్తుంది మరియు, లోపాల వలె కాకుండా, ప్రోగ్రామ్ యొక్క తదుపరి అమలును ప్రభావితం చేయవద్దు.
ఫంక్షన్ ఆర్గ్యుమెంట్లు మరియు రిటర్న్ విలువల గురించి డీబగ్గింగ్ సమాచారం జోడించబడింది.
లూప్లలో పూర్ణాంకాలను లెక్కించడానికి కొత్త అర్థశాస్త్రం ప్రతిపాదించబడింది "కోసం". లూప్ ప్రారంభమయ్యే ముందు పునరావృతాల సంఖ్య లెక్కించబడుతుంది, ఇది వేరియబుల్ ఓవర్ఫ్లో మరియు లూపింగ్ను నివారిస్తుంది. ప్రారంభ విలువ పరిమితి విలువ కంటే ఎక్కువగా ఉంటే, లోపం ప్రదర్శించబడుతుంది.
ఫంక్షన్ లో'string.gmatch'ఇనిట్' అనే కొత్త ఐచ్ఛిక ఆర్గ్యుమెంట్ జోడించబడింది, ఇది శోధనను ఏ స్థానంలో ప్రారంభించాలో నిర్ణయిస్తుంది (డిఫాల్ట్గా, 1 అక్షరం నుండి).
కొత్త ఫీచర్లు జోడించబడ్డాయి 'lua_resetthread' (థ్రెడ్ను రీసెట్ చేస్తుంది, మొత్తం కాల్ స్టాక్ను క్లియర్ చేస్తుంది మరియు అన్ని "మూసివేయబడవలసిన" వేరియబుల్స్ను మూసివేస్తుంది) మరియు 'coroutine.మూసివేయు' (కరోటిన్ మరియు అన్ని అనుబంధిత "మూసివేయవలసిన" వేరియబుల్స్ను మూసివేస్తుంది).
తీగలను సంఖ్యలుగా మార్చే విధులు "స్ట్రింగ్" లైబ్రరీకి తరలించబడ్డాయి.
మెమరీ బ్లాక్ పరిమాణం తగ్గించబడితే మెమరీ కేటాయింపు ఫంక్షన్కి కాల్లు ఇప్పుడు విఫలం కావచ్చు.
ఫంక్షన్ లో'స్ట్రింగ్.ఫార్మాట్' కొత్త ఫార్మాట్ స్పెసిఫైయర్ '%p'కి మద్దతు జోడించబడింది (పాయింటర్ lua_topointer ద్వారా తిరిగి వచ్చింది).
utf8 లైబ్రరీ మద్దతును అందిస్తుంది అక్షర సంకేతాలు 2^31 వరకు సంఖ్యలతో.