DOOM запустили... компилятора языка программирования TypeScript

DOOM запустили... компилятора языка программирования TypeScript

Программист Дмитри Митропулос запустил DOOM внутри системы типов TypeScript, создав, возможно, самую безумную версию культовой игры. Для этого он разработал виртуальную машину, полностью построенную на типах TypeScript, воссоздав логику 116 инструкций WebAssembly. Каждый тип отвечает за отдельную строку пикселей, а итоговое «разрешение» составляет 320 × 200 в ASCII-формате. Проект потребовал написания более 12 000 тестов, изучения C, C++, WebAssembly и создания собственных инструментов. Первоначальная компиляция первого кадра заняла три месяца, а итоговый объем кода достиг 177 ТБ. Даже после оптимизации скорость остается крайне низкой — 0.0000009645 FPS, а сам TypeScript-компилятор потребляет свыше 90 ГБ оперативной памяти. Митропулос объяснил, что пошел на это ради вызова, когда «перепробовал все другие» задачи на TypeScript....
28.02.2025
Сообщает: Источник  
Рубрика: «Наука и Техника»   Поделиться: Поделиться новостью в Facebook Поделиться новостью в Twittere Поделиться новостью в VK Поделиться новостью в Pinterest Поделиться новостью в Reddit

Выпуск компилятора языка D 2.111Выпуск компилятора языка D 2.111 Опубликован релиз DMD 2.111, эталонного компилятора для языка D. Код компилятора распространяется под свободной лицензией BSL (Boost Software License ...

Выпуск компилятора языка D 2.110Выпуск компилятора языка D 2.110 Опубликован релиз DMD 2.110, эталонного компилятора для языка D. Код компилятора распространяется под свободной лицензией BSL (Boost Software License ...

Выпуск Tinygo 0.36, компилятора для языка GoВыпуск Tinygo 0.36, компилятора для языка Go Опубликован выпуск проекта Tinygo 0.36, развивающего компилятор для языка Go. Компилятор подходит для генерации компактных исполняемых файлов для мал ...

Выпуск Tinygo 0.40, компилятора для языка GoВыпуск Tinygo 0.40, компилятора для языка Go Опубликован выпуск проекта Tinygo 0.40, развивающего компилятор для языка Go. Компилятор подходит для генерации компактных исполняемых файлов для мал ...

Выпуск языка программирования Go 1.25Выпуск языка программирования Go 1.25 После шести месяцев разработки представлен релиз языка программирования Go 1.25, развиваемого компанией Google при участии сообщества. Язык сочетает ...

Релиз языка программирования PHP 8.5Релиз языка программирования PHP 8.5 После года разработки опубликован релиз языка программирования PHP 8.5. Новая ветка включает серию новых возможностей, а также несколько изменений, н ...

Выпуск языка программирования Nim 2.2.6Выпуск языка программирования Nim 2.2.6 Представлен релиз языка системного программирования Nim 2.2.6. Обновление вышло спустя шесть месяцев после релиза версии 2.2.4 и включает 141 коммит ...

Релиз языка программирования V 0.4.10Релиз языка программирования V 0.4.10 Опубликован релиз статически типизированного языка программирования V 0.4.10 (vlang). Основными целями при создании V были простота изучения и исполь ...