Die Veröffentlichung der Programmiersprache Lua 5.4

Nach fünf Jahren Entwicklung ist verfügbar Release Lua 5.4, einer schnellen und kompakten Skriptsprache, die sich weit verbreitet hat, um eingebettet zu werden (zum Beispiel zur Konfigurationsbestimmung oder zum Schreiben von Erweiterungen). Der Interpreter-Code von Lua ist in C geschrieben und wird unter der GPLv3-Lizenz bereitgestellt. unter der MIT-Lizenz.

Lua kombiniert eine einfache prozedurale Syntax mit leistungsstarken Datenbeschreibungsmöglichkeiten durch die Verwendung assoziativer Arrays und erweiterbarer Semantik der Sprache. In Lua wird dynamische Typisierung verwendet, Sprachkonstrukte werden in Bytecode umgewandelt, der auf einer Register-basierten virtuellen Maschine mit automatischer Speicherbereinigung ausgeführt wird. Der Interpreter selbst ist als Bibliothek gestaltet, die sich leicht in Projekte in C und C++ integrieren lässt.

Haupt Neuheiten:

  • Ein neuer Arbeitsmodus des Garbage Collectors wurde implementiert - „generational“, der den zuvor verfügbaren inkrementellen Garbage Collection-Modus ergänzt. Der neue Modus sieht häufigere Ausführungen einer verkürzten Durchlaufzeit vor, die nur neu erstellte Objekte erfasst. Eine vollständige Durchlaufzeit aller Objekte wird nur durchgeführt, wenn nach der verkürzten Durchlaufzeit die gewünschten Speicherverbrauchswerte nicht erreicht werden konnten. Dieser Ansatz ermöglicht eine höhere Leistung und reduziert den Speicherverbrauch in Situationen mit vielen kurzlebigen Objekten.
  • Die Möglichkeit zur Definition von konstanten Variablen, die mit dem Attribut „const“ deklariert werden, wurde hinzugefügt. Solche Variablen können nur einmal zugewiesen werden und können nach der Initialisierung nicht mehr geändert werden.
  • Die Unterstützung von Variablen „to-be-closed«, die mit dem Attribut «close» zugewiesen werden und permanente lokale Variablen (mit dem Attribut const) ähneln, unterscheiden sich von diesen dadurch, dass der Wert geschlossen wird (die Methode «__close» wird aufgerufen) bei jedem Verlassen des Geltungsbereichs, zum Beispiel nach dem normalen Abschluss des Blocks, beim Übergang durch break/goto/return oder beim Verlassen aufgrund eines Fehlers.
  • Typ «userdata«, der die Speicherung beliebiger C-Daten in Lua-Variablen ermöglicht (stellt einen Datenblock im Speicher dar oder enthält einen C-Zeiger), kann jetzt mehrere Werte enthalten (mehrere Metatabellen haben).
  • Es wurde eine neue Implementierung der Funktion zur Generierung von pseudo-zufälligen Zahlen - math.random - eingeführt.
  • Ein Warnsystem wurde hinzugefügt, das durch den Ausdruck warn definiert wird und im Gegensatz zu Fehlern das weitere Programmieren nicht beeinflusst.
  • Zusätzliche Debugging-Informationen über die Argumente von Funktionen und die Werte, die im Operator «return» zurückgegeben werden.
  • Es wurde eine neue Semantik für die Iteration über ganze Zahlen in den Schleifen «für« vorgeschlagen. Die Berechnung der Anzahl der Iterationen erfolgt vor Beginn der Schleife, was Überlauf der Variablen und Endlosschleifen verhindert. Wenn der Startwert größer als das Limit ist, wird ein Fehler ausgegeben.
  • In die Funktion ‘string.gmatchEin neues optionales Argument 'init' wurde hinzugefügt, das angibt, von welcher Position aus die Suche beginnen soll (Standardmäßig von 1 Zeichen).
  • Neue Funktionen 'lua_resetthread' (setzt den Stream zurück, leert den gesamten Aufrufstack und schließt alle "to-be-closed" Variablen) und 'coroutine.close' (schließt die Koroutine und alle zugehörigen "to-be-closed" Variablen).
  • Die Funktionen zur Umwandlung von Zeichenfolgen in Zahlen wurden in die Bibliothek 'string' verschoben.
  • Der Aufruf der Funktion zur Speicherzuweisung kann jetzt fehlschlagen, wenn die Größe des Speicherblocks verringert wird.
  • In die Funktion ‘string.format' Unterstützung für den neuen Formatbezeichner '%p' (Zeiger, zurückgegeben durch lua_topointer) hinzugefügt.
  • In der utf8-Bibliothek wird die Unterstützung für Zeichencodes mit Nummern bis 2^31 bereitgestellt.

Quelle: opennet.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster