Saadaolev programmikeel Lua 5.5

PÀrast viieaastast arendust on vÀlja lastud Lua 5.5, kiire ja kompaktne skriptimiskeel, mis on laialdaselt levinud sisseehitatud keelena konfiguratsioonide mÀÀratlemiseks ja laienduste kirjutamiseks. Lua tÔlgendi kood on kirjutatud C keeles ja jagatakse MIT litsentsi alusel.

Lua ĂŒhendab lihtsa protseduurilise sĂŒntaksi andmete kirjeldamisvĂ”imetega, kasutades assotsiatiivseid massiive ja keele laienevat semantikat. Luas kasutatakse dĂŒnaamilist tĂŒĂŒpimist ning keele konstruktsioonid muudetakse byte-koodiks, mis töötab registri virtuaalmasina peal automaatse mĂ€lu koristusega. TĂ”lgendi kujundatakse teegina, mis on integreeritav C ja C++ projektidesse.

Peamised uuendused:

  • Enamik jÀÀtme koristamise toimingutest jÀÀb inkrementeerimise reĆŸiimi, kus jÀÀtme koristamise tsĂŒkkel jagatakse eraldi etappideks, mis vahelduvad programmi tĂ€itmisega, vĂ”imaldades vĂ€ltida pikki rakenduste peatamisi, kui mĂ€lus on palju objekte.
  • Pakutakse vĂ€lja kompaktne massiivide teostus, mis vajab ĂŒht tĂŒĂŒpi andmete massiivide jaoks 60% vĂ€hem mĂ€lu (sÀÀstu saavutatakse tĂ€nu sellele, et tĂŒĂŒbi andmed salvestatakse mitte iga elemendi, vaid rĂŒhma elementide jaoks).
  • Lisatud on vĂ”imalus globaalsete muutujaid selgelt kuulutada mis tahes koodiblokkides, kasutades vĂ”tmesĂ”na "global". Kui koodiblokis on vĂ€ljendeid vĂ”tmesĂ”naga "global", peavad kĂ”ik muutujad olema selgelt kuulutatud. Kui "global" deklaratsiooni ei ole, siis kehtib vaikimisi vĂ€ljend "global *", kus vanad kĂ€itumised sĂ€ilivad ja kĂ”ik muutujad tĂ”lgendatakse globaalsetena. Samuti on lisatud vĂ€ljend "global<const> *", kus kĂ”ik mitte selgelt mÀÀratletud globaalmuutujad muutuvad lugemisreĆŸiimis kergesti kĂ€ttesaadavaks. X = 1 — Ok, X — globaalne muutuja, vana kĂ€itumine vaikimisi. do global Y — Y muutuja kuulutamine globaalne, kĂ”ik muud muutujad blokis peavad olema selgelt kuulutatud Y = 1 — Ok, Y muutuja on varem mÀÀratletud X = 1 — Viga, X muutuja ei ole mÀÀratletud end X = 2 — Ok, vĂ€ljaspool global blokki kehtib vana kĂ€itumine
  • TsĂŒklite "for" juhtivmuutujad on nĂŒĂŒd saadaval ainult lugemiseks ja neid ei saa tsĂŒkli kehas muuta. NĂ€iteks ei saa tsĂŒklis "for i = 1, 5 do" deklareeritud muutujat i tsĂŒkli kehas muuta.
  • Ujukomade Print funktsiooni kaudu vĂ€ljastamisel kuvatakse nĂŒĂŒd piisavalt numbreid, et tagada Ă”ige ĂŒmberkorraldamine stringist tagasi algsesse vormingusse.
  • Lubatud sisemise taseme arvu konsoolide tabelis on suurendatud.
  • Lisatud funktsioon table.create(nseq, nrec) tĂŒhja tabeli loomiseks ja mÀÀratud arvu elementide jaoks mĂ€lu eelreserveerimiseks.
  • Funktsioonis utf8.offset tagastatakse nĂŒĂŒd mitte ainult baitide asukoht sĂŒmboli alguses, vaid ka sĂŒmboli lĂ”pu asukoht.
  • Lisatud tugi vĂ€liste stringide loomiseks, mis asuvad mĂ€lus, mida Lua prĂŒgikoguja ei halda.
  • Lisatud funktsioon luaL_openselectedlibs valitud raamatukogu laadimiseks ja funktsioon luaL_makeseed, mis genereerib seemne eelnevalt funktsiooniks lua_newstate.
  • Failis lua.c on tagatud, et raamatukogu 'readline' laaditakse dĂŒnaamiliselt, kui see on olemas (kui raamatukogu on sĂŒsteemis, laaditakse see ja stringi redigeerimise funktsioonid on saadaval).
  • Optimeerimine on sisse lĂŒlitatud, et sÀÀsta mĂ€lu eelnevalt kompileeritud baitkoodi laadimisel — Lua vĂ”ib nĂŒĂŒd mĂ”nes sisemises struktuuris mĂ€lu uuesti kasutada, ilma et tekkiks dublette laadimisel dubleeritud baitkoodi.
  • Tagatud on kĂ”ikide stringide uuesti kasutamine operatsioonides "dump" ja "undump".
  • Abibufferites tagatakse buffrite uuesti kasutamine (ilma uude bufferisse kopeerimiseta) lĂ”pliku stringi loomisel.

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster