Lua 5.4

Efter tvĂ„ Ă„rs utveckling slĂ€pptes den nya versionen av programmeringssprĂ„ket Lua – 5.4, tyst och obemĂ€rkt den 29 juni.

Lua Àr ett enkelt, tolkat programmeringssprÄk som Àr lÀtt att integrera i applikationer. Tack vare dessa egenskaper anvÀnds Lua i stor utstrÀckning som ett expansionssprÄk eller för att beskriva programkonfigurationer (sÀrskilt inom datorspel). Lua distribueras under MIT-licensen.

Den föregÄende versionen (5.3.5) slÀpptes den 10 juli 2018.

Huvudsakliga förÀndringar i den nya versionen

  • en ny generationsbaserad skrĂ€parbetare (generational garbage collector). I funktionen collectgarbage har parametrarna setpause och setstepmul förklarats som obsoleta, istĂ€llet rekommenderas det att anvĂ€nda parametern incremental;

  • en ny funktion för att generera varningar warn med möjlighet att stĂ€nga av visningen av dem;

  • den nya implementeringen av math.random anvĂ€nder algoritmen xoshiro256** istĂ€llet för den som tillhandahĂ„lls av libc och initierar generatorn med ett slumpmĂ€ssigt tal;

  • konstanter (constant variables);

  • »stĂ€ngbara« (to-be-closed) variabler – lokala konstanter som har metoden __close utförd vid utgĂ„ng frĂ„n synlighetsomrĂ„det;

  • en ny funktion lua_resetthread – som rensar stacken och stĂ€nger alla «stĂ€ngbara» variabler;

  • en ny funktion coroutine.close – som stĂ€nger den angivna koroutinen och alla dess «stĂ€ngbara» variabler;

  • anvĂ€ndardata (userdata) kan innehĂ„lla en uppsĂ€ttning vĂ€rden med indexĂ„tkomst. Nya funktioner har införts för att arbeta med dem: lua_newuserdatauv, lua_setiuservalue och lua_getiuservalue;

  • debugginformation om parametrar och returvĂ€rden för funktioner Ă€r nu tillgĂ€nglig;

  • om en heltalsindex anvĂ€nds i for-loopar och det sker ett överflöde, avbryts loopen;

  • en valfri parameter för att sĂ€tta ett forskningsförskott frĂ„n början av strĂ€ngen har lagts till i funktionen string.gmatch;

  • funktioner för implicit konvertering av strĂ€ngar till nummer har flyttats till strĂ€ngbiblioteket, deras beteende har förĂ€ndrats. Till exempel Ă€r resultatet av operationen "1" + "2" nu ett heltal och inte ett flyttal;

  • i minnesallokeringsfunktionen kan ett fel uppstĂ„ vid nedskĂ€rning av minnesblocket;

  • en ny formatteringssymbol i funktionen string.format – %p (för pekare);

  • utf8-biblioteket accepterar teckenkoder upp till 2ÂłÂč (med en speciell flagga, utan den tillĂ„ts endast koder upp till 0x10FFFF och surrogater Ă€r inte tillĂ„tna);

  • Heltal konstanta vĂ€rden som överskrider vĂ€rdeintervallet konverteras till flyttal (tidigare skedde bitavskĂ€rning);

  • Metametoden __lt anvĂ€nds inte lĂ€ngre för att emulera metametoden __le, om nödvĂ€ndigt mĂ„ste metametoden __le anges uttryckligen;

  • En etikett för goto-satsen kan inte skapas om det redan finns en etikett med samma namn i det aktuella omfĂ„nget (Ă€ven om den definierades i ett yttre omfĂ„ng);

  • Metametoden __gc kan vara mer Ă€n bara en funktion. Om ett metodanrop misslyckas kommer en varning att skrivas ut;

  • Print-funktionen anropar inte tostring för varje argument, utan anvĂ€nder sina interna konverteringar;

  • io.lines-funktionen returnerar en uppsĂ€ttning fyra vĂ€rden istĂ€llet för ett, för att emulera det gamla beteendet, omge anropet med parenteser om du anvĂ€nder det som parameter vid anrop av en annan funktion.

KĂ€lla: linux.org.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster