Size: a a a

WebAssembly — русскоговорящее сообщество

2019 January 16

NK

ID:414983998 in WebAssembly — русскоговорящее сообщество
Нашел в binaryen/emscripten такую вот неприятность:
https://github.com/WebAssembly/binaryen/issues/1873

Коротко - когда кастишь например в C++ из 1e11 в __uint32 то получаешь 0 вместо 4294967295 (MAX_UINT) в режиме clamp mode (сатурация вместо выбрасывания исключения). В этом можно убедится например здесь:
https://webassembly.studio/?f=dt31ldjuoy
источник

NK

ID:414983998 in WebAssembly — русскоговорящее сообщество
Кстати i32.trunc_u:sat/f64 уже поддерживается в Firefox 65.0 beta и выдает верный результат в этом случае
источник

ҪҸ

Ҫѐҏӗѫӑ Ҹҋ 🤖 in WebAssembly — русскоговорящее сообщество
только должно быть i32.trunc_sat_f64_u =)
источник

NK

ID:414983998 in WebAssembly — русскоговорящее сообщество
Ҫѐҏӗѫӑ Ҹҋ 🤖
только должно быть i32.trunc_sat_f64_u =)
Ну да, WAS просто использует старенькую версию binaryen/emscripten
источник

ҪҸ

Ҫѐҏӗѫӑ Ҹҋ 🤖 in WebAssembly — русскоговорящее сообщество
кстати, в binaryen возможно еще тоже не переименовывали
источник

NK

ID:414983998 in WebAssembly — русскоговорящее сообщество
Кстати любопытный факт, что в js используется не clamp mode а wrap mode, то есть f64 >>> 0  ==>  (f64 % (2 ** 32)) >>> 0 и например 1e11 >>> 0 превращается в 1215752192, а вот в C/C++ я вообще пока не разобрался, там выдает 73896. Надо почитать спеку.
источник

NK

ID:414983998 in WebAssembly — русскоговорящее сообщество
источник

NK

ID:414983998 in WebAssembly — русскоговорящее сообщество
ARM процессоры используют clamp mode кстати. Короче это похоже самая большая головная боль в C/C++
источник

ҪҸ

Ҫѐҏӗѫӑ Ҹҋ 🤖 in WebAssembly — русскоговорящее сообщество
только что был на wg митинге. адженды там не было, да я и был занят, поэтому не особенно слушал. обсуждали нечто под аббривиатурой CR, что бы это не значило (а также интеграцию репки с пропозалами и w3c аккаунтов, но это совсем не интересно)
источник

ҪҸ

Ҫѐҏӗѫӑ Ҹҋ 🤖 in WebAssembly — русскоговорящее сообщество
хз короче что это за cr, не понял
источник

ҪҸ

Ҫѐҏӗѫӑ Ҹҋ 🤖 in WebAssembly — русскоговорящее сообщество
ааааа
источник

ҪҸ

Ҫѐҏӗѫӑ Ҹҋ 🤖 in WebAssembly — русскоговорящее сообщество
Candidate Recommendation спецификации
источник

ҪҸ

Ҫѐҏӗѫӑ Ҹҋ 🤖 in WebAssembly — русскоговорящее сообщество
а Люк обещал обновить текстовый формат в файрфоксе
источник

NK

ID:414983998 in WebAssembly — русскоговорящее сообщество
Ҫѐҏӗѫӑ Ҹҋ 🤖
а Люк обещал обновить текстовый формат в файрфоксе
Придеться свыкаться с новым синтаксисом, а я только недавно наловчился его бегло читать)
источник

NK

ID:414983998 in WebAssembly — русскоговорящее сообщество
Кстати челлендж в топку flow будующее за typescript продолжается. В след за Vue, expo, react-dnd, storybook и другими крупными проектами рефактор с flow на typescript затеяла команда facebook-а=))) пока они начали из далека и решили обкатать это на jest:
https://github.com/facebook/jest/pull/7554#issuecomment-454358729

Думаю скоро и React перейдет)
источник

でゲソ in WebAssembly — русскоговорящее сообщество
ID:414983998
Нашел в binaryen/emscripten такую вот неприятность:
https://github.com/WebAssembly/binaryen/issues/1873

Коротко - когда кастишь например в C++ из 1e11 в __uint32 то получаешь 0 вместо 4294967295 (MAX_UINT) в режиме clamp mode (сатурация вместо выбрасывания исключения). В этом можно убедится например здесь:
https://webassembly.studio/?f=dt31ldjuoy
Так касты с оверфлоу и арифметика же ub в плюсах
источник

NK

ID:414983998 in WebAssembly — русскоговорящее сообщество
でゲソ
Так касты с оверфлоу и арифметика же ub в плюсах
И да и нет. Там это undefined behavior. И на ARM например там будет clamp mode а на intel например что то вроде wrap mode
источник

でゲソ in WebAssembly — русскоговорящее сообщество
Так ub и подразумевает что кто как хочет  в своём компиляторе так и дрочит
источник

でゲソ in WebAssembly — русскоговорящее сообщество
Или это сильно ниже компиляторов?
источник

NK

ID:414983998 in WebAssembly — русскоговорящее сообщество
просто в binaryen это называется clamp mode и имеет строго детерминистический характер. Хотя по сути этим не является
источник