Design: рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреНрдпреЛрдВ NaN рдмрд┐рдЯ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд┐рдпрддрд╛рддреНрдордХ рдирд╣реАрдВ рд╣реИрдВ

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

(рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╡рдХрд╛рд▓рдд рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ; рдЗрд╕рд▓рд┐рдП рд╣рдо рдПрдХ рд╕реВрдЪрд┐рдд рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рд╕рд╛рдордЧреНрд░реА рдПрдХрддреНрд░ рдХрд░рддреЗ рд╣реИрдВред)

Nondeterminism.md рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, NaN рдмрд┐рдЯреНрд╕ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдмрд╛рд╣рд░ рдЦрдбрд╝реЗ рд╣реИрдВред рдмреЗрд╢рдХ рдзрд╛рдЧреЗ рджреМрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдВрд╕рд╛рдзрди рд╕рдорд╛рдкреНрдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ; рд╡реЗ рд╕рдордЧреНрд░ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рдкрд░рд┐рдгрд╛рдо рд╣реИрдВред рд▓реЗрдХрд┐рди NaN рдмрд┐рдЯреНрд╕? рдХреНрдпрд╛ VMs рдереЛрдбрд╝реЗ рдЕрдзрд┐рдХ рдЪрддреБрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдзреНрдпрд╛рди рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ? рджреЛ рдореБрджреНрджреЗ рд╣реИрдВ:

рдЬрдм рдПрдХ рдСрдкрд░реЗрд╢рди рдХреЛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ NaN рдСрдкрд░реЗрдВрдб рдорд┐рд▓рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдХрд┐рд╕рдХрд╛ рдкреНрд░рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИ?

рдЖрдИрдИрдИрдИ 754 рдЗрд╕реЗ рдЕрдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо x86, рдПрдЖрд░рдПрдо, рдФрд░ рдкрд╛рд╡рд░ рд╕рднреА "рдкрд╣рд▓рд╛" рдСрдкрд░реЗрдВрдб рдЪреБрдирддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдПрдХ рдЙрдЪрд┐рдд рд╡рд┐рдХрд▓реНрдк рд╣реИред

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

рдХреЛрдИ рдпрдереЛрдЪрд┐рдд рддрд░реНрдХ рджреЗ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпреЗ рд╢реЛ-рд╕реНрдЯреЙрдкрд░реНрд╕ рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдХреЛрдИ рддреАрд╡реНрд░ рдЗрдЪреНрдЫрд╛ рд╣реЛ рддреЛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рдареАрдХ рд╣реЛ рд╕рдХрддреА рд╣реИред

рдЬрдм рдХреЛрдИ рдСрдкрд░реЗрд╢рди NaN рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреЛрдИ NaN рдСрдкрд░реЗрдВрдб рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╕рд╛рдЗрди рдмрд┐рдЯ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ?

x86 1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдПрдЖрд░рдПрдо 0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рдСрдкрд░реЗрд╢рди рдХреЗ рдмрд╛рдж рдХреИрдирдирд┐рдХрд▓рд╛рдЗрдЬ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдХ рдореБрд╢реНрдХрд┐рд▓ рдпрд╣ рд╣реИ рдХрд┐ 0 рдФрд░ 1 рджреЛрдиреЛрдВ рд╕рдВрднрд╛рд╡рд┐рдд рд╡реИрдз рдорд╛рди рд╣реИрдВ рдЬрдм рдкреНрд░рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ NaN рдСрдкрд░реЗрдВрдб рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХреЗрд╡рд▓ NaN рдкрд░рд┐рдгрд╛рдо рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдФрд░ рдХреИрдиреЛрдирд┐рдХрд▓рд╛рдЗрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрдЧрд╛; рдХрд┐рд╕реА рдХреЛ NaN рдкрд░рд┐рдгрд╛рдо рдФрд░ NaN рдСрдкрд░реЗрдВрдб рдХреА рдХрдореА рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рд╣реЛрдЧреА, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рд╡рд┐рд╣рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

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

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

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


рдзреНрдпрд╛рди рджреЗрдиреЗ рд╡рд╛рд▓реА рдПрдХ рдФрд░ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ NaN рдмрд┐рдЯреНрд╕ рдХреЛ рдЧрд▓рддреА рд╕реЗ рджреЗрдЦрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдПрдХ рдкреНрд░рдореБрдЦ рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА рдЪрд┐рдВрддрд╛ рдХрд╛ рд╡рд┐рд╖рдп рдирд╣реАрдВ рд╣реИред

рдХреНрдпрд╛ рдХрд┐рд╕реА рдФрд░ рдХреЗ рдкрд╛рд╕ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рд╣реИ?

clarification floating point

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

рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореИрдВ рдЗрд╕рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рднрд╛рд╡реЛрдВ рдХреЛ рдорд╛рдкрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕рдордп рдЕрдЪреНрдЫрд╛ рдкреНрд░рджрд░реНрд╢рди рдорд╛рдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдЯреВрд▓рдЪреЗрди рдЕрднреА рднреА рдЕрдкрд░рд┐рдкрдХреНрд╡ рд╣реИрдВ (рдЗрд╕ рдХреЗ рд░рд╛рд╕реНрддреЗ рдореЗрдВ рд▓рдВрдмреЗ рдзреНрд░реБрд╡ рд╣реИрдВ)ред рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ рд░рдЦреЛ: рдореИрдВ "рдПрдХ рд╣рдЬрд╛рд░ рдХрдЯреМрддреА рд╕реЗ рдореМрдд" рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

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

рдзреНрдпрд╛рди рджреЗрдиреЗ рд╡рд╛рд▓реА рдПрдХ рдФрд░ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ NaN рдмрд┐рдЯреНрд╕ рдХреЛ рдЧрд▓рддреА рд╕реЗ рджреЗрдЦрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ

рдХреНрдпрд╛ рдЙрдиреНрд╣реЗрдВ рджреЗрдЦрдиреЗ рдпрд╛ рдХрдо рд╕реЗ рдХрдо рд╕рд╛рдЗрди рдмрд┐рдЯ рдХреЛ рдЕрд╕рдВрднрд╡ рдмрдирд╛рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?

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

рдпрд╣рд╛рдВ рдЙрди рддрд░реАрдХреЛрдВ рдХреА рд╕реВрдЪреА рджреА рдЧрдИ рд╣реИ рдЬрд┐рдирд╕реЗ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ NaN рдмрд┐рдЯреНрд╕ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддрд╛ рд╣реИ:

  • reinterpret рд░реВрдкрд╛рдВрддрд░рдг
  • store рд░реИрдЦрд┐рдХ рдореЗрдореЛрд░реА рдХреЗ рд▓рд┐рдП рдФрд░ рдмрд┐рдЯреНрд╕ рдХреЛ рдПрдХ рдЕрд▓рдЧ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рд▓реЛрдб рдХрд░реЗрдВ (рдпрд╛ рдмрд┐рдЯреНрд╕ рдХреЛ рдмрд╛рд╣рд░реА рд░реВрдк рд╕реЗ рджреЗрдЦреЗ рдЬрд╛рдиреЗ рджреЗрдВ)
  • рдХрд┐рд╕реА рдЖрдпрд╛рддрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЗ call рдХреЗ рд▓рд┐рдП рдПрдХ рддрд░реНрдХ рдкрд╛рд╕ рдХрд░реЗрдВ, рдпрд╛ рдХрд┐рд╕реА рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЧрдП рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдПрдХ рдорд╛рди рд▓реМрдЯрд╛рдПрдВ
  • copysign рдПрдХ рдЧреИрд░-NaN рдкрд░ рд╕рд╛рдЗрди рдмрд┐рдЯ

VMs рдЗрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗ рдкрд╣рд▓реЗ рд╡рд┐рд╣рд┐рдд рдХреЛрдб рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ; рдпрд╣ рдКрдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ "рднрд╛рдЧрдиреЗ рдХреЗ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рд╡рд┐рд╣рд┐рдд" рд╡рд┐рдЪрд╛рд░ рд╣реИред store рдЧрд░реНрдо рд░рд╛рд╕реНрддреЛрдВ рдкрд░ рдмрд╣реБрдд рдЖрдо рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЕрднреА рднреА рдХрд╛рдлреА рдорд╣рдВрдЧрд╛ рд╣реЛрдЧрд╛ред

@qwertie рдореИрдВ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдкрд░рд╡рд╛рд╣ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЙрдкрдпреЛрдЧрдХреЗрд╕ рд╣реИ рдЬреЛ рдЙрди рдкрд░ рдирд┐рд░реНрдзрд╛рд░рдХ рд╣реЛрдиреЗ рдкрд░ рдЯрд┐рдХреА рд╣реБрдИ рд╣реИред рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣рд╛рдВ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ

@qwertie рд▓рд╛рднреЛрдВ рдореЗрдВ рдереЛрдбрд╝реА рдЕрдзрд┐рдХ рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреА рд╣реИ (рджреБрдирд┐рдпрд╛ рдореЗрдВ рдРрд╕рд╛ рдХреЛрдб рдореМрдЬреВрдж рд╣реИ рдЬреЛ рдЕрдирдЬрд╛рдиреЗ рдореЗрдВ IEEE 754 TotalOrder рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП), рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп, рдФрд░ рдХрдИ рдиреЛрдбреНрд╕ рдореЗрдВ рд╕рдордорд┐рдд рдЧрдгрдирд╛ рдХрд░рддреЗ рд╕рдордп рдордЬрдмреВрдд рдЗрдирд╡реЗрд░рд┐рдПрдВрдЯред

store рдЧрд░реНрдо рд░рд╛рд╕реНрддреЛрдВ рдкрд░ рдмрд╣реБрдд рдЖрдо рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЕрднреА рднреА рдХрд╛рдлреА рдорд╣рдВрдЧрд╛ рд╣реЛрдЧрд╛ред

рдЗрд╕ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рд╣рдо рд╣рдореЗрд╢рд╛ рд╕рд╛рдЗрди рд╡реИрд▓реНрдпреВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рддреЛ рдЕрдЧрд░ рдЗрд╕реЗ рдореЗрдо рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдмрд╕ рдЗрд╕реЗ 1 рдмрдирд╛рдПрдВ?

@wanderer рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдХреИрдиреЛрдирд┐рдХрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдореЗрдВ рдХреНрдпрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ: рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдорд╛рди рдПрдХ NaN рд╣реИ, рдФрд░ рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдХреБрдЫ рд╕реБрдзрд╛рд░ рд▓рд╛рдЧреВ рдХрд░реЗрдВред рдпрд╣ рдЖрдо рддреМрд░ рдкрд░ рдЧрд░реНрдо рдкрде рдкрд░ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рддреБрд▓рдирд╛ рдФрд░ рд╢рд╛рдЦрд╛ рд╣реИред

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

рдореИрдВ рджреГрдврд╝рддрд╛ рд╕реЗ рдЧреИрд░-рдирд┐рдпрддрд╛рддреНрдордХрддрд╛ рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕реНрддрд░ рдХреА рдУрд░ рдЭреБрдХреВрдВрдЧрд╛, рдЬреЛ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдкрдХреНрд╖рдзрд░ рд╣реИред
рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рд╣рдж рддрдХ рд╣реИрд░рд╛рди рдерд╛ рдХрд┐ wasm рд╕рдЦреНрддреА рд╕реЗ NaN рдХреЗ рдордВрдЯрд┐рд╕рд╛ рдмрд┐рдЯреНрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЖрдЬ рдХреЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреМрди рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдХреЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреНрдпрд╛ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

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

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, "рдлрд┐рдХреНрд╕рд┐рдВрдЧ" рдпрд╣ рдПрдХ рдЙрдЪреНрдЪ рд╕реНрддрд░реАрдп рдЙрдкрдХрд░рдг, рдЖрдИрдПрдордУ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

+1 @mbodartред рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ : рдУрд╣ рджреЗрдЦреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдм рдПрдХ +1 рдЪреАрдЬрд╝ рд╣реИ :)ред рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ, рдореБрдЭреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд╡рд╛рд╕рдо = рд╡рд┐рд╢реНрд╡ рдкреНрд░рднреБрддреНрд╡ рд▓рдЧрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рднрд╡рд┐рд╖реНрдп рдХреЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдЗрд╕рдХрд╛ рд╡рд┐рд░реЛрдз рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред

рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореИрдВ рдЗрд╕рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рднрд╛рд╡реЛрдВ рдХреЛ рдорд╛рдкрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕рдордп рдЕрдЪреНрдЫрд╛ рдкреНрд░рджрд░реНрд╢рди рдорд╛рдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдЯреВрд▓рдЪреЗрди рдЕрднреА рднреА рдЕрдкрд░рд┐рдкрдХреНрд╡ рд╣реИрдВ (рдЗрд╕ рдХреЗ рд░рд╛рд╕реНрддреЗ рдореЗрдВ рд▓рдВрдмреЗ рдзреНрд░реБрд╡ рд╣реИрдВ)ред рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ рд░рдЦреЛ: рдореИрдВ "рдПрдХ рд╣рдЬрд╛рд░ рдХрдЯреМрддреА рд╕реЗ рдореМрдд" рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдореИрдВ @jfbastien рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред рд╢рдмреНрджрд╛рд░реНрде рдХреЗ рд╕рд╛рде рдЫреЗрдбрд╝рдЫрд╛рдбрд╝ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рднрд╛рд╡реЛрдВ рдХреЛ рдкрд╣рд▓реЗ рдкрд░рд┐рдорд╛рдгрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

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

рдПрдЖрд░рдПрдорд╡реА 8 рд╣рдореЗрд╢рд╛ рдкрд╣рд▓реЗ рдСрдкрд░реЗрдВрдб рдХрд╛ рдкреНрд░рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬрдм рджреЛрдиреЛрдВ рдСрдкрд░реЗрдВрдб NaN рд╣реЛрддреЗ рд╣реИрдВред рдирд┐рдпрдо рд╣реИ:

  • рдпрджрд┐ рдПрдХ рдСрдкрд░реЗрдВрдб рдПрдХ рд╢рд╛рдВрдд NaN рд╣реИ рдФрд░ рджреВрд╕рд░рд╛ рдПрдХ рд╕рд┐рдЧреНрдирд▓рд┐рдВрдЧ NaN рд╣реИ, рддреЛ рд╕рд┐рдЧреНрдирд▓рд┐рдВрдЧ NaN рдХрд╛ рдкреНрд░рдЪрд╛рд░ рдХрд░реЗрдВред
  • рдЕрдиреНрдпрдерд╛, рдкрд╣рд▓реЗ рдСрдкрд░реЗрдВрдб рдХрд╛ рдкреНрд░рдЪрд╛рд░ рдХрд░реЗрдВред

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдХрд▓реНрдкрдирд╛ рдкрдврд╝ рд░рд╣рд╛ рд╣реВрдВ, рдпрд╣ ARMv8 рдХреЗ Aarch32 рдФрд░ Aarch64 рджреЛрдиреЛрдВ рдореЛрдб рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред

рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдПрд╕рдПрд╕рдИ рд╕реЗ рдЕрд▓рдЧ рд╣реИ рдЬреЛ рджреЛрдиреЛрдВ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдкрд╣рд▓реЗ рдСрдкрд░реЗрдВрдб рдХрд╛ рдкреНрд░рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИред

рджреЛрдиреЛрдВ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдПрдХ sNaN рдХреЛ рдПрдХ qNaN рдореЗрдВ рдмрджрд▓ рджреЗрдВрдЧреЗ, рдЗрд╕реЗ рдкреНрд░рдЪрд╛рд░рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╢рд╛рдВрдд рдмрд┐рдЯ рд╕реЗрдЯ рдХрд░рдХреЗред

@stoklund рдЕрдЪреНрдЫреА рдЬрдЧрд╣! рдореБрдЭреЗ рдпрд╛рдж рдЖрдпрд╛ рдХрд┐ рдкрд╣рд▓рд╛ NaN рдЪреБрдирдиреЗ рд╡рд╛рд▓рд╛ ARM рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдЬрд╣рд╛рдБ рджреВрд╕рд░рд╛ NaN рд╕рд┐рдЧреНрдирд▓рд┐рдВрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдКрдкрд░ рджрд┐рдП рдЧрдП рдХрдИ NaN рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░рдгрдиреАрддрд┐ рдХреЛ рдЬрдЯрд┐рд▓ рдмрдирд╛ рджреЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рд╣рдо рддрд░реНрдХ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВрдиреЗ рдЕрдм рдЙрдкрд░реЛрдХреНрдд рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╛рда рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП #973 рдмрдирд╛рдпрд╛ рд╣реИред

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

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

konsoletyper picture konsoletyper  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

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

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

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