Download Latest Version dcr-i686-pc-windows-msvc-0.8.5.exe (1.3 MB)
Email in envelope

Get an email when there's a new version of dcr

Home / v0.8.0
Name Modified Size InfoDownloads / Week
Parent folder
dcr-x86_64-unknown-openbsd-0.8.0 2026-07-18 1.7 MB
dcr-x86_64-unknown-netbsd-0.8.0 2026-07-18 1.8 MB
dcr-0.8.0-1-x86_64.pkg.tar.zst 2026-07-18 819.5 kB
dcr-0.8.0-1.aarch64.rpm 2026-07-18 667.1 kB
dcr-0.8.0-1.armv7.rpm 2026-07-18 639.0 kB
dcr-0.8.0-1.i686.rpm 2026-07-18 756.1 kB
dcr-0.8.0-1.riscv64gc.rpm 2026-07-18 695.0 kB
dcr-0.8.0-1.x86_64.rpm 2026-07-18 681.9 kB
dcr-debug-0.8.0-1-x86_64.pkg.tar.zst 2026-07-18 4.2 kB
dcr_0.8.0-1_amd64.deb 2026-07-18 628.9 kB
dcr_0.8.0-1_arm64.deb 2026-07-18 571.2 kB
dcr_0.8.0-1_armhf.deb 2026-07-18 545.7 kB
dcr_0.8.0-1_i386.deb 2026-07-18 697.3 kB
dcr_0.8.0-1_riscv64.deb 2026-07-18 629.9 kB
dcrup_0.6.9_amd64.snap 2026-07-18 684.0 kB
dcr-armv7-unknown-linux-musleabihf-0.8.0 2026-07-18 1.5 MB
dcr-riscv64gc-unknown-linux-musl-0.8.0 2026-07-18 1.6 MB
dcr-i686-unknown-linux-musl-0.8.0 2026-07-18 1.7 MB
dcr-aarch64-unknown-linux-musl-0.8.0 2026-07-18 1.6 MB
dcr-x86_64-unknown-linux-musl-0.8.0 2026-07-18 1.8 MB
dcr-x86_64-unknown-freebsd-0.8.0 2026-07-18 1.6 MB
dcr-armv7-unknown-linux-gnueabihf-0.8.0 2026-07-18 1.5 MB
dcr-i686-unknown-linux-gnu-0.8.0 2026-07-18 1.9 MB
dcr-x86_64-unknown-linux-gnu-0.8.0 2026-07-18 1.8 MB
dcr-riscv64gc-unknown-linux-gnu-0.8.0 2026-07-18 1.5 MB
dcr-i686-pc-windows-msvc-0.8.0.exe 2026-07-18 1.2 MB
dcr-x86_64-apple-darwin-0.8.0 2026-07-18 1.6 MB
dcr-aarch64-pc-windows-msvc-0.8.0.exe 2026-07-18 1.2 MB
dcr-x86_64-pc-windows-gnu-0.8.0.exe 2026-07-18 1.5 MB
dcr-x86_64-pc-windows-msvc-0.8.0.exe 2026-07-18 1.3 MB
dcr-aarch64-unknown-linux-gnu-0.8.0 2026-07-18 1.6 MB
dcr-aarch64-apple-darwin-0.8.0 2026-07-18 1.5 MB
dcr-man-pages-0.8.0.tar.gz 2026-07-18 3.3 kB
README.md 2026-07-18 9.1 kB
v0.8.0 source code.tar.gz 2026-07-18 162.1 kB
v0.8.0 source code.zip 2026-07-18 250.4 kB
Totals: 36 Items   38.3 MB 0

RU

Добавлено:

  • Выделенное ядро сборки (Build Engine extraction) — вся логика оркестрации компиляции и сборки полностью вынесена из интерфейсного модуля src/cli/build.rs в изолированный, переиспользуемый модуль ядра src/core/build/engine.rs.
  • Полиморфная модель языков (Трейт Language) — введение абстрактного трейта Language (src/core/build/language/mod.rs). Логика поиска файлов, сопоставления расширений и компиляторов распределена по выделенным языковым бэкендам для C, C++ (включая шаги генерации Qt), LLVM IR и ассемблера (GAS, NASM, FASM, MASM).
  • Абстракция сборщиков (Трейт Builder) — введение трейта Builder для полиморфного управления процессами компиляции (src/core/build/builder/mod.rs). Логика вызова компиляторов семейства GCC/Clang вынесена в общий модуль builder/cc_common.rs, а MSVC — в builder/msvc/.
  • Поязыковая конфигурация ([build.<lang>]) — добавлена поддержка индивидуальных настроек для каждого языка в dcr.toml (например, [build.c], [build.cpp], [build.asm]), позволяя независимо настраивать компилятор, стандарт и флаги сборки.
  • Интеграция путей зависимостей в Workspaces — сборщик теперь автоматически инжектирует пути заголовков (включая исходники src/ членов, папки include/ и директорию target/include) и библиотек (target/lib, а также специфичные для целевой платформы папки сборки) зависимых членов workspace при сборке.
  • Система событий BuildReporter — весь вывод сборщика переведён на событийную модель (src/core/build/report.rs), что делает движок пригодным для программного встраивания (например, в IDE) без необходимости перехвата stdout/stderr.
  • Поддержка отмены сборки — добавлен потокобезопасный токен отмены (Arc<AtomicBool>), позволяющий безопасно прервать выполнение компиляции на любом этапе.
  • Сохранение кастомных ключей TOML — парсер dcr.toml переведен на toml_edit, что гарантирует сохранение всех неизвестных/пользовательских ключей, комментариев и форматирования при перезаписи файла (например, через dcr add).
  • Разрешение заголовков для локальных path-зависимостей — исправлена проблема, при которой потребители не могли найти заголовочные файлы статических/динамических библиотек, лежащие в упакованной папке target/include локальных path-зависимостей.
  • Новая система интеграционных тестов — старый громоздкий файл tests/cli_basic.rs разделен на изолированные и структурированные интеграционные тесты для каждой команды и фичи: cli_build.rs, cli_deps.rs, cli_lint.rs, cli_new.rs, cli_qt.rs, cli_test.rs, cli_workspace.rs.

Изменено:

  • Дедупликация генерации артефактов — логика линковки бинарных файлов (ELF, PE, EXE), динамических библиотек (.so, .dll, .dylib) и архивации статических библиотек (.a, .lib) полностью перенесена в выделенный модуль src/core/build/builder/artifact.rs.
  • Запуск членов workspace из корня — команда dcr run при вызове из корня workspace-only проекта теперь запускает сборку выбранного пакета в контексте workspace (через флаг --workspace), исключая изолированные ошибки сборки.
  • Отказ от глобального состояния — все операции сборки изолированы внутри структуры BuildContext, обеспечивая многопоточную безопасность сборщика.
  • Вынос логики кэширования — проверка инкрементальных изменений, отслеживание заголовков (#include) и вычисление хэшей сборки перенесено в изолированный модуль src/core/build/cache.rs.
  • Модуляризация кастомных шагов — обработка этапа build.steps для препроцессоров вынесена в src/core/build/steps.rs.

EN

Added:

  • Dedicated Build Engine (src/core/build/engine.rs) — decoupled the build orchestration logic completely from the CLI front-end wrapper in src/cli/build.rs to a reusable, decoupled core build engine.
  • Polymorphic Language Model (Language trait) — introduced the abstract Language trait (src/core/build/language/mod.rs). File scanning, compiler resolution, and flags handling are now encapsulated in dedicated language modules for C, C++ (including Qt code generation), LLVM IR, and ASM (GAS, NASM, FASM, MASM).
  • Polymorphic Compilation Dispatch (Builder trait) — introduced the Builder trait to generalize builder invocations (src/core/build/builder/mod.rs). Consolidated GCC/Clang logic into builder/cc_common.rs and Microsoft Visual C++ logic into builder/msvc/.
  • Per-Language Configuration overrides ([build.<lang>]) — introduced support for configuring language-specific compiler, standard, and flags (e.g. [build.c], [build.cpp], [build.asm]) independently in dcr.toml.
  • Automatic Workspace Dependency Injection — during workspace builds, include/lib paths of dependent workspace members (including their source headers, local include/ folders, and build target target/include / target/lib folders) are automatically resolved and injected.
  • BuildReporter Event System — decoupled build orchestration output into a structured event-driven reporter model (src/core/build/report.rs), making DCR suitable for library embedding and IDE integrations without stderr capturing.
  • Build Cancellation Support — introduced thread-safe cancellation tokens (Arc<AtomicBool>) allowing clients to safely abort compile runs mid-execution.
  • TOML Formatting & Custom Keys Preservation — migrated the config editor to toml_edit, preserving all unknown/user-defined TOML keys, structures, and comments during file write operations (e.g., in dcr add).
  • Path Dependencies Target Include Resolution — local path dependencies configured via tables now correctly expose headers built and packaged into their target/include folder to consumer packages.
  • Modular Integration Test Suite — refactored the monolith tests/cli_basic.rs file into clean, specialized integration tests: cli_build.rs, cli_deps.rs, cli_lint.rs, cli_new.rs, cli_qt.rs, cli_test.rs, cli_workspace.rs.

Changed:

  • Consolidated Linking and Archiving — artifact generation (linking executables/shared libraries and archiving static libraries) consolidated into a single src/core/build/builder/artifact.rs module.
  • Workspace-Aware member executiondcr run executed at the workspace root of a workspace_only project now triggers the member build inside the workspace context using the --workspace parameter, preventing standalone build issues.
  • Elimination of Global State — removed global variables and states from the build core, encapsulating build logic inside isolated BuildContext structs for thread safety.
  • Build Cache Separation — relocated mtime tracking, incremental caching, and header-dependency checking logic to src/core/build/cache.rs.
  • Modularized Pre-build Steps — decoupled generator scripts and pre-build commands parsing into src/core/build/steps.rs.
Source: README.md, updated 2026-07-18