Design: рд╕реБрд░рдХреНрд╖рд╛ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 19 рдЬреВрди 2015  ┬╖  26рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: WebAssembly/design

WebAssembly рдХреЗ рд╕реБрд░рдХреНрд╖рд╛ рдореЙрдбрд▓ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЫреЛрдЯреА рдЧрд╛рдбрд╝реА рдпрд╛ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг .wasm рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рдмрдЪрд╛рдирд╛ рд╣реИред рдпрд╣ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ! рд╣рдорд╛рд░реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЛ рдЙрд╕ рдЕрдВрддрд░ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╕рдордЭрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ WebAssembly рдЙрд╕ рд╕реБрд░рдХреНрд╖рд╛ рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ WebAssembly рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реЗ рдЙрдкрдХрд░рдг рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реИ (рдпрд╣ WebAssembly рдореЗрдВ рд╕рд╣реА рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рд╡ рдХреА рдкреЗрд╢рдХрд╢ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ)ред

рдбрд┐рдЬрд╛рдЗрди рдореЗрдВ рдЗрд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЬреНрдпрд╛рджрд╛рддрд░ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдореБрджреНрджрд╛ рд╣реИред

рд╕рднреА 26 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдирдорд╕реНрддреЗ!

рдореЗрд░рд╛ рдПрдХ рдкреНрд░рд╢реНрди рд╣реИ: рдХреНрдпрд╛ рдЗрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрддрд╛рдирд╛ рдЙрдЪрд┐рдд рд╣реЛрдЧрд╛:

"рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЬреЛ рд╕реНрд░реЛрдд рднрд╛рд╖рд╛ рдХреЗ рд╕реНрддрд░ рдкрд░ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЖрд╣реНрд╡рд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ WebAssembly рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдХреБрдЫ рдФрд░ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реАрдк рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рджреВрд╖рд┐рдд рдХрд░рдирд╛, рдПрдкреАрдЖрдИ рдХреЛ рдордирдорд╛рдиреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдХреЙрд▓ рдХрд░рдирд╛, рд╣реИрдВрдЧ рдХрд░рдирд╛, рдлрдВрд╕рд╛рдирд╛ рдпрд╛ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдЙрдкрднреЛрдЧ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рд╕рдВрд╕рд╛рдзрди (рд╕реАрдорд╛ рдХреЗ рднреАрддрд░)ред"
https://github.com/WebAssembly/design/blob/master/CAndC++.md#undefined-and-implementation-defined-behavior

рдореИрдВ рдЬреЛ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рд╕рдВрджрд░реНрдн/рд╕рдВрджрд░реНрдн рдкреНрд░рджрд╛рди рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдЧреИрд░-рджреЗрд╢реА рдкреГрд╖реНрдарднреВрдорд┐ рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП (рд╢рд╛рдпрдж) рдЙрдкрдпреЛрдЧ рдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ - рдЙрджрд╛рд╣рд░рдг рдФрд░ рдЖрдЧреЗ рдХреА рдЪрд░реНрдЪрд╛ рдкреНрд░рджрд╛рди рдХрд░рдХреЗред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, CERT рдХрд╛ MSC14-C. рдПрдордПрд╕рд╕реА15-рд╕реАрдкреАрдкреАред рднреЗрджреНрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдкрд░ рдирд┐рд░реНрднрд░ рди рд░рд╣реЗрдВ рд╕реА рдХрдВрдкрд╛рдЗрд▓рд░ рдЪреБрдкрдЪрд╛рдк рдХреБрдЫ рд░реИрдкрд░рд╛рдЙрдВрдб рдЪреЗрдХ рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ , рдЬреЛ рдЗрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ (рд░реЙрдмрд░реНрдЯ рд╕реАрдХреЙрд░реНрдб "рд╕рд╛рдЗрд▓реЗрдВрдЯ рдПрд▓рд┐рдорд┐рдиреЗрд╢рди рдСрдл рдмрд╛рдЙрдВрдб рдЪреЗрдХреНрд╕" рдореЗрдВ рдЗрд╕ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЪрд░реНрдЪрд╛ рдХрд░рддреЗ рд╣реИрдВ)ред

рдЕрдзрд┐рдХ рдЧрд╣рди рдЙрдкрдЪрд╛рд░:

рдЕрдиреНрдп рд╕рдВрднрд╛рд╡рд┐рдд рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╕рд▓рд╛рд╣:

рдХреНрдпрд╛ wasm рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп CSP рд╣реЗрдбрд░ рд╣реЛрдиреЗ рд╕реЗ рдорджрдж рдорд┐рд▓реЗрдЧреА? рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдЗрдЯ рдХреЗ рдорд╛рд▓рд┐рдХ рдЙрдк-рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ wasm рд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдпрд╣ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╕рд╡рд╛рд▓ рд╣реИред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣рдореЗрдВ рд╕рд╛рдЗрдЯреЛрдВ рдХреЛ WebAssembly рдХреЗ рдЧрддрд┐рд╢реАрд▓ рд▓реЛрдбрд┐рдВрдЧ рдФрд░ рдореВрд▓реНрдпрд╛рдВрдХрди рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреА рдЪрд╛рд╣рд┐рдП, рдЙрдиреНрд╣реАрдВ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╡реЗ eval рдФрд░ Function рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ (рдпрд╣ рд╕рд┐рд░реНрдл ES6 рдореЙрдбреНрдпреВрд▓ рдПрдХреАрдХрд░рдг рдФрд░ Loader рдкрд░ CSP рдЬрд╛рдВрдЪ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛ рдЬрд╛рдПрдЧрд╛)

рдбрд╛рдпрдиреЗрдорд┐рдХ рд▓рд┐рдВрдХрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╕реБрд░рдХреНрд╖рд╛ рдЪрд┐рдВрддрд╛рдУрдВ рдХреА рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдпрд╣ #53 рдкрд░ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИред

@jfbastien yup CORS рдФрд░ SRI рдЬрд╣рд╛рдВ рд╕рдВрднрд╡ рд╣реЛ рд╡рд╣рд╛рдВ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

@lukewagner рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрд╕рд╛рдзрди рдХреЗ рдирд┐рдореНрди рд╕реНрддрд░ рдХреА рдкрд╣реБрдВрдЪ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХрд┐ wasm рд╕рдХреНрд╖рдо рдХрд░реЗрдЧрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХрд╣рддреЗ рд╣реИрдВ, рдпрд╣ рд╕рд┐рд░реНрдл рдЬреЗрдПрд╕ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ wasm рдХрд╛ рд╡реНрдпрд╛рдкрдХ рд▓рдХреНрд╖реНрдп рдорд╢реАрдиреЛрдВ рдХреА рдзрд╛рддреБ рдХреА рд╕рдмрд╕реЗ рдирдЬрд╝рджреАрдХреА рдЪреАрдЬ рд╣реИ; рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реАрдПрд╕рдкреА рдирд┐рд░реНрджреЗрд╢ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред
рд╕рдордп рдХреЗ рд╕рд╛рде рдЕрдиреНрдп рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдмрд╛рд░реАрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рднреА рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ред

рдЕрдиреНрдп рддрд╛рддреНрдХрд╛рд▓рд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рдЕрдиреНрдп рдирд┐рдореНрди рд╕реНрддрд░ рдХреА рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реА рд╣реИрдВред

рдЦреИрд░, рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рд╣рд╛рдЬ рд╕реЗ рдзрд╛рддреБ рдХреЗ рдХрд░реАрдмред рд╕реБрд░рдХреНрд╖рд╛, рдЕрдиреБрдорддрд┐рдпреЛрдВ рдФрд░ рд╕реИрдВрдбрдмреЙрдХреНрд╕рд┐рдВрдЧ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, WebAssembly рдХреЗ JS рд╕реЗ рдЕрд▓рдЧ рд╣реЛрдиреЗ рдХреА рдХреЛрдИ рдЪрд░реНрдЪрд╛ рдирд╣реАрдВ рд╣реИред

рдПрдорд╡реАрдкреА рдФрд░ рдмреНрд░реЗрдВрдбрди рдИрдЪ рджреЛрдиреЛрдВ рдШреЛрд╖рдгрд╛рдУрдВ рдХреЗ рдмрд╛рдж рдореБрдЭреЗ рдпрд╣ рдорд╣рд╕реВрд╕ рдирд╣реАрдВ рд╣реБрдЖ, рд▓реЗрдХрд┐рди рдареАрдХ рд╣реИ: +1:

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЬрд┐рд╕ рдмрд╛рдд рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕ рдмрд╛рдд рдкрд░ рд╕рд╣рдордд рд╣реБрдП рд╣реИрдВ рдХрд┐, рдПрдорд╡реАрдкреА рдХреЗ рдмрд╛рдж, рд╡реЗрдмрдЕрд╕реЗрдВрдмрд▓реА рд╕реЗрдореЗрдиреНрдЯрд┐рдХреНрд╕ рдХреЛ рдЬреЗрдПрд╕ рдореЗрдВ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреЙрд▓реАрдлрд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рдЪрд▓рди рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рд╣реЛрдЧрд╛, рд╕реБрд░рдХреНрд╖рд╛/рдЕрдиреБрдорддрд┐рдпреЛрдВ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐, рдЬрдмрдХрд┐ рдЙрдиреНрд╣реЗрдВ _рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ_рдкреЙрд▓реАрдлрд╝рд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ _could_ рдХреЛ JS ( Emterpreter-style ) рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП WebAssembly рджреБрднрд╛рд╖рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рд╕рд┐рдореНрдпреБрд▓реЗрдЯреЗрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред "рдЬреЗрдПрд╕ рд╕реЗ рд╡рд┐рдЪрд▓рди" рд╕реЗ рд╣рдорд╛рд░рд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ, рдЗрд╕реЗ рдмрд╛рдзреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдЖрд╢рдп рдХреЗ рд▓рд┐рдП рдПрдХ рдиреЛрдЯ рдЬреЛрдбрд╝рдирд╛ рд╢рд╛рдпрдж рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

рд╣рд╛рдБ, рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫреА рд╡реГрджреНрдзрд┐ рд╣реЛрдЧреА, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдмрд╣реБрдд рддреЗрдЬрд╝реА рд╕реЗ рдкрдврд╝рд╛ рд╣реЛ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реБрдЖред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдзрд┐рдХ рдереНрд░реЗрдбрд┐рдВрдЧ рдФрд░ рдореЗрдореЛрд░реА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдИрдЪреНрд╕ рд╡рд╛рд░реНрддрд╛ рдореЗрдВ рд╕реЗ рдПрдХ рдерд╛ рдЬрд┐рд╕рд╕реЗ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд╛рд╕рдо рдХреЛ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдПрдВ рдорд┐рд▓реЗрдВрдЧреАред рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдЗрдиреНрд╣реЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рднреА рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рд╕рд╛рдорд╛рдиреНрдп рдЬрд╛рдВрдЪ рдХреЗ рдЕрдзреАрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

"рдЬреЗрдПрд╕ рд╕реЗ рд╕реБрд░рдХреНрд╖рд╛ рдкреАрдУрд╡реА рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ" рдЕрдм Web.md рдореЗрдВ рд╣реИ ред

рдореИрдВ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рднреЗрдж рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдордЭрд╛рдКрдВрдЧрд╛ред рдЬреЗрдПрд╕ рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░рдирд╛ рдПрдХ рдЖрддреНрдордирд┐рд░реНрднрд░ рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рд╕реЗ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬреЗрдПрд╕ рдХреЗ рд╕реБрд░рдХреНрд╖рд╛ рд╕рддрд╣ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдХрдо рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдХрд╣реЗрдВ, рдХреНрд░реЙрд╕-рдУрд░рд┐рдЬрд┐рдирд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдРрд╕реЗ)ред

рдореИрдВ рдЗрд╕ рдкрд░ рдкрд╣реБрдВрдЪреВрдВрдЧрд╛, рдЕрдм рдЬрдмрдХрд┐ рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ CppCon рдкрд░ рдмрд╛рдд рдХрд░ рд▓реА рд╣реИ :-)

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рдХреНрд╖реНрдп рдХреЗ рд░реВрдк рдореЗрдВ WebAssembly рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рдирд┐рд╢реНрдЪрд┐рдд рд╕рдордп рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ JS/asm.js JIT рдФрд░ WebAssembly JIT рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░реЛрдВ рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред рдореИрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдмрд┐рдЯрд╢рд┐рдлреНрдЯ рдЬреИрд╕реЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ, рдкреЛрд╕реНрдЯ-рдЬреЗрдЖрдИрдЯреА рджреНрд╡рд╛рд░рд╛ рд╢реБрд░реВ рдХреА рдЧрдИ рд╢рд╛рдЦрд╛рдПрдВ, рд╕рд╢рд░реНрдд рдХреВрдж рдпрд╛ рд▓реБрдХрдЕрдк, рдпрд╛ рдЕрдиреНрдп рдкрд░рд┐рд╡рд░реНрддрди рдЬреЛ рдЬреЗрдЖрдИрдЯреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕рдордп рд▓реАрдХ рдкреЗрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрджрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдирд┐рд╢реНрдЪрд┐рдд-рд╕рдордп рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдмреЗрд╣рддрд░ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП WebAssembly рдХреА рдХреЛрдИ рдЕрдкреЗрдХреНрд╖рд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЬреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ asm.js рдХреЗ рд╕рд╛рде рд╣реИ, рддреЛ рдпрд╣ рдмрддрд╛рддреЗ рд╣реБрдП рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рд▓рд┐рдП WebAssembly рдХреЗ рд╕реБрд░рдХреНрд╖рд╛ рдирд┐рд╣рд┐рддрд╛рд░реНрдереЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрддрд╛рдиреЗ рдореЗрдВ рдорджрджрдЧрд╛рд░ рд╣реЛрдЧрд╛ред рдпрджрд┐ WebAssembly рдмреЗрд╣рддрд░ рд╕рдЦреНрдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдХреБрдЫ рд╕рд╛рдзрди рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛, рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореМрдЬреВрдж рд╣реИ (рдЕрдм рдпрд╛ MVP рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдХрд▓реНрдкрдирд╛ рдХреЛ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдирд╣реАрдВ рдкрдврд╝рд╛ рд╣реИ), рдпрд╣ рднреА рд╡рд┐рд╕реНрддреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред https://github.com/jedisct1/libsodium.js/issues/24#issuecomment -128002942 рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреНрд░рд┐рдкреНрдЯреЛ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдореМрдЬреВрджрд╛ рдореБрджреНрджреЛрдВ рдкрд░ рдХреБрдЫ рдФрд░ рд╣реИред

рд╡реИрд╕реЗ рдпрд╣ рд╕рдм рдмрд╣реБрдд рд░реЛрдорд╛рдВрдЪрдХ рд╣реИред :рдбреА

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

рдореЗрд░рд╛ рд╡рд░реНрддрдорд╛рди рд▓реЗрдирд╛ рдпрд╣ рд╣реИ рдХрд┐ рдмрд╛рд╣рд░реА рдПрдкреАрдЖрдИ (рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗрдм рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдЬреИрд╕реЗ рдПрдореНрдмреЗрдбрд░ рджреНрд╡рд╛рд░рд╛ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдЗрд╕ рддрд░рд╣ рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдЙрдЪрд┐рдд рдирд┐рд░рдВрддрд░-рд╕рдордп рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдХреНрд╕рд░ рдорд╛рдЗрдХреНрд░реЛ-рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреА рдЕрд╕реЗрдВрдмрд▓реА рдФрд░ рдЕрдЪреНрдЫреА рд╕рдордЭ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЧрддрд┐рд╢реАрд▓ рдмрд╛рдЗрдирд░реА рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рд╡рд╛рд▓реЗ CPU рдХреЗ рдЪрд░рдо рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ: WebAssembly рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛ рдХрд┐ CPU рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ/рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдореЗрд░рд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдХрд┐ WebAssembly рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдерд┐рд░-рд╕рдордп рдХреЛрдб рдХреЛ рд╡реНрдпрдХреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдореВрд░реНрддрддрд╛ рдХреЗ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдкрд░ рд╣реИред

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

@jfbastien , рдХреНрдпрд╛ рдЖрдкрдиреЗ wasm рдЯрд╛рдЗрдорд┐рдВрдЧ рдЧрд╛рд░рдВрдЯреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреЛ рдХреБрдЫ рднреА рдХрд╣рд╛ рд╣реИ рд╡рд╣ рдЖрдЬ рднреА рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ?

рдореИрдВ рд╡рд░реНрддрдорд╛рди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬреА рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреА рдПрдХ рдЫреЛрдЯреА рд╕реВрдЪреА рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдирд┐рдпрддрд╛рддреНрдордХ рдирд┐рд╖реНрдкрд╛рджрди рдПрдХ рд▓рдХреНрд╖реНрдп рд╣реИ, рдЬреЛ рдирд┐рд░рдВрддрд░ рд╕рдордп рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд▓рдЧрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, webassembly ред рдЕрднреА рддрдХ" рдпрд╛ "рд╕рд╛рдЗрдб рдЪреИрдирд▓ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЛ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реА рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рд╣реЛрдЧрд╛"ред

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

@ buu700 рд╕рднреА рдСрдкреЛрдб рдХреЗ рд▓рд┐рдП рд╕рдордп рдХреА рдЧрд╛рд░рдВрдЯреА рд╣реИред рдХреНрд▓реИрдВрдЧ рдирд┐рд░рдВрддрд░-рд╕рдордп рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк рдЗрдиреНрдлреЛрд▓реАрдХ-рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдХреЛрдб рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдирд┐рд░рдВрддрд░-рд╕рдордп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдЕрднреА, WebAssembly рдЗрдиреНрдлреЛрд▓реАрдХреНрд╕ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдХреБрдЫ рднреА рдЧрд╛рд░рдВрдЯреА рджреЗрдиреЗ рдХрд╛ рдХреЛрдИ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд╕рдордЭ рдЧрдпрд╛, рдирд┐рдпрддрддреНрд╡рд╡рд╛рдж @jfbastien рдкрд░ рдЕрдиреБрднрд╛рдЧ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

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

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

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

рдЖрдк рдХреБрдЫ рдХрдВрдкрд╛рдЗрд▓рд░реНрд╕/рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдЧрд╛рд░рдВрдЯреА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдкрдХреЗ рдХреЛрдб рдХреЛ рд╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдиреНрдлреЛрд▓реАрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддреЛ "рдХреБрдЫ" рдЧрд╛рд░рдВрдЯреА рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред

рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА, рдзрдиреНрдпрд╡рд╛рдж, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореЗрд░реЗ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рдЗрдиреНрдлреЛрд▓реАрдХ рдереНрд░реЗрдЯ рдореЙрдбрд▓рд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рднреА рдмрд┐рдВрджреБрдУрдВ рдкрд░ рд╕рд╣рдорддрд┐; рдореИрдВ рд╕рд┐рд░реНрдл рдпрд╣ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп (рдПрдПрд╕рдПрдо-рдлреНрд░реА) рд╕реА рд╕рдВрдХрд▓рди рд▓рдХреНрд╖реНрдп рдХреА рддреБрд▓рдирд╛ рдореЗрдВ wasm рдХреЛ рдЕрдзрд┐рдХ рд▓реАрдХ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдЖрдк рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдорд╛рдорд▓рд╛ рдЬрд░реВрд░реА рдирд╣реАрдВ рд╣реИ?

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ "рдЕрдзрд┐рдХ рдЯрдкрдХрд╛ рд╣реБрдЖ" рдПрдХ рдЙрдкрдпреЛрдЧреА рдЙрдкрд╛рдп рд╣реИред рдореАрдЯреНрд░рд┐рдХ рд╣реИ "рдХреНрдпрд╛ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд▓реАрдХ рд╣реЛрддрд╛ рд╣реИ?" WebAssembly, рдХреНрд▓реИрдВрдЧ, C++ рдФрд░ C рдХрд╛ рдЙрддреНрддрд░ "рд╣рд╛рдВ" рд╣реИред

рдЦреИрд░, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЬреЛ рдореЗрд░реЗ рдорди рдореЗрдВ рдерд╛ рд╡рд╣ рд╢реБрджреНрдз рд╕реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╕рд╛рдЗрдб рдЪреИрдирд▓ рдкреНрд░рддрд┐рд░реЛрдз рдЧреБрдгреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдерд╛, рдЬреИрд╕реЗ рдХрд┐ @dconnolly рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП libsodium/NaCl рдХрд╛ рдЙрджрд╛рд╣рд░рдгред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрджрд░реНрд╢ рд╣реИ рдпрджрд┐ рдХреЛрдИ рдЪреАрдЬ рд╣рд░ рд╕рдВрднрд╛рд╡рд┐рдд рд╣рдорд▓реЗ рдХреЗ рдкрд░рд┐рджреГрд╢реНрдп рд╕реЗ рдмрдЪреЗрдЧреА, рд▓реЗрдХрд┐рди рдпрд╣ рджреЛ рдЪреАрдЬреЛрдВ рдХреЗ рдмреАрдЪ рдбреЗрд▓реНрдЯрд╛ рдХреЛ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрдпреЛрдЧреА рд╣реИ (рднрд▓реЗ рд╣реА рд╡реЗ рджреЛрдиреЛрдВ рдЪреВрд╕рддреЗ рд╣реИрдВ, рдЪреВрд╕рдиреЗ рдХреЗ рдХреБрдЫ рдЙрдкрд╛рдп рд╕реЗ), рдФрд░ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреНрдпрд╛ рд▓рд┐рдирдХреНрд╕ рдПрдмреАрдЖрдИ рдХреЗ рдмрдЬрд╛рдп WebAssembly рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдПрдХ рд▓рдХреНрд╖реНрдп рд▓рд┐рдмрд╕реЛрдбрд┐рдпрдо рдХреЗ рдЗрдЪреНрдЫрд┐рдд рдЦрддрд░реЗ рдХреЗ рдореЙрдбрд▓ рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред

рд▓рд┐рдмреНрд╕реЛрдбрд┐рдпрдо рдЗрд╢реНрдпреВ рдереНрд░реЗрдб рдкрд░ рд▓рд┐рдВрдХ рдХреА рдЧрдИ рдЯрд┐рдкреНрдкрдгреА рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдЬрд╛рдирдХрд╛рд░реАрдкреВрд░реНрдг рд╣реИ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп asm.js рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЧреИрд░-рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ WebAssembly рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╡рд╣ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреИрд╕рд╛ рд▓рдЧреЗрдЧрд╛ (i64 рд╕рдорд░реНрдерди рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░) asm.js рдХреА рддреБрд▓рдирд╛ рдореЗрдВ wasm рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реБрд╕рдВрдЧрдд)ред

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

>

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ "рдЕрдзрд┐рдХ рдЯрдкрдХрд╛ рд╣реБрдЖ" рдПрдХ рдЙрдкрдпреЛрдЧреА рдЙрдкрд╛рдп рд╣реИред

@jfbastien , рдорд╛рддреНрд░рд╛рддреНрдордХ рд╕реБрд░рдХреНрд╖рд╛ рдПрдХ рдРрд╕рд╛ рдХреНрд╖реЗрддреНрд░ рд╣реИ рдЬреЛ рд╕рд┐рд░реНрдл рдорд╛рдкрдиреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ
рд╡рд╣ред рд╕рд╛рдорд╛рдиреНрдп рдореАрдЯреНрд░рд┐рдХ рдпрд╣ рд╣реИ рдХрд┐ a . рджреНрд╡рд╛рд░рд╛ рдХрд┐рддрдиреЗ рдмрд┐рдЯ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рдХрдЯ рдХреА рдЬрд╛рддреА рд╣реИ
рд╕рдлрд▓ рд╣рдорд▓рд╛ - 1 рдмрд┐рдЯ рдмрдирд╛рдо 32 рдмрд┐рдЯ, рдХрд╣рддреЗ рд╣реИрдВ, рдПрдХ рдмрдбрд╝рд╛ рдЕрдВрддрд░ рдмрдирд╛рддрд╛ рд╣реИ (рдФрд░ in . рдореЗрдВ)
рдЕрднреНрдпрд╛рд╕ рд▓рдЧрднрдЧ рд╣рд░ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдЫреЛрдЯреЗ рд╕рдВрднрд╛рд╡рд┐рдд рд░рд┐рд╕рд╛рд╡ рд╣реЛрддреЗ рд╣реИрдВ
рдЪреИрдирд▓)ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдХреНрд╕рд░ рдРрд╕реА рдорд╛рддреНрд░рд╛ рдХрд╛ рдард╣рд░рд╛рд╡ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрддрд╛ рд╣реИред

>

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ "рдЕрдзрд┐рдХ рдЯрдкрдХрд╛ рд╣реБрдЖ" рдПрдХ рдЙрдкрдпреЛрдЧреА рдЙрдкрд╛рдп рд╣реИред

@jfbastien , рдорд╛рддреНрд░рд╛рддреНрдордХ рд╕реБрд░рдХреНрд╖рд╛ рдПрдХ рдРрд╕рд╛ рдХреНрд╖реЗрддреНрд░ рд╣реИ рдЬреЛ рд╕рд┐рд░реНрдл рдорд╛рдкрдиреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ
рд╡рд╣ред рд╕рд╛рдорд╛рдиреНрдп рдореАрдЯреНрд░рд┐рдХ рдпрд╣ рд╣реИ рдХрд┐ a . рджреНрд╡рд╛рд░рд╛ рдХрд┐рддрдиреЗ рдмрд┐рдЯ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рдХрдЯ рдХреА рдЬрд╛рддреА рд╣реИ
рд╕рдлрд▓ рд╣рдорд▓рд╛ - 1 рдмрд┐рдЯ рдмрдирд╛рдо 32 рдмрд┐рдЯ, рдХрд╣рддреЗ рд╣реИрдВ, рдПрдХ рдмрдбрд╝рд╛ рдЕрдВрддрд░ рдмрдирд╛рддрд╛ рд╣реИ (рдФрд░ in . рдореЗрдВ)
рдЕрднреНрдпрд╛рд╕ рд▓рдЧрднрдЧ рд╣рд░ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдЫреЛрдЯреЗ рд╕рдВрднрд╛рд╡рд┐рдд рд░рд┐рд╕рд╛рд╡ рд╣реЛрддреЗ рд╣реИрдВ
рдЪреИрдирд▓)ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдХреНрд╕рд░ рдРрд╕реА рдорд╛рддреНрд░рд╛ рдХрд╛ рдард╣рд░рд╛рд╡ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрддрд╛ рд╣реИред

рдореБрдЭреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рдЗрд╕рдореЗрдВ рдХреЛрдИ рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд░рд┐рд╕рд╛рд╡ рдПрдХ рд░рд┐рд╕рд╛рд╡ рд╣реИред рдпрджрд┐ рдпрд╣ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ рддреЛ рдпрд╣ рдЕрдВрддрддрдГ рд╣рдореЗрдВ (WebAssembly рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХрд░реНрддрд╛) рдХрд╛рдЯ рджреЗрдЧрд╛ред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ WebAssembly рдХреЛ рд╣рдорд╛рд░реА рдЕрдиреНрдп рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐рд╕реА рднреА рд╕рдордп рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдпрд╣ рдХрд┐ WebCrypto рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдкреНрд░рдпрд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдореМрдЬреВрдж рд╣реИ (рдХрдореА рдХреЗ рдмрд╛рд╡рдЬреВрдж рдпрд╣ рдЕрдиреНрдпрдерд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЗрд╕ рд╕рдордп WebAssembly рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмреЗрд╣рддрд░ рд╣реИред ) рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рдЕрд╡рдХрд╛рд╢ рдкрд░ рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВред

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

рд╕рд╣рдордд рд╣реИрдВ рдХрд┐ ... Wasm C . рд╕реЗ рдЕрдзрд┐рдХ рдЯрдкрдХрд╛ рд╣реБрдЖ рдирд╣реАрдВ рд╣реИ

рдЕрдЪреНрдЫрд╛, рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВ рдпрд╣рд╛рдВ рдмрд╕ рдЗрддрдирд╛ рд╣реА рдЖрдпрд╛ рд╣реВрдВ: рдЗрд╕ рдмрд╛рдд рдХреА рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдордЭ рдХрд┐ рдореБрдЭреЗ рдЗрд╕рдХреА рддреБрд▓рдирд╛ рдХрд┐рд╕рд╕реЗ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП, рдЗрд╕ рдмрд╛рдд рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рдХрд┐ рдпрд╣ "рд▓реАрдХ рдирд╣реАрдВ рд╣реЛрдЧрд╛"ред

@ рд░реЙрд╕рдмрд░реНрдЧ-рдХреНрд░реЛрдорд┐рдпрдо рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдореИрдВ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рд╕рд╣рдордд рд╣реВрдБ рдХрд┐ wasm C рд╕реЗ рдЕрдзрд┐рдХ рдЯрдкрдХрд╛ рд╣реБрдЖ рдирд╣реАрдВ рд╣реИред рдЕрдВрдд рдореЗрдВ рдпрд╣ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЗрдВрдЬрди рд╕рдм рдХреБрдЫ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, JavaScriptCore рдХреЛрдб рдХреЛ рдЯрд┐рдпрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдореЗрдореЛрд░реА рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛрдиреЗ рдкрд░ рдХреЛрдб рдХреЛ рдЯрд┐рдпрд░ рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рд▓реАрдХ рд╣реИ рдЬреЛ рд╕реА рдХреЛрдб рдХреЗ рд╕рд╛рде рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред рдореИрдВ рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВ, рдЬреИрд╕реЗ-рдЬреИрд╕реЗ wasm рдЗрдВрдЬрди рдЕрдзрд┐рдХ рдЙрдиреНрдирдд рд╣реЛрддреЗ рдЬрд╛рдПрдВрдЧреЗ, wasm JVM рдХреА рддрд░рд╣ рдХреБрдЫ рд▓реАрдХ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реЛрдЧреАред рдЕрдВрддрдд:, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпреБрдХреНрддрд┐ рдпрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХрд░реНрддрд╛ рд╕реВрдЪрдирд╛ рд▓реАрдХ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд░рдЦрддреЗ рд╣реИрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рдХреАрдордд рдкрд░ рдирд╣реАрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

chicoxyzzy picture chicoxyzzy  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

artem-v-shamsutdinov picture artem-v-shamsutdinov  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

beriberikix picture beriberikix  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

aaabbbcccddd00001111 picture aaabbbcccddd00001111  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

nikhedonia picture nikhedonia  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ