рд╡реЗрдмрдЕрд╕реЗрдВрдмрд▓реА 2.0 рдорд╛рдирдХ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдЙрдкрд▓рдмреНрдз рд╣реИ

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

WebAssembly рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рд╡реАрдбрд┐рдпреЛ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ, рдСрдбрд┐рдпреЛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ, рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдФрд░ 3 рдбреА рд╣реЗрд░рдлреЗрд░, рдЧреЗрдо рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ, рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд╝рд┐рдХ рд╕рдВрдЪрд╛рд▓рди рдФрд░ рдЧрдгрд┐рддреАрдп рдЧрдгрдирд╛, рд╕реА/рд╕реА++ рдЬреИрд╕реА рд╕рдВрдХрд▓рд┐рдд рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдХрд░ред .

WebAssembly рдХреЗ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА, рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рдирд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдФрд░ рд╕рдорд╛рди рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реИред рд╣рд╛рд▓ рд╣реА рдореЗрдВ, WebAssembly рдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рддрдХ рд╕реАрдорд┐рдд рди рд░рд╣рдХрд░ рдХрд┐рд╕реА рднреА рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ, рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдХреЛрдб рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдордВрдЪ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдЪрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

W3C рдиреЗ WebAssembly 2.0 рдХреЗ рд▓рд┐рдП рддреАрди рдбреНрд░рд╛рдлреНрдЯ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдП рд╣реИрдВ:

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

рдорд╛рдирдХ рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреА рддреБрд▓рдирд╛ рдореЗрдВ WebAssembly 2.0 рдореЗрдВ рдореБрдЦреНрдп рдкрд░рд┐рд╡рд░реНрддрди:

  • V128 рд╡реЗрдХреНрдЯрд░ рдкреНрд░рдХрд╛рд░ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рд╡реЗрдХреНрдЯрд░ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛ рдЖрдкрдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХрдИ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдорд╛рдиреЛрдВ рдкрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (SIMD, рдПрдХрд▓ рдирд┐рд░реНрджреЗрд╢ рдПрдХрд╛рдзрд┐рдХ рдбреЗрдЯрд╛)ред
  • рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХреЛ рдЖрдпрд╛рдд рдФрд░ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛, C++ рдореЗрдВ рд╕реНрдЯреИрдХ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдЬреИрд╕реЗ рдорд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╡реИрд╢реНрд╡рд┐рдХ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред
  • рдЗрдВрдЯ рд░реВрдкрд╛рдВрддрд░рдг рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рдирдпрд╛ рдлрд╝реНрд▓реЛрдЯ, рдЬреЛ рдкрд░рд┐рдгрд╛рдо рдУрд╡рд░рдлрд╝реНрд▓реЛ рд╣реЛрдиреЗ рдкрд░ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдиреНрдпреВрдирддрдо рдпрд╛ рдЕрдзрд┐рдХрддрдо рд╕рдВрднрд╡ рдорд╛рди (SIMD рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ) рд▓реМрдЯрд╛рддрд╛ рд╣реИред
  • рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдХреЗ рдЪрд┐рд╣реНрди рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢ (рдЪрд┐рд╣реНрди рдФрд░ рдорд╛рди рдХреЛ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реБрдП рдХрд┐рд╕реА рд╕рдВрдЦреНрдпрд╛ рдХреА рдмрд┐рдЯ рдЧрд╣рд░рд╛рдИ рдмрдврд╝рд╛рдирд╛)ред
  • рдПрдХрд╛рдзрд┐рдХ рдорд╛рди рд▓реМрдЯрд╛рдиреЗ рд╡рд╛рд▓реЗ рдмреНрд▓реЙрдХ рдФрд░ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди (рдлрд╝рдВрдХреНрд╢рдВрд╕ рдореЗрдВ рдПрдХрд╛рдзрд┐рдХ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛)ред
  • BigInt рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдХрд╛рд░ рдФрд░ 64-рдмрд┐рдЯ рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдХреЗ WebAssembly рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЗ рдмреАрдЪ рдХрдирд╡рд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП BigInt64Array рдФрд░ BigUint64Array рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред
  • рд╕рдВрджрд░реНрдн рдкреНрд░рдХрд╛рд░реЛрдВ (funcref рдФрд░ externref) рдФрд░ рдЙрдирдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд┐рд░реНрджреЗрд╢реЛрдВ (select, ref.null, ref.func рдФрд░ ref.is_null) рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред
  • рдореЗрдореЛрд░реА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рдХреЙрдкреА рдХрд░рдиреЗ рдФрд░ рдореЗрдореЛрд░реА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА.рдХреЙрдкреА, рдореЗрдореЛрд░реА.рдлрд┐рд▓, рдореЗрдореЛрд░реА.рдЗрдирд┐рдЯ рдФрд░ рдбреЗрдЯрд╛.рдбреНрд░реЙрдк рдирд┐рд░реНрджреЗрд╢ред
  • рддрд╛рд▓рд┐рдХрд╛рдУрдВ (рдЯреЗрдмрд▓.рд╕реЗрдЯ, рдЯреЗрдмрд▓.рдЧреЗрдЯ, рдЯреЗрдмрд▓.рд╕рд╛рдЗрдЬ, рдЯреЗрдмрд▓.рдЧреНрд░реЛ) рддрдХ рд╕реАрдзреЗ рдкрд╣реБрдВрдЪрдиреЗ рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢ред рдПрдХ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдПрдХрд╛рдзрд┐рдХ рддрд╛рд▓рд┐рдХрд╛рдПрдБ рдмрдирд╛рдиреЗ, рдЖрдпрд╛рдд рдФрд░ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред рдмреИрдЪ рдореЛрдб (рдЯреЗрдмрд▓.рдХреЙрдкреА, рдЯреЗрдмрд▓.рдЗрдирд┐рдЯ рдФрд░ рдПрд▓реЗрдо.рдбреНрд░реЙрдк) рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдХреЙрдкреА рдХрд░рдиреЗ/рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпред

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ