← All posts tagged Asyncify

Continuation Passing C Руководство
Вот эту бы штуку — да в разрыв между AdaMagic и EmScripten воткнуть, раз уж с Asyncify не заладилось.
ASYNCIFY has a bad worst-case of large code size: If it needs to modify many methods, it can grow code size very significantly (even 10x more was seen).Вот интересно, а в CPC тоже в 10 раз увеличение из-за нескольких точек входа или как-то попроще всё обошлось? Если там смогли, что не так с EmScripten?

Нашёл пока ключевую проблему в CPC — это отсутствие поддержки longjmp, а при компиляции в режиме C AdaMagic использует longjmp. В чём тут проблема, не понятно. Может быть, всё же можно реализовать.

В продолжение #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.