Lua 5.4

Pagkatapos ng dalawang taon ng pag-unlad, noong Hunyo 29, isang bagong bersyon ng Lua programming language, 5.4, ay tahimik at tahimik na inilabas.

Ang Lua ay isang simple, binibigyang kahulugan na programming language na madaling maisama sa mga application. Dahil sa mga katangiang ito, malawakang ginagamit ang Lua bilang isang wika para sa pagpapalawak o paglalarawan ng pagsasaayos ng mga programa (sa partikular, mga laro sa kompyuter). Ang Lua ay ipinamahagi sa ilalim ng lisensya ng MIT.

Ang nakaraang bersyon (5.3.5) ay inilabas noong Hulyo 10, 2018.

Mga pangunahing pagbabago sa bagong bersyon

  • bagong henerasyong kolektor ng basura. Sa function na collectgarbage, ang setpause at setstepmul na mga parameter ay hindi na ginagamit at ang incremental na parameter ay inirerekomenda sa halip;

  • isang bagong function para sa pagbibigay ng babala ng babala na may kakayahang huwag paganahin ang kanilang pagpapakita;

  • ang bagong pagpapatupad ng math.random ay gumagamit ng xoshiro256** algorithm sa halip na ang ibinigay na libc at sinisimulan ang generator gamit ang random na numero;

  • pare-pareho ang mga variable;

  • Ang mga variable na "to-be-close" ay mga lokal na constant kung saan ang __close na pamamaraan ay isinasagawa kapag umaalis sa saklaw;

  • bagong function lua_resetthread - nililinis ang stack at isinasara ang lahat ng "sarado" na mga variable;

  • bagong function na coroutine.close - isinasara ang tinukoy na coroutine at lahat ng "sarado" na variable nito;

  • ang data ng gumagamit ay maaaring maglaman ng isang hanay ng mga halaga na na-access ng index. Ang mga bagong function ay ipinakilala upang gumana sa kanila: lua_newuserdatauv, lua_setiuservalue at lua_getiuservalue;

  • Ang impormasyon sa pag-debug tungkol sa mga parameter at pagbabalik ng mga halaga ng mga function ay magagamit;

  • kung ang isang integer index ay ginagamit sa isang para sa loop at isang overflow ay nangyayari, ang loop ay nagtatapos;

  • isang opsyonal na argumento ang naidagdag sa string.gmatch function, na tumutukoy sa offset mula sa simula ng string upang maghanap ng mga tugma;

  • ang mga function para sa tahasang pag-convert ng mga string sa mga numero ay inilipat sa string library, at ang kanilang pag-uugali ay nagbago. Halimbawa, ang resulta ng operasyong "1" + "2" ay isa na ngayong integer sa halip na isang floating-point na numero;

  • sa function ng paglalaan ng memorya, maaaring mangyari ang isang error kapag binabawasan ang isang bloke ng memorya;

  • bagong formatting character sa string.format function - %p (para sa mga pointer);

  • tumatanggap ang library ng utf8 ng mga character code hanggang 2Β³ΒΉ (kung may tinukoy na espesyal na bandila, kung wala ito ay pinapayagan lamang ang mga code na hanggang 0x10FFFF at hindi pinapayagan ang mga kahalili);

  • Ang mga integer constant sa labas ng hanay ng mga halaga ay na-convert sa mga lumulutang na numero (naganap ang dating bit clipping);

  • ang __lt metamethod ay hindi na ginagamit upang tularan ang __le metamethod, kung kinakailangan, ang __le metamethod ay dapat na tahasang tukuyin;

  • ang isang label para sa isang goto statement ay hindi maaaring gawin kung ang isang label na may parehong pangalan ay umiiral na sa kasalukuyang saklaw (kahit na ito ay tinukoy sa panlabas na saklaw);

  • Ang __gc metamethod ay maaaring higit pa sa isang function. Kung nabigo ang isang pagtatangkang tumawag sa isang paraan, isang babala ang ipi-print;

  • ang print function ay hindi tumatawag ng tostring para sa bawat argument, ngunit gumagamit ng sarili nitong panloob na mga conversion;

  • ang io.lines function ay nagbabalik ng set ng apat na value sa halip na isa; para tularan ang dating gawi, ilakip ang tawag sa mga panaklong kung ipinapasa mo ito bilang parameter sa isa pang function na tawag.

Pinagmulan: linux.org.ru

Magdagdag ng komento