ProgrammeringssprÄket Lua 5.5 Àr tillgÀngligt

Efter fem Ärs utveckling Àr Lua 5.5, ett snabbt och kompakt skriptsprÄk som har fÄtt stor spridning som inbyggt sprÄk för konfigurationsdefinition och för skrivande av tillÀgg, nu tillgÀngligt. Koden för Lua-tolkaren Àr skriven i C och distribueras under MIT-licensen.

Lua kombinerar en enkel procedurbaserad syntax med möjligheter att beskriva data genom anvÀndning av associativa arrayer och utbyggbar semantik. I Lua anvÀnds dynamisk typning och sprÄkliga konstruktioner omvandlas till bytekod som körs pÄ en registreringsbaserad virtuell maskin med automatisk skrÀpsamling. Tolken Àr utformad som ett bibliotek som kan integreras i projekt skrivna i C och C++.

Huvudsakliga nyheter:

  • För majoriteten av skrĂ€psamlingsoperationer anvĂ€nds ett inkrementellt lĂ€ge dĂ€r skrĂ€psamlingscykeln delas upp i separata steg som alternerar med körningen av programmet. Detta gör att man kan undvika lĂ„nga avbrott i körningen av applikationer med mĂ„nga objekt i minnet.
  • En kompakt implementation av arrayer har föreslagits, vilket krĂ€ver 60% mindre minne för arrayer med homogena data (besparingen uppnĂ„s genom att typinformation sparas för grupper av element snarare Ă€n för varje enskilt element).
  • Möjligheten att tydligt deklarera globala variabler i alla kodblock med hjĂ€lp av nyckelordet 'global' har lagts till. NĂ€r uttryck med nyckelordet 'global' anges i ett kodblock mĂ„ste alla variabler deklareras tydligt. Om deklarationen 'global' saknas anvĂ€nds implicit uttrycket 'global *', vilket bibehĂ„ller det gamla beteendet och alla variabler betraktas som globala. Uttrycket 'global<const> *' har ocksĂ„ lagts till, vilket gör att alla implicit definierade globala variabler blir tillgĂ€ngliga i endast lĂ€sbart lĂ€ge. X = 1 — Ok, X — global variabel, gammalt beteende som standard. do global Y — deklaration av variabel Y som global, alla andra variabler i blocket mĂ„ste deklareras tydligt Y = 1 — Ok, variabel Y har tidigare definierats X = 1 — Fel, variabel X Ă€r inte definierad end X = 2 — Ok, utanför globalblock tillĂ€mpas gammalt beteende
  • Variabler som anges i 'for'-loopar Ă€r nu bara skrivskyddade och kan inte Ă€ndras inom loopens kropp. Till exempel kan variabeln i, som deklarerats i loopen 'for i = 1, 5 do', inte Ă€ndras inom loopens kropp.
  • NĂ€r flyttal skrivs ut med funktionen print anges nu tillrĂ€ckligt med siffror för att möjliggöra korrekt omvandling frĂ„n strĂ€ng till ursprungligt vĂ€rde.
  • Det maximala antalet nivĂ„er för inbĂ€ddade tabellkonstruktorer har ökat.
  • Funktionen table.create(nseq, nrec) har lagts till för att skapa en tom tabell och förhandsallokera minne för det angivna antalet element.
  • Funktionen utf8.offset returnerar nu inte bara byteoffsetet till början av tecknet, utan Ă€ven positionen för slutet av tecknet.
  • Stödet för att skapa externa strĂ€ngar som lagras i minne icke-hanterat av Lua:s skrĂ€pinsamling har lagts till.
  • Funktionen luaL_openselectedlibs har lagts till för att ladda den valda biblioteket, samt funktionen luaL_makeseed som skapar ett seed för funktionen lua_newstate.
  • I lua.c har dynamisk laddning av biblioteket 'readline' sĂ€kerstĂ€llts om det finns (om biblioteket finns i systemet - laddas det och funktioner för strĂ€ngredigering blir tillgĂ€ngliga).
  • Optimering för minnesbesparing vid laddning av förkompilerad bytekod har införts - Lua kan nu Ă„teranvĂ€nda minnet i vissa interna strukturer utan att skapa dubbletter vid laddning av dubblettbytekod.
  • ÅteranvĂ€ndning av alla strĂ€ngar vid operationer 'dump' och 'undump' har sĂ€kerstĂ€llts.
  • ÅteranvĂ€ndning av buffrar i hjĂ€lpbuffrar (utan kopiering till en ny buffer) har sĂ€kerstĂ€llts vid skapandet av den slutgiltiga strĂ€ngen.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster