Lua 5.4

Efter to års udvikling blev en ny version af programmeringssproget Lua, 29, stille og roligt frigivet den 5.4. juni.

Lua er et enkelt, fortolket programmeringssprog, der nemt kan integreres i applikationer. På grund af disse kvaliteter er Lua meget brugt som et sprog til at udvide eller beskrive konfigurationen af ​​programmer (især computerspil). Lua distribueres under MIT-licensen.

Den tidligere version (5.3.5) blev udgivet den 10. juli 2018.

Vigtigste ændringer i den nye version

  • ny generation af skraldemand. I collectgarbage-funktionen er setpause- og setstepmul-parametrene blevet forældet, og den inkrementelle parameter anbefales i stedet;

  • en ny funktion til at udstede advarsler med mulighed for at deaktivere deres visning;

  • den nye implementering af math.random bruger xoshiro256**-algoritmen i stedet for den medfølgende libc og initialiserer generatoren med et tilfældigt tal;

  • konstante variable;

  • "to-be-closed"-variabler er lokale konstanter, for hvilke __close-metoden udføres, når man forlader scopet;

  • ny funktion lua_resettthread - rydder stakken og lukker alle "lukkede" variabler;

  • ny funktion coroutine.close - lukker den specificerede coroutine og alle dens "lukkede" variabler;

  • brugerdata kan indeholde et sæt værdier, der er tilgået af indeks. Nye funktioner er blevet introduceret for at arbejde med dem: lua_newuserdatauv, lua_setiuservalue og lua_getiuservalue;

  • Fejlfindingsoplysninger om parametre og returværdier for funktioner er tilgængelig;

  • hvis et heltalsindeks bruges i en for-løkke, og der opstår et overløb, slutter løkken;

  • et valgfrit argument er blevet tilføjet til string.gmatch-funktionen, der angiver forskydningen fra begyndelsen af ​​strengen for at søge efter matches;

  • funktioner til implicit konvertering af strenge til tal er blevet flyttet til strengbiblioteket, og deres adfærd er ændret. For eksempel er resultatet af operationen "1" + "2" nu et heltal i stedet for et flydende deal;

  • i hukommelsesallokeringsfunktionen kan der opstå en fejl ved reduktion af en hukommelsesblok;

  • nyt formateringstegn i string.format-funktionen - %p (til pointere);

  • utf8-biblioteket accepterer tegnkoder op til 2³¹ (hvis et særligt flag er angivet, uden det er kun koder op til 0x10FFFF tilladt, og surrogater er ikke tilladt);

  • heltalskonstanter uden for værdiområdet konverteres til flydende tal (tidligere forekom bitklipning);

  • __lt-metametoden bruges ikke længere til at efterligne __le-metametoden; om nødvendigt skal __le-metametoden specificeres eksplicit;

  • en etiket til en goto-sætning kan ikke oprettes, hvis en etiket med samme navn allerede findes i det aktuelle omfang (selvom det var defineret i det ydre omfang);

  • __gc-metametoden kan være mere end blot en funktion. Hvis et forsøg på at kalde en metode mislykkes, vil en advarsel blive udskrevet;

  • printfunktionen kalder ikke tostring for hvert argument, men bruger sine egne interne konverteringer;

  • io.lines-funktionen returnerer et sæt på fire værdier i stedet for én; for at efterligne den gamle adfærd skal du omslutte kaldet i parentes, hvis du sender det som en parameter til et andet funktionskald.

Kilde: linux.org.ru

Tilføj en kommentar