Neurastheniacc — экспериментальный инструмент, который поручает языковой модели перевод небольших программ на ограниченном подмножестве C в WebAssembly. Он может быть интересен для простых функций, но не принимает произвольный C-код: README описывает одну функцию с двумя параметрами и возвращаемым значением типа uint32_t. Разработчик опубликовал результаты на 32 заданиях; они показывают, что показатели и время сильно зависят от модели и режима reasoning. Описание и таблица результатов в README проекта.
От C через WAT к WebAssembly
Инструмент просит LLM преобразовать исходный код в WAT — текстовое представление WebAssembly. Затем WAT разбирается и собирается в WASM. По описанию проекта, инференс выполняется локально через llama-cpp-2 с моделью Qwen: при первом использовании загружаются и кэшируются веса. Для Qwen3.5-4B README указывает загрузку около 2,75 ГБ, для Qwen3.8-27B — около 16,5 ГБ. Для запуска не нужны ключ API или обращения к провайдеру инференса.
Какие программы принимает инструмент
README ограничивает вход одной функцией с двумя параметрами uint32_t и возвращаемым значением uint32_t. Поддерживаются, среди прочего, локальные переменные, арифметические и битовые операции, сдвиги и ветвления if/else. Указатели, массивы, циклы, рекурсия и вызовы функций в перечень возможностей не входят. Поэтому инструмент рассчитан на небольшие вычислительные функции, а не на перенос полноценной C-программы.
Разработчик также описывает повторную генерацию: если модель выдаёт некорректный WAT, программа может передать ей состояние и сообщения парсера для новой попытки; по умолчанию разрешено до трёх попыток. Это механизм исправления синтаксического результата, а не гарантия корректности программы.
Результаты на 32 заданиях
В опубликованной разработчиком таблице объединены восемь стандартных и 24 сгенерированных задания. Для успешно собранных программ README описывает проверку результатов. Ниже приведены опубликованные значения; это тест проекта, а не независимое сравнение.
| Модель и режим | Успешно | Ошибки WAT | Ошибки проверки WASM | Семантические несовпадения | Лимит токенов | Время |
|---|---|---|---|---|---|---|
| Qwen3.5-4B, thinking выключен | 23/32 (71,9%) | 6 | 1 | 2 | 0 | 2 мин 13 с |
| Qwen3.5-4B, thinking включён | 7/32 (21,9%) | 0 | 0 | 0 | 25 | 3 ч 41 мин 48 с |
| Qwen3.8-27B, thinking выключен | 31/32 (96,9%) | 0 | 0 | 1 | 0 | 4 мин 39 с |
| Qwen3.8-27B, thinking включён | 32/32 (100%) | 0 | 0 | 0 | 0 | 43 мин 11 с |
В этом наборе включение thinking сопровождалось ухудшением результата Qwen3.5-4B: 7 успешных заданий из 32 против 23 без него, при времени 3 ч 41 мин 48 с против 2 мин 13 с. У Qwen3.8-27B результат вырос с 31 до 32 заданий, а время — с 4 мин 39 с до 43 мин 11 с. По README, тесты запускались на Apple Silicon с Metal, с greedy decoding и пятью повторными попытками. Для режима без thinking были заданы лимиты 8192 токена контекста и 1536 выходных токенов; для режима с thinking — 16384 и 8192 соответственно. Разные лимиты не позволяют приписать разницу только включению reasoning. Набор из 32 заданий и результаты, опубликованные самим разработчиком, не доказывают, что те же показатели сохранятся на другом коде или оборудовании.







