Size: a a a

Конференция C++ Russia

2020 April 30

AR

Andrey Roenko in Конференция C++ Russia
> assembly
> нарасти пять слоёв абстракции
Ну да
источник

AR

Andrey Roenko in Конференция C++ Russia
Те же кресты у тебя в x86 собираются, и ты не растишь эти пять слоёв абстракции, ты импортируешь pthread_create и наслаждаешься. То же и в васме
источник

AT

Alexey Tkachenko in Конференция C++ Russia
только их пока нет, не?
источник

AV

Alexey Veselovsky in Конференция C++ Russia
Andrey Roenko
Ты там про многопоточку спрашивал. Многопоточки в васме нет и не будет. Есть пропоузал на shared memory, atomic'и и cas. Но создание и джойн тредов отдаётся хостовой системе. Т.е. никто не запрещает дать в модуль pthread_create, но стандарта на эти функции нет.
но при этом std::thread там реализован или даже pthread там реализован. но как-то перректально - вроде через js-воркеры шоле.
источник

AR

Andrey Roenko in Конференция C++ Russia
Пока их нет, потому что толку от них в отсутсвие модели памяти примерно ноль. Сами потоки то, на, создавай
WebAssembly.instantiate(foo, { env: pthread_create: () => new WebWorker() })
источник

AV

Alexey Veselovsky in Конференция C++ Russia
о! точно. вот через ЭТО
источник

AR

Andrey Roenko in Конференция C++ Russia
Кроме воркеров вариантов и нет
источник

AV

Alexey Veselovsky in Конференция C++ Russia
Andrey Roenko
Кроме воркеров вариантов и нет
зависит же от хост-системы. это ведь не обязательно браузер.
источник

AR

Andrey Roenko in Конференция C++ Russia
Да, именно так
источник

AV

Alexey Veselovsky in Конференция C++ Russia
ну и вебворкеры это все же не потоки, IMHO.  уж скорее на процессы похожи.
источник

AR

Andrey Roenko in Конференция C++ Russia
Это уже философские вопросы. Шареная память и отношение 1-* есть.
источник

AB

Aleksandr Borgardt in Конференция C++ Russia
Mutex ?
источник

AR

Andrey Roenko in Конференция C++ Russia
А, ну и про то почему этот "убийца убийц" и "compile once - run anywhere" полетит: wasm уже в проде в самой большой системы доставки приложений - в вечнозеленых браузерах. Он уже compile once — run anywhere. Встраиваемые решения тоже есть и это не прототипы.
источник

AR

Andrey Roenko in Конференция C++ Russia
В рамках васма отсутствует понятия "ожидающий тред", так что просим у хостовой системы pthread_cond_wait и она уже разбирается где что и как шедулится
источник

AT

Alexey Tkachenko in Конференция C++ Russia
и тут внезапно мы упираемся в то, что надо иметь совместимые хосты
источник

AT

Alexey Tkachenko in Конференция C++ Russia
и мы становимся сильно зависимы от окружения
источник

AR

Andrey Roenko in Конференция C++ Russia
Как и везде. Если хочешь использовать фишки окружения, то становишься зависимым от него
источник

AV

Alexey Veselovsky in Конференция C++ Russia
Andrey Roenko
Как и везде. Если хочешь использовать фишки окружения, то становишься зависимым от него
даже в жабе!

впрочем, в жабе это решалось весьма богатой стандартной либой и гарантиям окружения. я бы даже сказал - наличием стандарта на это самое окружение.
источник

AR

Andrey Roenko in Конференция C++ Russia
Ну тут всё впереди. Для общих вещей делают https://wasi.dev https://github.com/WebAssembly/WASI/blob/master/phases/snapshot/docs.md. Однако никто не заставляет им пользоваться. И никто даже не заставляет его реализовывать.
источник

AR

Andrey Roenko in Конференция C++ Russia
Расценивайте васм как llvm ir, короче
источник