Pagpagawas sa Lua 5.4 programming language

Human sa lima ka tuig nga kalamboan magamit buhian Lua 5.4, usa ka paspas ug compact nga scripting programming language nga kaylap nga gigamit isip usa ka embedded language (pananglitan, alang sa pagtino sa configuration o pagsulat extensions). Ang Lua interpreter code gisulat sa C ug giapod-apod sa ubos sa lisensya sa MIT.

Gikombinar ni Lua ang usa ka yano nga procedural syntax nga adunay gamhanang mga kapabilidad sa paghulagway sa datos pinaagi sa paggamit sa mga associative arrays ug extensible semantics sa pinulongan. Gigamit ni Lua ang dinamikong pag-type, pag-convert sa mga construct sa lengguwahe ngadto sa bytecode nga nagdagan sa ibabaw sa virtual nga makina nga gibase sa rehistro nga adunay awtomatik nga pagkolekta sa basura. Ang tighubad mismo gidesinyo isip librarya nga daling maapil sa mga proyekto sa C ug C++ nga mga pinulongan.

nag-unang mga inobasyon:

  • Usa ka bag-ong paagi sa operasyon sa tigkolekta sa basura gipatuman - "pagkamanggihatagon", nga nagdugang sa kaniadto nga magamit nga paagi sa pagkolekta sa basura. Ang bag-ong mode naglakip sa pagpadagan sa usa ka pinamubo nga pag-crawl nga mas kanunay, nga naglangkob sa bag-o lang nga gibuhat nga mga butang. Ang bug-os nga paglatas sa tanan nga mga butang gihimo lamang kung, pagkahuman sa usa ka mubo nga pagbiyahe, dili mahimo nga makab-ot ang gitinguha nga konsumo sa panumduman. Kini nga pamaagi nagtugot kanimo nga makab-ot ang mas taas nga pasundayag ug makunhuran ang pagkonsumo sa memorya kung magtipig daghang daghang mga butang nga mabuhi sa mubo nga panahon.
  • Gidugang ang abilidad sa paghubit sa kanunay nga mga variable nga gihubit sa "const" nga hiyas. Ang ingon nga mga variable mahimo ra i-assign sa makausa ug, sa higayon nga masugdan, dili mausab.
  • Gidugang nga suporta alang sa mga variable "nga-sa-sirado", nga gi-assign gamit ang "close" nga hiyas ug susama sa kanunay nga lokal nga mga variable (uban ang const attribute), nga lahi gikan kanila nga ang kantidad gisira (ang "__close" nga pamaagi gitawag) kung kini mobiya sa sakup, pananglitan, human sa normal nga pagkompleto sa block, transisyon gamit ang break/goto/return o exit kung naay error.
  • Matang "data sa tiggamit", nga naghatag ug katakus sa pagtipig sa bisan unsang C data sa mga variable sa Lua (nagrepresentar sa usa ka bloke sa datos sa memorya o adunay usa ka C pointer), mahimo na nga adunay daghang mga kantidad (adunay daghang mga metatable).
  • Usa ka bag-ong pagpatuman sa function alang sa pagmugna og pseudorandom nga mga numero gipresentar - math.random.
  • Gidugang ang usa ka sistema sa mga pasidaan nga gitino gamit ang ekspresyon nagpasidaan ug, dili sama sa mga kasaypanan, dili makaapekto sa dugang nga pagpatuman sa programa.
  • Gidugang ang kasayuran sa pag-debug bahin sa mga argumento sa function ug mga kantidad sa pagbalik.
  • Usa ka bag-ong semantika ang gisugyot alang sa pag-ihap sa mga integer sa mga galong "alang sa". Ang gidaghanon sa mga pag-uli gikalkulo sa wala pa magsugod ang loop, nga naglikay sa variable overflow ug looping. Kon ang inisyal nga bili mas dako pa kay sa limitasyon nga bili, usa ka sayop ang gipakita.
  • Sa function'string.gmatch' midugang ug usa ka bag-ong opsyonal nga argumento nga 'init', nga nagtino kung asa nga posisyon magsugod sa pagpangita (sa default, gikan sa 1 ka karakter).
  • Bag-ong mga bahin gidugang 'lua_resetthread' (gi-reset ang hilo, gitangtang ang tibuuk nga stack sa tawag ug gisira ang tanan nga "sa-sirado" nga mga variable) ug 'coroutine.close' (gisira ang coroutine ug ang tanan nga kauban nga "to-be-closed" nga mga variable).
  • Ang mga gimbuhaton sa pag-convert sa mga kuwerdas ngadto sa mga numero gibalhin ngadto sa librarya sa "string".
  • Ang mga tawag sa function sa alokasyon sa panumduman mahimo nang mapakyas kung ang gidak-on sa bloke sa panumduman mubu.
  • Sa function'string.format' dugang suporta para sa bag-ong format specifier '%p' (pointer gibalik ni lua_topointer).
  • Ang utf8 librarya naghatag suporta mga code sa karakter nga adunay mga numero hangtod sa 2^31.

Source: opennet.ru

Idugang sa usa ka comment