Cook 2.0.1

Вышел первый стабильный релиз Cook2 – программы сборки проектов на языке D. По сравнению с первой версией проекта, Cook2 перенес множество серьезных изменений и нововведений:

  • Полностью переделана система обработки параметров командной строки – теперь она работает с помощью std.getopt. Подробнее читайте в конольной справке (–help) и в документации по проекту.
  • Произведен рефакторинг парсера импортов. Появилась поддержка условий “version” и “debug” (в настоящее время других инструментов сборки для D с подобной функциональностью практически нет).
  • Появилась поддержка разрешения внешних зависимостей у проектов: в качестве таковых можно указать удаленные Git-репозитории или локальные каталоги в системе. Загрузка кода из репозиториев возможна с использованием HTTPS и SSH. Исходники зависимостей и соответствующие объектные файлы хранятся в специальной папке в домашнем каталоге пользователя (~/.cook2) и являются общими для всех проектов, которые объявляют эти зависимости.
  • Улучшена система конфигурации: так, в папке ~/.cook2 можно хранить файл глобальной конфигурации default.conf, который будет использован по умолчанию всеми проектами.
  • Исправлено множество багов – в частности, серьезный баг с отслеживанием обратных зависимостей у модулей D.

Скачать Cook 2.0.1
Репозиторий Cook2 на GitHub

Cook2

В связи с выходом DMD 2.064 с поддержкой пакетного импортирования, была создана новая нестабильная ветка проекта Cook (инкрементальной системы сборки для программ на D).
В Cook2 планируется внесение серьезных изменений без сохранения обратной совместимости: в частности, переписан код обработки опций командной строки (он теперь использует std.getopt), а также удалена устаревшая и ненужная функциональность.
Поддержка пакетных модулей (package.d) уже обеспечена – кроме того, появилась поддержка выборочных и именованных импортов (например, import foo = bar.Foo и import std.stdio: writefln).

Репозиторий проекта:
https://github.com/gecko0307/cook2