← All posts tagged WebAssembly

OCTAGRAM

Рунет перейдёт на отечественное шифрование
В России внедрят собственные средства шифрования, а разработчиков браузеров обяжут поддерживать российские сертификаты безопасности. Это следует из госпрограммы «Цифровая экономика», подготовленной на межведомственной комиссии Минкомсвязи и отправленной на согласование в правительство.
Согласно проекту программы (есть у «Известий»), к 2021 году большинство участников информационного взаимодействия в цифровой экономике будут использовать отечественные средства шифрования. По словам президента Фонда информационной демократии и главы рабочей группы, отвечающей за раздел «Информационная безопасность», Ильи Массуха, в документе поставлена задача заставить производителей браузеров перейти на отечественные средства криптографии.
— Школы шифрования в мире, по сути, две — Россия и США, плюс Китай сейчас занялся этим вопросом. Наши алгоритмы очень надежны. Они одобрены специальным комитетом Международной организации по стандар­ти­за­ции (ISO),—- отметил эксперт. — Но крупнейшие мировые IT-корпорации не хотят их встраивать в свои браузеры. Госпрограммой мы поставили такую задачу. Илья Массух рассказал, что сейчас при безопасном соединении в интернете используются лишь американские сертификаты безопасности. В случае санкций против России владельцы сертификатов смогут очень просто их отозвать.

Прямо в точку! Хорошо, что этим делом занялись. Подпись бинарников ещё не забудьте. Поезд на WebAssembly ещё далёк от отъезда, вот давайте туда вклинивайтесь, сейчас в самый раз этим заняться.

OCTAGRAM

В продолжение #2806882 , всё-таки, мне кажется, asyncify не все возможности задействовал. Должен быть какой-то компромиссный вариант, чтоб не сильно тормозило, но и не было интерпретатора.
breaking them up and so forth
by expanding the loop, two more async calls are introduced, such that more callback functions will be produced during the asyncify transformation
Вот, может быть, можно процедуры как-то аккуратненько ломать, чтоб не в 10 раз раздувались. switch и goto поставить в начале, и пусть будет соответствие 1:1.

OCTAGRAM

Поизучал предмет. Необходимость возврата управления, по видимому, невероятно серьёзная проблема. Есть emterpreter, но он не годится для интерпретации «всего», а только в режиме «белого списка», как в DOSBox. Но хорошо, что в emscripten есть способ относительно прозрачно сочетать emterpreter с обычным исполнением.

Неприятно было посмотреть, как сделана интеграция C++ с JavaScript. Главным образом — потому что там одиночные ссылки на объекты, а из–за бардака со счётчиками ссылок нет единого решения. Как я понял, научить любой конкретной реализации можно, но это уже получается не из коробки. Вот берём Objetive-C, и он уже лет 20 как со счётчиком ссылок для всех объектов, и любой потребитель/производитель знает, как делать этот подсчёт, а берём C++ — и там бардак, и берём WebIDL binder, и получаем интерфейс, где на объекты должна быть только одна сильная ссылка. Я на такое насмотрелся в Delphi, и мне это сильно не понравилось. Особенно тот момент, когда в Delphi 2009 или около сделали возможность заворачивать исключения в исключения, а чтоб завёрнутое исключение не уничтожилось, ему надо сделать AcquireException, то есть, у нас в одном языке появилось два способа подсчёта ссылок, один у TInterfacedObject, другой у Exception. А для многих объектов внятного управления памятью не было, и память замечательно текла, если программист что–то не рассчитал, положил в какой–нибудь TStrings, который счётчик ссылок не дёргает by design, и забыл. Или TComponentList, который тоже счётчик ссылок не дёргает, а сразу прибивает. Ещё раз такую петрушку наблюдать не хочется, пусть лучше сразу будет счётчик ссылок. Просто и понятно.

Objective-C в emscripten, к сожалению, не поддерживается. А так бы взять libdispatch, взять Reactive Extensions для Objective-C и что–нибудь бы получилось. Но нет. Пока там только геморрой.

При всей геморройности asm.js интересный. Если делать новый компилятор и заложить в нём поддержку этой платформы, это могло бы поспособствовать распространению.