LuaVela: LuaJIT 2.0 рдкрд░ рдЖрдзрд╛рд░рд┐рдд Lua 5.1 рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рд╣рдордиреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░рд┐рд▓реАрдЬ рдХреА рдШреЛрд╖рдгрд╛ рдХреА рдФрд░ Mua рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд рдЦреЛрд▓рд╛ LuaVela рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб - Lua 5.1 рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, LuaJIT 2.0 рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рд╣рдордиреЗ 2015 рдореЗрдВ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдФрд░ 2017 рдХреА рд╢реБрд░реБрдЖрдд рддрдХ рдХрдВрдкрдиреА рдХреЗ 95% рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдЕрдм рдореИрдВ рдпрд╛рддреНрд░рд╛ рдХреЗ рдорд╛рд░реНрдЧ рдкрд░ рд╡рд╛рдкрд╕ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдХрд┐рди рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдиреЗ рд╣рдореЗрдВ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЗ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛? рд╣рдордиреЗ рдХрд┐рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рдФрд░ рд╣рдордиреЗ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛? рдХреИрд╕реЗ LuaVela рдЕрдиреНрдп LuaJIT рдХрд╛рдВрдЯреЗ рд╕реЗ рдЕрд▓рдЧ рд╣реИ?

рдкреНрд░рд╛рдЧрд┐рддрд┐рд╣рд╛рд╕


рдпрд╣ рдЕрдиреБрднрд╛рдЧ рд╣рд╛рдИрд▓рд╛рдЗрдб ++ рдкрд░ рд╣рдорд╛рд░реА рд░рд┐рдкреЛрд░реНрдЯ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рд╣рдордиреЗ 2008 рдореЗрдВ рдЕрдкрдиреЗ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд▓реВрдЖ рдХрд╛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рд╡реИрдирд┐рд▓рд╛ рд▓реБрдЖ рдерд╛, рдФрд░ 2009 рдХреЗ рдмрд╛рдж рд╕реЗ - рд▓реБрдЖрдЬрд┐рдЯред рдЖрд░рдЯреАрдмреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдиреЗ рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрдВрдЧ рдврд╛рдВрдЪрд╛ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рднрд╛рд╖рд╛ рдХреЗ рддреЗрдЬреА рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рд╕рдВрдХреНрд░рдордг рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рдФрд░, рдХреБрдЫ рдмрд┐рдВрджреБ рд╕реЗ, рдЖрд╡рд╢реНрдпрдХ рд╕рдорд╛рдзрд╛рди рдерд╛ред

рд╕рдордп рдХреЗ рд╕рд╛рде, рд╣рдордиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ LuaJIT рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреА рдХреБрдЫ рд╕реАрдорд╛рдПрдБ рдереАрдВред рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рдереА рдХрд┐ LuaJIT 2.0 рд╕рдЦреНрддреА рд╕реЗ 32-рдмрд┐рдЯ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рд╣рдореЗрдВ рдПрдХ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд▓реЗ рдЬрд╛рдпрд╛ рдЧрдпрд╛, рдЬрд╣рд╛рдВ 64-рдмрд┐рдЯ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдЪрд▓рдиреЗ рд╕реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдореЛрд░реА рдХреЗ рд╡рд░реНрдЪреБрдЕрд▓ рдПрдбреНрд░реЗрд╕ рд╕реНрдкреЗрд╕ рдХрд╛ рдЖрдХрд╛рд░ рдПрдХ рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рддрдХ рд╕реАрдорд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдХреЗ рдмрд╛рдж рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ, рдпрд╣ рд╕реАрдорд╛ рджреЛ рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рддрдХ рдмрдврд╝ рдЧрдИ рдереА):

/* MAP_32BIT    4  x86-64: */ void *ptr = mmap((void *)MMAP_REGION_START, size, MMAP_PROT, MAP_32BIT | MMAP_FLAGS, -1, 0); 

рдпрд╣ рд╕реАрдорд╛ рдПрдХ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рдмрди рдЧрдИ - 2015 рддрдХ, 1-2 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдореЗрдореЛрд░реА рдмрдВрдж рд╣реЛ рдЧрдИ, рдЬреЛ рдХрд┐ рдХрдИ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдереА рдЬреЛ рд▓реЙрдЬрд┐рдХ рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдерд╛ред рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рд▓реБрдЖ рдЖрднрд╛рд╕реА рдорд╢реАрди рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рдЙрджрд╛рд╣рд░рдг рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб рд╣реИ рдФрд░ рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рдХреИрд╕реЗ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдП - рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдПрдХ рдореЗрдореЛрд░реА рд╕рд╛рдЗрдЬ 2GB / n рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛрдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдХрд░ рд╕рдХрддреА рд╣реИ, рдЬрд╣рд╛рдВ n рд╣рдорд╛рд░реЗ рд╕рд░реНрд╡рд░ рдХреЗ рдХрд╛рд░реНрдп рдкреНрд░рд╡рд╛рд╣ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВред

рд╣рдо рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрдИ рд╕рдорд╛рдзрд╛рдиреЛрдВ рд╕реЗ рдЧреБрдЬрд░реЗ: рд╣рдордиреЗ рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдореЗрдВ рдереНрд░реЗрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрдо рдХрд░ рджреА, LuaJIT FFI рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, LuaJIT 2.1 рдХреЗ рд▓рд┐рдП рд╕рдВрдХреНрд░рдордг рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЗрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рд╕рднреА рдпрд╛ рддреЛ рдЖрд░реНрдерд┐рдХ рд░реВрдк рд╕реЗ рдиреБрдХрд╕рд╛рдирджреЗрд╣ рдереЗ рдпрд╛ рд▓рдВрдмреЗ рд╕рдордп рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдирд╣реАрдВ рдереЗред рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдмрдЪреА рд╣реБрдИ рдереА рдХрд┐ рд╣рдо рдПрдХ рдореМрдХрд╛ рд▓реЗрдВ рдФрд░ LuaJIT рдХреЛ рдХрд╛рдВрдЯреЗред рдЗрд╕ рд╕рдордп, рд╣рдордиреЗ рдРрд╕реЗ рдирд┐рд░реНрдгрдп рд▓рд┐рдП рдЬреЛ рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рднрд╛рдЧреНрдп рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдордиреЗ рддреБрд░рдВрдд LuaJIT рдХреЗ рд╕реНрдерд╛рдкрддреНрдп рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЗ рд╣реБрдП рднрд╛рд╖рд╛ рдХреЗ рд╡рд╛рдХреНрдп-рд╡рд┐рдиреНрдпрд╛рд╕ рдФрд░ рд╢рдмреНрджрд╛рд░реНрде рдореЗрдВ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЬреЛ рдХрдВрдкрдиреА рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╕реНрдпрд╛ рдмрди рдЧрдИред рдмреЗрд╢рдХ, рдЬреИрд╕реЗ рд╣реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡рд┐рдХрд╕рд┐рдд рд╣реБрдИ, рд╣рдордиреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЬреЛрдбрд╝рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ (рд╣рдо рдиреАрдЪреЗ рдЗрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВрдЧреЗ) - рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдорд╛рдирдХ рднрд╛рд╖рд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реЗ рд╕рднреА рдирдП рдПрдкреАрдЖрдИ рдХреЛ рдЕрд▓рдЧ рдХрд░ рджрд┐рдпрд╛ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдордиреЗ рд╣рдорд╛рд░реЗ рдХреЗрд╡рд▓ рдЙрддреНрдкрд╛рджрди рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд▓рд┐рдирдХреНрд╕ x86-64 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд░реНрдпрд╛рдкреНрдд рдорд╛рддреНрд░рд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕рдВрд╕рд╛рдзрди рдирд╣реАрдВ рдереЗ рдЬреЛ рд╣рдо рдордВрдЪ рдкрд░ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рдереЗред

рдордВрдЪ рдХреЗ рд╣реБрдб рдХреЗ рдиреАрдЪреЗ рдПрдХ рддреНрд╡рд░рд┐рдд рдирдЬрд╝рд░


рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╕рдВрдХреЗрдд рдХреЗ рдЖрдХрд╛рд░ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рдХрд╣рд╛рдВ рд╕реЗ рдЖрддрд╛ рд╣реИред рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реБрдЖ 5.1 рдореЗрдВ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рдХрд╛рд░ (рдХреБрдЫ рдорд╛рдореВрд▓реА рдХреИрд╡рд┐рдЯреНрд╕ рдХреЗ рд╕рд╛рде) рд╕реА рдкреНрд░рдХрд╛рд░ рдбрдмрд▓ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ IEEE 754 рдорд╛рдирдХ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдбрдмрд▓ рдкрд░рд┐рд╢реБрджреНрдзрддрд╛ рдкреНрд░рдХрд╛рд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред рдЗрд╕ 64-рдмрд┐рдЯ рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдореЗрдВ, рдорд╛рдиреЛрдВ рдХреА рд╢реНрд░реЗрдгреА рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЗ рд▓рд┐рдП рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХреА рдЧрдИ рд╣реИред NaNред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╕реАрдорд╛ рдореЗрдВ рдХреЛрдИ рдорд╛рди [0xFFF8000000000000; 0xFFFFFFFFFFFFFFFF]ред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдПрдХ рдПрдХрд▓ 64-рдмрд┐рдЯ рдореВрд▓реНрдп рдореЗрдВ рдПрдХ "рд╡рд╛рд╕реНрддрд╡рд┐рдХ" рдбрдмрд▓-рд╕рдЯреАрдХ рд╕рдВрдЦреНрдпрд╛, рдпрд╛ рдХреБрдЫ рдЗрдХрд╛рдИ рдХреЛ рдкреИрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдЯрд╛рдЗрдк рдбрдмрд▓ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ NaN рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЬрд╛рдПрдЧреА, рдФрд░ рд╣рдорд╛рд░реЗ рдордВрдЪ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдпрд╣ рдХреБрдЫ рд╕рд╛рд░реНрдердХ рд╣реЛрдЧрд╛ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдкреНрд░рдХрд╛рд░ (рдЙрдЪреНрдЪ 32 рдмрд┐рдЯреНрд╕) рдФрд░ рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ (рдХрдо 32 рдмрд┐рдЯреНрд╕):

 union TValue { double n; struct object { void *payload; uint32_t type; } o; }; 

рдЗрд╕ рддрдХрдиреАрдХ рдХреЛ рдХрднреА-рдХрднреА NaN рдЯреИрдЧрд┐рдВрдЧ (рдпрд╛ NaN рдмреЙрдХреНрд╕рд┐рдВрдЧ) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ TValue рдореВрд▓ рд░реВрдк рд╕реЗ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ LuaJIT рдХреИрд╕реЗ Lua рдореЗрдВ рдЪрд░ рдорд╛рдиреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред TValue рдореЗрдВ рдПрдХ рддреАрд╕рд░реЗ рд╣рд╛рдЗрдкреЛрд╕реНрдЯреИрд╕рд┐рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ Lua рд╕реНрдЯреИрдХ рдХреЛ рд░рд┐рд╡рд╛рдЗрдВрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдпрд╛рдиреА рдЕрдВрддрд┐рдо рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдореЗрдВ, рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:

 union TValue { double n; struct object { void *payload; uint32_t type; } o; struct frame { void *func; uintptr_t link; } f; }; 

рдКрдкрд░ рджреА рдЧрдИ рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рдлреНрд░реЗрдо.рд▓рд┐рдВрдХ рдХреНрд╖реЗрддреНрд░ uintptr_t рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдпрд╣ рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЕрдиреНрдп рдореЗрдВ рдпрд╣ рдкреВрд░реНрдгрд╛рдВрдХ рд╣реИред рдкрд░рд┐рдгрд╛рдо рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд╕реНрдЯреИрдХ рдХрд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рдХреЙрдореНрдкреИрдХреНрдЯ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╣реИ - рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдПрдХ рдЯреАрд╡реАрдПрд▓реНрдпреВ рд╕рд░рдгреА рд╣реИ, рдФрд░ рд╕рд░рдгреА рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЛ рдпрд╛ рддреЛ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдлрд┐рд░ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рдкреЙрдЗрдВрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╛ рд▓реБрдЖ-рд╕реНрдЯреИрдХ рдХреЗ рдлреНрд░реЗрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд░реВрдк рдореЗрдВред

рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рд╣рдордиреЗ LuaJIT рдХреЗ рд╕рд╛рде рдЗрд╕ Lua рдХреЛрдб рдХреА рд╢реБрд░реБрдЖрдд рдХреА рдФрд░ рдкреНрд░рд┐рдВрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рдПрдХ рд╡рд┐рд░рд╛рдо рдмрд┐рдВрджреБ рд╕реЗрдЯ рдХрд┐рдпрд╛:

 local function foo(x) print("Hello, " .. x) end local function bar(a, b) local n = math.pi foo(b) end bar({}, "Lua") 

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ Lua рд╕реНрдЯреИрдХ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

LuaJIT 2.0 рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рд▓реБрдЖ рд╕реНрдЯреИрдХ

рдФрд░ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЬреИрд╕реЗ рд╣реА рд╣рдо x86-64 рдкрд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рддрдХрдиреАрдХ рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рд▓рдЧрддреА рд╣реИред рдпрджрд┐ рд╣рдо 32-рдмрд┐рдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдЧрддрддрд╛ рдореЛрдб рдореЗрдВ рдЪрд▓рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдКрдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдПрдордПрдордПрдкреА рдкреНрд░рддрд┐рдмрдВрдз рдХреЗ рдЦрд┐рд▓рд╛рдл рдЖрд░рд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдФрд░ 64-рдмрд┐рдЯ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдХреНрдпрд╛ рдХрд░реЗрдВ? рдореЗрд░реЗ рдкрд╛рд╕ рдЬреЛ рд╕рдорд╕реНрдпрд╛ рдереА рдЙрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

  1. TValue рдХреЛ 64 рд╕реЗ 128 рдмрд┐рдЯреНрд╕ рддрдХ рдмрдврд╝рд╛рдПрдВ: рдЗрд╕ рддрд░рд╣ рд╣рдореЗрдВ 64-рдмрд┐рдЯ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ "рдИрдорд╛рдирджрд╛рд░" рд╢реВрдиреНрдп рдорд┐рд▓рддрд╛ рд╣реИред
  2. рддрджрдиреБрд╕рд╛рд░ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЛрдб рдХреЛ рдареАрдХ рдХрд░реЗрдВред
  3. рдЬреЗрдЖрдИрдЯреА рдХрдВрдкрд╛рдЗрд▓рд░ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░реЗрдВред

рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдХреБрд▓ рдорд╛рддреНрд░рд╛ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рдЧрдИ рдФрд░ рд╣рдореЗрдВ рдореВрд▓ LuaJIT рд╕реЗ рдЕрд▓рдЧ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ред рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ TValue рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред LuaJIT 2.1 рдореЗрдВ, рд╣рдо LJ_GC64 рдореЛрдб рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдХреЗ рджреВрд╕рд░реЗ рд░рд╛рд╕реНрддреЗ рдкрд░ рдЪрд▓реЗ рдЧрдПред рдкреАрдЯрд░ рдХрд╛рд╡рд▓реА, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдСрдкрд░реЗрд╢рди рдХреЗ рдЗрд╕ рддрд░реАрдХреЗ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдпреЛрдЧрджрд╛рди рджрд┐рдпрд╛, рд▓рдВрджрди рдореЗрдВ рдПрдХ рдмреИрдардХ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рд╛ред рд▓реБрд╡рд╛рд╡реЗрд▓рд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рд╣реА рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕реНрдЯреИрдХ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

LuaVela рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд▓реБрдЖ рд╕реНрдЯреИрдХ

рдкрд╣рд▓реА рд╕рдлрд▓рддрд╛рдУрдВ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд╕реНрдерд┐рд░реАрдХрд░рдг


рд╕рдХреНрд░рд┐рдп рд╡рд┐рдХрд╛рд╕ рдХреЗ рдорд╣реАрдиреЛрдВ рдХреЗ рдмрд╛рдж, рдпрд╣ рдпреБрджреНрдз рдореЗрдВ LuaVela рдХреЛ рдЖрдЬрд╝рдорд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд░реВрдк рдореЗрдВ, рд╣рдордиреЗ рдореЗрдореЛрд░реА рдЦрдкрдд рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдЪреБрдирд╛: рдбреЗрдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЙрдиреНрд╣реЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рдерд╛, рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ 1 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рд╡рд┐рднрд┐рдиреНрди рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдкрд╣рд▓реЗ рдкрд░рд┐рдгрд╛рдо рдЙрддреНрд╕рд╛рд╣рдЬрдирдХ рдереЗ: LuaVela рд╕реНрдерд┐рд░ рдерд╛ рдФрд░ рдЗрди рд╕рдорд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ LuaJIT рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рджрд┐рдЦрд╛рдпрд╛ред

рдЙрд╕реА рд╕рдордп, рдкрд░реАрдХреНрд╖рдг рдХрд╛ рд╕рд╡рд╛рд▓ рдЦрдбрд╝рд╛ рд╣реБрдЖред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рд╣рдореЗрдВ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░рдирд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдкрд╣рд▓реЗ рджрд┐рди рд╕реЗ, рдордЪрд╛рди рд╕рд░реНрд╡рд░ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдерд╛:

  • рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдХреЗ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдФрд░ рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг рдЬреЛ рд╕рднреА рдХрдВрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВред
  • рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдкрд░реАрдХреНрд╖рдгред

рдЬреИрд╕рд╛ рдХрд┐ рдЕрднреНрдпрд╛рд╕ рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ, рдпреЗ рд╕рдВрд╕рд╛рдзрди рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдереЗ рдФрд░ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдиреНрдпреВрдирддрдо рд╕реНрдерд┐рд░ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд▓рд╛рдП (рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рджреЗрд╡ рд╡рд┐рдзрд╛рдирд╕рднрд╛ - рдордВрдЪрди рдХреЗ рд▓рд┐рдП рд░реЛрд▓ рдЖрдЙрдЯ рдХрд┐рдпрд╛ - рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рджреБрд░реНрдШрдЯрдирд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ)ред рджреВрд╕рд░реА рдУрд░, рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкрд░реАрдХреНрд╖рдг рд▓рдВрдмреА рдЕрд╡рдзрд┐ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдкрдпреБрдХреНрдд рдереЗ: рдЗрд╕ рддрд░рд╣ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреА рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЕрдкрдирд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╕реАрдзреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рдХрдореА рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдЦреЛрдЬ рдФрд░ рд╕реБрдзрд╛рд░ рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░рддреА рд╣реИред

рдПрдХ рдЖрджрд░реНрд╢ рджреБрдирд┐рдпрд╛ рдореЗрдВ, рд╣рдо рди рдХреЗрд╡рд▓ рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ, рдмрд▓реНрдХрд┐ рдЙрди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рднреА рд╣реИ рдЬреЛ рд╣рдореЗрдВ рднрд╛рд╖рд╛ рдХреЗ рд╢рдмреНрджрд╛рд░реНрде рдХреЗ рдЦрд┐рд▓рд╛рдл рдЗрд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВрдЧреЗред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдХреБрдЫ рдирд┐рд░рд╛рд╢рд╛ рдиреЗ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдорд╛рд░реА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреАред рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рд▓реБрдЖ рд╕рдореБрджрд╛рдп рд╕реНрд╡реЗрдЪреНрдЫрд╛ рд╕реЗ рдореМрдЬреВрджрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдХрд╛рдВрдЯреЗ рдмрдирд╛рддрд╛ рд╣реИ, рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЬрдм рддрдХ, рд╕рддреНрдпрд╛рдкрди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рдПрдХ рд╕рдорд╛рди рд╕реЗрдЯ рдЧрд╛рдпрдм рдерд╛ред рд╕реНрдерд┐рддрд┐ рддрдм рдмреЗрд╣рддрд░ рд╣реБрдИ рдЬрдм 2018 рдХреЗ рдЕрдВрдд рдореЗрдВ, рдлреНрд░рд╛рдВрд╕реНрд╡рд╛ рдкреЗрд░реИрдб рдиреЗ рд▓реБрдЖ-рд╣рд╛рд░реНрдиреЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдШреЛрд╖рдгрд╛ рдХреАред

рдЕрдВрдд рдореЗрдВ, рд╣рдордиреЗ рд▓реБрдУ рдЗрдХреЛрд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕рдмрд╕реЗ рдкреВрд░реНрдг рдФрд░ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдХреЗ рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛:

  • рднрд╛рд╖рд╛ рдХреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рд▓реБрдЖ 5.1 рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦреЗ рдЧрдП рдкрд░реАрдХреНрд╖рдг ред
  • LuaJIT рд▓реЗрдЦрдХ рдорд╛рдЗрдХ рдкрд╛рд▓ рджреНрд╡рд╛рд░рд╛ рд╕рдореБрджрд╛рдп рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдЯреЗрд╕реНрдЯ ред
  • рд▓реБрдЖ рд╣рд╛рд░реНрдиреЗрд╕
  • рд╕рд░реНрди рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХреА рдЬрд╛ рд░рд╣реА рдПрдордПрдбреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рдПрдХ рд╕рдмрд╕реЗрдЯред
  • IPONWEB рдореЗрдВ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рджреЛ рд╕реЗрдЯ рдФрд░ рдЕрдм рддрдХ рдлрд┐рд░ рд╕реЗ рднрд░рдирд╛ рдЬрд╛рд░реА рд╣реИ: рдПрдХ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП, рджреВрд╕рд░рд╛ C API рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП cmocka рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдФрд░ рд╡рд╣ рд╕рдм рдЬрд┐рд╕рдореЗрдВ Lua рдХреЛрдб рд╕реНрддрд░ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдЕрднрд╛рд╡ рд╣реИред

рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдмреИрдЪ рдХреА рд╢реБрд░реВрдЖрдд рдиреЗ рд╣рдореЗрдВ 2-3 рдорд╣рддреНрд╡рдкреВрд░реНрдг рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдФрд░ рд╕рд╣реА рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА - рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдиреЗ рднреБрдЧрддрд╛рди рдХрд┐рдпрд╛ред рдФрд░ рдпрджреНрдпрдкрд┐ рднрд╛рд╖рд╛ рд░рдирдЯрд╛рдЗрдореНрд╕ рдФрд░ рдХрдВрдкрд╛рдЗрд▓рд░реНрд╕ (рд╕реНрдереИрддрд┐рдХ рдФрд░ рдЧрддрд┐рд╢реАрд▓ рджреЛрдиреЛрдВ) рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХрд╛ рд╡рд┐рд╖рдп рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрд╕реАрдо рд╣реИ, рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рдордиреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕реНрдерд┐рд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдареЛрд╕ рдЖрдзрд╛рд░ рджрд┐рдпрд╛ рд╣реИред рд╣рдордиреЗ рдорд╛рд╕реНрдХреЛ рдХреЗ 2017 рдореЗрдВ рдФрд░ рд╣рд╛рдИрд▓реЛрдЕрдб ++ 2018 рдореЗрдВ рд▓реБрдЖ рдореЗрдВ рджреЛ рдмрд╛рд░ рд▓реБрдЖ рдХреЗ рд╣рдорд╛рд░реЗ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди (рдкрд░реАрдХреНрд╖рдг рдмреЗрдВрдЪ рдФрд░ рдкреЛрд╕реНрдЯрдореЙрд░реНрдЯрдо рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рд╖рдпреЛрдВ рд╕рд╣рд┐рдд) рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдереАред рдЦреИрд░, рд╣рдорд╛рд░реА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рджреЗрдЦреЗрдВ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗред

рдирдИ рд╕реБрд╡рд┐рдзрд╛рдПрдБ


рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдордиреЗ рдЕрдкрдиреЗ рдирд┐рдкрдЯрд╛рди рдореЗрдВ рд▓рд┐рдирдХреНрд╕ x86-64 рдХреЗ рд▓рд┐рдП Lua 5.1 рдХрд╛ рдПрдХ рд╕реНрдерд┐рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд┐рдпрд╛ рдерд╛, рдЬрд┐рд╕реЗ рдПрдХ рдЫреЛрдЯреА рдЯреАрдо рдХреА рд╢рдХреНрддрд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рдзреАрд░реЗ-рдзреАрд░реЗ LuaJIT рд╡рд┐рд░рд╛рд╕рдд рдФрд░ рд╕рдВрдЪрд┐рдд рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рдХреЛ "рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓" рдХрд░рддрд╛ рдерд╛ред рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ, рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдФрд░ рди рддреЛ рд╡реЗрдирд┐рд▓рд╛ рд▓реБрдЖ рдореЗрдВ рдФрд░ рди рд╣реА рд▓реБрдЬрд┐рдЯ рдореЗрдВ рдРрд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛, рд▓реЗрдХрд┐рди рдЬреЛ рд╣рдореЗрдВ рдЕрдиреНрдп рджрдмрд╛рдиреЗ рд╡рд╛рд▓реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧреА, рдХрд╛рдлреА рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд╣реЛ рдЧрдИред

рд╕рднреА рдПрдХреНрд╕рдЯреЗрдВрд╢рдиреЛрдВ рдХрд╛ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдЖрд░рдПрд╕рдЯреА рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдПрдЪрдЯреАрдПрдордПрд▓ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдиреАрдп рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП cmakeред && рдбреЙрдХреНрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ)ред рдЗрд╕ рд▓рд┐рдВрдХ рдкрд░ Lua API рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдкреВрд░рд╛ рд╡рд┐рд╡рд░рдг рдФрд░ рдЗрд╕ рдкрд░ C API рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдПрдХ рд╕рдореАрдХреНрд╖рд╛ рд▓реЗрдЦ рдореЗрдВ рд╕рдм рдХреБрдЫ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣рд╛рдВ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрд╛рд░реНрдпреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ:

  • DataState - рд▓реБрдЖ рдЖрднрд╛рд╕реА рдорд╢реАрдиреЛрдВ рдХреЗ рдХрдИ рд╕реНрд╡рддрдВрддреНрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рддрдХ рд╕рд╛рдЭрд╛ рдкрд╣реБрдВрдЪ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред
  • рдХреЛрд░рдЯрд╛рдЗрди рдХреЗ рд▓рд┐рдП рдПрдХ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕реЗрдЯ рдХрд░рдиреЗ рдФрд░ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдмрд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛ рдЗрд╕рдХреЗ рдореБрдХрд╛рдмрд▓реЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓рддреЗ рд╣реИрдВред
  • JIT рдХрдВрдкрд╛рдЗрд▓рд░ рдЕрдиреБрдХреВрд▓рди рдХрд╛ рдПрдХ рд╕реЗрдЯ рдЬрд┐рд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рдХреЙрдкреА рдХрд░рддреЗ рд╕рдордп рдирд┐рд╢рд╛рди рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рддреЗрдЬреА рд╕реЗ рд╡реГрджреНрдзрд┐ рдХрд╛ рдореБрдХрд╛рдмрд▓рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рд╣рдордиреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ HighLoad ++ 2017 рдореЗрдВ рдмрд╛рдд рдХреА рдереА , рд▓реЗрдХрд┐рди рдЕрднреА рдХреБрдЫ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирдП рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдереЗ рдЬреЛ рдЕрднреА рддрдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдирд╣реАрдВ рд╣реИрдВред
  • рдирдпрд╛ рдЯреВрд▓рдХрд┐рдЯ: рдирдореВрдирд╛ рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ред рдбрдВрдкреИрдирд▓рд┐рдЬрд╝ рдХрдВрдкрд╛рдЗрд▓рд░ рдбрд┐рдмрдЧ рдЖрдЙрдЯрдкреБрдЯ рдПрдирд╛рд▓рд╛рдЗрдЬрд╝рд░, рдЖрджрд┐ред

рдЗрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдПрдХ рдЕрд▓рдЧ рд▓реЗрдЦ рдХреЗ рд╣рдХрджрд╛рд░ рд╣реИрдВ - рдЙрди рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗрдВ рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдк рдЕрдзрд┐рдХ рдкрдврд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдпрд╣рд╛рдВ рдореИрдВ рдереЛрдбрд╝рд╛ рдФрд░ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдордиреЗ рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░ рдкрд░ рднрд╛рд░ рдХреИрд╕реЗ рдХрдо рдХрд┐рдпрд╛ред рд╕реАрд▓ рдЖрдкрдХреЛ рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рджреБрд░реНрдЧрдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ, Lua рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЗ рдЕрдВрджрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдбреЗрдЯрд╛ (80% рддрдХ) рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдирд┐рдпрдо рд╣реИрдВ, рдЬреЛ рдПрдХ рдЬрдЯрд┐рд▓ рджреБрдЖ рддрд╛рд▓рд┐рдХрд╛ рд╣реИред рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ (рдорд┐рдирдЯ) рдХрд╛ рдЬреАрд╡рдирдХрд╛рд▓ рд╕рдВрд╕рд╛рдзрд┐рдд рдЕрдиреБрд░реЛрдзреЛрдВ (рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреЗ рджрд╕рд┐рдпреЛрдВ) рдХреЗ рдЬреАрд╡рдирдХрд╛рд▓ рд╕реЗ рдмрд╣реБрдд рд▓рдВрдмрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдореЗрдВ рдбреЗрдЯрд╛ рдХреНрд╡реЗрд░реА рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рджреМрд░рд╛рди рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИред рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдХрдЪрд░реЗ рдХреЗ рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛ рдХреЛ рдмрд╛рд░-рдмрд╛рд░ рдЗрд╕ рд╡рд┐рд╢рд╛рд▓ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдлрд┐рд░ рд╕реЗ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкреБрди: "рд╕реАрд▓" рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдбреЗрдЯрд╛ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкреБрди: рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░ рдХрднреА рднреА "рд╕реАрд▓" рдСрдмреНрдЬреЗрдХреНрдЯ рдпрд╛ рдЙрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИред рд╡реЗрдирд┐рд▓рд╛ рд▓реБрдЖ 5.4 рдореЗрдВ, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреАрдврд╝реАрдЧрдд рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдХреЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ "рд╕реАрд▓" рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдХреЗ рдЧреИрд░-рдкрд╛рд▓рди рд╕реЗ рдЭреВрд▓рдиреЗ рд╡рд╛рд▓реЗ рдмрд┐рдВрджреБрдУрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╣реЛрддреА рд╣реИ: рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ "рд╕реАрд▓" рдСрдмреНрдЬреЗрдХреНрдЯ рдПрдХ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдХреВрдбрд╝рд╛ рдХрд▓реЗрдХреНрдЯрд░, рдПрдХ рдвреЗрд░ рдХреЛ рдкрд╛рд░ рдХрд░рддреЗ рд╣реБрдП рдПрдХ "рд╕реАрд▓" рд╡рд╕реНрддреБ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ, рдПрдХ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ - рдЗрд╕ рдЕрдВрддрд░ рдХреЗ рд╕рд╛рде рдХрд┐ "рд╕реАрд▓" рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ред рдЗрд╕ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдореБрдлреНрдд рдкреНрд░рддрд┐рд░рдХреНрд╖рд╛ рд╕рдорд░реНрдерди рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдЕрдХреНрд╕рд░ рд▓реБрдЖ рдореЗрдВ рд░рд╣рддреА рд╣реИред рдореИрдВ рдЗрд╕ рдмрд╛рдд рдкрд░ рдЬреЛрд░ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдФрд░ "рд╕реАрд▓" рд╡рд╕реНрддреБрдПрдВ рдПрдХ рд╣реА рдЪреАрдЬ рдирд╣реАрдВ рд╣реИрдВред рджреВрд╕рд░реА рд╕рдВрдкрддреНрддрд┐ рдкрд╣рд▓реЗ рдХрд╛ рддрд╛рддреНрдкрд░реНрдп рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдирд╣реАрдВред

рдореИрдВ рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рд▓реБрдЖ 5.1 рдореЗрдВ рдореЗрдЯрд╛рдЯреИрдмрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рддрд┐рд░рдХреНрд╖рд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рд╕рдорд╛рдзрд╛рди рдХрд╛рдлреА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд▓рд╛рднрджрд╛рдпрдХ рдирд╣реАрдВ рд╣реИред "рд╕реАрд▓рд┐рдВрдЧ," рдкреНрд░рддрд┐рд░рдХреНрд╖рд╛ рдкрд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА, рдФрд░ рд╣рдо рд░реЛрдЬрдорд░реНрд░рд╛ рдХреА рдЬрд┐рдВрджрдЧреА рдореЗрдВ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдирд┐рд╖реНрдХрд░реНрд╖


рдлрд┐рд▓рд╣рд╛рд▓, рд╣рдо рд╕реНрдерд┐рд░рддрд╛ рдФрд░ рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдЕрд╡рд╕рд░реЛрдВ рдХреЗ рд╕реЗрдЯ рд╕реЗ рд╕рдВрддреБрд╖реНрдЯ рд╣реИрдВред рдФрд░ рдпрджреНрдпрдкрд┐ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реАрдорд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг, рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдорд╛рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рдиреАрд▓рд╛ рд▓реБрдЖ рдФрд░ рд▓реБрдЬрд┐рдЯ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╣рдж рддрдХ рд╣реАрди рд╣реИ, рдпрд╣ рд╣рдорд╛рд░реА рдХрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ - рд╣рдореЗрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпреЗ рд╕рдорд╛рдзрд╛рди рдХрд┐рд╕реА рдФрд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рднрд▓реЗ рд╣реА LuaVela рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ, рд╣рдо рдЖрдкрдХреЛ LuaJIT рдпрд╛ рдЗрд╕рдХреЗ рдХрд╛рдВрдЯреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╕реБрд▓рдЭрд╛рдиреЗ рдФрд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рд╣рдордиреЗ рдХреЛрдб рдмреЗрд╕ рдХреЗ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рдкрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд▓реЗрдЦ рд▓рд┐рдЦреЗ рд╣реИрдВ - рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ рди рдХреЗрд╡рд▓ рд▓реБрд╡рд╛рд╡реЗрд▓рд╛ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рд▓реБрдЬрд┐рдЯ рдХреЗ рд▓рд┐рдП рднреА рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВред

рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╣рдо рдкреБрд▓ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ!

Source: https://habr.com/ru/post/hi465441/


All Articles