Útgáfa af Lua 5.4 forritunarmálinu

Eftir fimm ára þróun laus sleppa Lua 5.4, hraðvirkt og samsett forskriftarforritunarmál sem er mikið notað sem innfellt tungumál (til dæmis til að skilgreina stillingar eða skrifa viðbætur). Lua túlkunarkóði er skrifaður í C ​​og dreift af undir MIT leyfi.

Lua sameinar einfalda málsmeðferð setningafræði með öflugum gagnalýsingarmöguleikum með því að nota tengda fylki og teygjanlega merkingarfræði tungumálsins. Lua notar kraftmikla vélritun, umbreytir tungumálabyggingum í bætikóða sem keyrir ofan á sýndarvél sem byggir á skrá með sjálfvirkri sorphirðu. Túlkurinn sjálfur er hannaður sem bókasafn sem auðvelt er að samþætta við verkefni á C og C++ tungumálunum.

Helstu nýjungar:

  • Nýr starfshætti sorphirðu hefur verið tekinn í notkun - “generational“, sem bætti við áður tiltækum stigvaxandi sorphirðuham. Nýja stillingin felur í sér að keyra stytta skrið oftar og nær aðeins yfir nýlega búna hluti. Full ferð yfir alla hluti er aðeins framkvæmd ef, eftir stutta ferð, var ekki hægt að ná æskilegri minnisnotkun. Þessi nálgun gerir þér kleift að ná meiri afköstum og draga úr minnisnotkun þegar þú geymir mikinn fjölda hluta sem lifa í stuttan tíma.
  • Bætti við hæfileikanum til að skilgreina stöðugar breytur sem eru skilgreindar með „const“ eigindinni. Slíkum breytum er aðeins hægt að úthluta einu sinni og þegar þær hafa verið frumstilltar er ekki hægt að breyta þeim.
  • Bætt við stuðningi við breytur "á að loka", sem eru úthlutað með því að nota "close" eigindina og líkjast stöðugum staðbundnum breytum (með const eigindinni), sem eru frábrugðnar þeim að því leyti að gildið er lokað („__close“ aðferðin er kölluð) í hvert sinn sem hún fer úr gildissviðinu, til dæmis, eftir eðlilega lokun á blokkinni, umskipti með því að nota break/goto/return eða hætta þegar villa kemur upp.
  • Gerð "notendagögn“, sem veitir möguleika á að geyma hvaða C gögn sem er í Lua breytum (táknar gagnablokk í minni eða inniheldur C bendi), getur nú innihaldið nokkur gildi (hefur nokkrar metatables).
  • Ný útfærsla á fallinu til að búa til gervi-slembitölur er kynnt - math.random.
  • Bætt við kerfi viðvarana sem eru ákvarðaðar með því að nota tjáninguna varið og, ólíkt villum, hafa ekki áhrif á frekari framkvæmd forritsins.
  • Bætti við villuleitarupplýsingum um virknirök og skilgildi.
  • Ný merkingarfræði hefur verið lögð til til að telja upp heiltölur í lykkjum "fyrir". Fjöldi endurtekningar er reiknaður út áður en lykkjan byrjar, sem forðast breytilegt yfirfall og lykkju. Ef upphafsgildið er hærra en takmörkunargildið birtist villa.
  • Í falli 'string.gmatch' bætti við nýjum valkvæðum rökum 'init', sem ákvarðar á hvaða stað á að hefja leitina (sjálfgefið frá 1 staf).
  • Nýjum eiginleikum bætt við 'lua_resettthread' (endurstillir þráðinn, hreinsar allan kallstaflann og lokar öllum "á að loka" breytum) og 'coroutine.close' (lokar coroutine og öllum tengdum „á að loka“ breytum).
  • Aðgerðir til að breyta strengjum í tölur hafa verið færðar í "streng" bókasafnið.
  • Símtöl í minnisúthlutunaraðgerðina gætu nú mistekist ef minnisblokkin minnkar.
  • Í falli 'string.format' bætti við stuðningi við nýja sniðforritið '%p' (bendillinn skilað af lua_topointer).
  • Utf8 bókasafnið veitir stuðning stafakóðar með tölum allt að 2^31.

Heimild: opennet.ru

Bæta við athugasemd