Size: a a a

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

2020 November 05

P🍣

Pavel 🍣 in WebAssembly — русскоговорящее сообщество
#define Array[i] unchecked(Array[i]) 😄
источник

M

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

P🍣

Pavel 🍣 in WebAssembly — русскоговорящее сообщество
Именно оно и происходит сейчас, да. Нужно пофиксить.
источник

P🍣

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

P🍣

Pavel 🍣 in WebAssembly — русскоговорящее сообщество
А как тебе идея с препроцессором подобным? Можно же миксовать в одной либе и JS и WASM.
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
В AS есть вот такая штука:
https://www.assemblyscript.org/transforms.html
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Вот пример как это можно исползовать: https://github.com/willemneal/visitor-as
источник

c

cevek in WebAssembly — русскоговорящее сообщество
MaxGraey
Не стоит. Вообще аккуратнее с unchecked. Наверное вообще зря я тебе ее посоветовал. Ее нужно применять когда точно известно, что выход из-за границы массива исключен, В противном случае можно получить очень странное поведение из-за повреждения памяти
а у вас нет array boundary check elimination?
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
cevek
а у вас нет array boundary check elimination?
Пока нету, но будет. Для начала нужно сделать свой Middle IR. Чем я и занимаюсь. Но то еще не скоро
источник

c

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

c

cevek in WebAssembly — русскоговорящее сообщество
почему не MLIR? ))
источник

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
Потому что не LLVM :)
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
cevek
почему не MLIR? ))
Потому что MLIR еще не стабильный, и у него вообще по моему только байндинги для python сейчас имеются и то в виде тест кейсов
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Petr Penzin
Потому что не LLVM :)
Вообще MLIR это middle IR для LLVM, поэтому он даже в репер LLVM находится
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
но если и прикручивать LLVM махину к AS то уже конечно лучше через MLIR, чем C api LLVM
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Ну и свой Middle IR будет точно проще прикручивать к Binaryen. А это для нас сейчас в приоритете, так как мы его используем
источник

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
👍
источник

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
MLIR ориентирован на оптимизации графов (изначально для искуственного интеллекта), я лично скептично отношусь к тому что его можно к любому языку прикрутить
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Petr Penzin
MLIR ориентирован на оптимизации графов (изначально для искуственного интеллекта), я лично скептично отношусь к тому что его можно к любому языку прикрутить
Ну они стараются его сделать так, что бы угодит требованиям Clang и Rust. Собственно он должен в теории заменить несостоявшийся CIR и растовский MIR. Но как там будет на самом деле не знаю. Меня еще пугает, что MLIR слишком много будет тащить того, чего нам не нужно, те же трасформации над тензорами например
источник

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
Да, в Индии небольшая компания пишет CIL, который должен подходить как для C/C++, так и дла фортрана, для flang (который уже в репо) делают FIR - и то и другое диалекты MLIR
источник