ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΎ ΠΎΠ± ΠΎΡΠΊΡΡΡΠΈΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ² ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΡΡΠΊΠ° ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Luau, ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡΠ΅Π³ΠΎ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ ΡΠ·ΡΠΊΠ° Lua ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΠ³ΠΎ Ρ Lua 5.1. Π―Π·ΡΠΊ Luau ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π΄Π»Ρ Π²ΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π½Π°ΡΠ΅Π»Π΅Π½ Π½Π° Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΡΠΎΠΊΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ². ΠΠΎΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° ΡΠ·ΡΠΊΠ΅ C++ ΠΈ ΠΎΡΠΊΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ MIT.
Luau ΡΠ°ΡΡΠΈΡΡΠ΅Ρ Lua Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΈΠΏΠΎΠ² ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π½ΠΎΠ²ΡΠΌΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΠΎΠ²ΡΠ΅ Π»ΠΈΡΠ΅ΡΠ°Π»Ρ. Π―Π·ΡΠΊ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ Lua 5.1 ΠΈ ΡΠ°ΡΡΠΈΡΠ½ΠΎ Ρ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΡΠΌΠΈ Π²Π΅ΡΡΠΈΡΠΌΠΈ. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ API Lua Runtime, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Luau Ρ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ°ΠΌΠΈ (binding). Π―Π·ΡΠΊΠΎΠ²ΠΎΠΉ runtime ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ Lua runtime 5.1, Π½ΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π½. ΠΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΠΎΠ²ΡΠ΅ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ²ΡΠΈΠ΅ Π΄ΠΎΠ±ΠΈΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Lua.
ΠΡΠΎΠ΅ΠΊΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Roblox ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΊΠΎΠ΄Π΅ ΠΈΠ³ΡΠΎΠ²ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΠΈΠ³Ρ, ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ Roblox Studio. ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Luau ΡΠ°Π·Π²ΠΈΠ²Π°Π»ΡΡ Π·Π° Π·Π°ΠΊΡΡΡΡΠΌΠΈ Π΄Π²Π΅ΡΡΠΌΠΈ, Π½ΠΎ Π² ΠΈΡΠΎΠ³Π΅ ΡΠ΅ΡΠ΅Π½ΠΎ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ Π΅Π³ΠΎ Π² ΡΠ°Π·ΡΡΠ΄ ΠΎΡΠΊΡΡΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΠΈ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ:
- ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΈΠΏΠΎΠ² (Gradual typing), Π·Π°Π½ΠΈΠΌΠ°ΡΡΠ°Ρ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠ΅ΠΉ. Luau ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ, ΡΠΊΠ°Π·ΡΠ²Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΈΠΏΠ°Ρ ΡΠ΅ΡΠ΅Π· ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ. ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΏΡ «any», «nil», «boolean», «number», «string» ΠΈ «thread». ΠΡΠΈ ΡΡΠΎΠΌ ΡΠΎΡ ΡΠ°Π½Π΅Π½Π° ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ Π±Π΅Π· ΡΠ²Π½ΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΈΠΏΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ. function foo(x: number, y: string): boolean local k: string = y:rep(x) return k == «a» end
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡΡΠΎΠΊΠΎΠ²ΡΡ Π»ΠΈΡΠ΅ΡΠ°Π»ΠΎΠ² (ΠΊΠ°ΠΊ Π² Lua 5.3), ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ «\0x**» (ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ), «\u{**}» (Unicode-ΡΠΈΠΌΠ²ΠΎΠ») ΠΈ «\z» (ΠΊΠΎΠ½Π΅Ρ ΡΡΡΠΎΠΊΠΈ), Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΠ³ΠΎ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ ΡΠΈΡΠ΅Π» (ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ 1_000_000 Π²ΠΌΠ΅ΡΡΠΎ 1000000), Π»ΠΈΡΠ΅ΡΠ°Π»Ρ Π΄Π»Ρ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΡ (0x…) ΠΈ Π΄Π²ΠΎΠΈΡΠ½ΡΡ ΡΠΈΡΠ΅Π» (0b…….).
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ «continue», Π΄ΠΎΠΏΠΎΠ»Π½ΡΡΡΠ΅Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ «break», Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° ΠΊ Π½ΠΎΠ²ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΈΠΊΠ»Π°.
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΎΡΡΠ°Π²Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡ (+=, -=, *=, /=, %=, ^=, ..=).
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ»ΠΎΠ²Π½ΡΡ Π±Π»ΠΎΠΊΠΎΠ²»if-then-else» Π² ΡΠΎΡΠΌΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π²ΡΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠ°. ΠΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ elseif Π² Π±Π»ΠΎΠΊΠ΅. local maxValue = if a > b then a else b local sign = if x < 0 then -1 elseif x > 0 then 1 else 0
- ΠΠ°Π»ΠΈΡΠΈΠ΅ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ (sandbox), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π³ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π½Π΅ Π·Π°ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΉ Π΄ΠΎΠ²Π΅ΡΠΈΠ΅ ΠΊΠΎΠ΄. Π£ΠΊΠ°Π·Π°Π½Π½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π·Π°ΠΏΡΡΠΊΠ° Π±ΠΎΠΊ ΠΎ Π±ΠΎΠΊ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ ΠΊΠΎΠ΄Π° Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π·Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΊΠΎΡΠΎΡΡΡ Π½Π΅Π»ΡΠ·Ρ ΠΏΠΎΡΡΡΠΈΡΡΡΡ.
- ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ΄Π°Π»Π΅Π½Ρ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ «io» (Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ ΠΈ Π·Π°ΠΏΡΡΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²), «package» (Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ ΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ), «os» (ΡΠ΄Π°Π»Π΅Π½Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ), «debug» (Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠ°ΠΌΡΡΡΡ), «dofile» ΠΈ «loadfile» (Π΄ΠΎΡΡΡΠΏ ΠΊ Π€Π‘).
- ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π°, Π²ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ (linter) ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΏΠΎΠ².
- Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΡΠ΅Ρ, ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Π±Π°ΠΉΡΠΊΠΎΠ΄Π° ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ. Luau ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ, Π½ΠΎ ΡΡΠ²Π΅ΡΠΆΠ΄Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Luau Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ Π²ΠΏΠΎΠ»Π½Π΅ ΡΠΎΠΏΠΎΡΡΠ°Π²ΠΈΠΌ ΠΏΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Ρ LuaJIT.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru