Lua 5.4

Baada ya miaka miwili ya maendeleo, toleo jipya la lugha ya programu ya Lua, 5.4, lilitolewa kimya kimya mnamo Juni 29.

Lua ni lugha rahisi ya programu iliyotafsiriwa ambayo inaweza kupachikwa kwa urahisi kwenye programu. Kwa sababu ya sifa hizi, Lua hutumiwa sana kama lugha ya kiendelezi au ya usanidi kwa programu (haswa michezo ya kompyuta). Lua inasambazwa chini ya leseni ya MIT.

Toleo la awali (5.3.5) lilitolewa mnamo Julai 10, 2018.

Mabadiliko kuu katika toleo jipya

  • Mkusanya takataka wa kizazi kipya. Katika kazi ya kukusanya takataka, vigezo vya kuweka na setstepmul vimepunguzwa; parameter inayoongezeka inapendekezwa badala yake;

  • kazi mpya ya kutoa maonyo ya onyo na chaguo la kuzima onyesho lao;

  • utekelezaji mpya wa math.random hutumia algorithm ya xoshiro256** badala ya ile iliyotolewa na libc na kuanzisha jenereta kwa nambari nasibu;

  • vigezo vya mara kwa mara;

  • Vigezo vya "to-closed" ni viambajengo vya ndani ambavyo njia ya __close inatekelezwa wakati wa kuondoka kwa upeo;

  • kazi mpya lua_resetthread - inafuta stack na kufunga vigezo vyote "vilivyofungwa";

  • kazi mpya coroutine.close - inafunga coroutine maalum na vigezo vyake vyote "vilivyofungwa";

  • Data ya mtumiaji (data ya mtumiaji) inaweza kuwa na seti ya thamani zilizofikiwa na faharasa. Vitendaji vipya vimeanzishwa kwa ajili ya kufanya kazi nao: lua_newuserdatauv, lua_setiuservalue, na lua_getiuservalue;

  • habari ya kurekebisha juu ya vigezo na maadili ya kurudi kwa kazi inapatikana;

  • Ikiwa fahirisi kamili inatumiwa kwa kitanzi na kufurika hutokea, kitanzi kinakoma;

  • Hoja ya hiari imeongezwa kwa chaguo za kukokotoa za string.gmatch, ikibainisha ulinganifu kuanzia mwanzo wa mfuatano ili kutafuta zinazolingana;

  • Vitendo dhahiri vya ubadilishaji wa mfuatano hadi nambari vimehamishwa hadi kwenye maktaba ya mfuatano, na tabia zao zimebadilika. Kwa mfano, matokeo ya operesheni "1" + "2" sasa ni nambari kamili, sio nambari ya sehemu inayoelea;

  • Katika kazi ya ugawaji wa kumbukumbu, hitilafu inaweza kutokea wakati wa kupunguza kizuizi cha kumbukumbu;

  • tabia mpya ya umbizo katika string.format kazi - %p (kwa viashiria);

  • Maktaba ya utf8 inakubali misimbo ya herufi hadi 2³¹ ( bendera maalum inapobainishwa, bila hiyo misimbo ya hadi 0x10FFFF pekee ndiyo inaruhusiwa na waimizi hawaruhusiwi);

  • Nambari kamili ambazo ziko nje ya anuwai hubadilishwa kuwa nambari za sehemu zinazoelea (hapo awali, upunguzaji kidogo ulifanyika);

  • Mbinu ya __lt haitumiki tena kuiga mbinu ya __le; ikihitajika, __le metamethod lazima ibainishwe kwa uwazi;

  • lebo ya taarifa ya goto haiwezi kuundwa ikiwa lebo iliyo na jina sawa tayari ipo katika upeo wa sasa (hata ikiwa imefafanuliwa katika upeo wa nje);

  • Mbinu ya __gc inaweza kuwa kitu chochote kutoka kwa chaguo la kukokotoa. Ikiwa jaribio la kupiga simu njia inashindwa, onyo litatolewa;

  • Chaguo la kukokotoa la kuchapisha haliitaji tostring kwa kila hoja, lakini hutumia ubadilishaji wake wa ndani;

  • Chaguo za kukokotoa za io.lines hurejesha seti ya thamani nne badala ya moja. Ili kuiga tabia ya zamani, ambatisha simu kwenye mabano unapoibadilisha kama kigezo unapoita chaguo za kukokotoa nyingine.

Chanzo: linux.org.ru

Nunua upangishaji wa kuaminika wa tovuti zilizo na ulinzi wa DDoS, seva za VPS VDS 🔥 Nunua upangishaji wa tovuti unaoaminika kwa ulinzi wa DDoS, seva za VPS VDS | ProHoster