Programmeerimiskeele Lua 5.4 väljalase

Pärast viieaastast arengut saadaval vabastama Lua 5.4, kiire ja kompaktne skriptimiskeel, mida kasutatakse laialdaselt manustatud keelena (näiteks konfiguratsiooni määratlemiseks või laienduste kirjutamiseks). Lua tõlgi kood on kirjutatud C ja keeles jaotatud MIT litsentsi alusel.

Lua ühendab lihtsa protseduurilise süntaksi võimsa andmete kirjeldamise võimalustega, kasutades assotsiatiivseid massiive ja keele laiendatavat semantikat. Lua kasutab dünaamilist tippimist, teisendades keelekonstruktsioonid baitkoodiks, mis töötab registripõhises virtuaalmasinas koos automaatse prügikogumisega. Tõlk ise on loodud raamatukoguna, mida saab hõlpsasti integreerida C- ja C++-keeles projektidesse.

Kõik uuendused:

  • Rakendatud on prügikoristaja uus töörežiim - “põlvkondlik“, mis täiendas varem saadaolevat järkjärgulist prügikoristusrežiimi. Uus režiim hõlmab lühendatud roomamist sagedamini, hõlmates ainult hiljuti loodud objekte. Kõikide objektide täielik läbimine toimub ainult siis, kui pärast lühikest läbimist ei olnud võimalik soovitud mälutarbimist saavutada. Selline lähenemine võimaldab teil saavutada suurema jõudluse ja vähendada mälukulu, kui salvestate suure hulga objekte, mis elavad lühikest aega.
  • Lisatud on võimalus määratleda konstantseid muutujaid, mis on määratletud atribuudiga "const". Selliseid muutujaid saab määrata ainult üks kord ja pärast initsialiseerimist ei saa neid muuta.
  • Lisatud on muutujate tugi "suletakse", mis on määratud atribuudi "close" abil ja meenutavad konstantseid kohalikke muutujaid (atribuudiga const), mis erinevad neist selle poolest, et väärtus on suletud (kutsutakse meetodit "__close") alati, kui see ulatust lahkub, näiteks pärast ploki tavapärast lõpetamist, üleminek kasutades break/goto/return või tõrke ilmnemisel väljumist.
  • Sisestage "kasutajaandmed“, mis annab võimaluse salvestada Lua muutujatesse mis tahes C-andmeid (esindab mälus olevat andmeplokki või sisaldab C-kursorit), võib nüüd sisaldada mitut väärtust (omada mitut metatabelit).
  • Esitatakse pseudojuhuslike arvude genereerimise funktsiooni uus teostus - math.random.
  • Lisatud hoiatuste süsteem, mis määratakse avaldise abil hoiatama ja erinevalt vigadest ei mõjuta need programmi edasist täitmist.
  • Lisatud silumisinfo funktsiooni argumentide ja tagastatavate väärtuste kohta.
  • Täisarvude loendamiseks tsüklites on välja pakutud uus semantika "eest". Iteratsioonide arv arvutatakse enne tsükli algust, mis väldib muutuvat ületäitumist ja silmust. Kui algväärtus on piirväärtusest suurem, kuvatakse tõrge.
  • funktsioonis 'string.gmatch' lisas uue valikulise argumendi 'init', mis määrab, millisest kohast otsingut alustada (vaikimisi alates 1 märgist).
  • Lisatud uusi funktsioonelua_resetthread' (lähtestab lõime, tühjendab kogu kõne pinu ja sulgeb kõik "suletavad" muutujad) ja 'korutiin.sulgeda' (sulgeb korutiini ja kõik sellega seotud suletavad muutujad).
  • Stringide numbriteks teisendamise funktsioonid on viidud "stringi" teeki.
  • Mälu eraldamise funktsiooni kõned võivad nüüd ebaõnnestuda, kui mäluploki suurust vähendatakse.
  • funktsioonis 'string.formaat' lisas tuge uuele vorminguspetsifikaatorile '%p' (osuti tagastas lua_topointer).
  • Utf8 teek pakub tuge märgikoodid numbritega kuni 2^31.

Allikas: opennet.ru

Lisa kommentaar