Π‘Π»Π΅Π΄ Π΄Π²Π΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, Π½Π° 29 юни Ρ‚ΠΈΡ…ΠΎ ΠΈ Π½Π΅Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΠΌΠΎ бСшС пусната Π½ΠΎΠ²Π° вСрсия Π½Π° Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ Lua, 5.4.

Lua Π΅ прост, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€Π°Π½ Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ лСсно Π΄Π° бъдС Π²Π³Ρ€Π°Π΄Π΅Π½ Π² прилоТСния. Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° Ρ‚Π΅Π·ΠΈ качСства Lua сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΊΠ°Ρ‚ΠΎ Π΅Π·ΠΈΠΊ Π·Π° Ρ€Π°Π·ΡˆΠΈΡ€ΡΠ²Π°Π½Π΅ ΠΈΠ»ΠΈ описаниС Π½Π° конфигурацията Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ (ΠΏΠΎ-спСциално ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π½ΠΈ ΠΈΠ³Ρ€ΠΈ). Lua Ρ‰Π΅ сС разпространява ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·Π° Π½Π° MIT.

ΠŸΡ€Π΅Π΄ΠΈΡˆΠ½Π°Ρ‚Π° вСрсия (5.3.5) бСшС пусната Π½Π° 10 юли 2018 Π³.

Основни ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² Π½ΠΎΠ²Π°Ρ‚Π° вСрсия

  • Π½ΠΎΠ² ΡΡŠΠ±ΠΈΡ€Π°Ρ‡ Π½Π° Π±ΠΎΠΊΠ»ΡƒΠΊ, Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° поколСния (generation). Π’ΡŠΠ² функцията collectgarbage ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ setpause ΠΈ setstepmul са ΠΎΡ‚Ρ…Π²ΡŠΡ€Π»Π΅Π½ΠΈ ΠΈ вмСсто тях сС ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π° инкрСмСнталният ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€;

  • Π½ΠΎΠ²Π° функция Π·Π° ΠΈΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅Π΄ΠΈΡ‚Π΅Π»Π½ΠΈ прСдупрСТдСния с Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅Ρ‚ΠΎ ΠΈΠΌ;

  • Π½ΠΎΠ²Π°Ρ‚Π° рСализация Π½Π° math.random ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΠ° xoshiro256** вмСсто прСдоставСния ΠΎΡ‚ libc ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€Π° Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΎ число;

  • постоянни ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ;

  • β€žto-be-closedβ€œ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡ‚Π΅ са Π»ΠΎΠΊΠ°Π»Π½ΠΈ константи, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΡŠΡ‚ __close сС изпълнява ΠΏΡ€ΠΈ ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅ ΠΎΡ‚ ΠΎΠ±Ρ…Π²Π°Ρ‚Π°;

  • Π½ΠΎΠ²Π° функция lua_resetthread - изчиства стСка ΠΈ затваря всички "Π·Π°Ρ‚Π²ΠΎΡ€Π΅Π½ΠΈ" ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ;

  • Π½ΠΎΠ²Π° функция coroutine.close - затваря ΡƒΠΊΠ°Π·Π°Π½Π°Ρ‚Π° ΡΡŠΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° ΠΈ всички Π½Π΅ΠΉΠ½ΠΈ "затваряСми" ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ;

  • потрСбитСлскитС Π΄Π°Π½Π½ΠΈ (userdata) ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‚ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ стойности, Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ Ρ‡Ρ€Π΅Π· индСкс. Π’ΡŠΠ²Π΅Π΄Π΅Π½ΠΈ са Π½ΠΎΠ²ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с тях: lua_newuserdatauv, lua_setiuservalue ΠΈ lua_getiuservalue;

  • Π½Π°Π»ΠΈΡ‡Π½Π° Π΅ информация Π·Π° отстраняванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ относно ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ ΠΈ Π²Ρ€ΡŠΡ‰Π°Π½ΠΈΡ‚Π΅ стойности Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅;

  • Π°ΠΊΠΎ Π² for Ρ†ΠΈΠΊΡŠΠ»Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° цСлочислСн индСкс ΠΈ възникнС ΠΏΡ€Π΅ΠΏΡŠΠ»Π²Π°Π½Π΅, Ρ†ΠΈΠΊΡŠΠ»ΡŠΡ‚ Π·Π°Π²ΡŠΡ€ΡˆΠ²Π°;

  • Π΄ΠΎΠ±Π°Π²ΠΈ Π½Π΅Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π΅Π½ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ към функцията string.gmatch, ΠΊΠΎΠΉΡ‚ΠΎ ΡƒΠΊΠ°Π·Π²Π° отмСстванСто ΠΎΡ‚ Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° Π½ΠΈΠ·Π° Π·Π° Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ Π½Π° съвпадСния;

  • Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π·Π° нСявно ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ Π² числа бяха прСмСстСни Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° с Π½ΠΈΠ·ΠΎΠ²Π΅, ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΈΠΌ сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ. НапримСр Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ ΠΎΡ‚ опСрацията "1" + "2" Π²Π΅Ρ‡Π΅ Π΅ цяло число, Π° Π½Π΅ число с ΠΏΠ»Π°Π²Π°Ρ‰Π° запСтая;

  • във функцията Π·Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° ΠΌΠΎΠΆΠ΅ Π΄Π° възникнС Π³Ρ€Π΅ΡˆΠΊΠ°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π±Π»ΠΎΠΊ ΠΏΠ°ΠΌΠ΅Ρ‚ бъдС Π½Π°ΠΌΠ°Π»Π΅Π½;

  • Π½ΠΎΠ² символ Π·Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€Π°Π½Π΅ във функцията string.format - %p (Π·Π° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ);

  • Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° utf8 ΠΏΡ€ΠΈΠ΅ΠΌΠ° символни ΠΊΠΎΠ΄ΠΎΠ²Π΅ Π΄ΠΎ 2Β³ΒΉ (ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π΅ посочСн спСциалСн Ρ„Π»Π°Π³, Π±Π΅Π· Π½Π΅Π³ΠΎ са Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈ само ΠΊΠΎΠ΄ΠΎΠ²Π΅ Π΄ΠΎ 0x10FFFF ΠΈ сурогатитС Π½Π΅ са Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈ);

  • цСлочислСни константи, ΠΊΠΎΠΈΡ‚ΠΎ са извън ΠΎΠ±Ρ…Π²Π°Ρ‚Π° Π½Π° стойноститС, сС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Ρ‚ Π² ΠΏΠ»Π°Π²Π°Ρ‰ΠΈ числа (ΠΏΡ€Π΅Π΄ΠΈ Ρ‚ΠΎΠ²Π° Π΅ Π½Π°ΡΡ‚ΡŠΠΏΠΈΠ»ΠΎ изрязванС Π½Π° Π±ΠΈΡ‚ΠΎΠ²Π΅);

  • ΠΌΠ΅Ρ‚Π°ΠΌΠ΅Ρ‚ΠΎΠ΄ΡŠΡ‚ __lt Π²Π΅Ρ‡Π΅ Π½Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π΅ΠΌΡƒΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΌΠ΅Ρ‚Π°ΠΌΠ΅Ρ‚ΠΎΠ΄Π° __le, Π°ΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, ΠΌΠ΅Ρ‚Π°ΠΌΠ΅Ρ‚ΠΎΠ΄ΡŠΡ‚ __le трябва Π΄Π° бъдС Π·Π°Π΄Π°Π΄Π΅Π½ ΠΈΠ·Ρ€ΠΈΡ‡Π½ΠΎ;

  • Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ Π·Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ goto Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС създадСн, Π°ΠΊΠΎ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ със ΡΡŠΡ‰ΠΎΡ‚ΠΎ ΠΈΠΌΠ΅ Π²Π΅Ρ‡Π΅ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° Π² тСкущия ΠΎΠ±Ρ…Π²Π°Ρ‚ (Π΄ΠΎΡ€ΠΈ Π°ΠΊΠΎ Π΅ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ във външния ΠΎΠ±Ρ…Π²Π°Ρ‚);

  • ΠΌΠ΅Ρ‚Π°ΠΌΠ΅Ρ‚ΠΎΠ΄ΡŠΡ‚ __gc ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ просто функция. Ако ΠΎΠΏΠΈΡ‚ΡŠΡ‚ Π·Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π΅ Π½Π΅ΡƒΡΠΏΠ΅ΡˆΠ΅Π½, Ρ‰Π΅ сС ΠΏΠΎΠΊΠ°ΠΆΠ΅ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅;

  • функцията Π·Π° ΠΏΠ΅Ρ‡Π°Ρ‚ Π½Π΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π° tostring Π·Π° всСки Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚, Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° свои собствСни Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈ трансформации;

  • функцията io.lines Π²Ρ€ΡŠΡ‰Π° Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Ρ‡Π΅Ρ‚ΠΈΡ€ΠΈ стойности вмСсто Π΅Π΄Π½Π°, Π·Π° Π΄Π° ΠΏΠΎΠ΄Ρ€Π°ΠΆΠ°Π²Π° Π½Π° старото ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΠΎΠ³Ρ€Π°Π΄Π΅Ρ‚Π΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ Π² скоби, Π°ΠΊΠΎ Π³ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΊΠ°Ρ‚ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Ρ‚Π΅ Π΄Ρ€ΡƒΠ³Π° функция.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: linux.org.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€