Π”ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ Π΅ Π΅Π·ΠΈΠΊΡŠΡ‚ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ Lua 5.5

Π‘Π»Π΅Π΄ ΠΏΠ΅Ρ‚ Π³ΠΎΠ΄ΠΈΠ½ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, Π΅ Π½Π°Π»ΠΈΡ‡Π΅Π½ Ρ€Π΅Π»ΠΈΠΉΠ· Π½Π° Lua 5.5, Π±ΡŠΡ€Π· ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π΅Π½ Π΅Π·ΠΈΠΊ Π·Π° скриптиранС, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ ΠΏΡ€ΠΈΠ΄ΠΎΠ±ΠΈΠ» голяма популярност ΠΊΠ°Ρ‚ΠΎ Π²Π³Ρ€Π°Π΄Π΅Π½ Π΅Π·ΠΈΠΊ Π·Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅ ΠΈ писанС Π½Π° Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ. ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° Lua Π΅ написан Π½Π° C ΠΈ сС разпространява ΠΏΠΎΠ΄ лицСнзия MIT.

Lua ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π° прост ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅Π½ синтаксис с Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π·Π° описаниС Π½Π° Π΄Π°Π½Π½ΠΈ Ρ‡Ρ€Π΅Π· асоциативни масиви ΠΈ Ρ€Π°Π·ΡˆΠΈΡ€ΡΠ΅ΠΌΠ° сСмантика Π½Π° Π΅Π·ΠΈΠΊΠ°. Π’ Lua сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½Π° типизация, Π° Π΅Π·ΠΈΠΊΠΎΠ²ΠΈΡ‚Π΅ конструкции сС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Ρ‚ Π² Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡ‚ΠΎ сС изпълнява Π²ΡŠΡ€Ρ…Ρƒ рСгистрова Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° машина с Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅Π½ сбор Π½Π° Π±ΠΎΠΊΠ»ΡƒΠΊΠ°. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΡŠΡ‚ Π΅ ΠΎΡ„ΠΎΡ€ΠΌΠ΅Π½ ΠΊΠ°Ρ‚ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, която ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Π½Π° Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Π½Π° C ΠΈ C++.

Основни нововъвСдСния:

  • Π—Π° ΠΏΠΎ-голямата част ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ ΠΏΠΎ ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅ Π½Π° Π±ΠΎΠΊΠ»ΡƒΠΊΠ° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ, ΠΏΡ€ΠΈ ΠΊΠΎΠΉΡ‚ΠΎ Ρ†ΠΈΠΊΡŠΠ»ΡŠΡ‚ Π½Π° ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅ Π½Π° Π±ΠΎΠΊΠ»ΡƒΠΊΠ° сС раздСля Π½Π° ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ ΡΡ‚ΡŠΠΏΠΊΠΈ, Ρ€Π΅Π΄ΡƒΠ²Π°Ρ‰ΠΈ сС с ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява Π΄Π° сС ΠΈΠ·Π±Π΅Π³Π½Π°Ρ‚ дълги ΠΏΠ°ΡƒΠ·ΠΈ Π² ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° прилоТСнията с ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°.
  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Π° рСализация Π½Π° масиви, изискваща с 60% ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΏΠ°ΠΌΠ΅Ρ‚ Π·Π° масиви с Ρ…ΠΎΠΌΠΎΠ³Π΅Π½Π½ΠΈ Π΄Π°Π½Π½ΠΈ (постига сС икономия Ρ‡Ρ€Π΅Π· записванС Π½Π° информация Π·Π° Ρ‚ΠΈΠΏΠ° Π½Π΅ Π·Π° всСки Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚, Π° Π·Π° Π³Ρ€ΡƒΠΏΠ° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ).
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° явна дСкларация Π½Π° Π³Π»ΠΎΠ±Π°Π»Π½ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅ ΠΊΠΎΠ΄ Ρ‡Ρ€Π΅Π· ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π°Ρ‚Π° Π΄ΡƒΠΌΠ° Β«globalΒ». ΠšΠΎΠ³Π°Ρ‚ΠΎ Π² Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄ ΠΈΠΌΠ° ΠΈΠ·Ρ€Π°Π·ΠΈ със ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π°Ρ‚Π° Π΄ΡƒΠΌΠ° Β«globalΒ», всички ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎ обявСни явно. Ако дСкларация Β«globalΒ» ΠΎΡ‚ΡΡŠΡΡ‚Π²Π°, нСявно сС ΠΏΡ€ΠΈΠ»Π°Π³Π° ΠΈΠ·Ρ€Π°Π·ΡŠΡ‚ Β«global *Β», ΠΏΡ€ΠΈ ΠΊΠΎΠΉΡ‚ΠΎ старото ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ сС Π·Π°ΠΏΠ°Π·Π²Π° ΠΈ всички ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ сС Ρ‚Ρ€Π΅Ρ‚ΠΈΡ€Π°Ρ‚ ΠΊΠ°Ρ‚ΠΎ Π³Π»ΠΎΠ±Π°Π»Π½ΠΈ. Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΈΠ·Ρ€Π°Π·ΡŠΡ‚ Β«global<const> *Β», ΠΏΡ€ΠΈ ΠΊΠΎΠΉΡ‚ΠΎ всички нСявно Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΈ Π³Π»ΠΎΠ±Π°Π»Π½ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ стават Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ Π² Ρ€Π΅ΠΆΠΈΠΌ само Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅. X = 1 β€” Ok, X β€” Π³Π»ΠΎΠ±Π°Π»Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°, старо ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅. do global Y β€” дСкларация Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Y ΠΊΠ°Ρ‚ΠΎ Π³Π»ΠΎΠ±Π°Π»Π½Π°, всички останали ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π² Π±Π»ΠΎΠΊΠ° трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ обявСни явно Y = 1 β€” Ok, ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Y Π΅ ΠΏΡ€Π΅Π΄ΠΈ Ρ‚ΠΎΠ²Π° Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½Π° X = 1 β€” Π“Ρ€Π΅ΡˆΠΊΠ°, ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° X Π½Π΅ Π΅ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½Π° end X = 2 β€” Ok, извън Π±Π»ΠΎΠΊΠ° global с дСйства старото ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.
  • УправляващитС ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, ΡƒΠΊΠ°Π·Π°Π½ΠΈ Π² Ρ†ΠΈΠΊΠ»ΠΈ β€žforβ€œ, Π²Π΅Ρ‡Π΅ са само Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ ΠΈ Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ промСняни Π² тялото Π½Π° Ρ†ΠΈΠΊΡŠΠ»Π°. НапримСр, ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° i, обявСна Π² Ρ†ΠΈΠΊΡŠΠ»Π° β€žfor i = 1, 5 doβ€œ, Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС промСняна Π² тялото Π½Π° Ρ†ΠΈΠΊΡŠΠ»Π°.
  • ΠŸΡ€ΠΈ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° числа с ΠΏΠ»Π°Π²Π°Ρ‰Π° запСтая Ρ‡Ρ€Π΅Π· функцията print сСга сС ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Ρ‚ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Ρ†ΠΈΡ„Ρ€ΠΈ Π·Π° ΠΊΠΎΡ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅ ΠΎΡ‚ Π½ΠΈΠ· Π² ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΎΡ‚ΠΎ прСдставлСниС.
  • Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½ Π΅ допустимият Π±Ρ€ΠΎΠΉ Π½Π° Π½ΠΈΠ²Π°Ρ‚Π° Π½Π° влоТСност Π½Π° конструкторитС Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ функцията table.create(nseq, nrec) Π·Π° добавянС Π½Π° ΠΏΡ€Π°Π·Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½Π° алокация Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚ Π·Π° посочСния Π±Ρ€ΠΎΠΉ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ.
  • Π’ функцията utf8.offset Π΅ осигурСна Π²Ρ€ΡŠΡ‰Π°Π½Π΅Ρ‚ΠΎ Π½Π΅ само Π½Π° Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΡ‚ΠΎ offset Π΄ΠΎ Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° Π·Π½Π°ΠΊΠ°, Π½ΠΎ ΠΈ Π½Π° позицията Π½Π° края Π½Π° Π·Π½Π°ΠΊΠ°.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° създаванС Π½Π° външни Π½ΠΈΠ·ΠΎΠ²Π΅, Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈ Π² ΠΏΠ°ΠΌΠ΅Ρ‚, която Π½Π΅ сС управлява ΠΎΡ‚ ΡΡŠΠ±ΠΈΡ€Π°Ρ‡Π° Π½Π° Π±ΠΎΠΊΠ»ΡƒΠΊ Π½Π° Lua.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ функция luaL_openselectedlibs Π·Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΈΠ·Π±Ρ€Π°Π½Π°Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ функцията luaL_makeseed, която Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° seed-стойност Π·Π° функцията lua_newstate.
  • Π’ lua.c Π΅ осигурСно Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° β€˜readline’, Π°ΠΊΠΎ тя Π΅ Π½Π°Π»ΠΈΡ‡Π½Π° (Π°ΠΊΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° Π΅ Π² систСмата β€” тя сС Π·Π°Ρ€Π΅ΠΆΠ΄Π° ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π·Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°Π½Π΅ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ стават Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ).
  • Π’ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π΅ оптимизация Π·Π° икономия Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΏΡ€ΠΈ Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄ β€” Lua сСга ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠ°ΠΌΠ΅Ρ‚ Π² някои Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈ структури Π±Π΅Π· създаванС Π½Π° Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΈ ΠΏΡ€ΠΈ Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄ΡƒΠ±Π»ΠΈΡ€Π°Ρ‰ сС Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄.
  • ΠžΡΠΈΠ³ΡƒΡ€Π΅Π½ΠΎ Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° всички Π½ΠΈΠ·ΠΎΠ²Π΅ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ β€ždumpβ€œ ΠΈ β€žundumpβ€œ.
  • Π’ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΡ‚Π΅ Π±ΡƒΡ„Π΅Ρ€ΠΈ Π΅ осигурСно ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π±ΡƒΡ„Π΅Ρ€ΠΈΡ‚Π΅ (Π±Π΅Π· ΠΊΠΎΠΏΠΈΡ€Π°Π½Π΅ Π² Π½ΠΎΠ² Π±ΡƒΡ„Π΅Ρ€) ΠΏΡ€ΠΈ създаванС Π½Π° финалния Π½ΠΈΠ·.

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

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster