Size: a a a

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

2020 November 05

P🍣

Pavel 🍣 in WebAssembly — русскоговорящее сообщество
interop нулевой.
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
что такое jampary?
источник

P🍣

Pavel 🍣 in WebAssembly — русскоговорящее сообщество
да, просто название либы которая дергает массивы произвольной длинны туда сюда на AS.
источник

P🍣

Pavel 🍣 in WebAssembly — русскоговорящее сообщество
Увеличил количество итераций в тестовой функции, все равно резултат тот же.
источник

P🍣

Pavel 🍣 in WebAssembly — русскоговорящее сообщество
Радует что это не финальный код 😄 Даже если будет разница между VM, алгоритм зарешает.
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Pavel 🍣
да, просто название либы которая дергает массивы произвольной длинны туда сюда на AS.
unchecked используешь?
источник

P🍣

Pavel 🍣 in WebAssembly — русскоговорящее сообщество
MaxGraey
unchecked используешь?
нэт 🙁
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Ну если ты гарантированно знаешь, что доступ к массиву никогда не выйдет за пределы то можешь использовать:
let val = unchecked(arr[i])
unchecked(arr[i] = val)
источник

P🍣

Pavel 🍣 in WebAssembly — русскоговорящее сообщество
Вообще я планировал на статические массивы переключится, но у меня выход за границы массива и ошибка.
источник

P🍣

Pavel 🍣 in WebAssembly — русскоговорящее сообщество
А unchecked лучше чем то?
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Pavel 🍣
Вообще я планировал на статические массивы переключится, но у меня выход за границы массива и ошибка.
Так если у тебя динамические массивы. статические не подойдут)
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Pavel 🍣
А unchecked лучше чем то?
Они просто вызывают аксессор без проверки на выход из-за границы
источник

P🍣

Pavel 🍣 in WebAssembly — русскоговорящее сообщество
MaxGraey
Они просто вызывают аксессор без проверки на выход из-за границы
Забавно и что же оно возвращает? Я думал границы в песочнице проверяются на уровне вм.
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
у Раста тоже самое есть: unsafe { vec.get_unchecked(i) }
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Pavel 🍣
Забавно и что же оно возвращает? Я думал границы в песочнице проверяются на уровне вм.
там проверяются только границы линейной памяти, а границы массивов проверят рантайм языка, или не проверяет (например C/C++ не проверяет)
источник

P🍣

Pavel 🍣 in WebAssembly — русскоговорящее сообщество
а можно и Static и unchecked? это же лучше?
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Pavel 🍣
а можно и Static и unchecked? это же лучше?
Можно. Только если у массива динамически меняется длина, то StaticArray не подойдет)
источник

P🍣

Pavel 🍣 in WebAssembly — русскоговорящее сообщество
копировать -> вставить, как обычно.
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Pavel 🍣
копировать -> вставить, как обычно.
Так это ничем не лучше будет Array. Наверное даже хуже если учесть, что у Array это операция очень хорошо оптимизирована под капотом
источник

P🍣

Pavel 🍣 in WebAssembly — русскоговорящее сообщество
Блин, я бы препроцессором эти unchecked и inline с удовольствием выставил. По сути просто переключалка на всю либу.
источник