Programmeermiskeele Lua 5.4 vÀljaanne

Viie aasta arengutöö jĂ€rel saadaval vĂ€ljalase Lua 5.4, on see kiire ja kompaktne skriptimiskeel saanud laialdase populaaruse sisseehitatud lahendustes (nt konfiguratsiooni mÀÀramiseks vĂ”i laienduste loomiseks). Lua tĂ”lgendi kood on kirjutatud C keeles ja GNU Üldine Avaliku litsentsi alusel. on MIT litsentsi all.

Lua ĂŒhendab lihtsa protseduurilise sĂŒntaksiga jĂ”ulised andmete kirjeldamise vĂ”imalused, kasutades assotsiatiivseid massiive ja laiendatavat keele semantikat. Luas on dĂŒnaamiline tĂŒpiseerimine, keelekonstruktsioonid muundatakse intelligentsesse baidikoodi, mis töötab registriga virtuaalkeskkonnas koos automaatse prĂŒgikoristamisega. TĂ”lge on vormistatud raamatukoguna, mis on hĂ”lpsasti integreeritav C ja C++ projektidesse.

Peamised uuendused:

  • Sisse viidud on uus tööreĆŸiim, mis on seotud prĂŒgikogumisega — «generational«, mis tĂ€iendab varem saadaval olnud inkrementaalset prĂŒgikogumise reĆŸiimi. Uus reĆŸiim eeldab sagedamat lĂŒhikest lĂ€bimist, mis katab ainult hiljuti loodud objekte. TĂ€ielik lĂ€bimine kĂ”igist objektidest toimub ainult juhul, kui lĂŒhikese lĂ€bimise jĂ€rel ei ole saavutatud soovitud mĂ€lukasutuse nĂ€itajaid. Selline lĂ€henemine vĂ”imaldab saavutada kĂ”rgemat jĂ”udlust ja vĂ€hendada mĂ€lu kasutust olukordades, kus on palju lĂŒhiajalisi objekte.
  • Lisatud on vĂ”imalus mÀÀratleda pĂŒsivaid muutujaid, mis on mÀÀratletud atribuudiga «const». Selliseid muutujaid saab mÀÀrata ainult korra ja pĂ€rast initsialiseerimist ei saa neid enam muuta.
  • Lisatud on toetust muutujaile «to-be-closed«, mis mÀÀratakse „close“ atribuudi abil ja meenutavad pĂŒsivaid kohalikke muutujaid (atribuutiga const), erinedes neist sellega, et vÀÀrtus sulgub (kutsutakse vĂ€lja meetod „__close“) igasuguse ulatusest vĂ€ljumise korral, nĂ€iteks ploki normaalse lĂ”petamise, break/goto/return abil ĂŒlemineku vĂ”i veateate korral.
  • TĂŒĂŒp «userdata«, mis vĂ”imaldab Lua-muutujates salvestada mingeid C-andmeid (esindab mĂ€lus andmeplokki vĂ”i sisaldab C-nĂ€itajaid), vĂ”ib nĂŒĂŒd sisaldada mitut vÀÀrtust (omada mitut metatabelit).
  • Uus teostus funktsiooni jaoks pseudojuhuslike arvude genereerimiseks - math.random.
  • Lisatud on hoiatuste sĂŒsteem, mis mÀÀratakse vĂ€ljendi abil warn ja mis, erinevalt vigadest, ei mĂ”juta programmi edasist tĂ€itmist.
  • Lisatud silumine teavet funktsioonide argumentide ja vÀÀrtuste kohta, mis tagastatakse 'return' operaatoris.
  • Uus semantika tĂ€ringute iteratsiooniks tsĂŒklites «for«. Iteratsioonide arvu arvutamine toimub tsĂŒkli alguses, mis vĂ”imaldab vĂ€ltida muutuja ĂŒlevoolu ja lĂ”putuks jÀÀmist. Kui algvÀÀrtus ĂŒletab piiri, nĂ€idatakse viga.
  • ‘string.gmatch‘ lisatud uus valikuline argument ‘init’, mis mÀÀrab alustuspositsiooni otsimiseks (vaikimisi 1. sĂŒmbolist).
  • Lisatud uued funktsioonid ‘lua_resetthread‘ (nullib voolu, puhastab kogu kutsumise kuhja ja sulgeb kĂ”ik «to-be-closed» muutujad) ja ‘coroutine.close‘ (sulgeb kooperatiivi ja kĂ”ik seotud «to-be-closed» muutujad).
  • Stringide numbriteks muutmise funktsioonid on viidud «string» raamatukokku.
  • MĂ€luaadressi eraldamise funktsiooni kutsumine vĂ”ib nĂŒĂŒd ebaĂ”nnestuda, kui mĂ€lubloki suurust vĂ€hendatakse.
  • ‘string.format‘ lisatud toe uus vormindusspetsiifikaator ‘%p’ (osutaja, mille lua_topointer tagastab).
  • UTF-8 teegis on tagatud toetus sĂŒmbolite koodidele numbritega kuni 2^31.

Allikas: opennet.ru

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster