Kutulutsidwa kwa chilankhulo cha pulogalamu ya Lua 5.4

Patapita zaka zisanu chitukuko zilipo kumasula Mtundu 5.4, chilankhulo chofulumira komanso chosavuta kulemba chomwe chimagwiritsidwa ntchito kwambiri ngati chilankhulo chophatikizidwa (mwachitsanzo, kufotokozera masinthidwe kapena zolemba zowonjezera). Khodi yomasulira ya Lua imalembedwa mu C ndi wogawidwa ndi pansi pa layisensi ya MIT.

Lua amaphatikiza mawu osavuta atsatanetsatane okhala ndi luso lofotokozera za data pogwiritsa ntchito masanjidwe olumikizana ndi mawu owonjezera achilankhulocho. Lua amagwiritsa ntchito kulemba kwamphamvu, kutembenuza zilankhulo kukhala bytecode yomwe imayenda pamwamba pa makina owerengera omwe amatolera zinyalala. Womasulira yekha amapangidwa ngati laibulale yomwe ingaphatikizidwe mosavuta muzinthu za C ndi C ++.

waukulu zatsopano:

  • Njira yatsopano yopangira zinyalala yakhazikitsidwa - "opatsa chidwi", zomwe zimakwaniritsa njira yosonkhanitsira zinyalala yomwe inalipo kale. Njira yatsopanoyi imaphatikizapo kuthamanga kukwawa kofupikitsa pafupipafupi, kuphimba zinthu zomwe zangopangidwa posachedwa. Kudutsa kwathunthu kwa zinthu zonse kumachitika pokhapokha ngati, pakadutsa pang'ono, sikunali kotheka kukwaniritsa zomwe mukufuna kukumbukira. Njirayi imakuthandizani kuti mukwaniritse ntchito zapamwamba ndikuchepetsa kukumbukira kukumbukira mukasunga zinthu zambiri zomwe zimakhala kwakanthawi kochepa.
  • Anawonjezera kutha kutanthauzira zosinthika zomwe zimatanthauzidwa ndi "const". Zosintha zotere zitha kuperekedwa kamodzi kokha ndipo, zikangoyambitsidwa, sizingasinthidwe.
  • Thandizo lowonjezera pazosintha "ku-kutsekedwa", zomwe zimaperekedwa pogwiritsa ntchito "pafupi" komanso zimafanana ndi zosintha zam'deralo (ndi const attribute), zosiyana ndi zomwe mtengo watsekedwa (njira ya "__close" imatchedwa) nthawi iliyonse ikachoka, mwachitsanzo, Pambuyo pakumaliza kwa chipikacho, kusinthako pogwiritsa ntchito kupuma / goto / kubwerera kapena kutuluka pamene cholakwika chichitika.
  • Type "magwiritsidwe", yomwe imapereka kuthekera kosunga zidziwitso zilizonse za C mumitundu ya Lua (imayimira chipika cha kukumbukira kapena ili ndi C pointer), tsopano ikhoza kukhala ndi zinthu zingapo (kukhala ndi ma metatable angapo).
  • Kukhazikitsa kwatsopano kwa ntchito yopangira manambala achinyengo kumaperekedwa - math.random.
  • Anawonjezera dongosolo la machenjezo omwe amatsimikiziridwa pogwiritsa ntchito mawuwo tchenjezani ndipo, mosiyana ndi zolakwika, sizikhudza kupitilira kwa pulogalamuyo.
  • Adawonjezeranso zowongolera pazokangana zantchito ndi kubweza ma values.
  • Semantics yatsopano yaperekedwa kuti iwerengere zowerengera mu malupu "chifukwa". Chiwerengero cha zobwerezabwereza zimawerengeredwa musanayambe kuzungulira, zomwe zimapewa kusefukira kosiyana ndi kuzungulira. Ngati mtengo woyamba ndi waukulu kuposa mtengo wochepetsera, cholakwika chikuwonetsedwa.
  • Mu ntchito'chingwe.gmatch' anawonjezera mkangano watsopano 'init', womwe umatsimikizira kuti ndi pati pomwe mungayambire kusaka (mwachisawawa, kuchokera pamunthu 1).
  • Zatsopano zowonjezera 'lua_resetthread' (kukhazikitsanso ulusi, kumachotsa zonse zoyimbira ndikutseka zonse "zotsekedwa" ndi 'coroutine.tseka' (amatseka coroutine ndi zonse zogwirizana "zotsekedwa" zosiyana).
  • Ntchito zosinthira zingwe kukhala manambala zasunthidwa ku library "chingwe".
  • Kuyimba ku ntchito yogawa kukumbukira kungalephereke ngati kukula kwa block block kuchepetsedwa.
  • Mu ntchito'chingwe.mtundu' anawonjezera chithandizo cha mtundu watsopano '%p' (polozera yobwezeredwa ndi lua_topointer).
  • Laibulale ya utf8 imapereka chithandizo zilembo zamakhalidwe ndi manambala mpaka 2^31.

Source: opennet.ru

Kuwonjezera ndemanga