Na voljo je programski jezik Lua 5.5

Po petih letih razvoja je na voljo izdaja Lua 5.5, hitrega in kompaktnega skriptnega jezika, ki je pridobil široko uporabo kot vgrajen jezik za določanje konfiguracije in pisanje razširitev. Koda interpreterja Lua je napisana v jeziku C in se distribuira pod licenco MIT.

Lua združuje preprost procedurovani sintaksis z možnostmi opisovanja podatkov preko uporabe asociativnih tabel in razširljive semantike jezika. V Lua se uporablja dinamična tipizacija, jezikovne konstrukcije pa se pretvorijo v bajtno kodo, ki teče na registrski virtualni mašini z avtomatskim zbiranjem smeti. Interpreter je oblikovan v obliki knjižnice, ki jo je mogoče integrirati v projekte v jezikih C in C++.

Glavne novosti:

  • Za večino operacij zbiranja smeti je uporabljen inkrementalni način, pri katerem se cikel zbiranja smeti razdeli na posamezne korake, ki se izmenjujejo z izvajanjem programa, kar omogoča, da se izognemo dolgim prekinitev pri izvajanju aplikacij z veliko število objektov v pomnilniku.
  • Predlagana je kompaktna implementacija tabel, ki zahteva 60 % manj pomnilnika za tabele s enotnimi podatki (prihranki so doseženi, ker se podatki o tipu shranijo ne za vsak element, temveč za skupino elementov).
  • Dodana je možnost izrecnega razglašanja globalnih spremenljivk v vseh blokih kode z uporabo ključne besede „global“. Pri navajanju izrazov v bloku kode s ključnimi besedami „global“ morajo vse spremenljivke biti nujno izrecno razglašene. Če razglasitev „global“ manjka, se implicitno uporablja izraz „global *“, pri katerem ostane staro vedenje in se vse spremenljivke obravnavajo kot globalne. Prav tako je dodan izraz „global<const> *“, pri katerem postanejo vse implicitno določene globalne spremenljivke dostopne v načinu samo za branje. X = 1 — Ok, X — globalna spremenljivka, staro vedenje privzeto. do global Y — razglasitev spremenljivke Y kot globalne, vse druge spremenljivke v bloku morajo biti izrecno razglašene Y = 1 — Ok, spremenljivka Y je bila prej določena X = 1 — Napaka, spremenljivka X ni bila določena end X = 2 — Ok, zunaj bloka global s deluje staro vedenje
  • Upravljačke varijable navedene u "for" petljama sada su samo za čitanje i ne mogu se menjati unutar tela petlje. Na primer, varijabla i, deklarisana u petlji "for i = 1, 5 do", ne može se menjati unutar tela petlje.
  • Prilikom ispisivanja brojeva sa pomičnom zarezom preko funkcije print sada se ispisuje dovoljan broj cifara za ispravno obrnuto pretvaranje iz stringa u izvorni oblik.
  • Povećan je dozvoljeni broj nivoa ugnježdenosti konstruktora tabela.
  • Dodata je funkcija table.create(nseq, nrec) za dodavanje prazne tabele i prethodno dodeljivanje memorije za navedeni broj elemenata.
  • U funkciji utf8.offset obezbeđen je povratak ne samo bajtovnog pomaka do početka simbola, već i pozicije kraja simbola.
  • Dodata je podrška za kreiranje spoljašnjih stringova, smeštenih u memoriji koja nije pod kontrolom Lua cirkulatora.
  • Dodata je funkcija luaL_openselectedlibs za učitavanje odabrane biblioteke, kao i funkcija luaL_makeseed, koja formira seed za funkciju lua_newstate.
  • U lua.c obezbeđeno je dinamičko učitavanje biblioteke ‘readline’ kada je ona dostupna (ako biblioteka postoji u sistemu — učitava se i postaju dostupne funkcije za uređivanje stringova).
  • Uključena je optimizacija za uštedu memorije prilikom učitavanja unapred kompajliranog bajtkoda — Lua sada može ponovo koristiti memoriju u nekim internim strukturama bez kreiranja duplicata prilikom učitavanja dupliciranog bajtkoda.
  • Obezbeđeno je ponovno korišćenje svih stringova u operacijama „dump“ i „undump“.
  • U pomoćnim baferima obezbeđeno je ponovno korišćenje bafera (bez kopiranja u novi bafer) prilikom kreiranja finalnog stringa.

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster