Verëffentlechung vun der Lua 5.4 Programméiersprooch

No fënnef Joer Entwécklung verfügbar Fräisetzung Lua 5.4, eng séier a kompakt Skriptprogramméierungssprooch déi wäit als embedded Sprooch benotzt gëtt (zum Beispill fir d'Konfiguratioun ze definéieren oder d'Extensiounen ze schreiwen). De Lua Dolmetscher Code ass geschriwwen an C an verdeelt duerch ënner der MIT Lizenz.

Lua kombinéiert eng einfach prozedural Syntax mat mächtegen Datebeschreiwungsfäegkeeten duerch d'Benotzung vun assoziativen Arrays an erweiderbarer Semantik vun der Sprooch. Lua benotzt dynamesch Tippen, konvertéiert Sproochkonstruktiounen an Bytecode, déi uewen op enger Registerbaséierter virtueller Maschinn mat automatescher Müllsammlung leeft. Den Dolmetscher selwer ass als Bibliothéik entworf déi einfach a Projeten an de C an C++ Sproochen integréiert ka ginn.

Haaptstrooss Innovatiounen:

  • En neien Operatiounsmodus vum Müllsammler gouf ëmgesat - "generatioun", wat de virdru verfügbaren inkrementellen Drecksammlungsmodus ergänzt huet. Den neie Modus involvéiert e verkierzte Crawl méi dacks ze laafen, deckt nëmmen kierzlech erstallt Objeten. E komplette Traversal vun all Objete gëtt nëmme gemaach wann et no enger kuerzer Traversal net méiglech war de gewënschten Erënnerungsverbrauch z'erreechen. Dës Approche erlaabt Iech méi héich Leeschtung ze erreechen an Erënnerung Konsum ze reduzéieren wann eng grouss Zuel vun Objeten Stockage, datt fir eng kuerz Zäit liewen.
  • D'Fäegkeet bäigefüügt fir konstant Variablen ze definéieren, definéiert mam "const" Attribut. Esou Variablen kënnen nëmmen eemol zougewisen ginn an, eemol initialiséiert, kann net geännert ginn.
  • Zousätzlech Ënnerstëtzung fir Variabelen "zougemaach ginn", déi mat dem "close" Attribut zougewisen ginn a gläiche konstante lokalen Variablen (mat dem const Attribut), ënnerscheeden vun hinnen an datt de Wäert zou ass (d'__close" Method gëtt genannt) wann se aus dem Spillraum verléisst, zum Beispill, no der normaler Réalisatioun vun der Spär, Iwwergank benotzt Paus / Goto / Retour oder Sortie wann e Feeler geschitt.
  • Typ "Userdaten", déi d'Fäegkeet ubitt all C Daten a Lua Variablen ze späicheren (representéiert e Block vun Daten an der Erënnerung oder enthält e C Pointer), kann elo verschidde Wäerter enthalen (huet e puer Metatablen).
  • Eng nei Ëmsetzung vun der Funktioun fir generéieren pseudorandom Zuelen presentéiert - math.random.
  • E System vun Warnungen bäigefüügt, déi mam Ausdrock bestëmmt ginn warnen an, Géigesaz Feeler, Afloss net déi weider Ausféierung vum Programm.
  • Derbäigesat Debugging Informatioun iwwer Funktiounsargumenter a Retourwäerter.
  • Eng nei Semantik gouf proposéiert fir ganz Zuelen a Schleifen z'erzielen "fir". D'Zuel vun Iteratiounen gëtt berechent ier d'Loop ufänkt, wat verännerlech Iwwerfloss a Looping vermeit. Wann den initialen Wäert méi grouss ass wéi de limitéierende Wäert, gëtt e Feeler ugewisen.
  • An der Funktioun 'string.gmatch' huet en neit fakultativ Argument 'init' bäigefüügt, wat bestëmmt op wéi enger Positioun d'Sich ufänkt (par défaut, vun 1 Charakter).
  • Nei Features bäigefüügt 'lua_resettread' (setzt de Fuedem zréck, läscht de ganzen Uruffstack a schléisst all "zu-zougemaach" Variabelen) an 'coroutine.close' (schléisst d'Koroutin an all assoziéiert "zougemaach" Variabelen).
  • Fonctiounen fir d'Konvertéierung vun Strings op Zuelen goufen an d'"String" Bibliothéik geplënnert.
  • Uruff un d'Erënnerungsallokatiounsfunktioun kënnen elo versoen wann d'Erënnerungsblockgréisst reduzéiert gëtt.
  • An der Funktioun 'string.format' Ënnerstëtzung bäigefüügt fir den neie Formatspezifizéierer '%p' (Zeiger zréckkomm vum lua_topointer).
  • D'utf8 Bibliothéik bitt Ënnerstëtzung Charakter Coden mat Zuelen bis 2^31.

Source: opennet.ru

Setzt e Commentaire