Design: pThreads рдХреЛрдИ рдИрдЯреАрдП ?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 21 рдлрд╝рд░ре░ 2017  ┬╖  20рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: WebAssembly/design

WebAssembly рдореЗрдВ рдзрд╛рдЧреЗ рдХреЗ рдкрд╣рд▓реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдХреЛрдИ рдИрдЯреАрдП?

-- рдЖрд░

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЗрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдХреЛрдИ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдпрд╛ рдЕрдиреНрдп рдлрд╝реЛрд░рдо рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╢реНрдпреВ рдЯреНрд░реИрдХрд░ рд╣реА рдПрдХрдорд╛рддреНрд░ рдРрд╕рд╛ рд╕реНрдерд╛рди рд╣реИ рдЬрд╣рд╛рдБ рд▓реЛрдЧ рдбрд┐рдЬрд╝рд╛рдЗрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдкреНрд░рд╢реНрди рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рд╕реНрдерд╛рди рд╣реЛрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдЬрд╣рд╛рдВ рд▓реЛрдЧ рдкреНрд░рд╢реНрди рдкреВрдЫ рд╕рдХреЗрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд▓реЛрдЧреЛрдВ рдХреЛ рдкреНрд░рд╢реНрди рдкреВрдЫрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдЯреНрд░реИрдХрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддрд╛ рд╣реВрдВред

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

рдЕрдЧрд▓реА рдХреБрдЫ рддрд┐рдорд╛рд╣рд┐рдпреЛрдВ рдореЗрдВ рдХреБрдЫ рд╕рдордп рд╢рд╛рдпрдж рдЙрддрдирд╛ рд╣реА рд╕рдЯреАрдХ рд╣реЛрдЧрд╛ рдЬрд┐рддрдирд╛ рдХреЛрдИ рдХрд╣ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХреГрдкрдпрд╛ рдореБрджреНрджреЛрдВ рдХреЛ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╢реНрдпреВ рдЯреНрд░реИрдХрд░ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рдЦреЗрдВред

рдЗрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдХреЛрдИ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдпрд╛ рдЕрдиреНрдп рдлрд╝реЛрд░рдо рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╢реНрдпреВ рдЯреНрд░реИрдХрд░ рд╣реА рдПрдХрдорд╛рддреНрд░ рдРрд╕рд╛ рд╕реНрдерд╛рди рд╣реИ рдЬрд╣рд╛рдБ рд▓реЛрдЧ рдбрд┐рдЬрд╝рд╛рдЗрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдкреНрд░рд╢реНрди рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рд╕реНрдерд╛рди рд╣реЛрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдЬрд╣рд╛рдВ рд▓реЛрдЧ рдкреНрд░рд╢реНрди рдкреВрдЫ рд╕рдХреЗрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд▓реЛрдЧреЛрдВ рдХреЛ рдкреНрд░рд╢реНрди рдкреВрдЫрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдЯреНрд░реИрдХрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддрд╛ рд╣реВрдВред

@sunfishcode , рдХрд╛рдлреА рдЙрдЪрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рд╣рдо рдРрд╕реА рд╕реВрдЪреА рдмрдирд╛рдПрдВред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдПрдХ рдореБрджреНрджрд╛ рдЯреНрд░реИрдХрд░ рдЙрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдЪрд┐рдд рд╡рд┐рдХрд▓реНрдк рд╣реИред

w3 рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реВрдЪреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕ рдкрд░ рдЬреНрдпрд╛рджрд╛ рдЯреНрд░реИрдлрд┐рдХ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдПрдХ рдЖрдИрдЖрд░рд╕реА рднреА рд╣реИ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рд╕рдордп рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╡реЗ рджреЛрдиреЛрдВ рд╕реАрдзреЗ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЗ рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рдЕрдиреБрднрд╛рдЧ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реЛрдВред рдореИрдВ рдПрдХ рдореБрджреНрджрд╛ рдЦреЛрд▓реВрдВрдЧрд╛ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк рдХреМрди рд╕реЗ рд░рд╛рд╕реНрддреЗ рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗ ~ рдЙрдЬрд╛рдЧрд░ ~ рдЬрдирддрд╛ рд╕реЗ рдЬреБрдбрд╝реЗ

рдпрд╣рд╛рдВ рдирд┐рд░реНрджреЗрд╢:

рд╣рдо рд▓реЛрдЧреЛрдВ рдХреЛ рдЬреАрдердм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╣рд░ рдХреЛрдИ рдЗрд╕реЗ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдИ рд╕реЗ рдПрдХ рдЬрдЧрд╣ рд╣реЛрдирд╛ рдмреЗрд╣рддрд░ рд╣реИред

рд╣рд╛рдп @ рд░реЙрд╕рдмрд░реНрдЧ-рдХреНрд░реЛрдорд┐рдпрдо рдФрд░ рдЖрдкрдХреЗ рд╕рдордп рдкрд░ рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рд▓реЗрдХрд┐рди рдХреГрдкрдпрд╛ рдореБрджреНрджреЛрдВ рдХреЛ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╢реНрдпреВ рдЯреНрд░реИрдХрд░ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рдЦреЗрдВред

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

рдЕрдЧрд░ рдореИрдВ рдЧрд▓рдд рд╣реВрдВ рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реА/рдереНрд░реЗрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдкрд╛рд▓рди рдХрд╣рд╛рдВ рдХрд░реЗрдВред
рдпрд╣ рдПрдХ рдЦреБрд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЕрдкрдиреА рдмрд╛рдд рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

--рдЖрд░

@RobertoMalatesta рд╣рдо рд╕рд╣рдордд рд╣реИрдВ рдХрд┐ рдзрд╛рдЧреЗ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ WebAssembly рдХреЗ рдиреНрдпреВрдирддрдо-рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рдЙрддреНрдкрд╛рдж рдореЗрдВ рд╕рдореЗрдЯрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рд╕рд╣реА рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдерд╛ред рд╣рдорд╛рд░рд╛ рддрд░реНрдХ рд╕рд░рд▓ рд╣реИ: asm.js рдиреЗ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдмрд┐рдирд╛ рд╕рдлрд▓рддрд╛ рдХрд╛ рдЖрдирдВрдж рд▓рд┐рдпрд╛ рд╣реИред

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

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

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

SAB TC39 рдореЗрдВ "рдЪрд░рдг 4" рдкрд░ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рд╣реЛ рдЪреБрдХрд╛ рд╣реИ, рдЬрд╣рд╛рдЬ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ, рдФрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕реЗ WebAssembly рдореЗрдВ рдЕрдкрдирд╛рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

@jfbastien рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐рдкреВрд░реНрдг рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдХрд╣рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рд╣рдо WebAssembly рдореЗрдВ JavaScript SharedArrayBuffer рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдХрдореЛрдмреЗрд╢ рдЕрдкрдирд╛рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВред (...)
SAB TC39 рдореЗрдВ "рдЪрд░рдг 4" рдкрд░ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рд╣реЛ рдЪреБрдХрд╛ рд╣реИ, рдЬрд╣рд╛рдЬ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ, рдФрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕реЗ WebAssembly рдореЗрдВ рдЕрдкрдирд╛рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

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

рдереНрд░реЗрдбреНрд╕ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ WebAssembly рдХреЗ рдиреНрдпреВрдирддрдо-рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рдЙрддреНрдкрд╛рдж рдореЗрдВ рд╕рдореЗрдЯрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдареАрдХ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдерд╛ред рд╣рдорд╛рд░рд╛ рддрд░реНрдХ рд╕рд░рд▓ рд╣реИ: asm.js рдиреЗ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдмрд┐рдирд╛ рд╕рдлрд▓рддрд╛ рдХрд╛ рдЖрдирдВрдж рд▓рд┐рдпрд╛ рд╣реИред

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

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

рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдПрдорд╕реНрдХреНрд░рд┐рдкреНрдЯрди рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ WebAssembly рдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯреИрдХ рд╕реАрдорд╛ рд╕реЗ рдЕрдзрд┐рдХ рдбрд┐рдХреВрдкреНрдб рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ:

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

рдХреНрдпрд╛ рдпрд╣ рджрд┐рд╢рд╛ wasm рдПрдХ рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рднрд╡рд┐рд╖реНрдп рдХреА рдУрд░ рдЕрдЧреНрд░рд╕рд░ рд╣реИ рдпрд╛ рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд╛рд╡ рдХреЛ рдпрд╛рдж рдХрд░ рд░рд╣рд╛ рд╣реВрдБ?

рдЖрдкрдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рдж,

рд░реЙрдмрд░реНрдЯреЛ

рд╡рд╛рд╕рдо рдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреБрдЫ рд╕реНрдЯреИрдХ рд╕реАрдорд╛рдУрдВ рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд╕реНрдерд╛рдиреАрдп рд▓реЛрдЧреЛрдВ рдХреЛ рдХреИрд╕реЗ рдЕрд▓рдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдПрд▓рдПрд▓рд╡реАрдПрдо рдЬреИрд╕реЗ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рд╕реБрд▓рдн рдореЗрдореЛрд░реА рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдереНрд░реЗрдбреНрд╕ рдХреЗ рд╕рд╛рде, рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рд╡реЗ рд╡рд░реНрдХрд░ рдЖрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╡рд╣рд╛рдВ рдЕрдзрд┐рдХ рд╢рдХреНрддрд┐ рдорд┐рд▓реЗрдЧреАред

рдХрд╣рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЖрдкрдХреЗ рд╕рдЯреАрдХ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рдХреНрдпрд╛ рд╣реИ, рдЖрдк C++ рдореЗрдВ рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ wasm рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд░реЗрдВрдЧреЗ?

рдореБрдЭреЗ рдЙрдореНрдореАрдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк рд╕рднреА рдЙрддреНрддрд░реЛрдВ рдХреЗ рд╕рд╛рде рдЖрдПрдВрдЧреЗ! рдЕрднреА рдЬреЛ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрддрд╛ рд╣реИред Fwiw C++ рдореЗрдВ рд╕реНрдЯреИрдХ рд╕реАрдорд╛ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИрдВред SG14 рдЙрдкрд╕рдореВрд╣ рджреЗрдЦреЗрдВред

рдХрдо рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рд╣реВрдВред рдмрд╛рдж рдореЗрдВ рдмреЗрд╣рддрд░ рдЬрд╡рд╛рдм рджреЗрдВрдЧреЗ!

рдХрдо рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВ рдПрдХ :baby:: burito :рдХреЗ рдЕрдВрддрд░реНрдЧрдд рд╣реВрдБред рдмрд╛рдж рдореЗрдВ рдмреЗрд╣рддрд░ рдЬрд╡рд╛рдм рджреЗрдВрдЧреЗ!

рдЖрдк рдмреЗрдмреА рдмрд░реНрдЯрд┐рдЯреЛ рдХреЗ рдЕрдзреАрди рд╣реИрдВ? рдЬрд╝реЛрд░ - рдЬрд╝реЛрд░ рд╕реЗ рд╣рдВрд╕рдирд╛

@qwertie

рдЖрдк рдмреЗрдмреА рдмрд░реНрдЯрд┐рдЯреЛ рдХреЗ рдЕрдзреАрди рд╣реИрдВ? рдЬрд╝реЛрд░ - рдЬрд╝реЛрд░ рд╕реЗ рд╣рдВрд╕рдирд╛

рд╕рдЪрдореБрдЪ, рдПрдХ рд▓рдкреЗрдЯрд╛ рд╣реБрдЖ рдмрдЪреНрдЪрд╛ред

рд╣рд╛рдп @jfbastien ,

рдЖрдкрдХреЗ рд╕рдЯреАрдХ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рдХреНрдпрд╛ рд╣реИ, рдЖрдк C++ рдореЗрдВ рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ wasm рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд░реЗрдВрдЧреЗ?

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

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

_ T рд╡рд╣ JS рд╡реЗрдм рд╕реНрдЯреИрдХ (рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреИрд╕реА рд╕рдВрд░рдЪрд┐рдд рднрд╛рд╖рд╛ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд) рдЗрди рджрд┐рдиреЛрдВ рдЗрддрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП emscripten рдпрд╛ рдХреЛрд╢рд┐рд╢ wasm рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдорд╣рд╕реВрд╕ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред_

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

_ W ebAssembly рдПрдХ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рддрдХрдиреАрдХ рд╣реЛрдЧреА (рдХрдо рд╕реЗ рдХрдо рдореЗрд░реЗ рд▓рд┐рдП) рдпрджрд┐ рдпрд╣ рддреЗрдЬрд╝ рд╣реЛрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧреА (рдореВрд▓ рд╕реА рдРрдк рдХреА рд╣рдбреНрдбреА рдХреЗ рд╕рд╛рде, 5% рдУрд╡рд░рд╣реЗрдб рдХрд╣реЗрдВ) рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдФрд░ рдЕрдзрд┐рдХ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ/рд╕реЙрдХреЗрдЯ рдХреЛ рдкреВрд░реА рддрд░рд╣ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░реЗрдВ рдФрд░ рдХрд┐рд╕реА рднреА рд╕рд╛рдорд╛рдиреНрдп OS рдХреА рддрд░рд╣ рдереНрд░реЗрдб рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред_

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

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

рдХрд╣реАрдВ рдореЛрдЬрд╝рд┐рд▓рд╛ рд╕рд╛рдЗрдЯ рдкрд░ рдореИрдВрдиреЗ рдореВрд▓ рдбреЛрдо рд╣реЗрд░рдлреЗрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдкрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджреЗрдЦреЗ: рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдбреЛрдо рд╣реЗрд░рдлреЗрд░ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЕрдиреБрдХреНрд░рдорд┐рдХ рд╣реИ рдФрд░ рдпрд╣ рдПрдЪрдЯреАрдПрдордПрд▓ 5/рд╕реАрдПрд╕рдПрд╕/рдЬреЗрдПрд╕ рд╕реНрдЯреИрдХ рдХреЗ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд▓реЗрдиреЗ рд╡рд╛рд▓реЗ рдкрд╣рд▓реБрдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ: рдпрджрд┐ рдореИрдВ рд╕реБрдкрд░рдлрд╛рд╕реНрдЯ рдорд▓реНрдЯреАрдереНрд░реЗрдбреЗрдб рд╡рд╛рд╕рдо рд▓рд┐рдЦрддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдореЗрд░реЗ рдбреАрдУрдПрдо рдХрддрд╛рд░ рдореЗрдВ рдХреНрд░рдордмрджреНрдз рдкреНрд░рддреАрдХреНрд╖рд╛ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░ рд╕рдХреЗрдВ, рдлрд┐рд░ рд╕рднреА рдкреНрд░рджрд░реНрд╢рди рдЦрддреНрдо рд╣реЛ рдЧрдП рд╣реИрдВ рдФрд░ рдпрд╣ рд╕реА/рд╕реА ++ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдХреБрдЫ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рдЯреНрд░рд╛рдВрд╕рдкрд╛рдЗрд▓ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдореИрдВ рд╕реАрдзреЗ рдУрдкрдирдЬреАрдПрд▓ рдПрдХреНрд╕реЗрд╕ рдХрд╛ рдкрдХреНрд╖ рд▓реЗрддрд╛ рд╣реВрдВ (рдкрд╣рд▓реЗ рдХреБрдЫ рд╡реЗрдмрдЬреАрдПрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдУрдкрдирдЬреАрдПрд▓ рдореВрд▓)ред рдЧреНрд░рд╛рдлрд┐рдХ рдХрд╛рд░реНрдб рддрдХ рдкрд╣реБрдВрдЪ рдХрдо рдпрд╛ рдмрд┐рдирд╛ рдУрд╡рд░рд╣реЗрдб рдХреЗ GPU/CUDA рдХреНрд╖рдорддрд╛рдУрдВ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╕рд╛рдмрд┐рдд рд╣реЛрдЧреАред
(рдмрд╕ рдЗрд╕ рдкрд░ рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧрдпрд╛ рдФрд░ рдЗрд╕ рдкрд░ # 273 рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХрд╛ рдореБрджреНрджрд╛ рдорд┐рд▓рд╛)

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

рдореБрдЭреЗ рдЙрдореНрдореАрдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк рд╕рднреА рдЙрддреНрддрд░реЛрдВ рдХреЗ рд╕рд╛рде рдЖрдПрдВрдЧреЗ! рдЕрднреА рдЬреЛ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрддрд╛ рд╣реИред Fwiw C++ рдореЗрдВ рд╕реНрдЯреИрдХ рд╕реАрдорд╛ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИрдВред SG14 рдЙрдкрд╕рдореВрд╣ рджреЗрдЦреЗрдВред

рдЬрд╝рд░реВрд░ рдХрд░реВрдБрдЧрд╛ред

рдЖрдкрдХреЗ рдзреИрд░реНрдп рдФрд░ рд╕рдордп рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рд▓реВрдЯрдирд╛

рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдЬреЛрдбрд╝ рдХреЗ рд░реВрдк рдореЗрдВ, рдЬрдм рдереНрд░реЗрдбреНрд╕ рд▓рд╛рдЧреВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╕реНрдЯреИрдХ рдХрд╛ рдЖрдХрд╛рд░ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдмрдбрд╝рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдЙрд╕рдХреЗ рдмрджрд▓реЗ рдореЗрдВ, рдпрджрд┐ рдЗрд╕реЗ рдХрдо рд╕реЗ рдХрдо 64MB рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░рд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рдПрдХ рдРрд╕рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИ рдЬреЛ 2 рдзрд╛рдЧреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЧреИрд░-рдореБрдЦреНрдп рдзрд╛рдЧреЗ рдХреЛ рдПрдХ рдмрд╣реБрдд рдмрдбрд╝реЗ рдвреЗрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

@jjpe рдЬреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЯреВрд▓рдЪреЗрди (рдЬреИрд╕реЗ рдХрд┐ рдПрдорд╕реНрдХреНрд░рд┐рдкреНрдЯрди) рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд░реЛрдз рд╣реЛрдЧрд╛, рдЬреЛ рдЗрд╕ рд░реЗрдкреЛ рдХреЗ рдмрдЬрд╛рдп wasm рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдЯреВрд▓рдЪреИрди рдХреА рдкрд╕рдВрдж рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдпрд╛ ABI рдХрд╛ рдореБрджреНрджрд╛ рд╣реИ, рдмрдЬрд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рд╡реЗрд╕рдо рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╣реИред (рдЗрд╕рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЖрдк https://github.com/kripken/emscripten/ рдкрд░ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ)

рдХреБрдЫ рдЪреАрдЬреЗрдВ рдЬреЛ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдкреВрд░реНрд╡ рд╕рдВрджреЗрд╢ рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХреА рдереАрдВ, рд╡реЗ рдирд╡реАрдирддрдо WASI рдкреНрд░рд╕реНрддрд╛рд╡ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рджреЗрдЦреЛ:
https://hacks.mozilla.org/2019/03/standardizing-wasi-a-webassembly-system-interface/

рдЕрдВрдЧреБрд▓рд┐рдпрд╛рдВ рдХреНрд░реЙрд╕ рдХрд░рдирд╛ред

--рдЖрд░

FWIW рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрд░реЛрдо рд╕рдВрд╕реНрдХрд░рдг 74 рдореЗрдВ wasm рдереНрд░реЗрдб рд╕рдорд░реНрдерди рд╢рд┐рдкрд┐рдВрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдореЗрдВ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ рдЬрд┐рд╕реЗ рдЕрднреА рддрдХ рд╢рд┐рдк рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ Emscripten рдХреЗ рдкрд╛рд╕ pthreads рд╕рдорд░реНрдерди (https://emscripten.org/docs/porting/pthreads.html) рд╣реИред рд╡рд╛рд╕рдо рдЕрдм рдЙрдкрд▓рдмреНрдз рд╣реИред

(рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ WASI рдПрдХ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдПрдкреАрдЖрдИ рд╣реИ, рдЬреЛ рдЬреНрдпрд╛рджрд╛рддрд░ рдСрд░реНрдереЛрдЧреЛрдирд▓ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╡рд╛рд╕реНрдо рдПрдореНрдмреЗрдбрд┐рдВрдЧ рдпрд╛ рдЯреВрд▓рдЪреЗрди рдереНрд░реЗрдбреНрд╕/рдкрд░рдорд╛рдгреБрдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ)ред

рдХреНрдпрд╛ рдХреНрд░реЛрдо рдФрд░ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдереНрд░реЗрдб рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╣реИрдВ?

рдпрд╣ рдЪреАрдЬреЛрдВ рдХрд╛ рдПрдХ рд╕рдВрдпреЛрдЬрди рд╣реИред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ wasm рдЗрдВрдЬрди, wasm рд╕реНрдкреЗрдХ (https://github.com/WebAssembly/threads/tree/master/proposals/threads) рдореЗрдВ рдереНрд░реЗрдбреНрд╕/рдПрдЯреЙрдорд┐рдХреНрд╕ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╕рд╛рдЭрд╛ рд╡рд╛рд╕реНрдо рдореЗрдореЛрд░реА рдХреЛ рдЗрдВрд╕реНрдЯреЗрдВрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╡реЗрдм рдкрд░ рдЖрдк рдПрдХ рд╡реЗрдм рд╡рд░реНрдХрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдкреЛрд╕реНрдЯрдореИрд╕реЗрдЬ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд░реНрдХрд░ рдХреЛ рдореЗрдореЛрд░реА (рдФрд░ рдХреЛрдИ рднреА рд╕рдВрдмрдВрдзрд┐рдд рд╡рд╛рд╕реНрдо рдореЙрдбреНрдпреВрд▓) рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░ рдЖрдк рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ (рдФрд░ рдореБрдЦреНрдп рдзрд╛рдЧреЗ, рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдХрд╛рд░реНрдпрдХрд░реНрддрд╛) рдкрд░ рд╕рд╛рдЭрд╛ рд╕реНрдореГрддрд┐ рдХреЗ рд╕рд╛рде рдореЙрдбреНрдпреВрд▓ рдХреЛ рддреБрд░рдВрдд рдЪрд╛рд▓реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдЙрдирдХреА рд╕реНрдореГрддрд┐ рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реИрдВред рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рд╕реНрддрд╛рд╡ рдЕрд╡рд▓реЛрдХрди (https://github.com/WebAssembly/threads/blob/master/proposals/threads/Overview.md) рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рджреВрд╕рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ред

рд╣рд╛рдп @dschuff рдФрд░ рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдЕрдкрдиреЗ рдкреВрд░реНрд╡ рд╕рдВрджреЗрд╢ рдореЗрдВ рдореИрдВ рдкрд┐рдЫрд▓реЗ рдПрдХ рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░ рд░рд╣рд╛ рдерд╛, рдЬрд┐рд╕рдореЗрдВ рди рдХреЗрд╡рд▓ рдкрд░реНрдереНрд░реЗрдб рд╢рд╛рдорд┐рд▓ рдереЗ рдмрд▓реНрдХрд┐ рдХреБрдЫ рдФрд░ рдХрд░реНрдиреЗрд▓ рдореЗрдВ wasm рдХрд╛ рд╡рд╛рдВрдЫрдиреАрдп рд╡рд┐рдХрд╛рд╕ рд╢рд╛рдорд┐рд▓ рдерд╛-рдЬреИрд╕реЗ рдХрд┐ рд╣рдо рдореЗрдВ рд╕реЗ рдХреБрдЫ рд▓реЛрдЧ 2010 рд╕реЗ emscripten рдХрд╛ рдЕрдиреБрд╕рд░рдг рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рдереЗ, рдлрд┐рд░ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдлрд▓рддрд╛ рддрдХрдиреАрдХ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрд╛ред
рджреЗрдЦреЗрдВ: https://github.com/WebAssembly/design/issues/992#issuecomment -285055578ред

рдПрдорд╕реНрдХреНрд░рд┐рдкреНрдЯрди рдХреЗ рдмрд╛рд╣рд░ рдЖрдиреЗ рдХреЗ рдиреМ рд╕рд╛рд▓ рдмрд╛рдж, рдФрд░ рд╡рд╛рд╕реНрдо рдШреЛрд╖рдгрд╛рдУрдВ рдХреЗ рд▓рдЧрднрдЧ рдкрд╛рдВрдЪ рд╕рд╛рд▓ рдмрд╛рдж, рд╡рд╛рд╕реНрдо рдХреЛ рдПрдХ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд╕рд░реНрд╡рд░ рддрдХрдиреАрдХ рдореЗрдВ рдмрджрд▓рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдХрдо рдкреНрд░рдЧрддрд┐ рд╣реБрдИ рд╣реИред

рдЕрдлрд╕реЛрд╕ рдХреА рдмрд╛рдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рдкреЛрд░реНрдЯреЗрдмрд▓ рдРрдкреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдирдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ IMHO POSIX рдереНрд░реЗрдбреНрд╕ рдФрд░ рдмрд░реНрдХрд▓реЗ рд╕реЙрдХреЗрдЯреНрд╕ + рдПрдХ рд╕реНрд╡-рдирд┐рд╣рд┐рдд рд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд░реНрдЪреБрдЕрд▓ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде) рдХреЗ рд╕рд╛рде рдПрдХ рдЫреЛрдЯреЗ рдХрд░реНрдиреЗрд▓ (рдмреАрдПрд╕рдбреА / рд▓рд┐рдирдХреНрд╕ рдЬреИрд╕реЗ) рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдФрд░ рд╕рдореВрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдВрдЧреЗ)ред рдореИрдВ рдПрдЪ. рд╕реНрдкреЗрдВрд╕рд░ рдХреА рдкреБрд░рд╛рдиреА рдХрд╣рд╛рд╡рдд рдкрд░ рдЕрдбрд┐рдЧ рд╣реВрдВ: "рдЬреЛ рд▓реЛрдЧ рдпреВрдирд┐рдХреНрд╕ рдХреЛ рдирд╣реАрдВ рд╕рдордЭрддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдирд┐рдВрджрд╛ рдХреА рдЬрд╛рддреА рд╣реИ"ред

рдореИрдВ рдЕрдм рднреА рд╡рд┐рд╢реНрд╡рд╛рд╕ рдмрдирд╛рдП рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП WASI рд╕рд╣реА рджрд┐рд╢рд╛ рдореЗрдВ рдПрдХ рдХрджрдо рд╣реИред

--рдЖрд░

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

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