Lua 5.4.0 führt neuen Garbage-Collection-Modus ein

Version 5.4.0 der Skriptsprache Lua führt einen Generational Mode für kleine Müllsammlungen zwischendurch ein. Außerdem warten neue Funktionen und Variablentypen.

Im Generational Mode sammelt der Collector regelmäßig Objekte, die kürzlich erzeugt wurden. Ist der Speicherverbrauch nach einer dieser kleinen Sammlungen noch immer über dem Limit, startet Lua eine umfangreiche “Stop-the-World”-Garbage-Collection, die sämtliche Objekte umfasst. Der Generational Mode verwendet dabei zwei Parameter, einen kleineren und einen größeren Multiplier. Der kleinere kontrolliert die Frequenz der kleinen Müllsammlungen. Liegt der kleine Multiplier bei 20 (dem Standardwert), startet eine neue Minor Collection, wenn der Speicherbedarf 20 Prozent über dem nach der letzten großen Sammlung liegt.

Neu an Bord sind konstante Variablen und To-be-closed-Variablen. Die ersten definiert der Term “const”. Die letztgenannten funktionieren wie lokale konstante Variablen. Verliert die Variable ihre Gültigkeit, ruft das die “close()”-Metamethode auf den Plan, die den Wert als erstes Argument entgegen nimmt und ein potenzielles Fehlerobjekt als zweites Argument. Gab es keinen Fehler, ist das zweite Argument “NIL”.

Weiterhin bringt Lua 5.4.0 eine neue Implementierung von “math.random”. In “string.format” gibt es einen neuen Platzhalter “%p”, der stellvertretend für alle Punktierungszeichen steht. Neu an Bord sind die Funktionen “lua_resetthread()” und “coroutine.close()”. Die erste setzt einen Thread zurück, säubert den Call Stack und schließt alle To-be-closed-Variablen. Die andere schließt die Coroutine “co”, sämtliche To-be-closed-Variablen und versetzt die Coroutine in einen Dead State. Alle Änderungen für Lua 5.4.0 listet das Changelog auf. Mehr über die neuen und veränderten Funktionen verrät das Handbuch für die Version 5.4.

E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben