Design: рдЯреИрдЧ рдХреА рдЧрдИрдВ рдЬреАрд╕реА рдкреЙрдЗрдВрдЯрд░реНрд╕

рдХреЛ рдирд┐рд░реНрдорд┐рдд 17 рджрд┐рд╕ре░ 2016  ┬╖  41рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: WebAssembly/design

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

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

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

рдореИрдВ рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╕рдВрднрд╛рд╡рд┐рдд рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдирдо рдкреНрд░рд╕реНрддрд╛рд╡ рд╕реЗ рднреА рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ (рдЬрд┐рд╕реЗ рдореИрдВ рдЯреАрд╕реА 3 9 рдореЗрдВ рддрд▓рд╛рд╢рдиреЗ рдореЗрдВ рд░реВрдЪрд┐ рд░рдЦрддрд╛ рд╣реВрдВ)ред рдпрд╣ рдЗрд╕ рдорд╛рди рдХрд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

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

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

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

рдЖрдк рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓реАрдирд┐рдпрд░ рдореЗрдореЛрд░реА рдореЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд╕ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдорд╛рд╕реНрдХ рдХрд░реЗрдВред рдореИрдВ рдЗрд╕ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрд╖реЛрдВ рд╕реЗ рд╕рдВрдШрд░реНрд╖ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рд╕рдорд░реНрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдпреЛрдЬрдирд╛ рд╣реИред

@sebmarkbage рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕

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

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

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

рдореБрдЭреЗ рдПрдирдо рдкреНрд░рд╕реНрддрд╛рд╡ рдСрдирд▓рд╛рдЗрди рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдореВрд▓реНрдп рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдерд╛ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдореВрд▓реНрдп рдкреНрд░рдХрд╛рд░реЛрдВ рд╕реЗ рдЕрд▓рдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕реАрд╕реА @littledan

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

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

рдореИрдВ рдЯреИрдЧ рдХрд┐рдП рдЧрдП рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреВрдВрдЧрд╛ рдЬреЛ рдореВрд▓реНрдп рдкреНрд░рдХрд╛рд░реЛрдВ рдпрд╛ рдЯрд╛рдЗрдк рдХреА рдЧрдИ рд╡рд╕реНрддреБрдУрдВ рд╕реЗ рдЕрд▓рдЧ рд╣реЛред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдпрд╣рд╛рдВ 2-4 рдЯреИрдЧ рдмрд┐рдЯреНрд╕ рддрдХ рд╕реАрдорд┐рдд рд░рдЦрдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рдПрдбреАрдЯреА рдХреЛ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдкреНрд░рддрд┐рдмрдВрдз рдирд╣реАрдВ рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕реАрд╕реА @tschneidereit

рдЬрдм @ рд░реЙрд╕рдмрд░реНрдЧ-рдХреНрд░реЛрдорд┐рдпрдо "рд╣рдо" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддрд╛ рд╣реИ рддреЛ рдЙрд╕рдХрд╛ рдорддрд▓рдм WASM рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдиреМрдкрдЪрд╛рд░рд┐рдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдореИрдВ рдЙрд╕рд╕реЗ 3 рдореАрдЯрд░ рджреВрд░ рдмреИрдарддрд╛ рд╣реВрдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕рдВрдЪрд╛рд░ рдХреЛ рдЖрд╢реАрд░реНрд╡рд╛рдж рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрд╕рдореВрд╣ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдУрд╡рд░рд╣реЗрдб рд╣реИ :-)

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

@titzer рд╕рдВрдпреЛрдЧ рд╕реЗ, "рд╣рдо" (@ lars-t-hansen, I рдФрд░ рдХреБрдЫ рдЕрдиреНрдп wasm рд▓реЛрдЧ) рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рд░рд╛рд╢рд┐ рдХреЗ рд╕рдорд╛рди рдореВрд▓ рд╡рд┐рдЪрд╛рд░ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░ рд░рд╣реЗ рдереЗ рдЬреЛ рд╣рдореЗрд╢рд╛ рдПрдХ рдЯреИрдЧ-рд╢рдмреНрдж рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рдерд╛ред

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

рдПрдХ "рд╕реВрдЪрдХ" рдЬреАрд╕реА-рд╕рдХреНрд╖рдо рдвреЗрд░ рдореЗрдВ рдХреБрдЫ gc'd рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдкрд╛рд░рджрд░реНрд╢реА рд╕рдВрджрд░реНрдн (рд╢рд╛рдпрдж рд╢реВрдиреНрдп) рд╣реИред рдпрд╣ Wasm-32 рдкрд░ 4 рдмрд╛рдЗрдЯреНрд╕ рдФрд░ Wasm-64 рдкрд░ 8 рдмрд╛рдЗрдЯреНрд╕ рд╣реИред

рдПрдХ "рдмреЙрдХреНрд╕" рдПрдХ рд╕реВрдЪрдХ рдЖрдХрд╛рд░ рдХрд╛ рдЯреНрд░рд┐рдкрд▓ рд╣реИ:

  • рдкреЙрдЗрдВрдЯрд░ рдбрд┐рдЬрд╝рд╛рдЗрдирд░ рдмрд┐рдЯ (1 рдмрд┐рдЯ)
  • рдЯреИрдЧ рдмрд┐рдЯреНрд╕ (2 рдпрд╛ 3 рдмрд┐рдЯреНрд╕, рд╢рдмреНрджреЛрдВ рдХреЗ рдЖрдХрд╛рд░ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ)
  • рдорд╛рди (рдПрдХ рд╕реВрдЪрдХ рдпрджрд┐ рд╕реВрдЪрдХ рд╕реВрдЪрдХ рд╕реЗрдЯ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ)

рдХреБрдЫ рдкреНрд░рд╢рдВрд╕рдиреАрдп рд╕рдВрдЪрд╛рд▓рди:
Boxptr (рд╕реВрдЪрдХ, рдЯреИрдЧ) -> рдмреЙрдХреНрд╕ [1, рдЯреИрдЧ, рд╕реВрдЪрдХ]
рдмреЙрдХреНрд╕рд╡рд╛рд▓ (рдкреВрд░реНрдгрд╛рдВрдХ, рдЯреИрдЧ) -> рдмреЙрдХреНрд╕ [0, рдЯреИрдЧ, рдкреВрд░реНрдгрд╛рдВрдХ рдФрд░ ~ 15]
ptrbitof(рдмреЙрдХреНрд╕) -> 0 рдпрд╛ 1
рдЯреИрдЧреЛрдлрд╝ (рдмреЙрдХреНрд╕) -> рдЯреИрдЧ
ptof(Box) -> рдкреЙрдЗрдВрдЯрд░ рдпрд╛ рдирд▓ рдпрджрд┐ рдмреЙрдХреНрд╕ рдкреЙрдЗрдВрдЯрд░ рдмреЙрдХреНрд╕ рдирд╣реАрдВ рд╣реИ
valof(Box) -> рдкреВрд░реНрдгрд╛рдВрдХ рдорд╛рди рдпрд╛ 0 рдпрджрд┐ рдмреЙрдХреНрд╕ рдкреВрд░реНрдгрд╛рдВрдХ рдмреЙрдХреНрд╕ рдирд╣реАрдВ рд╣реИ

рд╡рд░реНрддрдорд╛рди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛ wasm рдореЗрдВ рд╕реНрдерд╛рдиреАрдп рдФрд░ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдмреЙрдХреНрд╕-рдЯрд╛рдЗрдк рдпрд╛ рдкреАрдЯреАрдЖрд░-рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рд╣реЛрдВрдЧреЗред рд░реЗрдЦреАрдп рдвреЗрд░ рдореЗрдВ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдФрд░ рдмреЙрдХреНрд╕ рд╕рдВрдЧреНрд░рд╣рдгреАрдп рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред

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

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

@ рд▓рд╛рд░реНрд╕-рдЯреА-рд╣реИрдирд╕реЗрди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдк рдЯреЗрд╕реНрдЯ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдХреЛрдб if(is_int(p)) ... рдлрд╣рд░рд╛ рд╕рдХреЗ рдФрд░ рдлрд┐рд░ рд╕рдВрдХрд▓рдХ рдХреЛ рдкрддрд╛ рдЪрд▓ рдЬрд╛рдПрдЧрд╛ рдХрд┐ p рдХреЛ рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЯреИрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рди рдХрд┐ рдПрдХ рд╕реВрдЪрдХ рдФрд░ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ valof() рд╕рдВрдХрд▓рдХ рдХреЗ рдмрд┐рдирд╛ рдЙрддреНрдерд╛рдкрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдореБрдЭреЗ ptrof() рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рджрд┐рдЦрддреА рдХреНрдпреЛрдВрдХрд┐ рд░рдирдЯрд╛рдЗрдо рдХреЛ рд╡реИрд╕реЗ рднреА рдЙрдкрдпреЛрдЧ рдкрд░ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдкреНрд░рдХрд╛рд░ рд╣реИред

рдЯреИрдЧрд┐рдВрдЧ рдХреЛ 'рдореБрдХреНрдХреЗрдмрд╛рдЬреА' рдХрд╣рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ 'рдореБрдХреНрдХреЗрдмрд╛рдЬреА' рдХрд╛ рдЕрд░реНрде рдЕрдХреНрд╕рд░ рдПрдХ рдвреЗрд░ рдмреЙрдХреНрд╕ рдореЗрдВ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИред

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

@wllang , рд╣рд╛рдБ, рдореИрдВрдиреЗ рдЯрд╛рдЗрдк рдЯреЗрд╕реНрдЯ рдЧрд╛рд░рдВрдЯреА рд╣реЛрдЧреА рдпрд╛ рдирд╣реАрдВред is_int(x) eqz(ptrbitof(x)) рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ рдЬреЛ рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рдкрд╣рдЪрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрдард┐рди рдкреИрдЯрд░реНрди рдирд╣реАрдВ рд╣реИ; is_ptr(x) рд╕рд┐рд░реНрдл ptrbitof(x) рд╣реИред рдЪреВрдВрдХрд┐ рдпрд╣ рдПрдХ рд╕реНрдЯреИрдХ рдорд╢реАрди рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдХрд╛рд▓реНрдкрдирд┐рдХ рдПрдХ-рдмрд╛рдЗрдЯ рдСрдкрд░реЗрд╢рди "i32.isint" рдФрд░ рджреЛ-рдмрд╛рдЗрдЯ рдСрдкрд░реЗрд╢рди рдХреЗ рдмреАрдЪ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдорд╣реАрди рд░реЗрдЦрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рджреЛ рдпреВрдирд░реА рд╕рд┐рдВрдЧрд▓-рдмрд╛рдЗрдЯ рд╡рд╛рд▓реЗ рд╣реЛрддреЗ рд╣реИрдВ, "i32.ptrbit; i32.eqz"ред

рд▓реЗрдХрд┐рди рд╕рдЯреАрдХ рд░реВрдк рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛, рдХреНрдпрд╛ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ рдкреНрд░рднрд╛рд╡ред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ "if(is_ptr(x)) {...} рдФрд░ {...}" рдХреЗ рднреАрддрд░ рд╕рдВрдХрд▓рдХ рдорд╛рди рд╕рдХрддрд╛ рд╣реИ рдХрд┐ x рддрддреНрдХрд╛рд▓реАрди рдмреНрд▓реЙрдХ рдореЗрдВ рдПрдХ рд╕реВрдЪрдХ рд╣реИ рдФрд░ рдЕрдиреНрдп рдмреНрд▓реЙрдХ рдореЗрдВ рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рд╣реИ, рдпрджрд┐ рдпрд╣ рдореВрд▓реНрдп рд╕рд╛рдмрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ x рдХреЗ рд▓рд┐рдП рдЙрди рдмреНрд▓реЙрдХреЛрдВ рдХреЗ рднреАрддрд░ x рдХреА рддреБрд▓реНрдпрддрд╛ред рдпрд╣ рдПрд╕рдПрд╕рдП-рдЖрдзрд╛рд░рд┐рдд рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд▓рд┐рдП рдХрдард┐рди рдирд╣реАрдВ рд▓рдЧрддрд╛ред рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЙрди рдмреНрд▓реЙрдХреЛрдВ рдХреЗ рднреАрддрд░ рдПрдХ рдЯреИрдЧ рдЬрд╛рдВрдЪ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА ?

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдо рдПрдХ рдмрд╛рдЗрдЯрдХреЛрдб рдХреЛ рджреЛ рдорд╛рдиреЛрдВ рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рджреЗрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ; рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдПрдХ рдСрдкрд░реЗрд╢рди ptr_i32.ptof рдПрдХ рдкреЙрдЗрдВрдЯрд░ (рдпрд╛ рдирд▓) рдФрд░ рдПрдХ рдмреВрд▓рд┐рдпрди рд▓реМрдЯрд╛рдПрдЧрд╛ред рдлрд┐рд░ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рд╕рд╡рд╛рд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдХрд┐ рд╕рдВрдХрд▓рдХ рдХреЛ "рдЬрд╛рдирдирд╛" рдХреНрдпрд╛ рд╣реЛрдЧрд╛, рдЗрд╕рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рдореВрд▓реНрдп рд╣реЛрдЧрд╛ рдЬреЛ рдирд┐рд░реНрдорд╛рдг рджреНрд╡рд╛рд░рд╛ рд╕реВрдЪрдХ рд╣реИред (рдЗрди рдЯрд╛рдЗрдк рдХреА рдЧрдИ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рднреА рд╕рд╡рд╛рд▓ рд╣реИ рдФрд░ рдХрд┐рд╕ рдЕрд░реНрде рдореЗрдВ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╢рд╛рдпрдж рдЯреИрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдСрд░реНрдереЛрдЧреЛрдирд▓ рд╣реИред)

(рдереЛрдбрд╝рд╛ рдкреАрдЫреЗ рд╣рдЯрддреЗ рд╣реБрдП, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдХреБрдЫ рд╕рд░рд▓ рдЯреИрдЧ рд╡рд╛рд▓реЗ рд╕рдВрднрд╛рд╡рд┐рдд-рдЗрдВрдЯ рдмреЙрдХреНрд╕ рдкрд░ рдЕрдВрдХрдЧрдгрд┐рдд рдФрд░ рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рд╕рдВрдЪрд╛рд▓рди рдХреА рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП, рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕реНрдЯреЗрдЯрд╕ рдХреЛрдб рд░рд┐рдЯрд░реНрди рдХреЗ рд╕рд╛рде, SPARC рдкрд░ рдЯреИрдЧ рдХрд┐рдП рдЧрдП рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВред i32x2.add k, a, b рдХрд╛ рдкрд░рд┐рдгрд╛рдо (a+b, 0) рд╣реЛрдЧрд╛ рдпрджрд┐ a рдФрд░ b рджреЛрдиреЛрдВ рдирд┐рдЪрд▓реЗ k рдЯреИрдЧ рдмрд┐рдЯреНрд╕ == 0 рдХреЗ рд╕рд╛рде int рдмреЙрдХреНрд╕ рд╣реИрдВ рдФрд░ рдХреЛрдИ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рдирд╣реАрдВ рд╣реИ, рдЕрдиреНрдпрдерд╛ (рдХрдЪрд░рд╛, 1)ред i32x2.or k, a, b ditto a|bред рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╡рд╛рд╕рдо рд╕реНрддрд░ рдкрд░ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рд╡реНрдпрдХреНрдд рдХрд░рдирд╛ рдХрдард┐рди рд╣реИ рд▓реЗрдХрд┐рди рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╕реНрддрд░ рдкрд░ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдпреЗ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИрдВ - рдРрд╕рд╛ рдорд╛рдорд▓рд╛ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЗрд╕реЗ рд▓рдХреНрд╖рд┐рдд рдХрд░рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рд▓рд┐рд╕реНрдкрд┐рд╢ рднрд╛рд╖рд╛рдПрдБ to wasmред)

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрд╣рд╛рдИ рдПрдбреНрд░реЗрд╕ рдмрд┐рдЯреНрд╕ рдХрд╛ рд╕рд╡рд╛рд▓ рд╣реИ... рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЖрдкрдиреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╣рд▓реЗ рдХреНрдпрд╛ рд▓рд┐рдЦрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА BiBoP рдпреЛрдЬрдирд╛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрд╛ рдЖрдк рдЯреИрдЧ рдХреЗ рд▓рд┐рдП рдЙрдЪреНрдЪ рдмрд┐рдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

(рдЖрдк рдЬрд┐рд╕ рдореЛрдЬрд╝рд┐рд▓рд╛ рдмрдЧ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЙрд╕рдХрд╛ рд╕рдВрджрд░реНрдн?)

рдорд╛рдорд▓рд╛ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд▓рд┐рд╕реНрдкрд┐рд╢ рднрд╛рд╖рд╛рдУрдВ рдХреЛ wasm . рдкрд░ рд▓рдХреНрд╖рд┐рдд рдХрд░рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ

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

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

рд╣рдорд╛рд░рд╛ рд▓рдХреНрд╖реНрдп рд╕рднреА рднрд╛рд╖рд╛рдУрдВ рдФрд░ рд╕рднреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рддрдХрдиреАрдХреЛрдВ рдХреЛ рдЕрдЪреНрдЫреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕рд╛рде рд╕рдорд░реНрдерди рдХрд░рдирд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕реЗ рдХрд┐ рдХрд┐рд╕реА рддрдХрдиреАрдХ рдХреЗ рдЗрд╖реНрдЯрддрдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ 2x рдореЗрдореЛрд░реА рдФрд░ рд╕реАрдкреАрдпреВ рд╕рдордп рдХреЗ рднреАрддрд░ред рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдПрдХ рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди рд╡рд╛рд▓реЗ Wasm рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдПрдХ рдФрд░ рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди Wasm рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдпрд╛ рдЙрд╕рдХреЗ рдЕрдВрджрд░ рдЪрд▓ рд░рд╣реЗ JVM рдпрд╛ CLR рдХреЛ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╣реЛрд╕реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдЬреЛ рд╕рднреА рдХреЛрдб рдЬрдирд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдмрд╛рд╣рд░реА Wasm рдЗрдВрдЬрди рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдПрдВрдЧреЗ), рдпрд╛ рдПрдХ Lisp VM рдпрд╛ a рд╕реНрдЯреИрдХрд▓реЗрд╕ рдкрд╛рдпрдердиред рдЗрди рд╕рдм рд╕реЗ рдкрд░реЗ, рдореИрдВ рдирд┐рд░рдВрддрд░рддрд╛ (рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдорд╛рдЗрдХреНрд░реЛрдереНрд░реЗрдб рд╕рд┐рд╕реНрдЯрдо) рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рднреАрддрд░ рдлрд╛рд╕реНрдЯ рдЧреЛрдЯреЛ рдХреЗ рд▓рд┐рдП "рдкреНрд░рдердо рд╢реНрд░реЗрдгреА" рд▓реЗрдмрд▓ ... рдареАрдХ рд╣реИ, рдореВрд▓ рд░реВрдк рд╕реЗ рднрд╡рд┐рд╖реНрдп рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдореЗрдВ рд╕рдм рдХреБрдЫ рдФрд░ рдлрд┐рд░ рдХреБрдЫред рдЬрдмрдХрд┐ рдХрд╛рдо рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдиреА рд╣реЛрддреА рд╣реИ, рдпрд╣ рдирд╣реАрдВ рднреВрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рд╕рдм рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

@ lars-t-hansen рдореБрдЭреЗ GC/рдЕрдкрд╛рд░рджрд░реНрд╢реА рдвреЗрд░ (рд╕рд╛рде рд╣реА рдЕрдиреНрдп рд╕рднреА рдХреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ) рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдбрд┐рдЬрд╝рд╛рдЗрди рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреА рдмреЗрд╣рддрд░ рд╕рдордЭ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ред WebAssembly VM рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдЯреИрдЧ рдмрд┐рдЯреНрд╕ рдХрд╛ рдХреНрдпрд╛ рдкреНрд░рднрд╛рд╡ рд╣реЛрдЧрд╛?

рд╣рдо "рд╕рднреА рдЙрджреНрджреЗрд╢реНрдп" VM рдХреИрд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВ? рдХреБрдЫ рд╣реИ рдХрд┐

  • рд╕рдЯреАрдХ, рд╕рдВрдХреБрдЪрд┐рдд, рдкреАрдврд╝реАрдЧрдд рдЬреАрд╕реА рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ
  • рд╕рд░рдгреА рд╕реНрд▓рд╛рдЗрд╕ рдФрд░ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдпрд╛ рд╕рд░рдгреА рдХреЗ рдордзреНрдп рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рди рдХрд┐ рдХреЗрд╡рд▓ рд╢реБрд░реБрдЖрдд
  • "рдкрддрд▓реЗ" рдФрд░ "рд╡рд╕рд╛" рдкреЙрдЗрдВрдЯрд░реНрд╕ - рдпрд╛ рджреЛрдиреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ! (рдкрддрд▓реЗ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдЗрдВрдЧрд┐рдд рдХреА рдЧрдИ рд╡рд╕реНрддреБ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рд╡рд╕рд╛ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдЙрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╢рдмреНрдж рдпрд╛ рдкреЙрдЗрдВрдЯрд░ рдХреЗ рд╕рд╛рде рджреЛ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВ)
  • "рд╢рд╛рдпрдж рдкреЙрдЗрдВрдЯрд░реНрд╕" рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдФрд░ рдкреВрд░реНрдгрд╛рдВрдХ рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░ рд╕рдХрддрд╛ рд╣реИ
  • рд╕рдВрдШ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ (рдП рдпрд╛ рдмреА рдпрд╛ рд╕реА рдХреЗ рд╕реВрдЪрдХ - рдпрд╣ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХреМрди рд╕рд╛ рдЧрддрд┐рд╢реАрд▓ рд╣реИ)
  • рд╣рдорд╛рд░реА рд╕реБрд░рдХреНрд╖рд╛ рдмрд╛рдзрд╛рдУрдВ рдХреЗ рддрд╣рдд рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрд╕рдВрднрд╡ рд╣реЛ, рд╕реНрдореГрддрд┐ рдЖрд╡рдВрдЯрди рдФрд░ рдЬреАрд╕реА рдкрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдирд┐рдпрдВрддреНрд░рдг рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
  • рдЕрдкрд╛рд░рджрд░реНрд╢реА рд╕рдВрджрд░реНрднреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ - рднрд▓реЗ рд╣реА рдпрд╣ "рдбреНрд░рд╛рдЗрд╡рд░ рдХреА рд╕реАрдЯ" рдореЗрдВ Wasm рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдбрд╛рд▓рдиреЗ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рд▓рдХреНрд╖реНрдп рдХреЗ рд╕рд╛рде рддрдирд╛рд╡ рдореЗрдВ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ GC рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд░рдиреЗ рджреЗрдирд╛
  • рдЕрдиреНрдп рд╕рд╛рдорд╛рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рднреА рдирд╣реАрдВ рд╣реИ

рдЗрд╕рдореЗрдВ рдЕрд╕реНрд╡реАрдХрд░рдг рдХрд┐ рдпрд╣ рдЯрд┐рдкреНрдкрдгреА рдУрдкреА рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдирд╣реАрдВ рд╣реИред

рдпрджрд┐ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ WebAssembly рдХреЛ рд╕рднреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рд╕рдорд░реНрдерди рджреЗрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк Wasm рдХреЗ рдорд╣рддреНрд╡ рдХреЛ рдХрдо рдХрд░рдХреЗ рдЖрдВрдХ рд░рд╣реЗ рд╣реИрдВред рд╕рд╣реА рдХрд┐рдпрд╛, рд╡рд╛рд╕рдо рдкреВрд░реА рджреБрдирд┐рдпрд╛ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд▓реЗрдЧрд╛....

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

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

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ "рдЯреЗрдХ рдУрд╡рд░ рдж рд╡рд░реНрд▓реНрдб" рд╢реВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рд╛рди рд▓рдХреНрд╖реНрдп рд╣реИ

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

рддреЛ, WebAssembly VM рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдЯреИрдЧ рдмрд┐рдЯреНрд╕ рдХрд╛ рдХреНрдпрд╛ рдкреНрд░рднрд╛рд╡ рд╣реЛрдЧрд╛? рдпреЗ рдХрд┐рд╕рд▓рд┐рдП рд╣реИрдВ?

рдореИрдВрдиреЗ рдКрдкрд░ рд╕реЗ рдЕрдкрдиреА рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдирд┐рдХрд╛рд▓реАрдВ рдФрд░ рдереЛрдбрд╝рд╛ рд╡рд┐рд╕реНрддреГрдд рдХрд┐рдпрд╛, рддрд╛рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣рд░ рдмрд╛рд░ рдЗрд╕ рдкреВрд░реЗ рдзрд╛рдЧреЗ рдХреЛ рд╕реНрдХреИрди рдХрд┐рдП рдмрд┐рдирд╛ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрддреЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрдЧрд╣ рд╣реЛ:
https://github.com/lars-t-hansen/moz-sandbox/blob/master/wasm-tagging.md

рдЙрд╕ рд░рд╛рдЗрдЯрдЕрдк рдореЗрдВ "рдХреНрдпреЛрдВ рдЯреИрдЧрд┐рдВрдЧ" рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рднреА рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╣реИ? рдФрд░ рд╕реБрд░рдХреНрд╖рд╛, рдкреВрд░реНрд╡ рдХрд▓рд╛, рдЖрджрд┐ рдкрд░ рдХреБрдЫ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБред

@qwertie , рдореИрдВ

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

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

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

рдореИрдВ рдЕрд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдПрдХ рдЕрдкрд╛рд░рджрд░реНрд╢реА рдвреЗрд░ рдореЗрдВ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдРрд╕реА рд╕реБрд╡рд┐рдзрд╛ рд╣реИ рдЬреЛ WebAssembly рдХреЗ рдкрд╛рд╕ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдЧрддрд┐рд╢реАрд▓ рдФрд░ GCed рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП WebAssembly рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рддреАрди рд╕рдВрднрд╛рд╡рд┐рдд рджрд┐рд╢рд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реВрдВ:

  1. рдХреЗрд╡рд▓ рдЧреИрд░-рдЬреАрд╕реАрдб рд╕реНрдерд┐рд░ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡реАрдПрдо рд╣реЛрдиреЗ рдХреА рдЪрд┐рдВрддрд╛ рдХрд░реЗрдВред
  2. рдПрдХ рдЬреЗрдПрд╕-рдЗрдВрдЯрд░-рдСрдкрд░реЗрдЯреЗрдмрд▓ рдЯрд╛рдЗрдк рдФрд░ рдХрдЪрд░рд╛ рдПрдХрддреНрд░рд┐рдд рдвреЗрд░ рдХрд╛ рдкрд░реНрджрд╛рдлрд╛рд╢ рдХрд░реЗрдВред
  3. WebAssembly рдореЗрдВ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдк рдХреА рдЧрдИ рднрд╛рд╖рд╛рдУрдВ (рдпрд╛ рд╕реНрдерд┐рд░ рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдк рдХреА рдЧрдИ GCed рднрд╛рд╖рд╛рдУрдВ) рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЖрджрд┐рдо рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░реЗрдВ: рдЬреИрд╕реЗ JIT рдХреЛрдб рдкреИрдЪрд┐рдВрдЧ, рд▓реАрдирд┐рдпрд░ рдореЗрдореЛрд░реА рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрдЪрд░реЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреИрдХ рд╡реЙрдХрд┐рдВрдЧ, рдЖрджрд┐ред

рдПрдорд╡реАрдкреА рдиреЗ рдПрдорд╡реАрдкреА рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рдкреНрд░рддрд┐рдмрджреНрдз рдХрд┐рдП рдмрд┐рдирд╛ рдЕрдкрдиреЗ рджрд╛рдпрд░реЗ рдХреЛ рдкрд╣рд▓реА рджрд┐рд╢рд╛ рддрдХ рд╕реАрдорд┐рдд рдХрд░ рджрд┐рдпрд╛ рд╣реИред

рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдФрд░ GC рдбрд┐рдЬрд╝рд╛рдЗрди рдкреГрд╖реНрда рджреВрд╕рд░реА рджрд┐рд╢рд╛ рдЧреНрд░рд╣рдг рдХрд░рддреЗ рд╣реИрдВред рдЙрд╕ рдзрд╛рд░рдгрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдЬреАрд╕реА рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЯреИрдЧ рдмрд┐рдЯреНрд╕ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ рдЕрдкрд╛рд░рджрд░реНрд╢реА рдЬреАрд╕реА рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЗ рд╕рд╕реНрддреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ "рд╕рдорд░реНрдерд┐рдд" рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рддреАрд╕рд░реА рджрд┐рд╢рд╛ WebAssembly рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рджрд┐рд╢рд╛ рд╣реИред рджреВрд╕рд░реА рджрд┐рд╢рд╛ WebAssembly рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ DOM рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рдХрд░ рдкреНрд░реЗрд░рд┐рдд рд▓рдЧрддреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреЛрдИ рднреА рд╕реАрдзреЗ WebAssembly рдореЗрдВ рдХреЛрдб рдирд╣реАрдВ рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдХреБрдЫ рднрд╛рд╖рд╛ рд╕рдорд░реНрдерди рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛, рдФрд░ рдпрд╣ DOM рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ JS API рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрддрдиреА рд╣реА рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ DOM рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдкрд╣реБрдБрдЪ рдереАред

рджреВрд╕рд░реА рджрд┐рд╢рд╛ JVM/.net, рдпрд╛ рдпреЛрдЬрдирд╛, рдпрд╛ рд░реВрдмреА рдХреЗ рд▓рд┐рдП WASM рдмреИрдХрдПрдВрдб рдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧреАред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛ рдПрдХ рдЖрдХрд╛рд░-рдлрд┐рдЯ-рд╕рднреА рдирд╣реАрдВ рд╣реИрдВ: рд╕рдВрднрд╛рд╡рд┐рдд рдкрд░рд┐рдгрд╛рдо WASM VMs рдХреЗ рд▓рд┐рдП рдПрдХ рдЯрд╛рдЗрдк + GCed рдвреЗрд░ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдерд╛рдпреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкреЗрд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдХрдИ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рдкреНрд░рджрд░реНрд╢рди рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

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

рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдПрдХ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреАрд╕реА рдвреЗрд░ рдХреЛ WebAssembly рдмрдирд╛рдо рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рд╡реНрд╕ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреА рд╕рд╛рдкреЗрдХреНрд╖ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП # 733 рдмрдирд╛рдпрд╛ рдерд╛ред рд╢рд╛рдпрдж WASM GC рдХреА рджрд┐рд╢рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдЧреЗ рдХреА рдЪрд░реНрдЪрд╛ рд╡рд╣рд╛рдБ рдЬрд╛рд░реА рд░рд╣ рд╕рдХрддреА рд╣реИ, рдФрд░ рдпрд╣ рдореБрджреНрджрд╛ рдЗрд╕ рдзрд╛рд░рдгрд╛ рдХреЗ рд╕рд╛рде рдЯреИрдЧ рдХрд┐рдП рдЧрдП GC рдкреЙрдЗрдВрдЯрд░реНрд╕ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд░рд╣ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ GC рд╣реАрдк рдореЗрдВ рдЕрдкрд╛рд░рджрд░реНрд╢реА рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЗ рд▓рд┐рдП WASM рдореЗрдВ рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред

@ рд▓рд╛рд░реНрд╕-рдЯреА-рд╣реИрдирд╕реЗрди рдЖрдкрдХреЗ рд░рд╛рдЗрдЯрдЕрдк рдореЗрдВ рдпрд╣ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдХреИрд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдпрд╛ рдЕрдкрд╛рд░рджрд░реНрд╢реА рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдореГрддрд┐ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдХреНрдпрд╛ рдХреЛрдИ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдзрд╛рд░рдгрд╛ рд╣реИ рдХрд┐ рдЕрдкрд╛рд░рджрд░реНрд╢реА рд╕рдВрджрд░реНрдн "рдвреЗрд░" рдпрд╛ "рддрд╛рд▓рд┐рдХрд╛" "рдмрдХреНрд╕реЗ" (рдпрд╛ рдЙрд╣ ... "рдЯреИрдЧ рдХрд┐рдП рдЧрдП рдкреАрдЯреАрдЖрд░рдПрд╕" ... рдЯреАрдкреА?) рдХреА рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕рд░рдгреА рд╣реЛрдЧреА, рдЬреИрд╕реЗ рдХрд┐ рдЗрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдмреЙрдХреНрд╕ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдПрдХ JS рдСрдмреНрдЬреЗрдХреНрдЯ, рдЬрд┐рд╕реЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ JS GC рджреНрд╡рд╛рд░рд╛ рдЬреАрд╡рд┐рдд рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛?

рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдореЗрд░реЗ рд╕рд╛рде рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рд╡рд┐рдЪрд╛рд░ рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ WebAssembly Wasm рдХреА рдУрд░ рд╕реЗ рдХрдЪрд░рд╛ рдЗрдХрдЯреНрдард╛ рдХрд░рддрд╛ рд╣реИ - рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЕрдкрд╛рд░рджрд░реНрд╢реА рд╕рдВрджрд░реНрдн рдХреНрд╖реЗрддреНрд░ рдХреЛ JS рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рджреЛрдиреЛрдВ рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (рдЙрдиреНрд╣реЗрдВ рдПрдХрддреНрд░ рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП) рдФрд░ рдЕрдиреНрдп рд╕рд╛рдорд╛рди, рдЬреИрд╕реЗ рдкреВрд░реНрдгрд╛рдВрдХ рдФрд░ рд╕реНрд╡рдпрдВ рдХреЗ рдЖрдВрддрд░рд┐рдХ рд╕рдВрджрд░реНрднред рдПрдХ (рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп) рдЬреАрд╕реА рддрдм WebAssembly рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЕрдкрд╛рд░рджрд░реНрд╢реА рд╕рдВрджрд░реНрдн рдХреНрд╖реЗрддреНрд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдореИрдВ рдЧрд░реНрдо рд╣реЛ рд░рд╣рд╛ рд╣реВрдБ?

рдкреНрд░рдердо рд╢реНрд░реЗрдгреА рдирд┐рд░рдВрддрд░рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ - рдпрд╣ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред Coroutines рдпрд╛ рд╣рд▓реНрдХреЗ рдвреЗрд░, рдирд┐рд╢реНрдЪрд┐рдд, рд▓реЗрдХрд┐рди рдирд┐рд░рдВрддрд░рддрд╛? рдХреНрдпрд╛ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рдлрд╛рдЗрдмрд░/рдХреЛрд░рдЖрдЙрдЯрд┐рди/рдереНрд░реЗрдб рдЪреАрдЬрд╝ рдмрдирд╛рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдвреЗрд░ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ? рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╕реНрд╡рд┐рдЪ-рд╕реНрдЯреИрдХ рдСрдкреЛрдб рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА "рд▓рд╛рдЗрдЯрд╡реЗрдЯ" рд╕реНрдЯреИрдХ рдЪреАрдЬрд╝ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛред рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ call/cc WebAssembly рдХреЗ рддрд╣рдд рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рд▓реЛрдЧ call/cc рдЬреЛ рдЪреАрдЬреЗрдВ рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рд╡реГрддреНрддрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рд╡реЗ рд╣реЛрдВрдЧреАред

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

  • рдореБрдЭреЗ рдЗрдВрдЯрд░рдСрдкрд░реЗрдмрд┐рд▓рд┐рдЯреА рдХреА рдмрд╣реБрдд рдкрд░рд╡рд╛рд╣ рд╣реИ; рдмрд┐рд▓реНрдЯ-рдЗрди рдЧрд╛рд░рдмреЗрдЬ рдХрд▓реЗрдХреНрдЯрд░ рд╣реЛрдиреЗ рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдХрдЪрд░рд╛-рдПрдХрддреНрд░рд┐рдд рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдСрдкрд░реЗрдЯ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
  • рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЗ рдмрдбрд╝реЗ рдЯреБрдХрдбрд╝реЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд╡реЗрдм рд╕рд╛рдЗрдЯ рд╕реЗ рдПрдХ рдЕрд▓рдЧ рдЬреАрд╕реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рднрд╛рд░реА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ

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

@AndrewScheidecker , рдЙрдЪрд┐рдд рдмрд┐рдВрджреБ - рдпрд╣ рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ gc'd рдвреЗрд░ рдореЗрдВ рдЕрдкрд╛рд░рджрд░реНрд╢реА рдкреЙрдЗрдВрдЯрд░реНрд╕ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рд╣рдо рдЙрд╕ рдЪрд░реНрдЪрд╛ рдХреЛ рдЕрдВрдХ #733 рдореЗрдВ рдЬрд╛рд░реА рд░рдЦреЗрдВ рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдкрд╛рд░рд┐рдд рд╣реЛрдиреЗ рдореЗрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рджрд╛рд╡рд╛ рд╣реИ рдХрд┐ "рддреАрд╕рд░реА рджрд┐рд╢рд╛ [...] рд▓рдВрдмреА рдЕрд╡рдзрд┐ рдореЗрдВ рджреЛрдиреЛрдВ рдХреЛ рд╕рд░рд▓ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди WASM VMs рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ VMs рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдХрдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдЖрдЬ рдХреЗ рдЕрдзрд┐рдХ рд╡реАрд░ рдЕрдиреБрдХреВрд▓рди рдкреНрд░рдпрд╛рд╕ JavaScript VMs рд╕реЗ рдорд╛рдЗрдЧреНрд░реЗрдЯ рд╣реЛрддреЗ рд╣реИрдВ WASM рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдореЗрдВред" рдЗрд╕рдХреЗ рд╕рдорд░реНрдерди рдореЗрдВ рддрд░реНрдХ рдФрд░ рдХреЛрдб рджреЛрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ; рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдЪ рд╣реИред

@qwertie , рдпрд╣рд╛рдБ рдореЗрд░реА рд╕рд╛рдорд╛рдиреНрдп рдзрд╛рд░рдгрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╡рд╣рд╛рдБ wasm рд╕реНрдерд╛рдиреАрдп рдФрд░ рд╢рд╛рдпрдж Ptr рдФрд░ Box рдкреНрд░рдХрд╛рд░ рдХреЗ рдЧреНрд▓реЛрдмрд▓реНрд╕ рд╣реЛрдВрдЧреЗ; рдХрд┐ рдЕрдкрд╛рд░рджрд░реНрд╢реА рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рдРрд╕реЗ рдХреНрд╖реЗрддреНрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╕реНрдерд┐рд░ рд░реВрдк рд╕реЗ Ptr рдпрд╛ Box рдХреЗ рд░реВрдк рдореЗрдВ рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛; рдФрд░ рдпрд╣ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЬреАрд╕реА рдЗрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдЧрд╛, рдЙрдирдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрд░реНрдг рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрдЧреАред рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдерд╛ - рдпрд╣рд╛рдБ - рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд▓рдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдЬреАрд╕реА рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрд┐рд╕реЗ рдореИрдВ рдПрдХ рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдорд╛рдирддрд╛ рд╣реВрдВред (рдлрд┐рд░ рд╕реЗ, рдпрд╣ рдЪрд░реНрдЪрд╛ "рдХреНрдпрд╛ рд╣рдо рдЕрдкрд╛рд░рджрд░реНрд╢реА рдкреЙрдЗрдВрдЯрд░реНрд╕ рдореЗрдВ рдЯреИрдЧ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ?" рдХреЗ рд░реВрдк рдореЗрдВ рд╢реБрд░реВ рд╣реБрдИред)

рдмреБрдз, 4 рдЬрдирд╡рд░реА, 2017 рджреЛрдкрд╣рд░ 2:59 рдмрдЬреЗ, рдПрдВрдбреНрд░рдпреВ рд╕реНрдХреАрдбреЗрдХрд░ < рд╕реВрдЪрдирд╛рдПрдВ @github.com

рд▓рд┐рдЦрд╛ рдерд╛:

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

рдореИрдВ рдЗрд╕ рдмрд╛рдд рд╕реЗ рдЕрд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдПрдХ рдЕрдкрд╛рд░рджрд░реНрд╢реА рдвреЗрд░ рдореЗрдВ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдХрд┐ WebAssembly
рд╣реЛрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдореИрдВ WebAssembly рдХреЗ рд▓рд┐рдП рддреАрди рд╕рдВрднрд╛рд╡рд┐рдд рджрд┐рд╢рд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реВрдВ
рдЧрддрд┐рд╢реАрд▓ рдФрд░ GCed рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди:

  1. рдХреЗрд╡рд▓ рдЧреИрд░-рдЬреАрд╕реАрдб рд╕реНрдерд┐рд░ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡реАрдПрдо рд╣реЛрдиреЗ рдХреА рдЪрд┐рдВрддрд╛ рдХрд░реЗрдВред
  2. рдПрдХ рдЬреЗрдПрд╕-рдЗрдВрдЯрд░-рдСрдкрд░реЗрдЯреЗрдмрд▓ рдЯрд╛рдЗрдк рдФрд░ рдХрдЪрд░рд╛ рдПрдХрддреНрд░рд┐рдд рдвреЗрд░ рдХрд╛ рдкрд░реНрджрд╛рдлрд╛рд╢ рдХрд░реЗрдВред
  3. рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЖрджрд┐рдо рдХрд╛ рдкрд░реНрджрд╛рдлрд╛рд╢ рдХрд░реЗрдВ
    WebAssembly рдореЗрдВ рднрд╛рд╖рд╛рдПрдБ (рдпрд╛ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдк рдХреА рдЧрдИ GCed рднрд╛рд╖рд╛рдПрдБ): рдЬреИрд╕реЗ JIT
    рдХреЛрдб рдкреИрдЪрд┐рдВрдЧ, рд▓реАрдирд┐рдпрд░ рдореЗрдореЛрд░реА рдПрдХрддреНрд░рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрдЪрд░реЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреИрдХ рд╡реЙрдХрд┐рдВрдЧ, рдЖрджрд┐ред

рдПрдорд╡реАрдкреА рдиреЗ рдЕрдкрдирд╛ рджрд╛рдпрд░рд╛ 1 рджрд┐рд╢рд╛ рддрдХ рд╕реАрдорд┐рдд рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрджреНрдз рдирд╣реАрдВ рд╣реИ
рдпрд╣ рдПрдорд╡реАрдкреА рдХреЗ рдмрд╛рджред

рд╣рд╛рдВ, рдФрд░ рдпрд╣ рдлреАрдЪрд░ рд░реЗрдВрдЧрдиреЗ рдХрд╛ рд╡рд┐рд░реЛрдз рдХрд░рдиреЗ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЬрд╛рдирдмреВрдЭрдХрд░ рдерд╛
рд╕рдлрд▓рддрд╛ред

рд╡рд┐рднрд┐рдиреНрди рд╕рдВрджрд░реНрднреЛрдВ рдореЗрдВ рд╣рдордиреЗ рдЬреЛ рдЪрд░реНрдЪрд╛ рдХреА рд╣реИ рд╡рд╣ рдПрдХ _extension_ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдмрдВрдзрд┐рдд рдбреЗрдЯрд╛ рд╣реИ
WebAssembly рдХреЗ рд▓рд┐рдП (рдореИрдВ рдкреНрд░рдмрдВрдзрд┐рдд рдбреЗрдЯрд╛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди, рдпрд╛ MDX рдирд╛рдо рдкрд░ рднреА рд╡рд┐рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ,
рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрдореНрдореАрджрд╡рд╛рд░ рдмрдирдиреЗ рдХреЗ рд▓рд┐рдП)ред рдкреНрд░рдмрдВрдзрд┐рдд рдбреЗрдЯрд╛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди WASM рдХреЛрдб рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛
рд░реИрдЦрд┐рдХ рдореЗрдореЛрд░реА рд╕реЗ рдЕрд▓рдЧ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рд╕рдВрд░рдЪрдирд╛ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
WASM рдЗрдВрдЬрди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдмрдВрдзрд┐рдд (рдпрд╛рдиреА GC'd)ред рд╕реНрдЯреНрд░рдХреНрдЪрд░реНрд╕ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдЕрдирдмреЙрдХреНрд╕ рдХрд┐рдП рдЧрдП рдлрд╝реАрд▓реНрдб рдФрд░ рдирд┐рдореНрди-рд╕реНрддрд░ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдВрдЧреЗ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВрдЧреЗ
рдЬрд╛рд╡рд╛ рдЬреИрд╕реА рдЙрдЪреНрдЪ рд╕реНрддрд░реАрдп рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЙрдбрд▓ (vtables, class . рдХреЗ рд╕рд╛рде)
рдкреЙрдЗрдВрдЯрд░реНрд╕, рдЖрджрд┐), рдЧреЛ, рдХрд╛рд░реНрдпрд╛рддреНрдордХ рднрд╛рд╖рд╛рдПрдБ, рдЖрджрд┐ред

рдкреНрд░рдмрдВрдзрд┐рдд рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ, рдорд╛рдиреЛрдВ рдФрд░ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдПрдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рди рджреЗрдирд╛
рдПрдХ рдХреЛрд░ WASM рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛ рджреЗрдЧрд╛ рдЬреЛ рдмрд╕ рдХрд░рддрд╛ рд╣реИ
рд╡рд┐рд╕реНрддрд╛рд░ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗред рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░, рдпрд╣ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛
(рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреБрдЫ рдХрд╛рдо рд▓реЗрддреЗ рд╣реИрдВ) рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЕрдиреБрд╡рд╛рдж рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ a . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
рдЗрдирдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реИрдЦрд┐рдХ рд╕реНрдореГрддрд┐ (рдпрд╛ рдПрдХ рдЕрд▓рдЧ рд░реИрдЦрд┐рдХ рд╕реНрдореГрддрд┐) рдХрд╛ рднрд╛рдЧ
рдПрдХ рдкреНрд░рджрд░реНрд╢рди рдиреБрдХрд╕рд╛рди рдкрд░, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдХ рдЬреАрд╕реА рдХреЛ рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдФрд░ GC рдбрд┐рдЬрд╝рд╛рдЗрди рдкреГрд╖реНрда http://GC.md рджреВрд╕рд░рд╛ рдорд╛рди
рджрд┐рд╢рд╛ред рдЙрд╕ рдзрд╛рд░рдгрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, GC рдХреЗ рд▓рд┐рдП рдЯреИрдЧ рдмрд┐рдЯреНрд╕ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛
рдкреЙрдЗрдВрдЯрд░реНрд╕ рдЕрдкрд╛рд░рджрд░реНрд╢реА рдЬреАрд╕реА рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЗ рд╕рд╕реНрддреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ
рдХрд┐ "рдЬрд░реВрд░реА" рд╕рдорд░реНрдерд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

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

рджреВрд╕рд░реА рджрд┐рд╢рд╛ JVM/.net, рдпрд╛ рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП WASM рдмреИрдХрдПрдВрдб рдХреА рднреА рдЕрдиреБрдорддрд┐ рджреЗрдЧреА,
рдпрд╛ рд░реВрдмреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрдЪрд░рд╛
рд╕рдВрдЧреНрд░рд╛рд╣рдХ рдПрдХ рдЖрдХрд╛рд░-рдлрд┐рдЯ-рд╕рднреА рдирд╣реАрдВ рд╣реИрдВ: рд╕рдВрднрд╛рд╡рд┐рдд рдкрд░рд┐рдгрд╛рдо рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ
WASM VMs рдХреЗ рд▓рд┐рдП рдПрдХ рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рд╣реБрдЖ + GCed рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдерд╛рдпреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╢реБрд░реВ рдХрд░рдирд╛
рдвреЗрд░ рдЬреЛ рдХрдИ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рдкреНрд░рджрд░реНрд╢рди рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

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

рдореИрдВрдиреЗ рдкрд╣рд▓реЗ #733 . рдмрдирд╛рдпрд╛ рдерд╛
https://github.com/WebAssembly/design/issues/733 рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
WebAssembly рдмрдирд╛рдо JavaScript GC рд╣реАрдк рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреА рд╕рд╛рдкреЗрдХреНрд╖ рдкреНрд░рд╛рдердорд┐рдХрддрд╛
рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрджрд┐рдо рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ред рд╢рд╛рдпрдж рдЖрдЧреЗ
WASM GC рдХреА рджрд┐рд╢рд╛ рдкрд░ рдЪрд░реНрдЪрд╛ рд╡рд╣рд╛рдБ рдЬрд╛рд░реА рд░рд╣ рд╕рдХрддреА рд╣реИ, рдФрд░ рдпрд╣ рдореБрджреНрджрд╛
рдЯреИрдЧ рдХрд┐рдП рдЧрдП рдЬреАрд╕реА рдкреЙрдЗрдВрдЯрд░реНрд╕ рдкрд░ рдЗрд╕ рдзрд╛рд░рдгрд╛ рдХреЗ рд╕рд╛рде рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд░реНрдерди
рдЬреАрд╕реА рдвреЗрд░ рдореЗрдВ рдЕрдкрд╛рд░рджрд░реНрд╢реА рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдбрдмреНрд▓реНрдпреВрдПрдПрд╕рдПрдо рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/WebAssembly/design/issues/919#issuecomment-270484689 ,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/ALnq1EpdSRskLiuHx4v5M83T4IS9wmx1ks5rPAgggaJpZM4LPxE5
.

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

@titzer рд░реЗ: 'рдЗрди

рдЗрди "рдкреНрд░рджрд░реНрд╢рди рдиреБрдХрд╕рд╛рди" рдХреА рдкреНрд░рдХреГрддрд┐ рдХреНрдпрд╛ рд╣реИ?

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

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

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

рдореИрдВ рд╕рд┐рд░реНрдл рдЙрдЪреНрдЪ рд╕реНрддрд░реАрдп рдкреНрд░рдмрдВрдзрд┐рдд рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╣рдЯрд╛ рджреВрдВрдЧрд╛ рдФрд░ рдЬреАрд╕реА рдХреЛ wasm рд╕реЗ рд╣рдЯрд╛ рджреВрдВрдЧрд╛, рдЗрд╕реЗ рднрд╡рд┐рд╖реНрдп рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рд╕реЗ рд╣рдЯрд╛ рджреВрдВрдЧрд╛

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

рд▓реАрдирд┐рдпрд░ рдореЗрдореЛрд░реА рдореЙрдбрд▓ рдореЗрдВ рд╡рд╛рд╕реНрдо рдореЗрдореЛрд░реА рд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛

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

@sjrd рдЗрди 'рдЪреБрдиреМрддрд┐рдпреЛрдВ' рдХреЛ рд╡рд┐рд╕реНрддреГрдд рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдЙрдиреНрд╣реЗрдВ рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рддреЛ рдЖрдк рдЬреЛ рд╢реЛ рд╕реНрдЯреЙрдкрд░реНрд╕ рдЙрдард╛ рд░рд╣реЗ рд╣реИрдВ рд╡реЗ рд╣реИрдВ:

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

  • рдЖрдк рд╕рд░реНрдХреБрд▓рд░ рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рдореБрджреНрджреЗ рдХреЛ рднреА рдЙрдард╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреА рдЪрд┐рдВрддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЬреЗрдПрд╕ рдЬреАрд╕реА рдХреИрд╕реЗ рдЗрди рдЬреАрд╕реА рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЛ рд╡рд╛рд╕рдо рд╡реАрдПрдо рдореЗрдВ рдкреВрд░реНрдгрд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ? рд▓реЗрдХрд┐рди рдЬреЗрдПрд╕ рд╕реЗ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд░реИрдЦрд┐рдХ рд╕реНрдореГрддрд┐ рдореЗрдВ рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

рдЗрди рдореБрджреНрджреЛрдВ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рд╡рд╕реНрддреБрдУрдВ рдФрд░ рдкреНрд░рдмрдВрдзрд┐рдд GC рдХреЛ wasm рдореЗрдВ рдЬреЛрдбрд╝рдХрд░ рд╕рдВрдмреЛрдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп wasm рдХреЛрдб рдореЗрдВ рдкреНрд░рдмрдВрдзрд┐рдд рд╡рд╕реНрддреБрдУрдВ рдФрд░ рдкреНрд░рдмрдВрдзрд┐рдд GC рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдХреЛрд░ wasm рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЗрд╕реЗ рдореЙрд░реНрдл рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджреЗрдЧрд╛ред рдЙрдЪреНрдЪ рд╕реНрддрд░реАрдп рд╡реАрдПрдо рдбрд┐рдЬрд╛рдЗрдиред

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

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

@ рд░реЙрд╕рдмрд░реНрдЧ-рдХреНрд░реЛрдорд┐рдпрдо,

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

рдЖрдк рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдмреЙрдХреНрд╕ рдореЗрдВ рдХреЛрдИ рд╕рдВрджрд░реНрдн рд╣реИ рдпрд╛ рдирд╣реАрдВред рдРрд╕рд╛ рд╣реЛрдиреЗ рдкрд░, рдПрдХ рдмреЙрдХреНрд╕ рдкрд░ рд╕реАрдзреЗ рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдСрдкрд░реЗрд╢рди (рдЬреЛ рдкреНрд░рддрд┐ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдирд╣реАрдВ рд╣реИ) рдХреЛ рдкреЙрдЗрдВрдЯрд░ рдмрд┐рдЯ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рд╣реЛрдЧреА рдФрд░ рдХрд┐рд╕реА рднреА рдЯреИрдЧ рдХреЛ рд╕реНрдЯреНрд░рд┐рдк рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред Ptr рдкрд░ рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдСрдкрд░реЗрд╢рди рдХреЛ рдХрднреА рднреА рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред рддреЛ рдореЗрд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рджрдХреНрд╖рддрд╛ рдЪрд┐рдВрддрд╛ рдереАред

@ рд▓рд╛рд░реНрд╕-рдЯреА-рд╣реИрдирд╕реЗрди, рдЖрд╣, рддреЛ рдЖрдИрдЖрдИрдпреВрд╕реА рдХрдЪреНрдЪреЗ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдЯрд╛рдЗрдк рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ рд▓реЗрдХрд┐рди рдмреЙрдХреНрд╕ рдХрд┐рдП рдЧрдП рд╣реИрдВ? AFAICS, рдпрд╣ рд╡рд╣ рдХрд╛рд░рдХ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рддрдм рдмреЙрдХреНрд╕рд┐рдВрдЧ рдкреЙрдЗрдВрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдПрдХреНрд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд░рдирдЯрд╛рдЗрдо рдЪреЗрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА - рдФрд░ рдПрдХ рдмреЙрдХреНрд╕рд┐рдВрдЧ рдкреЙрдЗрдВрдЯрд░ рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдЬреАрд╕реАрдб рдореЗрдореЛрд░реА рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рддреЛ рд╕реНрдореГрддрд┐ рдЧреНрд░рд╛рдл рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдХрд┐рдирд╛рд░реЗ рдкрд░ рд░рдирдЯрд╛рдЗрдо рдЬрд╛рдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

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

@ рд░реЙрд╕рдмрд░реНрдЧ-рдХреНрд░реЛрдорд┐рдпрдо, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореИрдВрдиреЗ рдЗрд╕ рдмрд╛рдд рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдХреИрд╕реЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдпрд╣рд╛рдВ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЯреНрд░реИрдХ рдХрд░реЗрдВрдЧреЗред рдореИрдВрдиреЗ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рдХрд▓реНрдкрдирд╛ рдХреА рдереА рдХрд┐ Boxes рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЯреНрд░реИрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рдд Box(Ptr .)) рдЬрд╣рд╛рдВ T рдПрдХ рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдкреНрд░рдХрд╛рд░ рд╣реИ, рдПрдХ рдбреЗрдЯрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ рдЬреЛ рдпрд╛ рддреЛ рдПрдХ рдЯреИрдЧ рдХрд┐рдП рдЧрдП рдкреЙрдЗрдВрдЯрд░-рдЯреВ-рдЯреА рдпрд╛ рдПрдХ (рдЯреИрдЧ рдХрд┐рдП рдЧрдП) рдкреВрд░реНрдгрд╛рдВрдХ рдХреЛ рдзрд╛рд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдмреЙрдХреНрд╕ рдХреЛ рд╕реАрдзреЗ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднреА рднреА рдкреЙрдЗрдВрдЯрд░-рдиреЗрд╕ (рдпрд╣ рдПрдХ int рд╣реЛ рд╕рдХрддрд╛ рд╣реИ) рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдФрд░ рдлрд┐рд░ рднреА рдЯреИрдЧ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА (рдХреНрдпреЛрдВрдХрд┐ рдЯреИрдЧ рдореЗрдВ рдЕрдЬреНрдЮрд╛рдд рдмрд┐рдЯреНрд╕ рд╕реЗрдЯ рд╣реИрдВ)ред

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

(+1 рдЯрд╛рдЗрдк рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдирд▓рдкреНрдЯрд░ рдХреЛ рдмрд╛рдзрд┐рдд рдХрд░рдиреЗ рдкрд░, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЯреИрдЧ рдХреЗ рд▓рд┐рдП рдСрд░реНрдереЛрдЧреЛрдирд▓ рд╣реИред)

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

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

@wllang

рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЗрди 'рдЪреБрдиреМрддрд┐рдпреЛрдВ' рдХрд╛ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рджрд┐рдпрд╛ рдЬрд╛рдП рддрд╛рдХрд┐ рдЗрдирдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

рдореИрдВ рд╕рд╣рдордд рд╣реВрдВред рдореИрдВ рдХреБрдЫ рд╕рдордп рд╕реЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдЗрд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реБрдЖ рд╣реВрдВред

рдПрдХ рдЬреЗрдПрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП wasm рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдореЗрдВ рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдореИрдк рдХрд░рдирд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╣реИрд╢ рдЯреЗрдмрд▓ рдпрд╛ рд╕рд░рдгреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рдлреА рд╕рдВрднрд╡ рд▓рдЧрддрд╛ рд╣реИ, рдпрд╣ рдмрд╕ рдЗрддрдирд╛ рд╣реА рдХреБрд╢рд▓ рд╣реИ, рдФрд░ рдпрд╣ рдХрд┐рддрдирд╛ рдХреБрд╢рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?

IMO рдЗрд╕реЗ рдХрдо рд╕реЗ рдХрдо рдЙрддрдирд╛ рд╣реА рдХреБрд╢рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рддрдирд╛ рдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╣реАрдк рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕

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

рдЗрди рдореБрджреНрджреЛрдВ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рд╡рд╕реНрддреБрдУрдВ рдФрд░ рдкреНрд░рдмрдВрдзрд┐рдд GC рдХреЛ wasm рдореЗрдВ рдЬреЛрдбрд╝рдХрд░ рд╕рдВрдмреЛрдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп wasm рдХреЛрдб рдореЗрдВ рдкреНрд░рдмрдВрдзрд┐рдд рд╡рд╕реНрддреБрдУрдВ рдФрд░ рдкреНрд░рдмрдВрдзрд┐рдд GC рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдХреЛрд░ wasm рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЗрд╕реЗ рдореЙрд░реНрдл рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджреЗрдЧрд╛ред рдЙрдЪреНрдЪ рд╕реНрддрд░реАрдп рд╡реАрдПрдо рдбрд┐рдЬрд╛рдЗрдиред

рдЗрд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ wasm рдореЗрдВ рджреЛ рдореЗрдореЛрд░реА рд╕реНрдкреЗрд╕ рд╣реИрдВ: рд░реИрдЦрд┐рдХ рдореЗрдореЛрд░реА рдЬреЛ рдЕрдм рд╣реИ, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ wasm рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЕрдкреНрд░рдмрдВрдзрд┐рдд рднрд╛рд╖рд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИ; рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реАрдк рдХреЗ рд╕рд╛рде рд╕рдВрдпреБрдХреНрдд GC рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ GC'ed рд╣реАрдк, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ wasm рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рдмрдВрдзрд┐рдд рднрд╛рд╖рд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдПрдХ рдкреНрд░рдмрдВрдзрд┐рдд рднрд╛рд╖рд╛ рд╢рд╛рдпрдж "рдСрдл-рд╣реАрдк" рдЖрд╡рдВрдЯрди рдХреЗ рд▓рд┐рдП рд░реИрдЦрд┐рдХ рд╕реНрдореГрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧреА (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрд╛рд╡рд╛ рдореЗрдВ ByteBuffer.allocatedDirect() ); рдФрд░ рдЕрдкреНрд░рдмрдВрдзрд┐рдд рднрд╛рд╖рд╛рдПрдВ рд╢рд╛рдпрдж рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░рдСрдкрд░реЗрдмрд┐рд▓рд┐рдЯреА рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдмрдВрдзрд┐рдд рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреАред

рдпрд╣ рдХреЗрд╡рд▓ рдХреБрдЫ рдкрд░рд┐рднрд╛рд╖рд┐рдд FFI рдХреЙрд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ wasm рдХреЛрд░ рдбрд┐рдЬрд╝рд╛рдЗрди рдФрд░ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдкрд░ рдХреЛрдИ рдмреЛрдЭ рдирд╣реАрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВред

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

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

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

@sjrd

IMO рдЗрд╕реЗ рдХрдо рд╕реЗ рдХрдо рдЙрддрдирд╛ рд╣реА рдХреБрд╢рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рддрдирд╛ рдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╣реАрдк рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╕рдорд╛рди рдХреЛрдб рд▓рд┐рдЦрдирд╛ред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдо рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдорд╛рдирдЪрд┐рддреНрд░ рдХреЗ рд╕рд╛рде рдЗрд╕ рд╕реНрддрд░ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдХрд░реАрдм рдХрд╣реАрдВ рднреА рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВред

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

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

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

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

рдЗрд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ wasm рдореЗрдВ рджреЛ рдореЗрдореЛрд░реА рд╕реНрдкреЗрд╕ рд╣реИрдВ: рд░реИрдЦрд┐рдХ рдореЗрдореЛрд░реА рдЬреЛ рдЕрдм рд╣реИ, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ wasm рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЕрдкреНрд░рдмрдВрдзрд┐рдд рднрд╛рд╖рд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИ; рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реАрдк рдХреЗ рд╕рд╛рде рд╕рдВрдпреБрдХреНрдд GC рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ GC'ed рд╣реАрдк, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ wasm рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рдмрдВрдзрд┐рдд рднрд╛рд╖рд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

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

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

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

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

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

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

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

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

@ рд░реЙрд╕рдмрд░реНрдЧ-рдХреНрд░реЛрдорд┐рдпрдо

рджреВрд╕рд░реА рдУрд░, V8 рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдорд╛рди рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рди рдмрд░реНрдмрд╛рдж рдХрд┐рдП рдмрд┐рдирд╛ рд╣реАрдк рдорд╛рди рдХреЗ рдорд╛рдирдЪрд┐рддреНрд░ ("рдЫрд┐рдкреЗ рд╣реБрдП рд╡рд░реНрдЧ") рдореЗрдВ рдмрдбрд╝реЗ рдЯреИрдЧ рдХреЛ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реЛрдВрдЧреЗред

Fwiw рдпрд╣ рдПрдХ "рд╡рд░реНрдЧ" рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдкреЙрдЗрдВрдЯрд░ рдЯреИрдЧ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрдиреЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣рд╛рдВ рдЪрд░реНрдЪрд╛ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдкреЙрдЗрдВрдЯрд░ рдЯреИрдЧ рдкреНрд░рддрд┐-рдкреЙрдЗрдВрдЯрд░ рдкреНрд░рддрд┐-рд╡рд░реНрдЧ рдирд╣реАрдВ рд╣реИрдВ, рд╢рд╛рдпрдж v8 рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╢рдмреНрджреЛрдВ рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╣реЛрдЧрд╛ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рдбрд┐рдЬрд╛рдЗрди? рдЗрди рдЯреИрдЧреНрд╕ рдХреЛ рдЙрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд░рдирд╛ рднреА рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдЬрд┐рд╕реЗ рдкреЙрдЗрдВрдЯрд░ рдЗрдВрдЧрд┐рдд рдХрд░ рд░рд╣рд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдЯреИрдЧ рдмрд┐рдЯреНрд╕ рдореЗрдВ рдПрдиреНрдХреЛрдбреЗрдб рддрддреНрдХрд╛рд▓ рдорд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

@sjrd рдмрд╕ рдпрд╣ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЬреАрд╕реА рдореБрджреНрджреЗ рдореЗрдВ рдЗрд╕ рдордВрдЪ (рдкреЗрдЯреЗрдВрдЯ) рдореЗрдВ рдЙрдард╛рдП рдЧрдП рд╕рдорд╛рдзрд╛рди рд╣реИрдВ, рдпрд╣рд╛рдВ рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реИред JS GC рдПрдХ рдирдИ рддрд╛рд▓рд┐рдХрд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдЬреЛ JS рдкреЙрдЗрдВрдЯрд░реНрд╕ рдФрд░ рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ (wasm рд╕рд╛рдЗрдб рдкреЙрдЗрдВрдЯрд░реНрд╕) рдХреЗ рдмреАрдЪ рдореИрдк рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕реАрдзреЗ рд▓реАрдирд┐рдпрд░ рдореЗрдореЛрд░реА рдореЗрдВ рдЯреЗрдмрд▓ рдХреЗ рд╡рд╛рд╕рдо рд╕рд╛рдЗрдб рдХреЛ рдмрдирд╛рдП рд░рдЦ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП JS рдЯреЗрдмрд▓ рдПрдХ рдПрд░реЗ рдмрдлрд░ рдФрд░ рдПрдХ рд░реЗрдВрдЬ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рддрд░рдл рдПрдХ live рдзреНрд╡рдЬ рдФрд░ рдкреНрд░рддрд┐ рд╕реВрдЪрдХ рдПрдХ рд╕рдВрджрд░реНрдн рдЧрдгрдирд╛ рд╣реИред рдЬрдм рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдЯреЗрдмрд▓ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд▓рд╛рдЗрд╡ рдлреНрд▓реИрдЧ рд╕реЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд░реЗрдлрд░реЗрдВрд╕ рдХрд╛рдЙрдВрдЯ рдЯреЗрдмрд▓ рдХреЗ рдЙрд╕ рддрд░рдл рдПрдХ рдкрд░ рд╕реЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рджреЛрдиреЛрдВ рддрд░рдл рдЬреАрд╕реА рдЪрд▓рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдЖрдЦрд┐рд░реА рддрдХ рдЗрди рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рд╕рд╛рдл рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрд╕ рдмрд┐рдВрджреБ рдкрд░ рдпрд╣ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рд╕рдВрдмрдВрдзрд┐рдд рдкрдХреНрд╖ рдХреЗ рдЗрди рдкреЙрдЗрдВрдЯрд░реНрд╕ рдореЗрдВ рдЯреЗрдмрд▓ рдХреЗ рдмрд╛рд╣рд░ рд╕реЗ рдЙрд╕ рддрд░рдл рд╕реЗ рд▓рд╛рдЗрд╡ рдкреЙрдЗрдВрдЯрд░реНрд╕ рд╣реИрдВ, рдФрд░ рдпрд╣ рд╕рдВрдмрдВрдзрд┐рдд рдкрдХреНрд╖ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрд╡ рдлреНрд▓реИрдЧ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рд▓рд╛рдЗрд╡ рдлреНрд▓реИрдЧ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдФрд░ рджреВрд╕рд░реА рддрд░рдл рд╕рдВрджрд░реНрдн рд╕рдВрдЦреНрдпрд╛ рд╢реВрдиреНрдп рд╣реИ рддреЛ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрди рд╕рднреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдЬреАрд╕реА рд▓рд╛рдЗрд╡ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЛ рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЛ рд▓рд╛рдЗрд╡ рд░рдЦрддреЗ рд╣реБрдП рдкрд░рд┐рдорд╛рд░реНрдЬрди рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИред рдЬреЗрдПрд╕ рдкрдХреНрд╖ рдкрд░, рдпреЗ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдпрд╛ рддреЛ рдХреЗрд╡рд▓ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрддреЗ рд╣реИрдВ рдпрд╛ рдЬреЗрдПрд╕ рдкрдХреНрд╖ рдкрд░ рдирд╣реАрдВ рд░рд╣рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдзреНрд╡рдЬрд╛рдВрдХрд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЕрдкрдардиреАрдп рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ - рд╡рд╛рд╕рдо рдкрдХреНрд╖ рдЬреАрд╕реА рд╕реЗ рд╕рдорд╛рди рдЕрд░реНрдерд╢рд╛рд╕реНрддреНрд░ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХреА рдЬрд╛рдПрдЧреА (рддрд╛рд▓рд┐рдХрд╛ рдзрд╛рд░рдг рдХрд░рдиреЗ рд╡рд╛рд▓реА рд░реИрдЦрд┐рдХ рд╕реНрдореГрддрд┐ рдЕрднреА рднреА рдкрдардиреАрдп рд╣реИ рд▓реЗрдХрд┐рди рдХреЛрдб рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рд┐рд╕реНрдЯрдо рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИ рдХрд┐ рд╡реЗ рдкрдардиреАрдп рдирд╣реАрдВ рд╣реИрдВ)ред рдХрд┐рд╕реА рднреА рддрд░рдл рдЬреАрд╕реА рдХреЗ рдмрд╛рдж, рдПрдХ рдПрд╕рд┐рдВрдХ рдХреЙрд▓ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЛ рд▓рд╛рдЗрд╡ рдирд╣реАрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рдВрджрд░реНрдн рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░реА рддрд░рдл рдХреЙрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЬрдм рдпрд╣ рд╢реВрдиреНрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдкреЙрдЗрдВрдЯрд░ рдЕрдЧрд▓реЗ рдЬреАрд╕реА рдкрд░ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрди рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡реИрд╢реНрд╡рд┐рдХ рдЬреАрд╕реА рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдзрд╛рдЧреЗ рдХреЗ рдмрд╛рд╣рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрдЯреЛрд░ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЬреЗрдПрд╕ рд╕рдореБрджрд╛рдп рдХреЗ рдмреАрдЪ рдЗрд╕ рддрд░рд╣ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рд░реБрдЪрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИред

@wllang , рд╡реНрдпрдХреНрддрд┐рдЧрдд рдореВрд▓реНрдпреЛрдВ рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирдЪрд┐рддреНрд░/рдЫрд┐рдкреЗ рд╣реБрдП рд╡рд░реНрдЧ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рддрдХрдиреАрдХ рд╣реИрдВ; рд╡реЗ рдХрдХреНрд╖рд╛ рдХреА рднрд╛рд╖рд╛-рд╕реНрддрд░ рдХреА рдзрд╛рд░рдгрд╛рдУрдВ рд╕реЗ рдХреЗрд╡рд▓ рд╢рд┐рдерд┐рд▓ рд░реВрдк рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВред

@ рд░реЙрд╕рдмрд░реНрдЧ-рдХреНрд░реЛрдорд┐рдпрдо v8 рдореЗрдВ рдЫрд┐рдкреА рд╣реБрдИ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреЛ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ, рд╡реЗ рд╡рд╕реНрддреБ рдореЗрдВ рдПрдХ рд╕реНрд▓реЙрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВред рдпрд╣ рдкреАрдЖрд░ рдЯреИрдЧ рдХрд┐рдП рдЧрдП рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЯреИрдЧ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрд▓реЙрдЯ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рднреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдЫрд┐рдкреЗ рд╣реБрдП рд╡рд░реНрдЧ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдереЛрдбрд╝рд╛ рдЕрдХреЗрд▓рд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдкреЙрдЗрдВрдЯрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗрд╡рд▓ рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдмрд┐рдЯреНрд╕ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрд╛ рдЖрдкрдХреЗ рдорди рдореЗрдВ рдХреБрдЫ рдФрд░ рдерд╛ рдЬреЛ рдореИрдВ рдЕрднреА рд╕рдордЭ рдирд╣реАрдВ рдкрд╛рдпрд╛ред рд╢рд╛рдпрдж рдпреЗ рд╕реНрд▓рд╛рдЗрдб рджреВрд╕рд░реЛрдВ рдХреА рдорджрдж рдХрд░реЗрдВ http://thlorenz.com/talks/demystifying-v8/talk.pdf

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

рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ GC рдкреНрд░рд╕реНрддрд╛рд╡ (https://github.com/WebAssembly/gc/) рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИред

рдЕрд░реЗ @ lars-t-hansen рдФрд░ @qwertie - рдореИрдВ рдпрд╣рд╛рдВ рд╕рдмрд╕реЗ рдЕрд▓рдЧ рд░рд╣реВрдВрдЧрд╛ред рдирд┐рд░рдВрддрд░рддрд╛ рдПрдХ рдРрд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдХреЛрдИ рд╕рдореНрдорд╛рди рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ; рдФрд░ рдлрд┐рд░, рд▓реЛрдЧреЛрдВ рдХреЛ рдЕрдВрдд рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдХрдард┐рди рддрд░реАрдХреЗ рд╕реЗ рдкреБрди: рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рдЙрдиреНрд╣реЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ coroutines, microthreads, рдЬрдирд░реЗрдЯрд░, goroutines, рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреНрдпрд╛ рд╣реИ, рдореБрдлреНрдд рдореЗрдВ рд╣реИред _And_ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЖрджрд┐рдо рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдФрд░ рднреА рдЪреАрдЬреЗрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирдХреА рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рдХрд▓реНрдкрдирд╛ рдирд╣реАрдВ рдХреА рдереА; рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

  • рдкрд╛рдЗрд░реЗрдЯ рдХрд╛ reactor рдлреАрдЪрд░ рдФрд░ DrRacket рдХрд╛ big-bang рдлреАрдЪрд░ рдЖрдкрдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ рдкреНрд░рдердо рд╢реНрд░реЗрдгреА рдХрд╛ рдЗрд╡реЗрдВрдЯ-рд▓реВрдк рдПрдмреНрд╕реНрдЯреНрд░реИрдХреНрд╢рди рджреЗрддрд╛ рд╣реИред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдирд┐рд░рдВрддрд░рддрд╛ рдЬреИрд╕реА рд╕рд╣рд╛рдпрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

  • DrRacket рдХреА send/suspend рд╕реБрд╡рд┐рдзрд╛ (рдЪреВрдВрдХрд┐ рд╕реНрдореЙрд▓рдЯрд╛рдХ рд╕реАрд╕рд╛рдЗрдб рдлреНрд░реЗрдорд╡рд░реНрдХ рдФрд░ рджреВрд╕рд░реЛрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рджреНрд╡рд╛рд░рд╛ рдирдХрд▓ рдХреА рдЧрдИ рд╣реИ) - рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд╡реЗрдм рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпрдХреНрд╖ рд╢реИрд▓реА рдореЗрдВ - рд▓рдЧрднрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд┐рд░рдВрддрд░рддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╣реИ рддреЛ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреБрдЪреНрдЫ рд╣реИред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА call/cc рд╣реА рдирд╣реАрдВ рд╣реИ - рдпрд╣ рдПрдХ рдЕрд╕рдВрдмрдВрдзрд┐рдд, рдирд┐рдлреНрдЯреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдПрдмреНрд╕реНрдЯреНрд░реИрдХреНрд╢рди рд╣реИ рдЬреЛ рдХрд┐ рдирд┐рд░рдВрддрд░рддрд╛ рдХреЗ рд╕рд╛рде рдмрдирд╛рдирд╛ рдЖрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдмрд┐рдирд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реЛрддрд╛ рд╣реИред

WeScheme [http://www.wescheme.org/] рдФрд░ Pyret [https://www.pyret.org/] рджреЛрдиреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХрд░реНрддрд╛рдУрдВ рдиреЗ рдЗрд╕рдХреА рдХрдореА рдХреЗ рд▓рд┐рдП рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдХреАрдордд рдЪреБрдХрд╛рдИ рд╣реИред рджреЛрдиреЛрдВ рджрд░реНрдж рд╕реЗ, рдзреАрд░реЗ-рдзреАрд░реЗ, рдХрд╛рд░реНрдпрдХреНрд░рдо рдкрд░рд┐рд╡рд░реНрддрди рджреНрд╡рд╛рд░рд╛ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╛рд░реЗ рд▓рдЧрд╛рддреЗ рд╣реИрдВ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдкреНрд░рджрд░реНрд╢рди рджрдВрдб _and_ рдЬрдЯрд┐рд▓рддрд╛ рдУрд╡рд░рд╣реЗрдб рдХреЗ рд╕рд╛рдеред

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

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

рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП Coroutines рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рд╡реЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЪрд╛рд▓ рдЪрд▓реЗрдВрдЧреЗ
рдпрд╣рд╛рдВред

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

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

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

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

thysultan picture thysultan  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

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

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