Sep. 11th, 2014

thedeemon: (office)
Волею судеб (и израильских клиентов) нонче занимался старым проектом на Haxe, очередной раз порадовался способностям компилятора. Си-образный язык с ООП, генериками, алгебраическими типами, паттерн-матчингом, выводом типов, макросами. Компилю в байткод флэша, с оптимизациями. В проекте 5592 строки (160 KБ): два видеокодека, реактивный парсер AVI, UI, интеграция с JS, хитрая логика для загрузки видео кусочками (с учетом разных способов хранения индексов). Полное время компиляции/сборки с нуля: 0.34 секунды. (использую старый Haxe 2.10, на 3.x пока не пробовал переползать) Вот как надо делать компиляторы! Что показательно, этот написан на окамле.

В качестве наглядного контраста у меня недавний проект на Идрисе (компилятор которого на хаскеле): 500 строк (простой интерпретатор и кодогенератор с минимальным использованием завтипов) компилятся 30 секунд (часть из которых приходится на GCC, правда, ибо компиляция через генерацию Си). Пока компилится, уже успеваю на что-то отвлечься, увлечься, потом возвращаться, спустя неопределенное время, уже позабыв, чем занимался.

С быстрым компилятором workflow намного более гладкий, и могут появлятья всякие ништяки, которые изначально не были запланированы, вроде оперативной проверки кода в IDE, REPL'a и использования в качестве интепретатора (когда скомпилировать и запустить программу выходит быстрее, чем запускается какой-нибудь классический интерпретатор).

Profile

thedeemon: (Default)
Dmitry Popov

July 2025

S M T W T F S
  12345
6789101112
13141516171819
20212223242526
27282930 31  

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 17th, 2025 07:50 am
Powered by Dreamwidth Studios