From f20056d3ec63eaf2387a14e73300c67519d11647 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:35:53 +0800 Subject: [PATCH 001/274] New translations readme.mdx (German) [ci skip] --- docs-crowdin-export/de-DE/docs/README.mdx.mdx | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/README.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/README.mdx.mdx b/docs-crowdin-export/de-DE/docs/README.mdx.mdx new file mode 100644 index 0000000..fba8a6d --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/README.mdx.mdx @@ -0,0 +1,63 @@ +--- +sidebar_label: Introduction +--- + +# DCR — C/C++ Build Tool & Package Manager + +
+Quick reference + +```bash +# Installation +curl -fsSL https://dcr.dexoron.su/install.sh | sh + +# Create a project +dcr new my-app +cd my-app + +# Build and run +dcr build +dcr run + +# Run tests +dcr test + +# Add a dependency +dcr add fmt + +# Generate IDE files +dcr gen vscode +``` + +
+ +## Contents + +| Section | Description | +| ----------------------------------------------------- | --------------------------------------------- | +| [Getting Started](/docs/getting-started/installation) | Installation and first steps | +| [Commands](/docs/commands/project-commands) | All CLI commands | +| [Reference](/docs/reference/dcr-toml) | Configuration, build, dependencies, platforms | +| [Testing](/docs/testing/test-framework) | Built-in test framework | +| [Recipes](/docs/recipes/cross-to-windows) | Common scenarios | +| [IDE Integration](/docs/ide-integration) | VS Code, CLion, compile_commands.json | +| [Self Update](/docs/self-update) | Auto-update | +| [FAQ](/docs/faq) | Frequently asked questions | +| [Changelog](/docs/changelog) | Version history | +| [License](/docs/license) | DCR and vendored library licenses | +| [Contributing](/docs/contributing) | DCR development | + +## Features + +* **Incremental builds** — mtime + `.d` headers + SHA256 fingerprint +* **Parallel compilation** — thread::scope, atomic task queue +* **4 backends** — gcc/clang, MSVC/clang-cl, GAS (ARM), NASM (x86) +* **7 project kinds** — bin, staticlib, sharedlib, efi, elf, none, custom +* **Cross-compilation** — short names and full triples +* **Profiles** — debug / release with field overrides +* **Workspaces** — multi-package projects with topological sort +* **Registry + Git + Path** — three dependency mechanisms +* **IDE generation** — VS Code, CLion, compile_commands.json, JSON metadata +* **pkg-config** — automatic system library discovery +* **Per-command `--help`** — `dcr build --help`, `dcr new --help`, etc. +* **Man pages** — `man dcr`, `man dcr-build`, `man dcr-new` From 756c6edc08a599951ca65ed0aa37a6f75de67b65 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:35:56 +0800 Subject: [PATCH 002/274] New translations readme.mdx (Polish) [ci skip] --- docs-crowdin-export/pl-PL/docs/README.mdx.mdx | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/README.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/README.mdx.mdx b/docs-crowdin-export/pl-PL/docs/README.mdx.mdx new file mode 100644 index 0000000..fba8a6d --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/README.mdx.mdx @@ -0,0 +1,63 @@ +--- +sidebar_label: Introduction +--- + +# DCR — C/C++ Build Tool & Package Manager + +
+Quick reference + +```bash +# Installation +curl -fsSL https://dcr.dexoron.su/install.sh | sh + +# Create a project +dcr new my-app +cd my-app + +# Build and run +dcr build +dcr run + +# Run tests +dcr test + +# Add a dependency +dcr add fmt + +# Generate IDE files +dcr gen vscode +``` + +
+ +## Contents + +| Section | Description | +| ----------------------------------------------------- | --------------------------------------------- | +| [Getting Started](/docs/getting-started/installation) | Installation and first steps | +| [Commands](/docs/commands/project-commands) | All CLI commands | +| [Reference](/docs/reference/dcr-toml) | Configuration, build, dependencies, platforms | +| [Testing](/docs/testing/test-framework) | Built-in test framework | +| [Recipes](/docs/recipes/cross-to-windows) | Common scenarios | +| [IDE Integration](/docs/ide-integration) | VS Code, CLion, compile_commands.json | +| [Self Update](/docs/self-update) | Auto-update | +| [FAQ](/docs/faq) | Frequently asked questions | +| [Changelog](/docs/changelog) | Version history | +| [License](/docs/license) | DCR and vendored library licenses | +| [Contributing](/docs/contributing) | DCR development | + +## Features + +* **Incremental builds** — mtime + `.d` headers + SHA256 fingerprint +* **Parallel compilation** — thread::scope, atomic task queue +* **4 backends** — gcc/clang, MSVC/clang-cl, GAS (ARM), NASM (x86) +* **7 project kinds** — bin, staticlib, sharedlib, efi, elf, none, custom +* **Cross-compilation** — short names and full triples +* **Profiles** — debug / release with field overrides +* **Workspaces** — multi-package projects with topological sort +* **Registry + Git + Path** — three dependency mechanisms +* **IDE generation** — VS Code, CLion, compile_commands.json, JSON metadata +* **pkg-config** — automatic system library discovery +* **Per-command `--help`** — `dcr build --help`, `dcr new --help`, etc. +* **Man pages** — `man dcr`, `man dcr-build`, `man dcr-new` From 9b56f7a053a5e6e662f616e8898d9e8a78c83b1d Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:35:58 +0800 Subject: [PATCH 003/274] New translations readme.mdx (Russian) [ci skip] --- docs-crowdin-export/ru-RU/docs/README.mdx.mdx | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/README.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/README.mdx.mdx b/docs-crowdin-export/ru-RU/docs/README.mdx.mdx new file mode 100644 index 0000000..fba8a6d --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/README.mdx.mdx @@ -0,0 +1,63 @@ +--- +sidebar_label: Introduction +--- + +# DCR — C/C++ Build Tool & Package Manager + +
+Quick reference + +```bash +# Installation +curl -fsSL https://dcr.dexoron.su/install.sh | sh + +# Create a project +dcr new my-app +cd my-app + +# Build and run +dcr build +dcr run + +# Run tests +dcr test + +# Add a dependency +dcr add fmt + +# Generate IDE files +dcr gen vscode +``` + +
+ +## Contents + +| Section | Description | +| ----------------------------------------------------- | --------------------------------------------- | +| [Getting Started](/docs/getting-started/installation) | Installation and first steps | +| [Commands](/docs/commands/project-commands) | All CLI commands | +| [Reference](/docs/reference/dcr-toml) | Configuration, build, dependencies, platforms | +| [Testing](/docs/testing/test-framework) | Built-in test framework | +| [Recipes](/docs/recipes/cross-to-windows) | Common scenarios | +| [IDE Integration](/docs/ide-integration) | VS Code, CLion, compile_commands.json | +| [Self Update](/docs/self-update) | Auto-update | +| [FAQ](/docs/faq) | Frequently asked questions | +| [Changelog](/docs/changelog) | Version history | +| [License](/docs/license) | DCR and vendored library licenses | +| [Contributing](/docs/contributing) | DCR development | + +## Features + +* **Incremental builds** — mtime + `.d` headers + SHA256 fingerprint +* **Parallel compilation** — thread::scope, atomic task queue +* **4 backends** — gcc/clang, MSVC/clang-cl, GAS (ARM), NASM (x86) +* **7 project kinds** — bin, staticlib, sharedlib, efi, elf, none, custom +* **Cross-compilation** — short names and full triples +* **Profiles** — debug / release with field overrides +* **Workspaces** — multi-package projects with topological sort +* **Registry + Git + Path** — three dependency mechanisms +* **IDE generation** — VS Code, CLion, compile_commands.json, JSON metadata +* **pkg-config** — automatic system library discovery +* **Per-command `--help`** — `dcr build --help`, `dcr new --help`, etc. +* **Man pages** — `man dcr`, `man dcr-build`, `man dcr-new` From c09056dcefe46c1c2ae8a5563ebe306728b5519c Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:36:01 +0800 Subject: [PATCH 004/274] New translations readme.mdx (Ukrainian) [ci skip] --- docs-crowdin-export/uk-UA/docs/README.mdx.mdx | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/README.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/README.mdx.mdx b/docs-crowdin-export/uk-UA/docs/README.mdx.mdx new file mode 100644 index 0000000..fba8a6d --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/README.mdx.mdx @@ -0,0 +1,63 @@ +--- +sidebar_label: Introduction +--- + +# DCR — C/C++ Build Tool & Package Manager + +
+Quick reference + +```bash +# Installation +curl -fsSL https://dcr.dexoron.su/install.sh | sh + +# Create a project +dcr new my-app +cd my-app + +# Build and run +dcr build +dcr run + +# Run tests +dcr test + +# Add a dependency +dcr add fmt + +# Generate IDE files +dcr gen vscode +``` + +
+ +## Contents + +| Section | Description | +| ----------------------------------------------------- | --------------------------------------------- | +| [Getting Started](/docs/getting-started/installation) | Installation and first steps | +| [Commands](/docs/commands/project-commands) | All CLI commands | +| [Reference](/docs/reference/dcr-toml) | Configuration, build, dependencies, platforms | +| [Testing](/docs/testing/test-framework) | Built-in test framework | +| [Recipes](/docs/recipes/cross-to-windows) | Common scenarios | +| [IDE Integration](/docs/ide-integration) | VS Code, CLion, compile_commands.json | +| [Self Update](/docs/self-update) | Auto-update | +| [FAQ](/docs/faq) | Frequently asked questions | +| [Changelog](/docs/changelog) | Version history | +| [License](/docs/license) | DCR and vendored library licenses | +| [Contributing](/docs/contributing) | DCR development | + +## Features + +* **Incremental builds** — mtime + `.d` headers + SHA256 fingerprint +* **Parallel compilation** — thread::scope, atomic task queue +* **4 backends** — gcc/clang, MSVC/clang-cl, GAS (ARM), NASM (x86) +* **7 project kinds** — bin, staticlib, sharedlib, efi, elf, none, custom +* **Cross-compilation** — short names and full triples +* **Profiles** — debug / release with field overrides +* **Workspaces** — multi-package projects with topological sort +* **Registry + Git + Path** — three dependency mechanisms +* **IDE generation** — VS Code, CLion, compile_commands.json, JSON metadata +* **pkg-config** — automatic system library discovery +* **Per-command `--help`** — `dcr build --help`, `dcr new --help`, etc. +* **Man pages** — `man dcr`, `man dcr-build`, `man dcr-new` From d8061b641cf7a8b7f7337f47cec225c756432f7d Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:36:03 +0800 Subject: [PATCH 005/274] New translations changelog.mdx (German) [ci skip] --- .../de-DE/docs/changelog.mdx.mdx | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/changelog.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/changelog.mdx.mdx b/docs-crowdin-export/de-DE/docs/changelog.mdx.mdx new file mode 100644 index 0000000..722bf4e --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/changelog.mdx.mdx @@ -0,0 +1,91 @@ +--- +sidebar_label: Changelog +--- + +# Changelog + +## 0.7.1 (2026-06-02) + +### Added + +* **`--help` for all commands** — `dcr build --help`, `dcr run --help`, `dcr new --help`, + `dcr init --help`, `dcr clean --help`, `dcr add --help`, `dcr fmt --help`, + `dcr setup --help`, `dcr tree --help`, `dcr gen --help`, `dcr --update --help`, + `dcr test --help`. All output uses styled headers (green) and usage lines (cyan). +* **Man pages** — 12 troff pages in `man/man1/`: `dcr.1`, `dcr-build.1`, + `dcr-run.1`, `dcr-new.1`, `dcr-init.1`, `dcr-clean.1`, `dcr-add.1`, `dcr-test.1`, + `dcr-gen.1`, `dcr-fmt.1`, `dcr-tree.1`, `dcr-setup.1`. +* **Man pages in all packaging** — install.sh, install_bsd.sh, AUR PKGBUILD, + Debian (cargo-deb), RPM (cargo-generate-rpm), Nix (postInstall), Homebrew + (resource), Snap, GitHub Release assets. +* **Project name validation** — `dcr init` and `dcr new` now validate names before + creating files. Only ASCII letters, digits, `_` and `-` are allowed. +* **`documentation` and `homepage` fields** — added to `Cargo.toml`. +* **Release profile optimizations** — `opt-level = "z"`, LTO, `codegen-units = 1`, + `panic = "abort"`, `strip = true` for smaller binaries. +* **Linux i686, armv7, riscv64 targets** — added to release workflow and install scripts. +* **Linux musl i686, armv7 targets** — cross-compiled via zigbuild in CI. +* **AUR packages** — `dcr-dev`, `dcr-dev-bin` publishing workflow. +* **Snap publishing** — automated Snapcraft publishing in CI. +* **Snap badge** — in README. + +### Changed + +* **`validate_package_name` made public** — callable from CLI commands. +* **README platform table** — reorganized: libc variants as separate OS rows, + removed extra columns. Linux architecture list updated. +* **`gen.rs` no-args output** — now uses styled output instead of raw `eprintln!`. +* **`tree.rs`, `fmt.rs`, and `setup.rs`** — now accept arguments for `--help`. +* **README install commands** — `| bash` → `| sh` for POSIX compatibility. + +### Fixed + +* **`dcr new \` creates directory then fails** — validation now + happens before any file operations. +* **`dcr init` on invalid directory name** — same fix. +* **Man pages missing in installed packages** — now shipped in all formats. +* **Windows drive letter false positive** — in dependency file parser. +* **CRLF (`\r\n`) breaks dependency parser** — now handles mixed line endings. +* **Newline after backslash not consumed** — in `parse_d_file` escape handling. + +## 0.7.0 (2026-06-01) + +### Added + +* **OpenBSD and NetBSD target support** — full platform routing with dynamic target triples using `std::env::consts::ARCH` and `std::env::consts::OS`. Affects `build`, `run`, `clean` commands and the platform module. +* **`src/platform/bsd.rs`** — new BSD platform module (shared by FreeBSD, OpenBSD, NetBSD) providing `bin_path`, `lib_path`, `elf_path`, `efi_path`, `shared_lib_path`. +* **`build.out_dir` config option** — custom output directory that overrides the default `target/\/\` path for final artifacts. Supported in `build`, `run`, and config validation. +* **`dcr fmt` command** — new CLI command that formats all C/C++ source files (`*.c`, `*.cpp`, `*.h`, `*.hpp`) in `src/` and `tests/` using `clang-format`. +* **Incremental linking** — `needs_link()` in `common.rs` checks if any object file is newer than the linked output, skipping unnecessary relinking. Implemented for all backends (`unix_cc`, `msvc`, `gas`, `nasm`). +* **`build.kind = "none"` and `"custom"`** — two new project kinds for special build scenarios that don't produce standard artifacts. +* **`install_bsd.sh`** — POSIX-compliant installation script for BSD systems (FreeBSD, OpenBSD, NetBSD) with binary download and source build modes. +* **Linux ARM64 support in `install.sh`** — added `Linux:aarch64|Linux:arm64` target detection for pre-built binary downloads. +* **BSD OS detection in `install.sh`** — detects FreeBSD, OpenBSD, NetBSD and determines target triple. +* **`rust-toolchain.toml`** — explicit toolchain pinning to `stable` channel. +* **Integration tests** — `build_with_target_config` (verifies `build.target = "linux"`) and `build_with_out_dir` (validates custom output directory). +* **`get_build_string_with_profile` made `pub`** — so `run.rs` can determine custom output directory configuration. + +### Changed + +* **`build.target` semantics changed** — now strictly contains a target triple (e.g., `x86_64-unknown-linux-gnu`) or short name (`linux`, `macos`, `windows`). No longer used as custom output directory — this functionality moved to `build.out_dir`. +* **`build.standard` made optional** — changed from `String` to `Option\`. Validation only enforces non-empty for non-ASM languages. Skipped in `dcr.toml` output if empty. +* **`dcr run` with `out_dir`** — now determines target directory respecting `build.out_dir` via `get_build_string_with_profile()` from `build.rs`. +* **`collect_sources()` returns empty vector** instead of error when no sources are found, allowing `kind = "none"` or `kind = "custom"` projects with no source files. +* **CI/CD release workflow refactored** — `git2` made target-specific (no vendored-openssl on Windows), Zig-based cross-compilation for non-x86_64 Linux targets, Arch Linux package version cleanup (dashes → dots), `gmake` symlink for NetBSD. +* **README compatibility table** — FreeBSD, OpenBSD, NetBSD build/run status upgraded from "community/best-effort" to "officially supported". +* **Documentation updated** — `build-section.md` describes new `build.target` and `build.out_dir` fields. `target-directory.md` rewritten to clarify the distinction. + +### Fixed + +* **stdout/stderr not inherited in `dcr run`** — child process output was captured and manually printed, breaking interactive programs. Fixed by switching to `Command::status()`. +* **Race condition in release CI** — matrix build jobs could upload assets to a release that didn't exist yet. Fixed by adding a dedicated `create-release` job. +* **Release GHA — stable toolchain override** — fixed Rust toolchain override issues in CI. +* **Arch Linux package version sanitization** — version strings with dashes (e.g., `0.7.0-dev`) are invalid for `pkgver`. Fixed by replacing dashes with dots. +* **GPG permissions after Docker** — Docker operations changed GPG directory ownership. Fixed by running `chown` after Docker commands. +* **RPM artifact paths** — RPM artifacts were placed in `rpm/x86_64/` instead of `fedora/x86_64/`. Fixed in Dexoron Packages Index workflow. +* **JSON parsing reliability in `install.sh`** — added `jq` as primary parser with `python3` fallback for dev channel release lookup. + +### Removed + +* **`format_roots()` helper function** — removed from `common.rs`. Was only used by the old error handling path in `collect_sources()`. +* **Per-distribution artifact download steps** — three separate `actions/download-artifact` steps replaced with unified `gh release download --clobber`. From e6a8e07908ad36231196f4e67e331846345bdb89 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:36:06 +0800 Subject: [PATCH 006/274] New translations changelog.mdx (Polish) [ci skip] --- .../pl-PL/docs/changelog.mdx.mdx | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/changelog.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/changelog.mdx.mdx b/docs-crowdin-export/pl-PL/docs/changelog.mdx.mdx new file mode 100644 index 0000000..722bf4e --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/changelog.mdx.mdx @@ -0,0 +1,91 @@ +--- +sidebar_label: Changelog +--- + +# Changelog + +## 0.7.1 (2026-06-02) + +### Added + +* **`--help` for all commands** — `dcr build --help`, `dcr run --help`, `dcr new --help`, + `dcr init --help`, `dcr clean --help`, `dcr add --help`, `dcr fmt --help`, + `dcr setup --help`, `dcr tree --help`, `dcr gen --help`, `dcr --update --help`, + `dcr test --help`. All output uses styled headers (green) and usage lines (cyan). +* **Man pages** — 12 troff pages in `man/man1/`: `dcr.1`, `dcr-build.1`, + `dcr-run.1`, `dcr-new.1`, `dcr-init.1`, `dcr-clean.1`, `dcr-add.1`, `dcr-test.1`, + `dcr-gen.1`, `dcr-fmt.1`, `dcr-tree.1`, `dcr-setup.1`. +* **Man pages in all packaging** — install.sh, install_bsd.sh, AUR PKGBUILD, + Debian (cargo-deb), RPM (cargo-generate-rpm), Nix (postInstall), Homebrew + (resource), Snap, GitHub Release assets. +* **Project name validation** — `dcr init` and `dcr new` now validate names before + creating files. Only ASCII letters, digits, `_` and `-` are allowed. +* **`documentation` and `homepage` fields** — added to `Cargo.toml`. +* **Release profile optimizations** — `opt-level = "z"`, LTO, `codegen-units = 1`, + `panic = "abort"`, `strip = true` for smaller binaries. +* **Linux i686, armv7, riscv64 targets** — added to release workflow and install scripts. +* **Linux musl i686, armv7 targets** — cross-compiled via zigbuild in CI. +* **AUR packages** — `dcr-dev`, `dcr-dev-bin` publishing workflow. +* **Snap publishing** — automated Snapcraft publishing in CI. +* **Snap badge** — in README. + +### Changed + +* **`validate_package_name` made public** — callable from CLI commands. +* **README platform table** — reorganized: libc variants as separate OS rows, + removed extra columns. Linux architecture list updated. +* **`gen.rs` no-args output** — now uses styled output instead of raw `eprintln!`. +* **`tree.rs`, `fmt.rs`, and `setup.rs`** — now accept arguments for `--help`. +* **README install commands** — `| bash` → `| sh` for POSIX compatibility. + +### Fixed + +* **`dcr new \` creates directory then fails** — validation now + happens before any file operations. +* **`dcr init` on invalid directory name** — same fix. +* **Man pages missing in installed packages** — now shipped in all formats. +* **Windows drive letter false positive** — in dependency file parser. +* **CRLF (`\r\n`) breaks dependency parser** — now handles mixed line endings. +* **Newline after backslash not consumed** — in `parse_d_file` escape handling. + +## 0.7.0 (2026-06-01) + +### Added + +* **OpenBSD and NetBSD target support** — full platform routing with dynamic target triples using `std::env::consts::ARCH` and `std::env::consts::OS`. Affects `build`, `run`, `clean` commands and the platform module. +* **`src/platform/bsd.rs`** — new BSD platform module (shared by FreeBSD, OpenBSD, NetBSD) providing `bin_path`, `lib_path`, `elf_path`, `efi_path`, `shared_lib_path`. +* **`build.out_dir` config option** — custom output directory that overrides the default `target/\/\` path for final artifacts. Supported in `build`, `run`, and config validation. +* **`dcr fmt` command** — new CLI command that formats all C/C++ source files (`*.c`, `*.cpp`, `*.h`, `*.hpp`) in `src/` and `tests/` using `clang-format`. +* **Incremental linking** — `needs_link()` in `common.rs` checks if any object file is newer than the linked output, skipping unnecessary relinking. Implemented for all backends (`unix_cc`, `msvc`, `gas`, `nasm`). +* **`build.kind = "none"` and `"custom"`** — two new project kinds for special build scenarios that don't produce standard artifacts. +* **`install_bsd.sh`** — POSIX-compliant installation script for BSD systems (FreeBSD, OpenBSD, NetBSD) with binary download and source build modes. +* **Linux ARM64 support in `install.sh`** — added `Linux:aarch64|Linux:arm64` target detection for pre-built binary downloads. +* **BSD OS detection in `install.sh`** — detects FreeBSD, OpenBSD, NetBSD and determines target triple. +* **`rust-toolchain.toml`** — explicit toolchain pinning to `stable` channel. +* **Integration tests** — `build_with_target_config` (verifies `build.target = "linux"`) and `build_with_out_dir` (validates custom output directory). +* **`get_build_string_with_profile` made `pub`** — so `run.rs` can determine custom output directory configuration. + +### Changed + +* **`build.target` semantics changed** — now strictly contains a target triple (e.g., `x86_64-unknown-linux-gnu`) or short name (`linux`, `macos`, `windows`). No longer used as custom output directory — this functionality moved to `build.out_dir`. +* **`build.standard` made optional** — changed from `String` to `Option\`. Validation only enforces non-empty for non-ASM languages. Skipped in `dcr.toml` output if empty. +* **`dcr run` with `out_dir`** — now determines target directory respecting `build.out_dir` via `get_build_string_with_profile()` from `build.rs`. +* **`collect_sources()` returns empty vector** instead of error when no sources are found, allowing `kind = "none"` or `kind = "custom"` projects with no source files. +* **CI/CD release workflow refactored** — `git2` made target-specific (no vendored-openssl on Windows), Zig-based cross-compilation for non-x86_64 Linux targets, Arch Linux package version cleanup (dashes → dots), `gmake` symlink for NetBSD. +* **README compatibility table** — FreeBSD, OpenBSD, NetBSD build/run status upgraded from "community/best-effort" to "officially supported". +* **Documentation updated** — `build-section.md` describes new `build.target` and `build.out_dir` fields. `target-directory.md` rewritten to clarify the distinction. + +### Fixed + +* **stdout/stderr not inherited in `dcr run`** — child process output was captured and manually printed, breaking interactive programs. Fixed by switching to `Command::status()`. +* **Race condition in release CI** — matrix build jobs could upload assets to a release that didn't exist yet. Fixed by adding a dedicated `create-release` job. +* **Release GHA — stable toolchain override** — fixed Rust toolchain override issues in CI. +* **Arch Linux package version sanitization** — version strings with dashes (e.g., `0.7.0-dev`) are invalid for `pkgver`. Fixed by replacing dashes with dots. +* **GPG permissions after Docker** — Docker operations changed GPG directory ownership. Fixed by running `chown` after Docker commands. +* **RPM artifact paths** — RPM artifacts were placed in `rpm/x86_64/` instead of `fedora/x86_64/`. Fixed in Dexoron Packages Index workflow. +* **JSON parsing reliability in `install.sh`** — added `jq` as primary parser with `python3` fallback for dev channel release lookup. + +### Removed + +* **`format_roots()` helper function** — removed from `common.rs`. Was only used by the old error handling path in `collect_sources()`. +* **Per-distribution artifact download steps** — three separate `actions/download-artifact` steps replaced with unified `gh release download --clobber`. From beed70fbac694d97ac6464a6ff76223ee194c3de Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:36:09 +0800 Subject: [PATCH 007/274] New translations changelog.mdx (Russian) [ci skip] --- .../ru-RU/docs/changelog.mdx.mdx | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/changelog.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/changelog.mdx.mdx b/docs-crowdin-export/ru-RU/docs/changelog.mdx.mdx new file mode 100644 index 0000000..722bf4e --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/changelog.mdx.mdx @@ -0,0 +1,91 @@ +--- +sidebar_label: Changelog +--- + +# Changelog + +## 0.7.1 (2026-06-02) + +### Added + +* **`--help` for all commands** — `dcr build --help`, `dcr run --help`, `dcr new --help`, + `dcr init --help`, `dcr clean --help`, `dcr add --help`, `dcr fmt --help`, + `dcr setup --help`, `dcr tree --help`, `dcr gen --help`, `dcr --update --help`, + `dcr test --help`. All output uses styled headers (green) and usage lines (cyan). +* **Man pages** — 12 troff pages in `man/man1/`: `dcr.1`, `dcr-build.1`, + `dcr-run.1`, `dcr-new.1`, `dcr-init.1`, `dcr-clean.1`, `dcr-add.1`, `dcr-test.1`, + `dcr-gen.1`, `dcr-fmt.1`, `dcr-tree.1`, `dcr-setup.1`. +* **Man pages in all packaging** — install.sh, install_bsd.sh, AUR PKGBUILD, + Debian (cargo-deb), RPM (cargo-generate-rpm), Nix (postInstall), Homebrew + (resource), Snap, GitHub Release assets. +* **Project name validation** — `dcr init` and `dcr new` now validate names before + creating files. Only ASCII letters, digits, `_` and `-` are allowed. +* **`documentation` and `homepage` fields** — added to `Cargo.toml`. +* **Release profile optimizations** — `opt-level = "z"`, LTO, `codegen-units = 1`, + `panic = "abort"`, `strip = true` for smaller binaries. +* **Linux i686, armv7, riscv64 targets** — added to release workflow and install scripts. +* **Linux musl i686, armv7 targets** — cross-compiled via zigbuild in CI. +* **AUR packages** — `dcr-dev`, `dcr-dev-bin` publishing workflow. +* **Snap publishing** — automated Snapcraft publishing in CI. +* **Snap badge** — in README. + +### Changed + +* **`validate_package_name` made public** — callable from CLI commands. +* **README platform table** — reorganized: libc variants as separate OS rows, + removed extra columns. Linux architecture list updated. +* **`gen.rs` no-args output** — now uses styled output instead of raw `eprintln!`. +* **`tree.rs`, `fmt.rs`, and `setup.rs`** — now accept arguments for `--help`. +* **README install commands** — `| bash` → `| sh` for POSIX compatibility. + +### Fixed + +* **`dcr new \` creates directory then fails** — validation now + happens before any file operations. +* **`dcr init` on invalid directory name** — same fix. +* **Man pages missing in installed packages** — now shipped in all formats. +* **Windows drive letter false positive** — in dependency file parser. +* **CRLF (`\r\n`) breaks dependency parser** — now handles mixed line endings. +* **Newline after backslash not consumed** — in `parse_d_file` escape handling. + +## 0.7.0 (2026-06-01) + +### Added + +* **OpenBSD and NetBSD target support** — full platform routing with dynamic target triples using `std::env::consts::ARCH` and `std::env::consts::OS`. Affects `build`, `run`, `clean` commands and the platform module. +* **`src/platform/bsd.rs`** — new BSD platform module (shared by FreeBSD, OpenBSD, NetBSD) providing `bin_path`, `lib_path`, `elf_path`, `efi_path`, `shared_lib_path`. +* **`build.out_dir` config option** — custom output directory that overrides the default `target/\/\` path for final artifacts. Supported in `build`, `run`, and config validation. +* **`dcr fmt` command** — new CLI command that formats all C/C++ source files (`*.c`, `*.cpp`, `*.h`, `*.hpp`) in `src/` and `tests/` using `clang-format`. +* **Incremental linking** — `needs_link()` in `common.rs` checks if any object file is newer than the linked output, skipping unnecessary relinking. Implemented for all backends (`unix_cc`, `msvc`, `gas`, `nasm`). +* **`build.kind = "none"` and `"custom"`** — two new project kinds for special build scenarios that don't produce standard artifacts. +* **`install_bsd.sh`** — POSIX-compliant installation script for BSD systems (FreeBSD, OpenBSD, NetBSD) with binary download and source build modes. +* **Linux ARM64 support in `install.sh`** — added `Linux:aarch64|Linux:arm64` target detection for pre-built binary downloads. +* **BSD OS detection in `install.sh`** — detects FreeBSD, OpenBSD, NetBSD and determines target triple. +* **`rust-toolchain.toml`** — explicit toolchain pinning to `stable` channel. +* **Integration tests** — `build_with_target_config` (verifies `build.target = "linux"`) and `build_with_out_dir` (validates custom output directory). +* **`get_build_string_with_profile` made `pub`** — so `run.rs` can determine custom output directory configuration. + +### Changed + +* **`build.target` semantics changed** — now strictly contains a target triple (e.g., `x86_64-unknown-linux-gnu`) or short name (`linux`, `macos`, `windows`). No longer used as custom output directory — this functionality moved to `build.out_dir`. +* **`build.standard` made optional** — changed from `String` to `Option\`. Validation only enforces non-empty for non-ASM languages. Skipped in `dcr.toml` output if empty. +* **`dcr run` with `out_dir`** — now determines target directory respecting `build.out_dir` via `get_build_string_with_profile()` from `build.rs`. +* **`collect_sources()` returns empty vector** instead of error when no sources are found, allowing `kind = "none"` or `kind = "custom"` projects with no source files. +* **CI/CD release workflow refactored** — `git2` made target-specific (no vendored-openssl on Windows), Zig-based cross-compilation for non-x86_64 Linux targets, Arch Linux package version cleanup (dashes → dots), `gmake` symlink for NetBSD. +* **README compatibility table** — FreeBSD, OpenBSD, NetBSD build/run status upgraded from "community/best-effort" to "officially supported". +* **Documentation updated** — `build-section.md` describes new `build.target` and `build.out_dir` fields. `target-directory.md` rewritten to clarify the distinction. + +### Fixed + +* **stdout/stderr not inherited in `dcr run`** — child process output was captured and manually printed, breaking interactive programs. Fixed by switching to `Command::status()`. +* **Race condition in release CI** — matrix build jobs could upload assets to a release that didn't exist yet. Fixed by adding a dedicated `create-release` job. +* **Release GHA — stable toolchain override** — fixed Rust toolchain override issues in CI. +* **Arch Linux package version sanitization** — version strings with dashes (e.g., `0.7.0-dev`) are invalid for `pkgver`. Fixed by replacing dashes with dots. +* **GPG permissions after Docker** — Docker operations changed GPG directory ownership. Fixed by running `chown` after Docker commands. +* **RPM artifact paths** — RPM artifacts were placed in `rpm/x86_64/` instead of `fedora/x86_64/`. Fixed in Dexoron Packages Index workflow. +* **JSON parsing reliability in `install.sh`** — added `jq` as primary parser with `python3` fallback for dev channel release lookup. + +### Removed + +* **`format_roots()` helper function** — removed from `common.rs`. Was only used by the old error handling path in `collect_sources()`. +* **Per-distribution artifact download steps** — three separate `actions/download-artifact` steps replaced with unified `gh release download --clobber`. From 08fb2eed3507d005b8c1560ac2e27b8be4572681 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:36:11 +0800 Subject: [PATCH 008/274] New translations changelog.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/changelog.mdx.mdx | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/changelog.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/changelog.mdx.mdx b/docs-crowdin-export/uk-UA/docs/changelog.mdx.mdx new file mode 100644 index 0000000..722bf4e --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/changelog.mdx.mdx @@ -0,0 +1,91 @@ +--- +sidebar_label: Changelog +--- + +# Changelog + +## 0.7.1 (2026-06-02) + +### Added + +* **`--help` for all commands** — `dcr build --help`, `dcr run --help`, `dcr new --help`, + `dcr init --help`, `dcr clean --help`, `dcr add --help`, `dcr fmt --help`, + `dcr setup --help`, `dcr tree --help`, `dcr gen --help`, `dcr --update --help`, + `dcr test --help`. All output uses styled headers (green) and usage lines (cyan). +* **Man pages** — 12 troff pages in `man/man1/`: `dcr.1`, `dcr-build.1`, + `dcr-run.1`, `dcr-new.1`, `dcr-init.1`, `dcr-clean.1`, `dcr-add.1`, `dcr-test.1`, + `dcr-gen.1`, `dcr-fmt.1`, `dcr-tree.1`, `dcr-setup.1`. +* **Man pages in all packaging** — install.sh, install_bsd.sh, AUR PKGBUILD, + Debian (cargo-deb), RPM (cargo-generate-rpm), Nix (postInstall), Homebrew + (resource), Snap, GitHub Release assets. +* **Project name validation** — `dcr init` and `dcr new` now validate names before + creating files. Only ASCII letters, digits, `_` and `-` are allowed. +* **`documentation` and `homepage` fields** — added to `Cargo.toml`. +* **Release profile optimizations** — `opt-level = "z"`, LTO, `codegen-units = 1`, + `panic = "abort"`, `strip = true` for smaller binaries. +* **Linux i686, armv7, riscv64 targets** — added to release workflow and install scripts. +* **Linux musl i686, armv7 targets** — cross-compiled via zigbuild in CI. +* **AUR packages** — `dcr-dev`, `dcr-dev-bin` publishing workflow. +* **Snap publishing** — automated Snapcraft publishing in CI. +* **Snap badge** — in README. + +### Changed + +* **`validate_package_name` made public** — callable from CLI commands. +* **README platform table** — reorganized: libc variants as separate OS rows, + removed extra columns. Linux architecture list updated. +* **`gen.rs` no-args output** — now uses styled output instead of raw `eprintln!`. +* **`tree.rs`, `fmt.rs`, and `setup.rs`** — now accept arguments for `--help`. +* **README install commands** — `| bash` → `| sh` for POSIX compatibility. + +### Fixed + +* **`dcr new \` creates directory then fails** — validation now + happens before any file operations. +* **`dcr init` on invalid directory name** — same fix. +* **Man pages missing in installed packages** — now shipped in all formats. +* **Windows drive letter false positive** — in dependency file parser. +* **CRLF (`\r\n`) breaks dependency parser** — now handles mixed line endings. +* **Newline after backslash not consumed** — in `parse_d_file` escape handling. + +## 0.7.0 (2026-06-01) + +### Added + +* **OpenBSD and NetBSD target support** — full platform routing with dynamic target triples using `std::env::consts::ARCH` and `std::env::consts::OS`. Affects `build`, `run`, `clean` commands and the platform module. +* **`src/platform/bsd.rs`** — new BSD platform module (shared by FreeBSD, OpenBSD, NetBSD) providing `bin_path`, `lib_path`, `elf_path`, `efi_path`, `shared_lib_path`. +* **`build.out_dir` config option** — custom output directory that overrides the default `target/\/\` path for final artifacts. Supported in `build`, `run`, and config validation. +* **`dcr fmt` command** — new CLI command that formats all C/C++ source files (`*.c`, `*.cpp`, `*.h`, `*.hpp`) in `src/` and `tests/` using `clang-format`. +* **Incremental linking** — `needs_link()` in `common.rs` checks if any object file is newer than the linked output, skipping unnecessary relinking. Implemented for all backends (`unix_cc`, `msvc`, `gas`, `nasm`). +* **`build.kind = "none"` and `"custom"`** — two new project kinds for special build scenarios that don't produce standard artifacts. +* **`install_bsd.sh`** — POSIX-compliant installation script for BSD systems (FreeBSD, OpenBSD, NetBSD) with binary download and source build modes. +* **Linux ARM64 support in `install.sh`** — added `Linux:aarch64|Linux:arm64` target detection for pre-built binary downloads. +* **BSD OS detection in `install.sh`** — detects FreeBSD, OpenBSD, NetBSD and determines target triple. +* **`rust-toolchain.toml`** — explicit toolchain pinning to `stable` channel. +* **Integration tests** — `build_with_target_config` (verifies `build.target = "linux"`) and `build_with_out_dir` (validates custom output directory). +* **`get_build_string_with_profile` made `pub`** — so `run.rs` can determine custom output directory configuration. + +### Changed + +* **`build.target` semantics changed** — now strictly contains a target triple (e.g., `x86_64-unknown-linux-gnu`) or short name (`linux`, `macos`, `windows`). No longer used as custom output directory — this functionality moved to `build.out_dir`. +* **`build.standard` made optional** — changed from `String` to `Option\`. Validation only enforces non-empty for non-ASM languages. Skipped in `dcr.toml` output if empty. +* **`dcr run` with `out_dir`** — now determines target directory respecting `build.out_dir` via `get_build_string_with_profile()` from `build.rs`. +* **`collect_sources()` returns empty vector** instead of error when no sources are found, allowing `kind = "none"` or `kind = "custom"` projects with no source files. +* **CI/CD release workflow refactored** — `git2` made target-specific (no vendored-openssl on Windows), Zig-based cross-compilation for non-x86_64 Linux targets, Arch Linux package version cleanup (dashes → dots), `gmake` symlink for NetBSD. +* **README compatibility table** — FreeBSD, OpenBSD, NetBSD build/run status upgraded from "community/best-effort" to "officially supported". +* **Documentation updated** — `build-section.md` describes new `build.target` and `build.out_dir` fields. `target-directory.md` rewritten to clarify the distinction. + +### Fixed + +* **stdout/stderr not inherited in `dcr run`** — child process output was captured and manually printed, breaking interactive programs. Fixed by switching to `Command::status()`. +* **Race condition in release CI** — matrix build jobs could upload assets to a release that didn't exist yet. Fixed by adding a dedicated `create-release` job. +* **Release GHA — stable toolchain override** — fixed Rust toolchain override issues in CI. +* **Arch Linux package version sanitization** — version strings with dashes (e.g., `0.7.0-dev`) are invalid for `pkgver`. Fixed by replacing dashes with dots. +* **GPG permissions after Docker** — Docker operations changed GPG directory ownership. Fixed by running `chown` after Docker commands. +* **RPM artifact paths** — RPM artifacts were placed in `rpm/x86_64/` instead of `fedora/x86_64/`. Fixed in Dexoron Packages Index workflow. +* **JSON parsing reliability in `install.sh`** — added `jq` as primary parser with `python3` fallback for dev channel release lookup. + +### Removed + +* **`format_roots()` helper function** — removed from `common.rs`. Was only used by the old error handling path in `collect_sources()`. +* **Per-distribution artifact download steps** — three separate `actions/download-artifact` steps replaced with unified `gh release download --clobber`. From 26e8416458b703fe3a22a49d31721ee4000de067 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:36:14 +0800 Subject: [PATCH 009/274] New translations build-commands.mdx (German) [ci skip] --- .../docs/commands/build-commands.mdx.mdx | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/commands/build-commands.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/commands/build-commands.mdx.mdx b/docs-crowdin-export/de-DE/docs/commands/build-commands.mdx.mdx new file mode 100644 index 0000000..9bdd3b3 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/commands/build-commands.mdx.mdx @@ -0,0 +1,42 @@ +--- +sidebar_label: Build commands (build, run, clean) +--- + +# Build Commands + +## `dcr build` + +Builds the project according to `dcr.toml`. + +```bash +dcr build # debug profile +dcr build --release # release build +dcr build --debug # explicit debug +dcr build --target aarch64-unknown-linux-gnu +dcr build --force # full rebuild +dcr build --clean # clean + build +dcr build --verbose # show compilation commands +dcr build --workspace pkg-a # build specific workspace package +``` + +Artifacts: `target/\/\/\` (Linux with explicit target). + +## `dcr run` + +Builds (if sources are newer than artifacts) and runs the binary. + +```bash +dcr run +dcr run --release +``` + +## `dcr clean` + +Removes `target/` directory (or `target/\/\`). + +```bash +dcr clean +dcr clean --release # target/release/ only +dcr clean --target windows # target/x86_64-pc-windows-msvc/ +dcr clean --all # clean all workspace packages +``` From f85cee6c100547477f2640f799b16a5ace56004b Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:36:16 +0800 Subject: [PATCH 010/274] New translations build-commands.mdx (Polish) [ci skip] --- .../docs/commands/build-commands.mdx.mdx | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/commands/build-commands.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/commands/build-commands.mdx.mdx b/docs-crowdin-export/pl-PL/docs/commands/build-commands.mdx.mdx new file mode 100644 index 0000000..9bdd3b3 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/commands/build-commands.mdx.mdx @@ -0,0 +1,42 @@ +--- +sidebar_label: Build commands (build, run, clean) +--- + +# Build Commands + +## `dcr build` + +Builds the project according to `dcr.toml`. + +```bash +dcr build # debug profile +dcr build --release # release build +dcr build --debug # explicit debug +dcr build --target aarch64-unknown-linux-gnu +dcr build --force # full rebuild +dcr build --clean # clean + build +dcr build --verbose # show compilation commands +dcr build --workspace pkg-a # build specific workspace package +``` + +Artifacts: `target/\/\/\` (Linux with explicit target). + +## `dcr run` + +Builds (if sources are newer than artifacts) and runs the binary. + +```bash +dcr run +dcr run --release +``` + +## `dcr clean` + +Removes `target/` directory (or `target/\/\`). + +```bash +dcr clean +dcr clean --release # target/release/ only +dcr clean --target windows # target/x86_64-pc-windows-msvc/ +dcr clean --all # clean all workspace packages +``` From 76df19c5b874cd32111f01af3de59421354e83b8 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:36:19 +0800 Subject: [PATCH 011/274] New translations build-commands.mdx (Russian) [ci skip] --- .../docs/commands/build-commands.mdx.mdx | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/commands/build-commands.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/commands/build-commands.mdx.mdx b/docs-crowdin-export/ru-RU/docs/commands/build-commands.mdx.mdx new file mode 100644 index 0000000..9bdd3b3 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/commands/build-commands.mdx.mdx @@ -0,0 +1,42 @@ +--- +sidebar_label: Build commands (build, run, clean) +--- + +# Build Commands + +## `dcr build` + +Builds the project according to `dcr.toml`. + +```bash +dcr build # debug profile +dcr build --release # release build +dcr build --debug # explicit debug +dcr build --target aarch64-unknown-linux-gnu +dcr build --force # full rebuild +dcr build --clean # clean + build +dcr build --verbose # show compilation commands +dcr build --workspace pkg-a # build specific workspace package +``` + +Artifacts: `target/\/\/\` (Linux with explicit target). + +## `dcr run` + +Builds (if sources are newer than artifacts) and runs the binary. + +```bash +dcr run +dcr run --release +``` + +## `dcr clean` + +Removes `target/` directory (or `target/\/\`). + +```bash +dcr clean +dcr clean --release # target/release/ only +dcr clean --target windows # target/x86_64-pc-windows-msvc/ +dcr clean --all # clean all workspace packages +``` From 0d3ced3750798e97a2e94d77d4170f8dba22e889 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:36:21 +0800 Subject: [PATCH 012/274] New translations build-commands.mdx (Ukrainian) [ci skip] --- .../docs/commands/build-commands.mdx.mdx | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/commands/build-commands.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/commands/build-commands.mdx.mdx b/docs-crowdin-export/uk-UA/docs/commands/build-commands.mdx.mdx new file mode 100644 index 0000000..9bdd3b3 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/commands/build-commands.mdx.mdx @@ -0,0 +1,42 @@ +--- +sidebar_label: Build commands (build, run, clean) +--- + +# Build Commands + +## `dcr build` + +Builds the project according to `dcr.toml`. + +```bash +dcr build # debug profile +dcr build --release # release build +dcr build --debug # explicit debug +dcr build --target aarch64-unknown-linux-gnu +dcr build --force # full rebuild +dcr build --clean # clean + build +dcr build --verbose # show compilation commands +dcr build --workspace pkg-a # build specific workspace package +``` + +Artifacts: `target/\/\/\` (Linux with explicit target). + +## `dcr run` + +Builds (if sources are newer than artifacts) and runs the binary. + +```bash +dcr run +dcr run --release +``` + +## `dcr clean` + +Removes `target/` directory (or `target/\/\`). + +```bash +dcr clean +dcr clean --release # target/release/ only +dcr clean --target windows # target/x86_64-pc-windows-msvc/ +dcr clean --all # clean all workspace packages +``` From 2849a7071ffe39bd761634efcade41a71bec55b4 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:36:23 +0800 Subject: [PATCH 013/274] New translations dependency-commands.mdx (German) [ci skip] --- .../docs/commands/dependency-commands.mdx.mdx | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/commands/dependency-commands.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/commands/dependency-commands.mdx.mdx b/docs-crowdin-export/de-DE/docs/commands/dependency-commands.mdx.mdx new file mode 100644 index 0000000..4b5b982 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/commands/dependency-commands.mdx.mdx @@ -0,0 +1,53 @@ +--- +sidebar_label: Dependency commands (add, tree) +--- + +# Dependency Commands + +## `dcr add \ [source]` + +Adds a dependency to `dcr.toml`. + +```bash +dcr add fmt # registry lookup +dcr add mylib ../path/to/lib # path as source +dcr add mylib path:./lib # explicit path prefix +dcr add mylib git:https://github.com/user/repo # explicit git prefix +dcr add mylib github:user/repo # GitHub shorthand +dcr add mylib gitlab:user/repo # GitLab shorthand +``` + +Source prefixes: + +* `path:` — local path +* `git:` — generic git URL +* `github:` — expands to `https://github.com/\/\` +* `gitlab:` — expands to `https://gitlab.com/\/\` +* `http://` / `https://` / `git@` — full URL + +Flags: + +* `--branch \` — git branch +* `--tag \` — git tag +* `--rev \` — git commit + +If source is omitted — DCR searches connected registries. + +## `dcr tree` + +Displays the project dependency tree. + +```bash +dcr tree +``` + +Example output: + +``` +my-app v0.1.0 +├── fmt (registry) +│ └── spdlog (registry) +└── catch2 (registry) +``` + +For path dependencies, recursively shows their own dependencies (from their `dcr.toml`). From a94af1567bdf2df99323bdcc819e6ce1f658eb1d Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:36:26 +0800 Subject: [PATCH 014/274] New translations dependency-commands.mdx (Polish) [ci skip] --- .../docs/commands/dependency-commands.mdx.mdx | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/commands/dependency-commands.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/commands/dependency-commands.mdx.mdx b/docs-crowdin-export/pl-PL/docs/commands/dependency-commands.mdx.mdx new file mode 100644 index 0000000..4b5b982 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/commands/dependency-commands.mdx.mdx @@ -0,0 +1,53 @@ +--- +sidebar_label: Dependency commands (add, tree) +--- + +# Dependency Commands + +## `dcr add \ [source]` + +Adds a dependency to `dcr.toml`. + +```bash +dcr add fmt # registry lookup +dcr add mylib ../path/to/lib # path as source +dcr add mylib path:./lib # explicit path prefix +dcr add mylib git:https://github.com/user/repo # explicit git prefix +dcr add mylib github:user/repo # GitHub shorthand +dcr add mylib gitlab:user/repo # GitLab shorthand +``` + +Source prefixes: + +* `path:` — local path +* `git:` — generic git URL +* `github:` — expands to `https://github.com/\/\` +* `gitlab:` — expands to `https://gitlab.com/\/\` +* `http://` / `https://` / `git@` — full URL + +Flags: + +* `--branch \` — git branch +* `--tag \` — git tag +* `--rev \` — git commit + +If source is omitted — DCR searches connected registries. + +## `dcr tree` + +Displays the project dependency tree. + +```bash +dcr tree +``` + +Example output: + +``` +my-app v0.1.0 +├── fmt (registry) +│ └── spdlog (registry) +└── catch2 (registry) +``` + +For path dependencies, recursively shows their own dependencies (from their `dcr.toml`). From 2d2905b5bed48b7681416ce49c2148dbaa2d258c Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:36:28 +0800 Subject: [PATCH 015/274] New translations dependency-commands.mdx (Russian) [ci skip] --- .../docs/commands/dependency-commands.mdx.mdx | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/commands/dependency-commands.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/commands/dependency-commands.mdx.mdx b/docs-crowdin-export/ru-RU/docs/commands/dependency-commands.mdx.mdx new file mode 100644 index 0000000..4b5b982 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/commands/dependency-commands.mdx.mdx @@ -0,0 +1,53 @@ +--- +sidebar_label: Dependency commands (add, tree) +--- + +# Dependency Commands + +## `dcr add \ [source]` + +Adds a dependency to `dcr.toml`. + +```bash +dcr add fmt # registry lookup +dcr add mylib ../path/to/lib # path as source +dcr add mylib path:./lib # explicit path prefix +dcr add mylib git:https://github.com/user/repo # explicit git prefix +dcr add mylib github:user/repo # GitHub shorthand +dcr add mylib gitlab:user/repo # GitLab shorthand +``` + +Source prefixes: + +* `path:` — local path +* `git:` — generic git URL +* `github:` — expands to `https://github.com/\/\` +* `gitlab:` — expands to `https://gitlab.com/\/\` +* `http://` / `https://` / `git@` — full URL + +Flags: + +* `--branch \` — git branch +* `--tag \` — git tag +* `--rev \` — git commit + +If source is omitted — DCR searches connected registries. + +## `dcr tree` + +Displays the project dependency tree. + +```bash +dcr tree +``` + +Example output: + +``` +my-app v0.1.0 +├── fmt (registry) +│ └── spdlog (registry) +└── catch2 (registry) +``` + +For path dependencies, recursively shows their own dependencies (from their `dcr.toml`). From 00d0cbada4f89617cca0072eec7dd6ff587335df Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:36:31 +0800 Subject: [PATCH 016/274] New translations dependency-commands.mdx (Ukrainian) [ci skip] --- .../docs/commands/dependency-commands.mdx.mdx | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/commands/dependency-commands.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/commands/dependency-commands.mdx.mdx b/docs-crowdin-export/uk-UA/docs/commands/dependency-commands.mdx.mdx new file mode 100644 index 0000000..4b5b982 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/commands/dependency-commands.mdx.mdx @@ -0,0 +1,53 @@ +--- +sidebar_label: Dependency commands (add, tree) +--- + +# Dependency Commands + +## `dcr add \ [source]` + +Adds a dependency to `dcr.toml`. + +```bash +dcr add fmt # registry lookup +dcr add mylib ../path/to/lib # path as source +dcr add mylib path:./lib # explicit path prefix +dcr add mylib git:https://github.com/user/repo # explicit git prefix +dcr add mylib github:user/repo # GitHub shorthand +dcr add mylib gitlab:user/repo # GitLab shorthand +``` + +Source prefixes: + +* `path:` — local path +* `git:` — generic git URL +* `github:` — expands to `https://github.com/\/\` +* `gitlab:` — expands to `https://gitlab.com/\/\` +* `http://` / `https://` / `git@` — full URL + +Flags: + +* `--branch \` — git branch +* `--tag \` — git tag +* `--rev \` — git commit + +If source is omitted — DCR searches connected registries. + +## `dcr tree` + +Displays the project dependency tree. + +```bash +dcr tree +``` + +Example output: + +``` +my-app v0.1.0 +├── fmt (registry) +│ └── spdlog (registry) +└── catch2 (registry) +``` + +For path dependencies, recursively shows their own dependencies (from their `dcr.toml`). From 6fb502106314314d60eedc0f851e3ec8ac7508f4 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:36:33 +0800 Subject: [PATCH 017/274] New translations gen-commands.mdx (German) [ci skip] --- .../de-DE/docs/commands/gen-commands.mdx.mdx | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/commands/gen-commands.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/commands/gen-commands.mdx.mdx b/docs-crowdin-export/de-DE/docs/commands/gen-commands.mdx.mdx new file mode 100644 index 0000000..466b04c --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/commands/gen-commands.mdx.mdx @@ -0,0 +1,73 @@ +--- +sidebar_label: Gen commands (vscode, clion, ...) +--- + +# Gen Commands + +## `dcr gen \` + +Generates IDE integration files. + +### vscode + +```bash +dcr gen vscode +``` + +Creates: + +* `.vscode/tasks.json` — `build` task (dcr build) +* `.vscode/launch.json` — debug launch configuration +* `.vscode/settings.json` — C/C++ settings (clangd paths, includes) +* `.vscode/extensions.json` — recommended extensions (vscode-clangd, vscode-lldb) + +### clion + +```bash +dcr gen clion +``` + +Creates: + +* `.idea/externalTools.xml` — external tools (build, run, clean, test) +* `.idea/customTargets.xml` — custom build targets +* `.idea/misc.xml` — C/C++ project settings +* `.idea/runConfigurations/\.xml` — per-binary run configurations + +### compile-commands + +```bash +dcr gen compile-commands +``` + +Generates `compile_commands.json` — standard format for clangd, cpptools, static analyzers. + +### project-info + +```bash +dcr gen project-info +``` + +Outputs JSON array with project metadata: + +```json +[ + { + "name": "my-app", + "version": "0.1.0", + "root": "/path/to/project", + "profile": "debug", + "language": "c", + "standard": "c17", + "cxx_standard": null, + "compiler": "/usr/bin/clang", + "kind": "bin", + "sources": ["src/main.c"], + "include_dirs": ["src"], + "lib_dirs": [], + "libs": [], + "cflags": ["-std=c17", "-O0", "-g"], + "ldflags": [] + } +] +``` From 95622e5ba6149e65cc2c7663c0596ed8e0116544 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:36:36 +0800 Subject: [PATCH 018/274] New translations gen-commands.mdx (Polish) [ci skip] --- .../pl-PL/docs/commands/gen-commands.mdx.mdx | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/commands/gen-commands.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/commands/gen-commands.mdx.mdx b/docs-crowdin-export/pl-PL/docs/commands/gen-commands.mdx.mdx new file mode 100644 index 0000000..466b04c --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/commands/gen-commands.mdx.mdx @@ -0,0 +1,73 @@ +--- +sidebar_label: Gen commands (vscode, clion, ...) +--- + +# Gen Commands + +## `dcr gen \` + +Generates IDE integration files. + +### vscode + +```bash +dcr gen vscode +``` + +Creates: + +* `.vscode/tasks.json` — `build` task (dcr build) +* `.vscode/launch.json` — debug launch configuration +* `.vscode/settings.json` — C/C++ settings (clangd paths, includes) +* `.vscode/extensions.json` — recommended extensions (vscode-clangd, vscode-lldb) + +### clion + +```bash +dcr gen clion +``` + +Creates: + +* `.idea/externalTools.xml` — external tools (build, run, clean, test) +* `.idea/customTargets.xml` — custom build targets +* `.idea/misc.xml` — C/C++ project settings +* `.idea/runConfigurations/\.xml` — per-binary run configurations + +### compile-commands + +```bash +dcr gen compile-commands +``` + +Generates `compile_commands.json` — standard format for clangd, cpptools, static analyzers. + +### project-info + +```bash +dcr gen project-info +``` + +Outputs JSON array with project metadata: + +```json +[ + { + "name": "my-app", + "version": "0.1.0", + "root": "/path/to/project", + "profile": "debug", + "language": "c", + "standard": "c17", + "cxx_standard": null, + "compiler": "/usr/bin/clang", + "kind": "bin", + "sources": ["src/main.c"], + "include_dirs": ["src"], + "lib_dirs": [], + "libs": [], + "cflags": ["-std=c17", "-O0", "-g"], + "ldflags": [] + } +] +``` From 9f99f01a54b83b731e93ebc9864b173d16da0d66 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:36:38 +0800 Subject: [PATCH 019/274] New translations gen-commands.mdx (Russian) [ci skip] --- .../ru-RU/docs/commands/gen-commands.mdx.mdx | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/commands/gen-commands.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/commands/gen-commands.mdx.mdx b/docs-crowdin-export/ru-RU/docs/commands/gen-commands.mdx.mdx new file mode 100644 index 0000000..466b04c --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/commands/gen-commands.mdx.mdx @@ -0,0 +1,73 @@ +--- +sidebar_label: Gen commands (vscode, clion, ...) +--- + +# Gen Commands + +## `dcr gen \` + +Generates IDE integration files. + +### vscode + +```bash +dcr gen vscode +``` + +Creates: + +* `.vscode/tasks.json` — `build` task (dcr build) +* `.vscode/launch.json` — debug launch configuration +* `.vscode/settings.json` — C/C++ settings (clangd paths, includes) +* `.vscode/extensions.json` — recommended extensions (vscode-clangd, vscode-lldb) + +### clion + +```bash +dcr gen clion +``` + +Creates: + +* `.idea/externalTools.xml` — external tools (build, run, clean, test) +* `.idea/customTargets.xml` — custom build targets +* `.idea/misc.xml` — C/C++ project settings +* `.idea/runConfigurations/\.xml` — per-binary run configurations + +### compile-commands + +```bash +dcr gen compile-commands +``` + +Generates `compile_commands.json` — standard format for clangd, cpptools, static analyzers. + +### project-info + +```bash +dcr gen project-info +``` + +Outputs JSON array with project metadata: + +```json +[ + { + "name": "my-app", + "version": "0.1.0", + "root": "/path/to/project", + "profile": "debug", + "language": "c", + "standard": "c17", + "cxx_standard": null, + "compiler": "/usr/bin/clang", + "kind": "bin", + "sources": ["src/main.c"], + "include_dirs": ["src"], + "lib_dirs": [], + "libs": [], + "cflags": ["-std=c17", "-O0", "-g"], + "ldflags": [] + } +] +``` From 4f2bc3e4dc060736cd20113dcd34380fb1093361 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:36:40 +0800 Subject: [PATCH 020/274] New translations gen-commands.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/commands/gen-commands.mdx.mdx | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/commands/gen-commands.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/commands/gen-commands.mdx.mdx b/docs-crowdin-export/uk-UA/docs/commands/gen-commands.mdx.mdx new file mode 100644 index 0000000..466b04c --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/commands/gen-commands.mdx.mdx @@ -0,0 +1,73 @@ +--- +sidebar_label: Gen commands (vscode, clion, ...) +--- + +# Gen Commands + +## `dcr gen \` + +Generates IDE integration files. + +### vscode + +```bash +dcr gen vscode +``` + +Creates: + +* `.vscode/tasks.json` — `build` task (dcr build) +* `.vscode/launch.json` — debug launch configuration +* `.vscode/settings.json` — C/C++ settings (clangd paths, includes) +* `.vscode/extensions.json` — recommended extensions (vscode-clangd, vscode-lldb) + +### clion + +```bash +dcr gen clion +``` + +Creates: + +* `.idea/externalTools.xml` — external tools (build, run, clean, test) +* `.idea/customTargets.xml` — custom build targets +* `.idea/misc.xml` — C/C++ project settings +* `.idea/runConfigurations/\.xml` — per-binary run configurations + +### compile-commands + +```bash +dcr gen compile-commands +``` + +Generates `compile_commands.json` — standard format for clangd, cpptools, static analyzers. + +### project-info + +```bash +dcr gen project-info +``` + +Outputs JSON array with project metadata: + +```json +[ + { + "name": "my-app", + "version": "0.1.0", + "root": "/path/to/project", + "profile": "debug", + "language": "c", + "standard": "c17", + "cxx_standard": null, + "compiler": "/usr/bin/clang", + "kind": "bin", + "sources": ["src/main.c"], + "include_dirs": ["src"], + "lib_dirs": [], + "libs": [], + "cflags": ["-std=c17", "-O0", "-g"], + "ldflags": [] + } +] +``` From 2f6a47af7c743424c34ed918a4545c79b6553c52 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:36:43 +0800 Subject: [PATCH 021/274] New translations project-commands.mdx (German) [ci skip] --- .../docs/commands/project-commands.mdx.mdx | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/commands/project-commands.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/commands/project-commands.mdx.mdx b/docs-crowdin-export/de-DE/docs/commands/project-commands.mdx.mdx new file mode 100644 index 0000000..5258c44 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/commands/project-commands.mdx.mdx @@ -0,0 +1,31 @@ +--- +sidebar_label: Project commands (new, init) +--- + +# Project Commands + +## `dcr new \` + +Creates a new project with a standard structure and `dcr.toml`. The `name` argument is required. + +Only ASCII letters, digits, underscores `_` and hyphens `-` are allowed in the project name. + +```bash +dcr new my-app +``` + +Generates: + +* `dcr.toml` with basic fields +* `src/main.c` with a `main` template + +## `dcr init` + +Initializes a DCR project in the current (empty) directory. + +```bash +mkdir app && cd app +dcr init +``` + +The project name is taken from the current directory name. The directory name must follow the same naming rules as `dcr new`. From fa8f604afc97c1405dd2cc862619a7503eab04fb Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:36:45 +0800 Subject: [PATCH 022/274] New translations project-commands.mdx (Polish) [ci skip] --- .../docs/commands/project-commands.mdx.mdx | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/commands/project-commands.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/commands/project-commands.mdx.mdx b/docs-crowdin-export/pl-PL/docs/commands/project-commands.mdx.mdx new file mode 100644 index 0000000..5258c44 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/commands/project-commands.mdx.mdx @@ -0,0 +1,31 @@ +--- +sidebar_label: Project commands (new, init) +--- + +# Project Commands + +## `dcr new \` + +Creates a new project with a standard structure and `dcr.toml`. The `name` argument is required. + +Only ASCII letters, digits, underscores `_` and hyphens `-` are allowed in the project name. + +```bash +dcr new my-app +``` + +Generates: + +* `dcr.toml` with basic fields +* `src/main.c` with a `main` template + +## `dcr init` + +Initializes a DCR project in the current (empty) directory. + +```bash +mkdir app && cd app +dcr init +``` + +The project name is taken from the current directory name. The directory name must follow the same naming rules as `dcr new`. From 4be83b31ee54ed82403e331f09de7626eae8d406 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:36:48 +0800 Subject: [PATCH 023/274] New translations project-commands.mdx (Russian) [ci skip] --- .../docs/commands/project-commands.mdx.mdx | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/commands/project-commands.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/commands/project-commands.mdx.mdx b/docs-crowdin-export/ru-RU/docs/commands/project-commands.mdx.mdx new file mode 100644 index 0000000..5258c44 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/commands/project-commands.mdx.mdx @@ -0,0 +1,31 @@ +--- +sidebar_label: Project commands (new, init) +--- + +# Project Commands + +## `dcr new \` + +Creates a new project with a standard structure and `dcr.toml`. The `name` argument is required. + +Only ASCII letters, digits, underscores `_` and hyphens `-` are allowed in the project name. + +```bash +dcr new my-app +``` + +Generates: + +* `dcr.toml` with basic fields +* `src/main.c` with a `main` template + +## `dcr init` + +Initializes a DCR project in the current (empty) directory. + +```bash +mkdir app && cd app +dcr init +``` + +The project name is taken from the current directory name. The directory name must follow the same naming rules as `dcr new`. From 12e7d605a676ad4edf1b88afe3568f2aaf948e32 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:36:50 +0800 Subject: [PATCH 024/274] New translations project-commands.mdx (Ukrainian) [ci skip] --- .../docs/commands/project-commands.mdx.mdx | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/commands/project-commands.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/commands/project-commands.mdx.mdx b/docs-crowdin-export/uk-UA/docs/commands/project-commands.mdx.mdx new file mode 100644 index 0000000..5258c44 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/commands/project-commands.mdx.mdx @@ -0,0 +1,31 @@ +--- +sidebar_label: Project commands (new, init) +--- + +# Project Commands + +## `dcr new \` + +Creates a new project with a standard structure and `dcr.toml`. The `name` argument is required. + +Only ASCII letters, digits, underscores `_` and hyphens `-` are allowed in the project name. + +```bash +dcr new my-app +``` + +Generates: + +* `dcr.toml` with basic fields +* `src/main.c` with a `main` template + +## `dcr init` + +Initializes a DCR project in the current (empty) directory. + +```bash +mkdir app && cd app +dcr init +``` + +The project name is taken from the current directory name. The directory name must follow the same naming rules as `dcr new`. From 426f98bb7a8126590aeb2e9662a732003a0c067f Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:36:53 +0800 Subject: [PATCH 025/274] New translations quality-commands.mdx (German) [ci skip] --- .../docs/commands/quality-commands.mdx.mdx | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/commands/quality-commands.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/commands/quality-commands.mdx.mdx b/docs-crowdin-export/de-DE/docs/commands/quality-commands.mdx.mdx new file mode 100644 index 0000000..cdfe503 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/commands/quality-commands.mdx.mdx @@ -0,0 +1,60 @@ +--- +sidebar_label: Quality commands (test, fmt) +--- + +# Quality Commands + +## `dcr test` + +Runs tests. + +```bash +dcr test # debug profile +dcr test --release # release profile +dcr test --debug # explicit debug +dcr test --help # detailed help +``` + +Before first use, initialize tests: + +```bash +dcr test --init +``` + +This creates `tests/dcr_test.h` (framework) and `tests/test.c` (template). + +What `dcr test` does: + +1. Builds the project +2. Collects `tests/*.c` files (`.c` only, not `.cpp`) +3. Compiles and links each test file +4. Runs each test binary +5. Prints summary: TOTAL, PASS, SKIP, FAIL +6. Returns non-zero exit code on any FAIL + +## `dcr fmt` + +Formats C/C++ source files using `clang-format`. + +```bash +dcr fmt +``` + +Processes: `src/**/*.{c,cpp,cxx,cc,h,hpp,hxx,hh}` and `tests/**/*.{c,cpp,cxx,cc,h,hpp,hxx,hh}`. + +Uses `.clang-format` at the project root (if present), otherwise default clang-format style. + +## `dcr lint` + +Runs `clang-tidy` on C/C++ source files for static analysis. + +```bash +dcr lint # show diagnostics +dcr lint --fix # apply fixes automatically +dcr lint --help # detailed help +``` + +Processes: `src/**/*.{c,cpp,cxx,cc}` and `tests/**/*.{c,cpp,cxx,cc}`. + +Without `--fix`, clang-tidy reports warnings and errors without modifying files. +With `--fix`, clang-tidy applies automatic suggestions in place. From 2294c03800835ce93efab7d67c69da82f3b779bc Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:36:55 +0800 Subject: [PATCH 026/274] New translations quality-commands.mdx (Polish) [ci skip] --- .../docs/commands/quality-commands.mdx.mdx | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/commands/quality-commands.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/commands/quality-commands.mdx.mdx b/docs-crowdin-export/pl-PL/docs/commands/quality-commands.mdx.mdx new file mode 100644 index 0000000..cdfe503 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/commands/quality-commands.mdx.mdx @@ -0,0 +1,60 @@ +--- +sidebar_label: Quality commands (test, fmt) +--- + +# Quality Commands + +## `dcr test` + +Runs tests. + +```bash +dcr test # debug profile +dcr test --release # release profile +dcr test --debug # explicit debug +dcr test --help # detailed help +``` + +Before first use, initialize tests: + +```bash +dcr test --init +``` + +This creates `tests/dcr_test.h` (framework) and `tests/test.c` (template). + +What `dcr test` does: + +1. Builds the project +2. Collects `tests/*.c` files (`.c` only, not `.cpp`) +3. Compiles and links each test file +4. Runs each test binary +5. Prints summary: TOTAL, PASS, SKIP, FAIL +6. Returns non-zero exit code on any FAIL + +## `dcr fmt` + +Formats C/C++ source files using `clang-format`. + +```bash +dcr fmt +``` + +Processes: `src/**/*.{c,cpp,cxx,cc,h,hpp,hxx,hh}` and `tests/**/*.{c,cpp,cxx,cc,h,hpp,hxx,hh}`. + +Uses `.clang-format` at the project root (if present), otherwise default clang-format style. + +## `dcr lint` + +Runs `clang-tidy` on C/C++ source files for static analysis. + +```bash +dcr lint # show diagnostics +dcr lint --fix # apply fixes automatically +dcr lint --help # detailed help +``` + +Processes: `src/**/*.{c,cpp,cxx,cc}` and `tests/**/*.{c,cpp,cxx,cc}`. + +Without `--fix`, clang-tidy reports warnings and errors without modifying files. +With `--fix`, clang-tidy applies automatic suggestions in place. From efa332f2f16e00d8c09ae5253d9f38bc9b33275d Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:36:57 +0800 Subject: [PATCH 027/274] New translations quality-commands.mdx (Russian) [ci skip] --- .../docs/commands/quality-commands.mdx.mdx | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/commands/quality-commands.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/commands/quality-commands.mdx.mdx b/docs-crowdin-export/ru-RU/docs/commands/quality-commands.mdx.mdx new file mode 100644 index 0000000..cdfe503 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/commands/quality-commands.mdx.mdx @@ -0,0 +1,60 @@ +--- +sidebar_label: Quality commands (test, fmt) +--- + +# Quality Commands + +## `dcr test` + +Runs tests. + +```bash +dcr test # debug profile +dcr test --release # release profile +dcr test --debug # explicit debug +dcr test --help # detailed help +``` + +Before first use, initialize tests: + +```bash +dcr test --init +``` + +This creates `tests/dcr_test.h` (framework) and `tests/test.c` (template). + +What `dcr test` does: + +1. Builds the project +2. Collects `tests/*.c` files (`.c` only, not `.cpp`) +3. Compiles and links each test file +4. Runs each test binary +5. Prints summary: TOTAL, PASS, SKIP, FAIL +6. Returns non-zero exit code on any FAIL + +## `dcr fmt` + +Formats C/C++ source files using `clang-format`. + +```bash +dcr fmt +``` + +Processes: `src/**/*.{c,cpp,cxx,cc,h,hpp,hxx,hh}` and `tests/**/*.{c,cpp,cxx,cc,h,hpp,hxx,hh}`. + +Uses `.clang-format` at the project root (if present), otherwise default clang-format style. + +## `dcr lint` + +Runs `clang-tidy` on C/C++ source files for static analysis. + +```bash +dcr lint # show diagnostics +dcr lint --fix # apply fixes automatically +dcr lint --help # detailed help +``` + +Processes: `src/**/*.{c,cpp,cxx,cc}` and `tests/**/*.{c,cpp,cxx,cc}`. + +Without `--fix`, clang-tidy reports warnings and errors without modifying files. +With `--fix`, clang-tidy applies automatic suggestions in place. From e8df2839d7ae1adb97d2e95d481d2bee4563dceb Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:37:00 +0800 Subject: [PATCH 028/274] New translations quality-commands.mdx (Ukrainian) [ci skip] --- .../docs/commands/quality-commands.mdx.mdx | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/commands/quality-commands.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/commands/quality-commands.mdx.mdx b/docs-crowdin-export/uk-UA/docs/commands/quality-commands.mdx.mdx new file mode 100644 index 0000000..cdfe503 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/commands/quality-commands.mdx.mdx @@ -0,0 +1,60 @@ +--- +sidebar_label: Quality commands (test, fmt) +--- + +# Quality Commands + +## `dcr test` + +Runs tests. + +```bash +dcr test # debug profile +dcr test --release # release profile +dcr test --debug # explicit debug +dcr test --help # detailed help +``` + +Before first use, initialize tests: + +```bash +dcr test --init +``` + +This creates `tests/dcr_test.h` (framework) and `tests/test.c` (template). + +What `dcr test` does: + +1. Builds the project +2. Collects `tests/*.c` files (`.c` only, not `.cpp`) +3. Compiles and links each test file +4. Runs each test binary +5. Prints summary: TOTAL, PASS, SKIP, FAIL +6. Returns non-zero exit code on any FAIL + +## `dcr fmt` + +Formats C/C++ source files using `clang-format`. + +```bash +dcr fmt +``` + +Processes: `src/**/*.{c,cpp,cxx,cc,h,hpp,hxx,hh}` and `tests/**/*.{c,cpp,cxx,cc,h,hpp,hxx,hh}`. + +Uses `.clang-format` at the project root (if present), otherwise default clang-format style. + +## `dcr lint` + +Runs `clang-tidy` on C/C++ source files for static analysis. + +```bash +dcr lint # show diagnostics +dcr lint --fix # apply fixes automatically +dcr lint --help # detailed help +``` + +Processes: `src/**/*.{c,cpp,cxx,cc}` and `tests/**/*.{c,cpp,cxx,cc}`. + +Without `--fix`, clang-tidy reports warnings and errors without modifying files. +With `--fix`, clang-tidy applies automatic suggestions in place. From 2b3b520f4692f420bc44f860654e37bb7ad9d99e Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:37:02 +0800 Subject: [PATCH 029/274] New translations system-commands.mdx (German) [ci skip] --- .../docs/commands/system-commands.mdx.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/commands/system-commands.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/commands/system-commands.mdx.mdx b/docs-crowdin-export/de-DE/docs/commands/system-commands.mdx.mdx new file mode 100644 index 0000000..ac1c0c2 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/commands/system-commands.mdx.mdx @@ -0,0 +1,51 @@ +--- +sidebar_label: System commands (setup, --help, ...) +--- + +# System Commands + +## `dcr setup` + +Shows configured registries from `~/.dcr/config.toml`. + +```bash +dcr setup +``` + +If `~/.dcr/config.toml` is not found, DCR returns an error. Create it manually: + +```toml +[[registry]] +name = "default" +url = "https://index.dcr.pm" +``` + +## `dcr --help` + +Shows help for all commands. + +```bash +dcr --help +``` + +## `dcr --version` + +Shows version and target triple. + +```bash +dcr --version # dcr 0.7.0 (x86_64-unknown-linux-gnu) +``` + +## `dcr --update` + +Self-update. Downloads the latest release binary from GitHub Releases and replaces the current one. + +```bash +dcr --update +``` + +Features: + +* Auto-detects platform and architecture +* Warns if installed via AUR (use package manager instead) +* Works on Linux, macOS, Windows From c0f61beccc683bd96cd9c1aaf8fc89d4c733e5d0 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:37:04 +0800 Subject: [PATCH 030/274] New translations system-commands.mdx (Polish) [ci skip] --- .../docs/commands/system-commands.mdx.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/commands/system-commands.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/commands/system-commands.mdx.mdx b/docs-crowdin-export/pl-PL/docs/commands/system-commands.mdx.mdx new file mode 100644 index 0000000..ac1c0c2 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/commands/system-commands.mdx.mdx @@ -0,0 +1,51 @@ +--- +sidebar_label: System commands (setup, --help, ...) +--- + +# System Commands + +## `dcr setup` + +Shows configured registries from `~/.dcr/config.toml`. + +```bash +dcr setup +``` + +If `~/.dcr/config.toml` is not found, DCR returns an error. Create it manually: + +```toml +[[registry]] +name = "default" +url = "https://index.dcr.pm" +``` + +## `dcr --help` + +Shows help for all commands. + +```bash +dcr --help +``` + +## `dcr --version` + +Shows version and target triple. + +```bash +dcr --version # dcr 0.7.0 (x86_64-unknown-linux-gnu) +``` + +## `dcr --update` + +Self-update. Downloads the latest release binary from GitHub Releases and replaces the current one. + +```bash +dcr --update +``` + +Features: + +* Auto-detects platform and architecture +* Warns if installed via AUR (use package manager instead) +* Works on Linux, macOS, Windows From 9e61448f8f3075aef52d692dfb1965b772371ae8 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:37:07 +0800 Subject: [PATCH 031/274] New translations system-commands.mdx (Russian) [ci skip] --- .../docs/commands/system-commands.mdx.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/commands/system-commands.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/commands/system-commands.mdx.mdx b/docs-crowdin-export/ru-RU/docs/commands/system-commands.mdx.mdx new file mode 100644 index 0000000..ac1c0c2 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/commands/system-commands.mdx.mdx @@ -0,0 +1,51 @@ +--- +sidebar_label: System commands (setup, --help, ...) +--- + +# System Commands + +## `dcr setup` + +Shows configured registries from `~/.dcr/config.toml`. + +```bash +dcr setup +``` + +If `~/.dcr/config.toml` is not found, DCR returns an error. Create it manually: + +```toml +[[registry]] +name = "default" +url = "https://index.dcr.pm" +``` + +## `dcr --help` + +Shows help for all commands. + +```bash +dcr --help +``` + +## `dcr --version` + +Shows version and target triple. + +```bash +dcr --version # dcr 0.7.0 (x86_64-unknown-linux-gnu) +``` + +## `dcr --update` + +Self-update. Downloads the latest release binary from GitHub Releases and replaces the current one. + +```bash +dcr --update +``` + +Features: + +* Auto-detects platform and architecture +* Warns if installed via AUR (use package manager instead) +* Works on Linux, macOS, Windows From 8b95e622df2ce3ef5881812559bac2e87dd8e295 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:37:09 +0800 Subject: [PATCH 032/274] New translations system-commands.mdx (Ukrainian) [ci skip] --- .../docs/commands/system-commands.mdx.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/commands/system-commands.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/commands/system-commands.mdx.mdx b/docs-crowdin-export/uk-UA/docs/commands/system-commands.mdx.mdx new file mode 100644 index 0000000..ac1c0c2 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/commands/system-commands.mdx.mdx @@ -0,0 +1,51 @@ +--- +sidebar_label: System commands (setup, --help, ...) +--- + +# System Commands + +## `dcr setup` + +Shows configured registries from `~/.dcr/config.toml`. + +```bash +dcr setup +``` + +If `~/.dcr/config.toml` is not found, DCR returns an error. Create it manually: + +```toml +[[registry]] +name = "default" +url = "https://index.dcr.pm" +``` + +## `dcr --help` + +Shows help for all commands. + +```bash +dcr --help +``` + +## `dcr --version` + +Shows version and target triple. + +```bash +dcr --version # dcr 0.7.0 (x86_64-unknown-linux-gnu) +``` + +## `dcr --update` + +Self-update. Downloads the latest release binary from GitHub Releases and replaces the current one. + +```bash +dcr --update +``` + +Features: + +* Auto-detects platform and architecture +* Warns if installed via AUR (use package manager instead) +* Works on Linux, macOS, Windows From 402b8d29b8625b9546e9b5b532a9f7b3c68d6274 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:37:11 +0800 Subject: [PATCH 033/274] New translations contributing.mdx (German) [ci skip] --- .../de-DE/docs/contributing.mdx.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/contributing.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/contributing.mdx.mdx b/docs-crowdin-export/de-DE/docs/contributing.mdx.mdx new file mode 100644 index 0000000..92a14e0 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/contributing.mdx.mdx @@ -0,0 +1,51 @@ +--- +sidebar_label: Contributing +--- + +# Contributing + +## Setup + +```bash +git clone https://github.com/dexoron/dcr +cd dcr +cargo build +``` + +## Code style + +All code must be formatted with `cargo fmt`: + +```bash +cargo fmt +``` + +## Linting + +```bash +cargo clippy --all-targets -- -D warnings +``` + +## Tests + +```bash +cargo test --all-targets +``` + +## PR process + +1. Fork the repository +2. Create a branch: `git checkout -b feature/description` +3. Make changes +4. Run `cargo fmt && cargo clippy && cargo test` +5. Open a Pull Request + +## CI + +CI runs: + +* `cargo fmt --check` +* `cargo clippy --all-targets -- -D warnings` +* `cargo test --all-targets` +* Build on Linux, macOS, Windows +* Integration tests From 0fb266324cf3fa7f62e031cc2cd9f247dec9d8d5 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:37:14 +0800 Subject: [PATCH 034/274] New translations contributing.mdx (Polish) [ci skip] --- .../pl-PL/docs/contributing.mdx.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/contributing.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/contributing.mdx.mdx b/docs-crowdin-export/pl-PL/docs/contributing.mdx.mdx new file mode 100644 index 0000000..92a14e0 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/contributing.mdx.mdx @@ -0,0 +1,51 @@ +--- +sidebar_label: Contributing +--- + +# Contributing + +## Setup + +```bash +git clone https://github.com/dexoron/dcr +cd dcr +cargo build +``` + +## Code style + +All code must be formatted with `cargo fmt`: + +```bash +cargo fmt +``` + +## Linting + +```bash +cargo clippy --all-targets -- -D warnings +``` + +## Tests + +```bash +cargo test --all-targets +``` + +## PR process + +1. Fork the repository +2. Create a branch: `git checkout -b feature/description` +3. Make changes +4. Run `cargo fmt && cargo clippy && cargo test` +5. Open a Pull Request + +## CI + +CI runs: + +* `cargo fmt --check` +* `cargo clippy --all-targets -- -D warnings` +* `cargo test --all-targets` +* Build on Linux, macOS, Windows +* Integration tests From 9623d8e5f291e974fe10975877e55f4098422e88 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:37:16 +0800 Subject: [PATCH 035/274] New translations contributing.mdx (Russian) [ci skip] --- .../ru-RU/docs/contributing.mdx.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/contributing.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/contributing.mdx.mdx b/docs-crowdin-export/ru-RU/docs/contributing.mdx.mdx new file mode 100644 index 0000000..92a14e0 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/contributing.mdx.mdx @@ -0,0 +1,51 @@ +--- +sidebar_label: Contributing +--- + +# Contributing + +## Setup + +```bash +git clone https://github.com/dexoron/dcr +cd dcr +cargo build +``` + +## Code style + +All code must be formatted with `cargo fmt`: + +```bash +cargo fmt +``` + +## Linting + +```bash +cargo clippy --all-targets -- -D warnings +``` + +## Tests + +```bash +cargo test --all-targets +``` + +## PR process + +1. Fork the repository +2. Create a branch: `git checkout -b feature/description` +3. Make changes +4. Run `cargo fmt && cargo clippy && cargo test` +5. Open a Pull Request + +## CI + +CI runs: + +* `cargo fmt --check` +* `cargo clippy --all-targets -- -D warnings` +* `cargo test --all-targets` +* Build on Linux, macOS, Windows +* Integration tests From 052f503a91fa5ff74b6738aef959f4cfdaf20e9c Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:37:19 +0800 Subject: [PATCH 036/274] New translations contributing.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/contributing.mdx.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/contributing.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/contributing.mdx.mdx b/docs-crowdin-export/uk-UA/docs/contributing.mdx.mdx new file mode 100644 index 0000000..92a14e0 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/contributing.mdx.mdx @@ -0,0 +1,51 @@ +--- +sidebar_label: Contributing +--- + +# Contributing + +## Setup + +```bash +git clone https://github.com/dexoron/dcr +cd dcr +cargo build +``` + +## Code style + +All code must be formatted with `cargo fmt`: + +```bash +cargo fmt +``` + +## Linting + +```bash +cargo clippy --all-targets -- -D warnings +``` + +## Tests + +```bash +cargo test --all-targets +``` + +## PR process + +1. Fork the repository +2. Create a branch: `git checkout -b feature/description` +3. Make changes +4. Run `cargo fmt && cargo clippy && cargo test` +5. Open a Pull Request + +## CI + +CI runs: + +* `cargo fmt --check` +* `cargo clippy --all-targets -- -D warnings` +* `cargo test --all-targets` +* Build on Linux, macOS, Windows +* Integration tests From d624d45b638dab989f052f71294c728997abb163 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:37:21 +0800 Subject: [PATCH 037/274] New translations faq.mdx (German) [ci skip] --- docs-crowdin-export/de-DE/docs/faq.mdx.mdx | 81 ++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/faq.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/faq.mdx.mdx b/docs-crowdin-export/de-DE/docs/faq.mdx.mdx new file mode 100644 index 0000000..75e1036 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/faq.mdx.mdx @@ -0,0 +1,81 @@ +--- +sidebar_label: FAQ +--- + +# FAQ + +## Registry not found + +``` +error: registry not found +``` + +**Solution:** Make sure `~/.dcr/config.toml` exists: + +```toml +[[registry]] +name = "default" +url = "https://index.dcr.pm" +``` + +And check `DCR_INDEX_PATH`: + +```bash +echo $DCR_INDEX_PATH +``` + +## Compiler not found + +``` +error: compiler not found +``` + +**Solution:** Ensure a compiler is installed and available in PATH. + +```bash +which gcc +which clang +``` + +Or specify explicitly via `[toolchain]` in `dcr.toml`. + +## openssl-sys build failed + +When building DCR from source: + +``` +error: failed to run custom build command for openssl-sys +``` + +**Solution:** Install OpenSSL development headers: + +```bash +# Ubuntu/Debian +sudo apt install libssl-dev + +# Fedora +sudo dnf install openssl-devel + +# macOS +brew install openssl +``` + +## Ctrl+C during build + +DCR handles SIGINT: interrupts the current compilation and exits with non-zero code. + +## How to create a library? + +See [Library Recipe](/docs/recipes/library-project). + +## How to cross-compile to Windows? + +See [Cross-Compile Recipe](/docs/recipes/cross-to-windows). + +## How to create a multi-package project? + +See [Workspace Recipe](/docs/recipes/multi-package-workspace). + +## Lock file + +`dcr.lock` is created during builds (`dcr build`) when registry dependencies are present. To force an update — delete `dcr.lock` and run `dcr build`. From fa890abaae3ecd92f9af8f838ded188c21e0c09b Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:37:24 +0800 Subject: [PATCH 038/274] New translations faq.mdx (Polish) [ci skip] --- docs-crowdin-export/pl-PL/docs/faq.mdx.mdx | 81 ++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/faq.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/faq.mdx.mdx b/docs-crowdin-export/pl-PL/docs/faq.mdx.mdx new file mode 100644 index 0000000..75e1036 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/faq.mdx.mdx @@ -0,0 +1,81 @@ +--- +sidebar_label: FAQ +--- + +# FAQ + +## Registry not found + +``` +error: registry not found +``` + +**Solution:** Make sure `~/.dcr/config.toml` exists: + +```toml +[[registry]] +name = "default" +url = "https://index.dcr.pm" +``` + +And check `DCR_INDEX_PATH`: + +```bash +echo $DCR_INDEX_PATH +``` + +## Compiler not found + +``` +error: compiler not found +``` + +**Solution:** Ensure a compiler is installed and available in PATH. + +```bash +which gcc +which clang +``` + +Or specify explicitly via `[toolchain]` in `dcr.toml`. + +## openssl-sys build failed + +When building DCR from source: + +``` +error: failed to run custom build command for openssl-sys +``` + +**Solution:** Install OpenSSL development headers: + +```bash +# Ubuntu/Debian +sudo apt install libssl-dev + +# Fedora +sudo dnf install openssl-devel + +# macOS +brew install openssl +``` + +## Ctrl+C during build + +DCR handles SIGINT: interrupts the current compilation and exits with non-zero code. + +## How to create a library? + +See [Library Recipe](/docs/recipes/library-project). + +## How to cross-compile to Windows? + +See [Cross-Compile Recipe](/docs/recipes/cross-to-windows). + +## How to create a multi-package project? + +See [Workspace Recipe](/docs/recipes/multi-package-workspace). + +## Lock file + +`dcr.lock` is created during builds (`dcr build`) when registry dependencies are present. To force an update — delete `dcr.lock` and run `dcr build`. From 98f719cb3c84ddcc0628beffc7b305c1de544a5c Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:37:26 +0800 Subject: [PATCH 039/274] New translations faq.mdx (Russian) [ci skip] --- docs-crowdin-export/ru-RU/docs/faq.mdx.mdx | 81 ++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/faq.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/faq.mdx.mdx b/docs-crowdin-export/ru-RU/docs/faq.mdx.mdx new file mode 100644 index 0000000..75e1036 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/faq.mdx.mdx @@ -0,0 +1,81 @@ +--- +sidebar_label: FAQ +--- + +# FAQ + +## Registry not found + +``` +error: registry not found +``` + +**Solution:** Make sure `~/.dcr/config.toml` exists: + +```toml +[[registry]] +name = "default" +url = "https://index.dcr.pm" +``` + +And check `DCR_INDEX_PATH`: + +```bash +echo $DCR_INDEX_PATH +``` + +## Compiler not found + +``` +error: compiler not found +``` + +**Solution:** Ensure a compiler is installed and available in PATH. + +```bash +which gcc +which clang +``` + +Or specify explicitly via `[toolchain]` in `dcr.toml`. + +## openssl-sys build failed + +When building DCR from source: + +``` +error: failed to run custom build command for openssl-sys +``` + +**Solution:** Install OpenSSL development headers: + +```bash +# Ubuntu/Debian +sudo apt install libssl-dev + +# Fedora +sudo dnf install openssl-devel + +# macOS +brew install openssl +``` + +## Ctrl+C during build + +DCR handles SIGINT: interrupts the current compilation and exits with non-zero code. + +## How to create a library? + +See [Library Recipe](/docs/recipes/library-project). + +## How to cross-compile to Windows? + +See [Cross-Compile Recipe](/docs/recipes/cross-to-windows). + +## How to create a multi-package project? + +See [Workspace Recipe](/docs/recipes/multi-package-workspace). + +## Lock file + +`dcr.lock` is created during builds (`dcr build`) when registry dependencies are present. To force an update — delete `dcr.lock` and run `dcr build`. From 157fa46b4f9737de21b36fbba235db8f154facdb Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:37:28 +0800 Subject: [PATCH 040/274] New translations faq.mdx (Ukrainian) [ci skip] --- docs-crowdin-export/uk-UA/docs/faq.mdx.mdx | 81 ++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/faq.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/faq.mdx.mdx b/docs-crowdin-export/uk-UA/docs/faq.mdx.mdx new file mode 100644 index 0000000..75e1036 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/faq.mdx.mdx @@ -0,0 +1,81 @@ +--- +sidebar_label: FAQ +--- + +# FAQ + +## Registry not found + +``` +error: registry not found +``` + +**Solution:** Make sure `~/.dcr/config.toml` exists: + +```toml +[[registry]] +name = "default" +url = "https://index.dcr.pm" +``` + +And check `DCR_INDEX_PATH`: + +```bash +echo $DCR_INDEX_PATH +``` + +## Compiler not found + +``` +error: compiler not found +``` + +**Solution:** Ensure a compiler is installed and available in PATH. + +```bash +which gcc +which clang +``` + +Or specify explicitly via `[toolchain]` in `dcr.toml`. + +## openssl-sys build failed + +When building DCR from source: + +``` +error: failed to run custom build command for openssl-sys +``` + +**Solution:** Install OpenSSL development headers: + +```bash +# Ubuntu/Debian +sudo apt install libssl-dev + +# Fedora +sudo dnf install openssl-devel + +# macOS +brew install openssl +``` + +## Ctrl+C during build + +DCR handles SIGINT: interrupts the current compilation and exits with non-zero code. + +## How to create a library? + +See [Library Recipe](/docs/recipes/library-project). + +## How to cross-compile to Windows? + +See [Cross-Compile Recipe](/docs/recipes/cross-to-windows). + +## How to create a multi-package project? + +See [Workspace Recipe](/docs/recipes/multi-package-workspace). + +## Lock file + +`dcr.lock` is created during builds (`dcr build`) when registry dependencies are present. To force an update — delete `dcr.lock` and run `dcr build`. From 7e68c560b0f6e63514f7e2a01035d2e5f34fa90a Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:37:31 +0800 Subject: [PATCH 041/274] New translations first-steps.mdx (German) [ci skip] --- .../docs/getting-started/first-steps.mdx.mdx | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/getting-started/first-steps.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/getting-started/first-steps.mdx.mdx b/docs-crowdin-export/de-DE/docs/getting-started/first-steps.mdx.mdx new file mode 100644 index 0000000..c090838 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/getting-started/first-steps.mdx.mdx @@ -0,0 +1,72 @@ +--- +sidebar_label: First steps +--- + +# First Steps + +## Create a project + +```bash +dcr new my-app +cd my-app +``` + +Structure: + +``` +my-app/ +├── dcr.toml +└── src/ + └── main.c +``` + +`dcr.toml`: + +```toml +[package] +name = "my-app" +version = "0.1.0" +type = "none" + +[build] +language = "c" +standard = "c11" +compiler = "clang" +kind = "bin" +``` + +## Build + +```bash +dcr build +``` + +Output — `target/\/debug/my-app` (Linux) or `target/debug/my-app.exe` (Windows). + +Build profiles: + +```bash +dcr build --release # release build +dcr build --debug # debug (default) +``` + +## Run + +```bash +dcr run +``` + +Builds (if needed) and runs the binary. + +## First test + +```bash +dcr test --init # create test template +dcr test # run tests +``` + +## Formatting + +```bash +dcr fmt # clang-format with .clang-format +``` From 8dd15718dd865eeb021ffcb2dc422a9ceed1d244 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:37:33 +0800 Subject: [PATCH 042/274] New translations first-steps.mdx (Polish) [ci skip] --- .../docs/getting-started/first-steps.mdx.mdx | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/getting-started/first-steps.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/getting-started/first-steps.mdx.mdx b/docs-crowdin-export/pl-PL/docs/getting-started/first-steps.mdx.mdx new file mode 100644 index 0000000..c090838 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/getting-started/first-steps.mdx.mdx @@ -0,0 +1,72 @@ +--- +sidebar_label: First steps +--- + +# First Steps + +## Create a project + +```bash +dcr new my-app +cd my-app +``` + +Structure: + +``` +my-app/ +├── dcr.toml +└── src/ + └── main.c +``` + +`dcr.toml`: + +```toml +[package] +name = "my-app" +version = "0.1.0" +type = "none" + +[build] +language = "c" +standard = "c11" +compiler = "clang" +kind = "bin" +``` + +## Build + +```bash +dcr build +``` + +Output — `target/\/debug/my-app` (Linux) or `target/debug/my-app.exe` (Windows). + +Build profiles: + +```bash +dcr build --release # release build +dcr build --debug # debug (default) +``` + +## Run + +```bash +dcr run +``` + +Builds (if needed) and runs the binary. + +## First test + +```bash +dcr test --init # create test template +dcr test # run tests +``` + +## Formatting + +```bash +dcr fmt # clang-format with .clang-format +``` From 2f3eda74131f9ba17459e901a54e7536271f5ea8 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:37:35 +0800 Subject: [PATCH 043/274] New translations first-steps.mdx (Russian) [ci skip] --- .../docs/getting-started/first-steps.mdx.mdx | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/getting-started/first-steps.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/getting-started/first-steps.mdx.mdx b/docs-crowdin-export/ru-RU/docs/getting-started/first-steps.mdx.mdx new file mode 100644 index 0000000..c090838 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/getting-started/first-steps.mdx.mdx @@ -0,0 +1,72 @@ +--- +sidebar_label: First steps +--- + +# First Steps + +## Create a project + +```bash +dcr new my-app +cd my-app +``` + +Structure: + +``` +my-app/ +├── dcr.toml +└── src/ + └── main.c +``` + +`dcr.toml`: + +```toml +[package] +name = "my-app" +version = "0.1.0" +type = "none" + +[build] +language = "c" +standard = "c11" +compiler = "clang" +kind = "bin" +``` + +## Build + +```bash +dcr build +``` + +Output — `target/\/debug/my-app` (Linux) or `target/debug/my-app.exe` (Windows). + +Build profiles: + +```bash +dcr build --release # release build +dcr build --debug # debug (default) +``` + +## Run + +```bash +dcr run +``` + +Builds (if needed) and runs the binary. + +## First test + +```bash +dcr test --init # create test template +dcr test # run tests +``` + +## Formatting + +```bash +dcr fmt # clang-format with .clang-format +``` From 6b768662347e620c3820ebd1e1d5ce6ec9db5087 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:37:38 +0800 Subject: [PATCH 044/274] New translations first-steps.mdx (Ukrainian) [ci skip] --- .../docs/getting-started/first-steps.mdx.mdx | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/getting-started/first-steps.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/getting-started/first-steps.mdx.mdx b/docs-crowdin-export/uk-UA/docs/getting-started/first-steps.mdx.mdx new file mode 100644 index 0000000..c090838 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/getting-started/first-steps.mdx.mdx @@ -0,0 +1,72 @@ +--- +sidebar_label: First steps +--- + +# First Steps + +## Create a project + +```bash +dcr new my-app +cd my-app +``` + +Structure: + +``` +my-app/ +├── dcr.toml +└── src/ + └── main.c +``` + +`dcr.toml`: + +```toml +[package] +name = "my-app" +version = "0.1.0" +type = "none" + +[build] +language = "c" +standard = "c11" +compiler = "clang" +kind = "bin" +``` + +## Build + +```bash +dcr build +``` + +Output — `target/\/debug/my-app` (Linux) or `target/debug/my-app.exe` (Windows). + +Build profiles: + +```bash +dcr build --release # release build +dcr build --debug # debug (default) +``` + +## Run + +```bash +dcr run +``` + +Builds (if needed) and runs the binary. + +## First test + +```bash +dcr test --init # create test template +dcr test # run tests +``` + +## Formatting + +```bash +dcr fmt # clang-format with .clang-format +``` From ea6fa550d55eb69568a338adfa3a7dabc5db3a5c Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:37:40 +0800 Subject: [PATCH 045/274] New translations installation.mdx (German) [ci skip] --- .../docs/getting-started/installation.mdx.mdx | 109 ++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/getting-started/installation.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/getting-started/installation.mdx.mdx b/docs-crowdin-export/de-DE/docs/getting-started/installation.mdx.mdx new file mode 100644 index 0000000..177bf77 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/getting-started/installation.mdx.mdx @@ -0,0 +1,109 @@ +--- +sidebar_label: Installation +--- + +# Installation + +## Linux (Dexoron Packages) + +Configure your package manager at https://pkg.dexoron.su and install: + +**Arch Linux** + +```sh +sudo pacman -Sy dcr +``` + +**Debian/Ubuntu** + +```sh +sudo apt update && sudo apt install dcr +``` + +**Fedora/RHEL** + +```sh +sudo dnf install dcr +``` + +## Arch Linux (AUR) + +```sh +yay -S dcr +``` + +## macOS / Linux (Homebrew) + +```sh +brew tap dexoron/dexoron +brew install dcr +``` + +## Snap (Linux) + +```sh +sudo snap install dcrup +``` + +## Nix (flake) + +```sh +nix run github:dexoron/dcr +# or install to profile: +nix profile install github:dexoron/dcr +``` + +## Cargo (crates.io) + +```sh +cargo install dcr +``` + +## Linux / macOS (script) + +```sh +curl -fsSL https://dcr.dexoron.su/install.sh | sh +``` + +## BSD (script) + +```sh +curl -fsSL https://dcr.dexoron.su/install_bsd.sh | sh +``` + +## Windows (PowerShell) + +```powershell +irm https://dcr.dexoron.su/install.ps1 | iex +``` + +## From source + +```sh +git clone https://github.com/dexoron/dcr.git +cd dcr && cargo build --release +ln -sf "$PWD/target/release/dcr" ~/.local/bin/dcr +``` + +## Post-install + +Verify the installation: + +```bash +dcr --version +``` + +Man pages are available after installation: + +```bash +man dcr +man dcr-build +``` + +To use the registry, create `~/.dcr/config.toml`: + +```toml +[[registry]] +name = "default" +url = "https://index.dcr.pm" +``` From 15a9dff751070b44e6184ee70d0cf2e3ef080907 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:37:43 +0800 Subject: [PATCH 046/274] New translations installation.mdx (Polish) [ci skip] --- .../docs/getting-started/installation.mdx.mdx | 109 ++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/getting-started/installation.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/getting-started/installation.mdx.mdx b/docs-crowdin-export/pl-PL/docs/getting-started/installation.mdx.mdx new file mode 100644 index 0000000..177bf77 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/getting-started/installation.mdx.mdx @@ -0,0 +1,109 @@ +--- +sidebar_label: Installation +--- + +# Installation + +## Linux (Dexoron Packages) + +Configure your package manager at https://pkg.dexoron.su and install: + +**Arch Linux** + +```sh +sudo pacman -Sy dcr +``` + +**Debian/Ubuntu** + +```sh +sudo apt update && sudo apt install dcr +``` + +**Fedora/RHEL** + +```sh +sudo dnf install dcr +``` + +## Arch Linux (AUR) + +```sh +yay -S dcr +``` + +## macOS / Linux (Homebrew) + +```sh +brew tap dexoron/dexoron +brew install dcr +``` + +## Snap (Linux) + +```sh +sudo snap install dcrup +``` + +## Nix (flake) + +```sh +nix run github:dexoron/dcr +# or install to profile: +nix profile install github:dexoron/dcr +``` + +## Cargo (crates.io) + +```sh +cargo install dcr +``` + +## Linux / macOS (script) + +```sh +curl -fsSL https://dcr.dexoron.su/install.sh | sh +``` + +## BSD (script) + +```sh +curl -fsSL https://dcr.dexoron.su/install_bsd.sh | sh +``` + +## Windows (PowerShell) + +```powershell +irm https://dcr.dexoron.su/install.ps1 | iex +``` + +## From source + +```sh +git clone https://github.com/dexoron/dcr.git +cd dcr && cargo build --release +ln -sf "$PWD/target/release/dcr" ~/.local/bin/dcr +``` + +## Post-install + +Verify the installation: + +```bash +dcr --version +``` + +Man pages are available after installation: + +```bash +man dcr +man dcr-build +``` + +To use the registry, create `~/.dcr/config.toml`: + +```toml +[[registry]] +name = "default" +url = "https://index.dcr.pm" +``` From 70a8034af46e1e7c79f26c2c6775c58a031ac17c Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:37:45 +0800 Subject: [PATCH 047/274] New translations installation.mdx (Russian) [ci skip] --- .../docs/getting-started/installation.mdx.mdx | 109 ++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/getting-started/installation.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/getting-started/installation.mdx.mdx b/docs-crowdin-export/ru-RU/docs/getting-started/installation.mdx.mdx new file mode 100644 index 0000000..177bf77 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/getting-started/installation.mdx.mdx @@ -0,0 +1,109 @@ +--- +sidebar_label: Installation +--- + +# Installation + +## Linux (Dexoron Packages) + +Configure your package manager at https://pkg.dexoron.su and install: + +**Arch Linux** + +```sh +sudo pacman -Sy dcr +``` + +**Debian/Ubuntu** + +```sh +sudo apt update && sudo apt install dcr +``` + +**Fedora/RHEL** + +```sh +sudo dnf install dcr +``` + +## Arch Linux (AUR) + +```sh +yay -S dcr +``` + +## macOS / Linux (Homebrew) + +```sh +brew tap dexoron/dexoron +brew install dcr +``` + +## Snap (Linux) + +```sh +sudo snap install dcrup +``` + +## Nix (flake) + +```sh +nix run github:dexoron/dcr +# or install to profile: +nix profile install github:dexoron/dcr +``` + +## Cargo (crates.io) + +```sh +cargo install dcr +``` + +## Linux / macOS (script) + +```sh +curl -fsSL https://dcr.dexoron.su/install.sh | sh +``` + +## BSD (script) + +```sh +curl -fsSL https://dcr.dexoron.su/install_bsd.sh | sh +``` + +## Windows (PowerShell) + +```powershell +irm https://dcr.dexoron.su/install.ps1 | iex +``` + +## From source + +```sh +git clone https://github.com/dexoron/dcr.git +cd dcr && cargo build --release +ln -sf "$PWD/target/release/dcr" ~/.local/bin/dcr +``` + +## Post-install + +Verify the installation: + +```bash +dcr --version +``` + +Man pages are available after installation: + +```bash +man dcr +man dcr-build +``` + +To use the registry, create `~/.dcr/config.toml`: + +```toml +[[registry]] +name = "default" +url = "https://index.dcr.pm" +``` From ba7da2cab0c01bd468461080b6400de1cf57663a Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:37:48 +0800 Subject: [PATCH 048/274] New translations installation.mdx (Ukrainian) [ci skip] --- .../docs/getting-started/installation.mdx.mdx | 109 ++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/getting-started/installation.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/getting-started/installation.mdx.mdx b/docs-crowdin-export/uk-UA/docs/getting-started/installation.mdx.mdx new file mode 100644 index 0000000..177bf77 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/getting-started/installation.mdx.mdx @@ -0,0 +1,109 @@ +--- +sidebar_label: Installation +--- + +# Installation + +## Linux (Dexoron Packages) + +Configure your package manager at https://pkg.dexoron.su and install: + +**Arch Linux** + +```sh +sudo pacman -Sy dcr +``` + +**Debian/Ubuntu** + +```sh +sudo apt update && sudo apt install dcr +``` + +**Fedora/RHEL** + +```sh +sudo dnf install dcr +``` + +## Arch Linux (AUR) + +```sh +yay -S dcr +``` + +## macOS / Linux (Homebrew) + +```sh +brew tap dexoron/dexoron +brew install dcr +``` + +## Snap (Linux) + +```sh +sudo snap install dcrup +``` + +## Nix (flake) + +```sh +nix run github:dexoron/dcr +# or install to profile: +nix profile install github:dexoron/dcr +``` + +## Cargo (crates.io) + +```sh +cargo install dcr +``` + +## Linux / macOS (script) + +```sh +curl -fsSL https://dcr.dexoron.su/install.sh | sh +``` + +## BSD (script) + +```sh +curl -fsSL https://dcr.dexoron.su/install_bsd.sh | sh +``` + +## Windows (PowerShell) + +```powershell +irm https://dcr.dexoron.su/install.ps1 | iex +``` + +## From source + +```sh +git clone https://github.com/dexoron/dcr.git +cd dcr && cargo build --release +ln -sf "$PWD/target/release/dcr" ~/.local/bin/dcr +``` + +## Post-install + +Verify the installation: + +```bash +dcr --version +``` + +Man pages are available after installation: + +```bash +man dcr +man dcr-build +``` + +To use the registry, create `~/.dcr/config.toml`: + +```toml +[[registry]] +name = "default" +url = "https://index.dcr.pm" +``` From 4be42f27622d6e26045e904e058719e6759e16e2 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:37:50 +0800 Subject: [PATCH 049/274] New translations ide-integration.mdx (German) [ci skip] --- .../de-DE/docs/ide-integration.mdx.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/ide-integration.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/ide-integration.mdx.mdx b/docs-crowdin-export/de-DE/docs/ide-integration.mdx.mdx new file mode 100644 index 0000000..7b0fdf6 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/ide-integration.mdx.mdx @@ -0,0 +1,51 @@ +--- +sidebar_label: IDE Integration +--- + +# IDE Integration + +## VS Code + +```bash +dcr gen vscode +``` + +Generates in `.vscode/`: + +| File | Purpose | +| ----------------- | -------------------------------------------- | +| `tasks.json` | `build` task (dcr build) | +| `launch.json` | Debug launch configuration | +| `settings.json` | clangd/IntelliSense: include paths, standard | +| `extensions.json` | Recommends vscode-clangd, vscode-lldb | + +## CLion + +```bash +dcr gen clion +``` + +Generates in `.idea/`: + +| File | Purpose | +| ------------------------------------------------ | ----------------------------------------- | +| `externalTools.xml` | Build, Run, Clean, Test as external tools | +| `customTargets.xml` | Custom build targets | +| `misc.xml` | C/C++ project settings | +| `runConfigurations/\.xml` | Per-binary run configurations | + +## compile_commands.json + +```bash +dcr gen compile-commands +``` + +Generates `compile_commands.json` at project root. Standard format for clangd, C/C++ IntelliSense, static analyzers. + +## project-info + +```bash +dcr gen project-info +``` + +Outputs JSON array with project metadata (see [gen-commands](/docs/commands/gen-commands)). From 831796481a875aeffa4339a5e9cf6a33bef37da5 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:37:53 +0800 Subject: [PATCH 050/274] New translations ide-integration.mdx (Polish) [ci skip] --- .../pl-PL/docs/ide-integration.mdx.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/ide-integration.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/ide-integration.mdx.mdx b/docs-crowdin-export/pl-PL/docs/ide-integration.mdx.mdx new file mode 100644 index 0000000..7b0fdf6 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/ide-integration.mdx.mdx @@ -0,0 +1,51 @@ +--- +sidebar_label: IDE Integration +--- + +# IDE Integration + +## VS Code + +```bash +dcr gen vscode +``` + +Generates in `.vscode/`: + +| File | Purpose | +| ----------------- | -------------------------------------------- | +| `tasks.json` | `build` task (dcr build) | +| `launch.json` | Debug launch configuration | +| `settings.json` | clangd/IntelliSense: include paths, standard | +| `extensions.json` | Recommends vscode-clangd, vscode-lldb | + +## CLion + +```bash +dcr gen clion +``` + +Generates in `.idea/`: + +| File | Purpose | +| ------------------------------------------------ | ----------------------------------------- | +| `externalTools.xml` | Build, Run, Clean, Test as external tools | +| `customTargets.xml` | Custom build targets | +| `misc.xml` | C/C++ project settings | +| `runConfigurations/\.xml` | Per-binary run configurations | + +## compile_commands.json + +```bash +dcr gen compile-commands +``` + +Generates `compile_commands.json` at project root. Standard format for clangd, C/C++ IntelliSense, static analyzers. + +## project-info + +```bash +dcr gen project-info +``` + +Outputs JSON array with project metadata (see [gen-commands](/docs/commands/gen-commands)). From 90cfb9bb80cf465da9794266b9de705671b35b13 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:37:55 +0800 Subject: [PATCH 051/274] New translations ide-integration.mdx (Russian) [ci skip] --- .../ru-RU/docs/ide-integration.mdx.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/ide-integration.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/ide-integration.mdx.mdx b/docs-crowdin-export/ru-RU/docs/ide-integration.mdx.mdx new file mode 100644 index 0000000..7b0fdf6 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/ide-integration.mdx.mdx @@ -0,0 +1,51 @@ +--- +sidebar_label: IDE Integration +--- + +# IDE Integration + +## VS Code + +```bash +dcr gen vscode +``` + +Generates in `.vscode/`: + +| File | Purpose | +| ----------------- | -------------------------------------------- | +| `tasks.json` | `build` task (dcr build) | +| `launch.json` | Debug launch configuration | +| `settings.json` | clangd/IntelliSense: include paths, standard | +| `extensions.json` | Recommends vscode-clangd, vscode-lldb | + +## CLion + +```bash +dcr gen clion +``` + +Generates in `.idea/`: + +| File | Purpose | +| ------------------------------------------------ | ----------------------------------------- | +| `externalTools.xml` | Build, Run, Clean, Test as external tools | +| `customTargets.xml` | Custom build targets | +| `misc.xml` | C/C++ project settings | +| `runConfigurations/\.xml` | Per-binary run configurations | + +## compile_commands.json + +```bash +dcr gen compile-commands +``` + +Generates `compile_commands.json` at project root. Standard format for clangd, C/C++ IntelliSense, static analyzers. + +## project-info + +```bash +dcr gen project-info +``` + +Outputs JSON array with project metadata (see [gen-commands](/docs/commands/gen-commands)). From cee6874d2d34463624407f1eae603484d83d0306 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:37:57 +0800 Subject: [PATCH 052/274] New translations ide-integration.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/ide-integration.mdx.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/ide-integration.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/ide-integration.mdx.mdx b/docs-crowdin-export/uk-UA/docs/ide-integration.mdx.mdx new file mode 100644 index 0000000..7b0fdf6 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/ide-integration.mdx.mdx @@ -0,0 +1,51 @@ +--- +sidebar_label: IDE Integration +--- + +# IDE Integration + +## VS Code + +```bash +dcr gen vscode +``` + +Generates in `.vscode/`: + +| File | Purpose | +| ----------------- | -------------------------------------------- | +| `tasks.json` | `build` task (dcr build) | +| `launch.json` | Debug launch configuration | +| `settings.json` | clangd/IntelliSense: include paths, standard | +| `extensions.json` | Recommends vscode-clangd, vscode-lldb | + +## CLion + +```bash +dcr gen clion +``` + +Generates in `.idea/`: + +| File | Purpose | +| ------------------------------------------------ | ----------------------------------------- | +| `externalTools.xml` | Build, Run, Clean, Test as external tools | +| `customTargets.xml` | Custom build targets | +| `misc.xml` | C/C++ project settings | +| `runConfigurations/\.xml` | Per-binary run configurations | + +## compile_commands.json + +```bash +dcr gen compile-commands +``` + +Generates `compile_commands.json` at project root. Standard format for clangd, C/C++ IntelliSense, static analyzers. + +## project-info + +```bash +dcr gen project-info +``` + +Outputs JSON array with project metadata (see [gen-commands](/docs/commands/gen-commands)). From 6568f9195f6dc0970d0ec68844e398812fb258ea Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:38:00 +0800 Subject: [PATCH 053/274] New translations license.mdx (German) [ci skip] --- .../de-DE/docs/license.mdx.mdx | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/license.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/license.mdx.mdx b/docs-crowdin-export/de-DE/docs/license.mdx.mdx new file mode 100644 index 0000000..39caf78 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/license.mdx.mdx @@ -0,0 +1,46 @@ +--- +sidebar_label: License +--- + +# License + +## DCR + +DCR itself is [GPL-3.0-or-later](https://spdx.org/licenses/GPL-3.0-or-later.html) licensed. + +> **Note:** DCR is a build tool, not a library. The GPL applies only to DCR's own source code. Projects built with DCR are not subject to DCR's license — their licensing is determined solely by their own code and dependencies. + +## Vendored libraries + +DCR statically links the following C libraries through its vendored Rust dependencies: + +| Library | License | Bundled by | +| ------------------------------------------ | ------------------ | ----------------------------- | +| [libgit2](https://libgit2.org) | MIT OR Apache-2.0 | `git2` / `libgit2-sys` | +| [libssh2](https://libssh2.org) | MIT OR Apache-2.0 | `libgit2-sys` | +| [zlib](https://zlib.net) | MIT OR Apache-2.0 | `libgit2-sys` | +| [OpenSSL](https://openssl.org) | Apache-2.0 | `openssl-sys` / `openssl-src` | +| [ring](https://github.com/briansmith/ring) | Apache-2.0 AND ISC | `rustls` | + +## Rust dependencies + +DCR is written in Rust. The following notable Rust crates are statically linked: + +| Crate | License | +| --------------------------------------------- | ------------------------ | +| [`reqwest`](https://crates.io/crates/reqwest) | MIT OR Apache-2.0 | +| [`rustls`](https://crates.io/crates/rustls) | Apache-2.0 OR ISC OR MIT | +| [`serde`](https://crates.io/crates/serde) | MIT OR Apache-2.0 | +| [`toml`](https://crates.io/crates/toml) | MIT OR Apache-2.0 | +| [`sha2`](https://crates.io/crates/sha2) | MIT OR Apache-2.0 | +| [`git2`](https://crates.io/crates/git2) | MIT OR Apache-2.0 | +| [`openssl`](https://crates.io/crates/openssl) | Apache-2.0 | +| [`tokio`](https://crates.io/crates/tokio) | MIT | +| [`hyper`](https://crates.io/crates/hyper) | MIT | +| [`ctrlc`](https://crates.io/crates/ctrlc) | MIT OR Apache-2.0 | + +Full dependency tree (143 packages) is available in [`Cargo.lock`](https://github.com/dexoron/dcr/blob/main/Cargo.lock). The overwhelming majority are dual-licensed under MIT OR Apache-2.0. + +## Additional credits + +* DCR's CLI design and project model are inspired by [Cargo](https://doc.rust-lang.org/cargo/). From 3f845db46b1f477fd36be46526fee296796155a7 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:38:02 +0800 Subject: [PATCH 054/274] New translations license.mdx (Polish) [ci skip] --- .../pl-PL/docs/license.mdx.mdx | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/license.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/license.mdx.mdx b/docs-crowdin-export/pl-PL/docs/license.mdx.mdx new file mode 100644 index 0000000..39caf78 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/license.mdx.mdx @@ -0,0 +1,46 @@ +--- +sidebar_label: License +--- + +# License + +## DCR + +DCR itself is [GPL-3.0-or-later](https://spdx.org/licenses/GPL-3.0-or-later.html) licensed. + +> **Note:** DCR is a build tool, not a library. The GPL applies only to DCR's own source code. Projects built with DCR are not subject to DCR's license — their licensing is determined solely by their own code and dependencies. + +## Vendored libraries + +DCR statically links the following C libraries through its vendored Rust dependencies: + +| Library | License | Bundled by | +| ------------------------------------------ | ------------------ | ----------------------------- | +| [libgit2](https://libgit2.org) | MIT OR Apache-2.0 | `git2` / `libgit2-sys` | +| [libssh2](https://libssh2.org) | MIT OR Apache-2.0 | `libgit2-sys` | +| [zlib](https://zlib.net) | MIT OR Apache-2.0 | `libgit2-sys` | +| [OpenSSL](https://openssl.org) | Apache-2.0 | `openssl-sys` / `openssl-src` | +| [ring](https://github.com/briansmith/ring) | Apache-2.0 AND ISC | `rustls` | + +## Rust dependencies + +DCR is written in Rust. The following notable Rust crates are statically linked: + +| Crate | License | +| --------------------------------------------- | ------------------------ | +| [`reqwest`](https://crates.io/crates/reqwest) | MIT OR Apache-2.0 | +| [`rustls`](https://crates.io/crates/rustls) | Apache-2.0 OR ISC OR MIT | +| [`serde`](https://crates.io/crates/serde) | MIT OR Apache-2.0 | +| [`toml`](https://crates.io/crates/toml) | MIT OR Apache-2.0 | +| [`sha2`](https://crates.io/crates/sha2) | MIT OR Apache-2.0 | +| [`git2`](https://crates.io/crates/git2) | MIT OR Apache-2.0 | +| [`openssl`](https://crates.io/crates/openssl) | Apache-2.0 | +| [`tokio`](https://crates.io/crates/tokio) | MIT | +| [`hyper`](https://crates.io/crates/hyper) | MIT | +| [`ctrlc`](https://crates.io/crates/ctrlc) | MIT OR Apache-2.0 | + +Full dependency tree (143 packages) is available in [`Cargo.lock`](https://github.com/dexoron/dcr/blob/main/Cargo.lock). The overwhelming majority are dual-licensed under MIT OR Apache-2.0. + +## Additional credits + +* DCR's CLI design and project model are inspired by [Cargo](https://doc.rust-lang.org/cargo/). From dcfc2c5c204bdacae3aa5b48f935ddf1bed3e9c7 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:38:05 +0800 Subject: [PATCH 055/274] New translations license.mdx (Russian) [ci skip] --- .../ru-RU/docs/license.mdx.mdx | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/license.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/license.mdx.mdx b/docs-crowdin-export/ru-RU/docs/license.mdx.mdx new file mode 100644 index 0000000..39caf78 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/license.mdx.mdx @@ -0,0 +1,46 @@ +--- +sidebar_label: License +--- + +# License + +## DCR + +DCR itself is [GPL-3.0-or-later](https://spdx.org/licenses/GPL-3.0-or-later.html) licensed. + +> **Note:** DCR is a build tool, not a library. The GPL applies only to DCR's own source code. Projects built with DCR are not subject to DCR's license — their licensing is determined solely by their own code and dependencies. + +## Vendored libraries + +DCR statically links the following C libraries through its vendored Rust dependencies: + +| Library | License | Bundled by | +| ------------------------------------------ | ------------------ | ----------------------------- | +| [libgit2](https://libgit2.org) | MIT OR Apache-2.0 | `git2` / `libgit2-sys` | +| [libssh2](https://libssh2.org) | MIT OR Apache-2.0 | `libgit2-sys` | +| [zlib](https://zlib.net) | MIT OR Apache-2.0 | `libgit2-sys` | +| [OpenSSL](https://openssl.org) | Apache-2.0 | `openssl-sys` / `openssl-src` | +| [ring](https://github.com/briansmith/ring) | Apache-2.0 AND ISC | `rustls` | + +## Rust dependencies + +DCR is written in Rust. The following notable Rust crates are statically linked: + +| Crate | License | +| --------------------------------------------- | ------------------------ | +| [`reqwest`](https://crates.io/crates/reqwest) | MIT OR Apache-2.0 | +| [`rustls`](https://crates.io/crates/rustls) | Apache-2.0 OR ISC OR MIT | +| [`serde`](https://crates.io/crates/serde) | MIT OR Apache-2.0 | +| [`toml`](https://crates.io/crates/toml) | MIT OR Apache-2.0 | +| [`sha2`](https://crates.io/crates/sha2) | MIT OR Apache-2.0 | +| [`git2`](https://crates.io/crates/git2) | MIT OR Apache-2.0 | +| [`openssl`](https://crates.io/crates/openssl) | Apache-2.0 | +| [`tokio`](https://crates.io/crates/tokio) | MIT | +| [`hyper`](https://crates.io/crates/hyper) | MIT | +| [`ctrlc`](https://crates.io/crates/ctrlc) | MIT OR Apache-2.0 | + +Full dependency tree (143 packages) is available in [`Cargo.lock`](https://github.com/dexoron/dcr/blob/main/Cargo.lock). The overwhelming majority are dual-licensed under MIT OR Apache-2.0. + +## Additional credits + +* DCR's CLI design and project model are inspired by [Cargo](https://doc.rust-lang.org/cargo/). From aeb8dee892b5a930838bd112782168f6c2ab5f8b Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:38:07 +0800 Subject: [PATCH 056/274] New translations license.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/license.mdx.mdx | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/license.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/license.mdx.mdx b/docs-crowdin-export/uk-UA/docs/license.mdx.mdx new file mode 100644 index 0000000..39caf78 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/license.mdx.mdx @@ -0,0 +1,46 @@ +--- +sidebar_label: License +--- + +# License + +## DCR + +DCR itself is [GPL-3.0-or-later](https://spdx.org/licenses/GPL-3.0-or-later.html) licensed. + +> **Note:** DCR is a build tool, not a library. The GPL applies only to DCR's own source code. Projects built with DCR are not subject to DCR's license — their licensing is determined solely by their own code and dependencies. + +## Vendored libraries + +DCR statically links the following C libraries through its vendored Rust dependencies: + +| Library | License | Bundled by | +| ------------------------------------------ | ------------------ | ----------------------------- | +| [libgit2](https://libgit2.org) | MIT OR Apache-2.0 | `git2` / `libgit2-sys` | +| [libssh2](https://libssh2.org) | MIT OR Apache-2.0 | `libgit2-sys` | +| [zlib](https://zlib.net) | MIT OR Apache-2.0 | `libgit2-sys` | +| [OpenSSL](https://openssl.org) | Apache-2.0 | `openssl-sys` / `openssl-src` | +| [ring](https://github.com/briansmith/ring) | Apache-2.0 AND ISC | `rustls` | + +## Rust dependencies + +DCR is written in Rust. The following notable Rust crates are statically linked: + +| Crate | License | +| --------------------------------------------- | ------------------------ | +| [`reqwest`](https://crates.io/crates/reqwest) | MIT OR Apache-2.0 | +| [`rustls`](https://crates.io/crates/rustls) | Apache-2.0 OR ISC OR MIT | +| [`serde`](https://crates.io/crates/serde) | MIT OR Apache-2.0 | +| [`toml`](https://crates.io/crates/toml) | MIT OR Apache-2.0 | +| [`sha2`](https://crates.io/crates/sha2) | MIT OR Apache-2.0 | +| [`git2`](https://crates.io/crates/git2) | MIT OR Apache-2.0 | +| [`openssl`](https://crates.io/crates/openssl) | Apache-2.0 | +| [`tokio`](https://crates.io/crates/tokio) | MIT | +| [`hyper`](https://crates.io/crates/hyper) | MIT | +| [`ctrlc`](https://crates.io/crates/ctrlc) | MIT OR Apache-2.0 | + +Full dependency tree (143 packages) is available in [`Cargo.lock`](https://github.com/dexoron/dcr/blob/main/Cargo.lock). The overwhelming majority are dual-licensed under MIT OR Apache-2.0. + +## Additional credits + +* DCR's CLI design and project model are inspired by [Cargo](https://doc.rust-lang.org/cargo/). From ae02639a027e70de87a07f9b7a8696833b2fc33e Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:38:10 +0800 Subject: [PATCH 057/274] New translations cross-to-windows.mdx (German) [ci skip] --- .../docs/recipes/cross-to-windows.mdx.mdx | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/recipes/cross-to-windows.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/recipes/cross-to-windows.mdx.mdx b/docs-crowdin-export/de-DE/docs/recipes/cross-to-windows.mdx.mdx new file mode 100644 index 0000000..1250349 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/recipes/cross-to-windows.mdx.mdx @@ -0,0 +1,49 @@ +--- +sidebar_label: Cross-compile to Windows +--- + +# Cross-Compile to Windows from Linux + +Building a Windows binary on Linux using mingw-w64. + +## Install toolchain + +```bash +# Ubuntu/Debian +sudo apt install mingw-w64 + +# Fedora +sudo dnf install mingw64-gcc mingw64-binutils +``` + +## Configuration + +```toml +[package] +name = "my-app" +version = "0.1.0" +type = "none" + +[build] +language = "c" +standard = "c11" +compiler = "clang" +kind = "bin" +target = "x86_64-pc-windows-gnu" # explicit mingw, not msvc +``` + +## Build + +```bash +dcr build --target x86_64-pc-windows-gnu --release +``` + +Artifact: `target/x86_64-pc-windows-gnu/release/my-app.exe`. + +## Custom toolchain + +```toml +[toolchain] +cc = "x86_64-w64-mingw32-gcc" +cxx = "x86_64-w64-mingw32-g++" +``` From 892f31777f5c223509241248d32d713047b4da6e Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:38:12 +0800 Subject: [PATCH 058/274] New translations cross-to-windows.mdx (Polish) [ci skip] --- .../docs/recipes/cross-to-windows.mdx.mdx | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/recipes/cross-to-windows.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/recipes/cross-to-windows.mdx.mdx b/docs-crowdin-export/pl-PL/docs/recipes/cross-to-windows.mdx.mdx new file mode 100644 index 0000000..1250349 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/recipes/cross-to-windows.mdx.mdx @@ -0,0 +1,49 @@ +--- +sidebar_label: Cross-compile to Windows +--- + +# Cross-Compile to Windows from Linux + +Building a Windows binary on Linux using mingw-w64. + +## Install toolchain + +```bash +# Ubuntu/Debian +sudo apt install mingw-w64 + +# Fedora +sudo dnf install mingw64-gcc mingw64-binutils +``` + +## Configuration + +```toml +[package] +name = "my-app" +version = "0.1.0" +type = "none" + +[build] +language = "c" +standard = "c11" +compiler = "clang" +kind = "bin" +target = "x86_64-pc-windows-gnu" # explicit mingw, not msvc +``` + +## Build + +```bash +dcr build --target x86_64-pc-windows-gnu --release +``` + +Artifact: `target/x86_64-pc-windows-gnu/release/my-app.exe`. + +## Custom toolchain + +```toml +[toolchain] +cc = "x86_64-w64-mingw32-gcc" +cxx = "x86_64-w64-mingw32-g++" +``` From 10409b76a32557b11e89c28baeec32f074322657 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:38:15 +0800 Subject: [PATCH 059/274] New translations cross-to-windows.mdx (Russian) [ci skip] --- .../docs/recipes/cross-to-windows.mdx.mdx | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/recipes/cross-to-windows.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/recipes/cross-to-windows.mdx.mdx b/docs-crowdin-export/ru-RU/docs/recipes/cross-to-windows.mdx.mdx new file mode 100644 index 0000000..1250349 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/recipes/cross-to-windows.mdx.mdx @@ -0,0 +1,49 @@ +--- +sidebar_label: Cross-compile to Windows +--- + +# Cross-Compile to Windows from Linux + +Building a Windows binary on Linux using mingw-w64. + +## Install toolchain + +```bash +# Ubuntu/Debian +sudo apt install mingw-w64 + +# Fedora +sudo dnf install mingw64-gcc mingw64-binutils +``` + +## Configuration + +```toml +[package] +name = "my-app" +version = "0.1.0" +type = "none" + +[build] +language = "c" +standard = "c11" +compiler = "clang" +kind = "bin" +target = "x86_64-pc-windows-gnu" # explicit mingw, not msvc +``` + +## Build + +```bash +dcr build --target x86_64-pc-windows-gnu --release +``` + +Artifact: `target/x86_64-pc-windows-gnu/release/my-app.exe`. + +## Custom toolchain + +```toml +[toolchain] +cc = "x86_64-w64-mingw32-gcc" +cxx = "x86_64-w64-mingw32-g++" +``` From 948e24c65b075409bdadf54b5ba4d546591dbe13 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:38:17 +0800 Subject: [PATCH 060/274] New translations cross-to-windows.mdx (Ukrainian) [ci skip] --- .../docs/recipes/cross-to-windows.mdx.mdx | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/recipes/cross-to-windows.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/recipes/cross-to-windows.mdx.mdx b/docs-crowdin-export/uk-UA/docs/recipes/cross-to-windows.mdx.mdx new file mode 100644 index 0000000..1250349 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/recipes/cross-to-windows.mdx.mdx @@ -0,0 +1,49 @@ +--- +sidebar_label: Cross-compile to Windows +--- + +# Cross-Compile to Windows from Linux + +Building a Windows binary on Linux using mingw-w64. + +## Install toolchain + +```bash +# Ubuntu/Debian +sudo apt install mingw-w64 + +# Fedora +sudo dnf install mingw64-gcc mingw64-binutils +``` + +## Configuration + +```toml +[package] +name = "my-app" +version = "0.1.0" +type = "none" + +[build] +language = "c" +standard = "c11" +compiler = "clang" +kind = "bin" +target = "x86_64-pc-windows-gnu" # explicit mingw, not msvc +``` + +## Build + +```bash +dcr build --target x86_64-pc-windows-gnu --release +``` + +Artifact: `target/x86_64-pc-windows-gnu/release/my-app.exe`. + +## Custom toolchain + +```toml +[toolchain] +cc = "x86_64-w64-mingw32-gcc" +cxx = "x86_64-w64-mingw32-g++" +``` From 179860687c5ab1ae51efe5f82040e98cbe5c82b5 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:38:19 +0800 Subject: [PATCH 061/274] New translations library-project.mdx (German) [ci skip] --- .../docs/recipes/library-project.mdx.mdx | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/recipes/library-project.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/recipes/library-project.mdx.mdx b/docs-crowdin-export/de-DE/docs/recipes/library-project.mdx.mdx new file mode 100644 index 0000000..336c122 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/recipes/library-project.mdx.mdx @@ -0,0 +1,70 @@ +--- +sidebar_label: Library project +--- + +# Library Project + +Creating a static library and using it in another project. + +## Step 1: Create the library + +```bash +dcr new my-lib +cd my-lib +``` + +`dcr.toml`: + +```toml +[package] +name = "my-lib" +version = "0.1.0" +type = "none" + +[build] +language = "c" +standard = "c11" +kind = "staticlib" +``` + +`src/my_lib.h`: + +```c +#ifndef MY_LIB_H +#define MY_LIB_H +int add(int a, int b); +#endif +``` + +`src/my_lib.c`: + +```c +#include "my_lib.h" +int add(int a, int b) { return a + b; } +``` + +## Step 2: Build + +```bash +dcr build --release +``` + +Artifacts: + +* `target/\/release/libmy-lib.a` (Linux) +* `target/release/my-lib.lib` (Windows) +* `target/include/` — header files + +## Step 3: Use in another project + +```bash +dcr new my-app +cd my-app +dcr add my-lib ../my-lib +``` + +Automatically: + +* Adds include path to `target/include/` of the library +* Adds lib path to `target/\/release/` +* Links `libmy-lib.a` / `my-lib.lib` From 9642e19d2b6d840da0738e3700a271672cb0d6e0 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:38:22 +0800 Subject: [PATCH 062/274] New translations library-project.mdx (Polish) [ci skip] --- .../docs/recipes/library-project.mdx.mdx | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/recipes/library-project.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/recipes/library-project.mdx.mdx b/docs-crowdin-export/pl-PL/docs/recipes/library-project.mdx.mdx new file mode 100644 index 0000000..336c122 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/recipes/library-project.mdx.mdx @@ -0,0 +1,70 @@ +--- +sidebar_label: Library project +--- + +# Library Project + +Creating a static library and using it in another project. + +## Step 1: Create the library + +```bash +dcr new my-lib +cd my-lib +``` + +`dcr.toml`: + +```toml +[package] +name = "my-lib" +version = "0.1.0" +type = "none" + +[build] +language = "c" +standard = "c11" +kind = "staticlib" +``` + +`src/my_lib.h`: + +```c +#ifndef MY_LIB_H +#define MY_LIB_H +int add(int a, int b); +#endif +``` + +`src/my_lib.c`: + +```c +#include "my_lib.h" +int add(int a, int b) { return a + b; } +``` + +## Step 2: Build + +```bash +dcr build --release +``` + +Artifacts: + +* `target/\/release/libmy-lib.a` (Linux) +* `target/release/my-lib.lib` (Windows) +* `target/include/` — header files + +## Step 3: Use in another project + +```bash +dcr new my-app +cd my-app +dcr add my-lib ../my-lib +``` + +Automatically: + +* Adds include path to `target/include/` of the library +* Adds lib path to `target/\/release/` +* Links `libmy-lib.a` / `my-lib.lib` From c19923f9f558f72e93379c17fc56a18f3e40397a Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:38:24 +0800 Subject: [PATCH 063/274] New translations library-project.mdx (Russian) [ci skip] --- .../docs/recipes/library-project.mdx.mdx | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/recipes/library-project.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/recipes/library-project.mdx.mdx b/docs-crowdin-export/ru-RU/docs/recipes/library-project.mdx.mdx new file mode 100644 index 0000000..336c122 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/recipes/library-project.mdx.mdx @@ -0,0 +1,70 @@ +--- +sidebar_label: Library project +--- + +# Library Project + +Creating a static library and using it in another project. + +## Step 1: Create the library + +```bash +dcr new my-lib +cd my-lib +``` + +`dcr.toml`: + +```toml +[package] +name = "my-lib" +version = "0.1.0" +type = "none" + +[build] +language = "c" +standard = "c11" +kind = "staticlib" +``` + +`src/my_lib.h`: + +```c +#ifndef MY_LIB_H +#define MY_LIB_H +int add(int a, int b); +#endif +``` + +`src/my_lib.c`: + +```c +#include "my_lib.h" +int add(int a, int b) { return a + b; } +``` + +## Step 2: Build + +```bash +dcr build --release +``` + +Artifacts: + +* `target/\/release/libmy-lib.a` (Linux) +* `target/release/my-lib.lib` (Windows) +* `target/include/` — header files + +## Step 3: Use in another project + +```bash +dcr new my-app +cd my-app +dcr add my-lib ../my-lib +``` + +Automatically: + +* Adds include path to `target/include/` of the library +* Adds lib path to `target/\/release/` +* Links `libmy-lib.a` / `my-lib.lib` From d89f3dc9daa5d3d36b08468d012d6b96d4daafed Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:38:26 +0800 Subject: [PATCH 064/274] New translations library-project.mdx (Ukrainian) [ci skip] --- .../docs/recipes/library-project.mdx.mdx | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/recipes/library-project.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/recipes/library-project.mdx.mdx b/docs-crowdin-export/uk-UA/docs/recipes/library-project.mdx.mdx new file mode 100644 index 0000000..336c122 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/recipes/library-project.mdx.mdx @@ -0,0 +1,70 @@ +--- +sidebar_label: Library project +--- + +# Library Project + +Creating a static library and using it in another project. + +## Step 1: Create the library + +```bash +dcr new my-lib +cd my-lib +``` + +`dcr.toml`: + +```toml +[package] +name = "my-lib" +version = "0.1.0" +type = "none" + +[build] +language = "c" +standard = "c11" +kind = "staticlib" +``` + +`src/my_lib.h`: + +```c +#ifndef MY_LIB_H +#define MY_LIB_H +int add(int a, int b); +#endif +``` + +`src/my_lib.c`: + +```c +#include "my_lib.h" +int add(int a, int b) { return a + b; } +``` + +## Step 2: Build + +```bash +dcr build --release +``` + +Artifacts: + +* `target/\/release/libmy-lib.a` (Linux) +* `target/release/my-lib.lib` (Windows) +* `target/include/` — header files + +## Step 3: Use in another project + +```bash +dcr new my-app +cd my-app +dcr add my-lib ../my-lib +``` + +Automatically: + +* Adds include path to `target/include/` of the library +* Adds lib path to `target/\/release/` +* Links `libmy-lib.a` / `my-lib.lib` From 65e8f9328719386e514949f94cf569127bf20bde Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:38:29 +0800 Subject: [PATCH 065/274] New translations multi-package-workspace.mdx (German) [ci skip] --- .../recipes/multi-package-workspace.mdx.mdx | 102 ++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/recipes/multi-package-workspace.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/recipes/multi-package-workspace.mdx.mdx b/docs-crowdin-export/de-DE/docs/recipes/multi-package-workspace.mdx.mdx new file mode 100644 index 0000000..f8e8a90 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/recipes/multi-package-workspace.mdx.mdx @@ -0,0 +1,102 @@ +--- +sidebar_label: Multi-package workspace +--- + +# Multi-Package Workspace + +A project with three packages: two libraries and a binary. + +## Structure + +``` +workspace/ +├── dcr.toml # root workspace +├── lib-core/ +│ ├── dcr.toml +│ └── src/core.c +├── lib-utils/ +│ ├── dcr.toml +│ └── src/utils.c +└── app/ + ├── dcr.toml + └── src/main.c +``` + +## Root dcr.toml + +```toml +[package] +name = "my-workspace" +version = "0.1.0" +type = "none" + +[build] +inherit = true +language = "c" +standard = "c11" + +[workspace.lib-core] +path = "lib-core" + +[workspace.lib-utils] +path = "lib-utils" +deps = ["lib-core"] + +[workspace.app] +path = "app" +deps = ["lib-core", "lib-utils"] +main = true +``` + +## Packages + +`lib-core/dcr.toml`: + +```toml +[package] +name = "lib-core" +version = "0.1.0" +type = "none" + +[build] +kind = "staticlib" +``` + +`lib-utils/dcr.toml`: + +```toml +[package] +name = "lib-utils" +version = "0.1.0" +type = "none" + +[build] +kind = "staticlib" +``` + +`app/dcr.toml`: + +```toml +[package] +name = "app" +version = "0.1.0" +type = "none" + +[build] +kind = "bin" +``` + +## Build + +```bash +cd workspace +dcr build # builds everything in correct order +dcr build --workspace app # only app (lib-core and lib-utils built as deps) +dcr run # builds and runs main package +``` + +Build order (topological sort): + +1. `lib-core` +2. `lib-utils` (depends on lib-core) +3. `app` (depends on lib-core, lib-utils) From c9b5c7896775c51ec8e0fa3206d6a211612dcac8 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:38:31 +0800 Subject: [PATCH 066/274] New translations multi-package-workspace.mdx (Polish) [ci skip] --- .../recipes/multi-package-workspace.mdx.mdx | 102 ++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/recipes/multi-package-workspace.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/recipes/multi-package-workspace.mdx.mdx b/docs-crowdin-export/pl-PL/docs/recipes/multi-package-workspace.mdx.mdx new file mode 100644 index 0000000..f8e8a90 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/recipes/multi-package-workspace.mdx.mdx @@ -0,0 +1,102 @@ +--- +sidebar_label: Multi-package workspace +--- + +# Multi-Package Workspace + +A project with three packages: two libraries and a binary. + +## Structure + +``` +workspace/ +├── dcr.toml # root workspace +├── lib-core/ +│ ├── dcr.toml +│ └── src/core.c +├── lib-utils/ +│ ├── dcr.toml +│ └── src/utils.c +└── app/ + ├── dcr.toml + └── src/main.c +``` + +## Root dcr.toml + +```toml +[package] +name = "my-workspace" +version = "0.1.0" +type = "none" + +[build] +inherit = true +language = "c" +standard = "c11" + +[workspace.lib-core] +path = "lib-core" + +[workspace.lib-utils] +path = "lib-utils" +deps = ["lib-core"] + +[workspace.app] +path = "app" +deps = ["lib-core", "lib-utils"] +main = true +``` + +## Packages + +`lib-core/dcr.toml`: + +```toml +[package] +name = "lib-core" +version = "0.1.0" +type = "none" + +[build] +kind = "staticlib" +``` + +`lib-utils/dcr.toml`: + +```toml +[package] +name = "lib-utils" +version = "0.1.0" +type = "none" + +[build] +kind = "staticlib" +``` + +`app/dcr.toml`: + +```toml +[package] +name = "app" +version = "0.1.0" +type = "none" + +[build] +kind = "bin" +``` + +## Build + +```bash +cd workspace +dcr build # builds everything in correct order +dcr build --workspace app # only app (lib-core and lib-utils built as deps) +dcr run # builds and runs main package +``` + +Build order (topological sort): + +1. `lib-core` +2. `lib-utils` (depends on lib-core) +3. `app` (depends on lib-core, lib-utils) From e04ecbe286383a52b9794c8d9937b2c6d9b2dad4 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:38:34 +0800 Subject: [PATCH 067/274] New translations multi-package-workspace.mdx (Russian) [ci skip] --- .../recipes/multi-package-workspace.mdx.mdx | 102 ++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/recipes/multi-package-workspace.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/recipes/multi-package-workspace.mdx.mdx b/docs-crowdin-export/ru-RU/docs/recipes/multi-package-workspace.mdx.mdx new file mode 100644 index 0000000..f8e8a90 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/recipes/multi-package-workspace.mdx.mdx @@ -0,0 +1,102 @@ +--- +sidebar_label: Multi-package workspace +--- + +# Multi-Package Workspace + +A project with three packages: two libraries and a binary. + +## Structure + +``` +workspace/ +├── dcr.toml # root workspace +├── lib-core/ +│ ├── dcr.toml +│ └── src/core.c +├── lib-utils/ +│ ├── dcr.toml +│ └── src/utils.c +└── app/ + ├── dcr.toml + └── src/main.c +``` + +## Root dcr.toml + +```toml +[package] +name = "my-workspace" +version = "0.1.0" +type = "none" + +[build] +inherit = true +language = "c" +standard = "c11" + +[workspace.lib-core] +path = "lib-core" + +[workspace.lib-utils] +path = "lib-utils" +deps = ["lib-core"] + +[workspace.app] +path = "app" +deps = ["lib-core", "lib-utils"] +main = true +``` + +## Packages + +`lib-core/dcr.toml`: + +```toml +[package] +name = "lib-core" +version = "0.1.0" +type = "none" + +[build] +kind = "staticlib" +``` + +`lib-utils/dcr.toml`: + +```toml +[package] +name = "lib-utils" +version = "0.1.0" +type = "none" + +[build] +kind = "staticlib" +``` + +`app/dcr.toml`: + +```toml +[package] +name = "app" +version = "0.1.0" +type = "none" + +[build] +kind = "bin" +``` + +## Build + +```bash +cd workspace +dcr build # builds everything in correct order +dcr build --workspace app # only app (lib-core and lib-utils built as deps) +dcr run # builds and runs main package +``` + +Build order (topological sort): + +1. `lib-core` +2. `lib-utils` (depends on lib-core) +3. `app` (depends on lib-core, lib-utils) From 1f14d2ce905c4ead7c6acb8ccefe1908b9210d0d Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:38:36 +0800 Subject: [PATCH 068/274] New translations multi-package-workspace.mdx (Ukrainian) [ci skip] --- .../recipes/multi-package-workspace.mdx.mdx | 102 ++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/recipes/multi-package-workspace.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/recipes/multi-package-workspace.mdx.mdx b/docs-crowdin-export/uk-UA/docs/recipes/multi-package-workspace.mdx.mdx new file mode 100644 index 0000000..f8e8a90 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/recipes/multi-package-workspace.mdx.mdx @@ -0,0 +1,102 @@ +--- +sidebar_label: Multi-package workspace +--- + +# Multi-Package Workspace + +A project with three packages: two libraries and a binary. + +## Structure + +``` +workspace/ +├── dcr.toml # root workspace +├── lib-core/ +│ ├── dcr.toml +│ └── src/core.c +├── lib-utils/ +│ ├── dcr.toml +│ └── src/utils.c +└── app/ + ├── dcr.toml + └── src/main.c +``` + +## Root dcr.toml + +```toml +[package] +name = "my-workspace" +version = "0.1.0" +type = "none" + +[build] +inherit = true +language = "c" +standard = "c11" + +[workspace.lib-core] +path = "lib-core" + +[workspace.lib-utils] +path = "lib-utils" +deps = ["lib-core"] + +[workspace.app] +path = "app" +deps = ["lib-core", "lib-utils"] +main = true +``` + +## Packages + +`lib-core/dcr.toml`: + +```toml +[package] +name = "lib-core" +version = "0.1.0" +type = "none" + +[build] +kind = "staticlib" +``` + +`lib-utils/dcr.toml`: + +```toml +[package] +name = "lib-utils" +version = "0.1.0" +type = "none" + +[build] +kind = "staticlib" +``` + +`app/dcr.toml`: + +```toml +[package] +name = "app" +version = "0.1.0" +type = "none" + +[build] +kind = "bin" +``` + +## Build + +```bash +cd workspace +dcr build # builds everything in correct order +dcr build --workspace app # only app (lib-core and lib-utils built as deps) +dcr run # builds and runs main package +``` + +Build order (topological sort): + +1. `lib-core` +2. `lib-utils` (depends on lib-core) +3. `app` (depends on lib-core, lib-utils) From c02ad0b0e1ed1055457b89f80fea3ea5cec9db9b Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:38:38 +0800 Subject: [PATCH 069/274] New translations build-profiles.mdx (German) [ci skip] --- .../docs/reference/build-profiles.mdx.mdx | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/reference/build-profiles.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/reference/build-profiles.mdx.mdx b/docs-crowdin-export/de-DE/docs/reference/build-profiles.mdx.mdx new file mode 100644 index 0000000..694efb0 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/reference/build-profiles.mdx.mdx @@ -0,0 +1,82 @@ +--- +sidebar_label: Build profiles +--- + +# Build Profiles + +Profiles allow overriding `[build]` fields for specific build modes. + +## Configuration + +```toml +[build] +language = "c" +standard = "c17" +cflags = ["-Wall"] + +[build.debug] +cflags = ["-O0", "-g"] + +[build.release] +cflags = ["-O3", "-DNDEBUG"] +``` + +## Merge rules + +Fields from `[build.\]` are merged on top of `[build]`: + +* **Scalar fields** (strings, numbers, bools) — replaced +* **Arrays** (`cflags`, `ldflags`, ...) — **appended** (extend the `[build]` array) + +Set `inherit = false` to disable array inheritance (only profile's own arrays are used). + +## Built-in profiles + +The default flags for each profile are composed from three config fields: + +| Field | debug default | release default | +| ----------- | ------------------ | --------------- | +| `opt_level` | `"0"` | `"3"` | +| `debug` | `true` | `false` | +| `warnings` | `["all", "extra"]` | `[]` | + +Which produce the equivalent compiler flags: + +| Profile | Effective flags | +| --------- | ---------------------------------------------------------- | +| `debug` | `-O0 -g -Wall -Wextra -fno-omit-frame-pointer -DDCR_DEBUG` | +| `release` | `-O3 -DNDEBUG` | + +Additional build options can be toggled per-profile: + +```toml +[build.release] +opt_level = "z" +lto = true +strip = true +panic = "abort" +codegen-units = "1" + +[build.debug] +opt_level = "1" +debug = false +warnings = ["all", "error"] +``` + +## Target-specific profiles + +```toml +[build.linux] +cflags = ["-DLINUX"] + +[build.windows.debug] +cflags = ["-DWIN32", "-O0", "-g"] +``` + +Application order (highest priority first): + +1. `[build.\.\]` +2. `[build.\.\]` +3. `[build.\]` +4. `[build.\]` +5. `[build]` From 887c9600cf73af46c0e69745b25580bcb79f35e6 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:38:41 +0800 Subject: [PATCH 070/274] New translations build-profiles.mdx (Polish) [ci skip] --- .../docs/reference/build-profiles.mdx.mdx | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/reference/build-profiles.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/reference/build-profiles.mdx.mdx b/docs-crowdin-export/pl-PL/docs/reference/build-profiles.mdx.mdx new file mode 100644 index 0000000..694efb0 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/reference/build-profiles.mdx.mdx @@ -0,0 +1,82 @@ +--- +sidebar_label: Build profiles +--- + +# Build Profiles + +Profiles allow overriding `[build]` fields for specific build modes. + +## Configuration + +```toml +[build] +language = "c" +standard = "c17" +cflags = ["-Wall"] + +[build.debug] +cflags = ["-O0", "-g"] + +[build.release] +cflags = ["-O3", "-DNDEBUG"] +``` + +## Merge rules + +Fields from `[build.\]` are merged on top of `[build]`: + +* **Scalar fields** (strings, numbers, bools) — replaced +* **Arrays** (`cflags`, `ldflags`, ...) — **appended** (extend the `[build]` array) + +Set `inherit = false` to disable array inheritance (only profile's own arrays are used). + +## Built-in profiles + +The default flags for each profile are composed from three config fields: + +| Field | debug default | release default | +| ----------- | ------------------ | --------------- | +| `opt_level` | `"0"` | `"3"` | +| `debug` | `true` | `false` | +| `warnings` | `["all", "extra"]` | `[]` | + +Which produce the equivalent compiler flags: + +| Profile | Effective flags | +| --------- | ---------------------------------------------------------- | +| `debug` | `-O0 -g -Wall -Wextra -fno-omit-frame-pointer -DDCR_DEBUG` | +| `release` | `-O3 -DNDEBUG` | + +Additional build options can be toggled per-profile: + +```toml +[build.release] +opt_level = "z" +lto = true +strip = true +panic = "abort" +codegen-units = "1" + +[build.debug] +opt_level = "1" +debug = false +warnings = ["all", "error"] +``` + +## Target-specific profiles + +```toml +[build.linux] +cflags = ["-DLINUX"] + +[build.windows.debug] +cflags = ["-DWIN32", "-O0", "-g"] +``` + +Application order (highest priority first): + +1. `[build.\.\]` +2. `[build.\.\]` +3. `[build.\]` +4. `[build.\]` +5. `[build]` From b6ba06a8481baa3ecdc516587297c8f5fa92f387 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:38:43 +0800 Subject: [PATCH 071/274] New translations build-profiles.mdx (Russian) [ci skip] --- .../docs/reference/build-profiles.mdx.mdx | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/reference/build-profiles.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/reference/build-profiles.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/build-profiles.mdx.mdx new file mode 100644 index 0000000..694efb0 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/reference/build-profiles.mdx.mdx @@ -0,0 +1,82 @@ +--- +sidebar_label: Build profiles +--- + +# Build Profiles + +Profiles allow overriding `[build]` fields for specific build modes. + +## Configuration + +```toml +[build] +language = "c" +standard = "c17" +cflags = ["-Wall"] + +[build.debug] +cflags = ["-O0", "-g"] + +[build.release] +cflags = ["-O3", "-DNDEBUG"] +``` + +## Merge rules + +Fields from `[build.\]` are merged on top of `[build]`: + +* **Scalar fields** (strings, numbers, bools) — replaced +* **Arrays** (`cflags`, `ldflags`, ...) — **appended** (extend the `[build]` array) + +Set `inherit = false` to disable array inheritance (only profile's own arrays are used). + +## Built-in profiles + +The default flags for each profile are composed from three config fields: + +| Field | debug default | release default | +| ----------- | ------------------ | --------------- | +| `opt_level` | `"0"` | `"3"` | +| `debug` | `true` | `false` | +| `warnings` | `["all", "extra"]` | `[]` | + +Which produce the equivalent compiler flags: + +| Profile | Effective flags | +| --------- | ---------------------------------------------------------- | +| `debug` | `-O0 -g -Wall -Wextra -fno-omit-frame-pointer -DDCR_DEBUG` | +| `release` | `-O3 -DNDEBUG` | + +Additional build options can be toggled per-profile: + +```toml +[build.release] +opt_level = "z" +lto = true +strip = true +panic = "abort" +codegen-units = "1" + +[build.debug] +opt_level = "1" +debug = false +warnings = ["all", "error"] +``` + +## Target-specific profiles + +```toml +[build.linux] +cflags = ["-DLINUX"] + +[build.windows.debug] +cflags = ["-DWIN32", "-O0", "-g"] +``` + +Application order (highest priority first): + +1. `[build.\.\]` +2. `[build.\.\]` +3. `[build.\]` +4. `[build.\]` +5. `[build]` From 9f9851ba5e4c5277607d01aaa30c565e6ee9add1 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:38:46 +0800 Subject: [PATCH 072/274] New translations build-profiles.mdx (Ukrainian) [ci skip] --- .../docs/reference/build-profiles.mdx.mdx | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/reference/build-profiles.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/reference/build-profiles.mdx.mdx b/docs-crowdin-export/uk-UA/docs/reference/build-profiles.mdx.mdx new file mode 100644 index 0000000..694efb0 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/reference/build-profiles.mdx.mdx @@ -0,0 +1,82 @@ +--- +sidebar_label: Build profiles +--- + +# Build Profiles + +Profiles allow overriding `[build]` fields for specific build modes. + +## Configuration + +```toml +[build] +language = "c" +standard = "c17" +cflags = ["-Wall"] + +[build.debug] +cflags = ["-O0", "-g"] + +[build.release] +cflags = ["-O3", "-DNDEBUG"] +``` + +## Merge rules + +Fields from `[build.\]` are merged on top of `[build]`: + +* **Scalar fields** (strings, numbers, bools) — replaced +* **Arrays** (`cflags`, `ldflags`, ...) — **appended** (extend the `[build]` array) + +Set `inherit = false` to disable array inheritance (only profile's own arrays are used). + +## Built-in profiles + +The default flags for each profile are composed from three config fields: + +| Field | debug default | release default | +| ----------- | ------------------ | --------------- | +| `opt_level` | `"0"` | `"3"` | +| `debug` | `true` | `false` | +| `warnings` | `["all", "extra"]` | `[]` | + +Which produce the equivalent compiler flags: + +| Profile | Effective flags | +| --------- | ---------------------------------------------------------- | +| `debug` | `-O0 -g -Wall -Wextra -fno-omit-frame-pointer -DDCR_DEBUG` | +| `release` | `-O3 -DNDEBUG` | + +Additional build options can be toggled per-profile: + +```toml +[build.release] +opt_level = "z" +lto = true +strip = true +panic = "abort" +codegen-units = "1" + +[build.debug] +opt_level = "1" +debug = false +warnings = ["all", "error"] +``` + +## Target-specific profiles + +```toml +[build.linux] +cflags = ["-DLINUX"] + +[build.windows.debug] +cflags = ["-DWIN32", "-O0", "-g"] +``` + +Application order (highest priority first): + +1. `[build.\.\]` +2. `[build.\.\]` +3. `[build.\]` +4. `[build.\]` +5. `[build]` From 46a3c0bf2bf2eb46eb8863269199b1e1d60885f5 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:38:48 +0800 Subject: [PATCH 073/274] New translations build-system.mdx (German) [ci skip] --- .../de-DE/docs/reference/build-system.mdx.mdx | 131 ++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/reference/build-system.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/reference/build-system.mdx.mdx b/docs-crowdin-export/de-DE/docs/reference/build-system.mdx.mdx new file mode 100644 index 0000000..68a8444 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/reference/build-system.mdx.mdx @@ -0,0 +1,131 @@ +--- +sidebar_label: Build system +--- + +# Build System + +## Compiler Backends + +DCR supports 7 compilation backends. Selection is automatic based on file extension and `build.compiler` value. + +| Backend | Files | When used | +| --------- | --------------------------------- | ------------------------------------- | +| `unix_cc` | `.c`, `.cpp`, `.cxx`, `.cc`, `.S` | gcc/clang on Linux/macOS/BSD | +| `msvc` | `.c`, `.cpp`, `.cxx`, `.cc` | Windows (cl, clang-cl) | +| `gas` | `.s` | ARM/ARM64 assembler (no preprocessor) | +| `nasm` | `.asm`, `.s` | x86/x86_64 NASM assembler | +| `masm` | `.asm` | MASM (ml/ml64) on Windows | +| `fasm` | `.asm`, `.fasm` | Flat Assembler | +| `llvm_ir` | `.ll` | LLVM IR via `llc -filetype=obj` | + +## Qt Support + +DCR provides native Qt support for automatic meta-object handling (MOC, UIC, RCC). + +Enable it by setting `build.qt = true` in `dcr.toml`. DCR will automatically detect Qt-related files (`.ui`, `.qrc`, `.h` with `Q_OBJECT`) and process them. + +```toml +[build] +qt = true +``` + +*Note: Requires `qt6` modules (Core, Widgets, Gui, Svg) installed via `pkg-config`.* + +Advanced customization is still possible via `build.steps` if special handling is needed: + +```toml +[build.steps] +moc = "moc {in} -o {out}" +``` + +### Unix CC + +* Compiler resolved via `resolve_compiler()`: `DCR_COMPILER` > `DCR_CC` > `[toolchain]` > `build.compiler` > `PATH` +* Supports `.d` files for header dependency tracking +* Flags: `-std=`, `-MMD -MF`, `-c -o`, `-I`, `-L`, `-l` +* Conditional flags based on config: + * `freestanding` or bare-metal target: `-ffreestanding` (compile), `-nostdlib -static` (link) + * `lto`: `-flto` (compile + link) + * `panic = "abort"`: `-fno-exceptions` (C++ only), `-fno-unwind-tables`, `-fno-asynchronous-unwind-tables` + +### MSVC + +* Supports cl.exe and clang-cl.exe +* Flags: `/std:`, `/Fo:`, `/Fe:`, `/I`, `/link` + +### GAS / NASM / MASM / FASM / LLVM-IR + +* GAS: `-I`, `-c -o`, `--defsym` +* NASM: `-I`, `-o`, `-D`, `-f` (format: win64/elf64/macho64/macho32/elf32) +* MASM: `/nologo /c /Fo\ ` +* FASM: ` \` (output path is the object file) +* LLVM IR: `-filetype=obj -o \` + +## Incremental Builds + +Three levels of incrementality: + +1. **mtime** — if output is newer than all inputs, skip +2. **`.d` files** — header change tracking (including transitive) +3. **SHA256 fingerprint** — recompile if compiler flags changed (stored in `.dcr_fingerprint`) + +## Parallel Compilation + +* `thread::scope` for thread pool +* Atomic task queue (`AtomicU64`) +* Mutex on stdout (`OUTPUT_MUTEX`) +* Thread count = `available_parallelism()`, capped by `build.codegen-units` if set + +## Build Kinds + +| Kind | Type | Path (Linux example) | +| ----------- | ------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | +| `bin` | Executable | `target/\/\/\` (.exe on Windows) | +| `staticlib` | Static library | `target/\/\/lib\.a` (.lib) | +| `sharedlib` | Dynamic library | `target/\/\/lib\.so` (.dll/.dylib) | +| `efi` | UEFI application | `target/\/\/\.efi` | +| `elf` | ELF without stdlib | `target/\/\/\` | +| `none` | Compile only, no link | — | +| `custom` | Full filename+extension control | `target/\/\/\.\` | + +## Build Steps + +DCR supports pre-build and post-build steps: + +* `build.steps` — commands before compilation +* `build.post_steps` — commands after compilation + +Substitutions: `{stem}`, `{in}`, `{out}`, `{profile}`, `{version}`, `{name}`. + +Example Qt codegen via build steps: + +```toml +[build.steps] +moc = "moc {in} -o {out}" +``` + +## pkg-config + +Automatic lookup (read from raw config): + +```toml +[build] +pkg_config = ["sdl2", "gl"] +``` + +DCR runs `pkg-config --cflags sdl2 gl` and `pkg-config --libs sdl2 gl` and adds results to compiler/linker flags. + +## Variable Substitution + +Supported variables: + +| Variable | Description | +| ----------------------- | ---------------------------- | +| `{version}` | Package version | +| `{version_major}` | Major version part | +| `{version_minor}` | Minor version part | +| `{version_patch}` | Patch version | +| `{version_suffix}` | Suffix (e.g., `-rc1`) | +| `{version_suffix_dash}` | Suffix with dash | +| `{profile}` | Profile name (debug/release) | +| `{name}` | Package name | From 0f7b8e4ea4e6057be9bf0bdd6af39d9f00d56be7 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:38:51 +0800 Subject: [PATCH 074/274] New translations build-system.mdx (Polish) [ci skip] --- .../pl-PL/docs/reference/build-system.mdx.mdx | 131 ++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/reference/build-system.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/reference/build-system.mdx.mdx b/docs-crowdin-export/pl-PL/docs/reference/build-system.mdx.mdx new file mode 100644 index 0000000..68a8444 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/reference/build-system.mdx.mdx @@ -0,0 +1,131 @@ +--- +sidebar_label: Build system +--- + +# Build System + +## Compiler Backends + +DCR supports 7 compilation backends. Selection is automatic based on file extension and `build.compiler` value. + +| Backend | Files | When used | +| --------- | --------------------------------- | ------------------------------------- | +| `unix_cc` | `.c`, `.cpp`, `.cxx`, `.cc`, `.S` | gcc/clang on Linux/macOS/BSD | +| `msvc` | `.c`, `.cpp`, `.cxx`, `.cc` | Windows (cl, clang-cl) | +| `gas` | `.s` | ARM/ARM64 assembler (no preprocessor) | +| `nasm` | `.asm`, `.s` | x86/x86_64 NASM assembler | +| `masm` | `.asm` | MASM (ml/ml64) on Windows | +| `fasm` | `.asm`, `.fasm` | Flat Assembler | +| `llvm_ir` | `.ll` | LLVM IR via `llc -filetype=obj` | + +## Qt Support + +DCR provides native Qt support for automatic meta-object handling (MOC, UIC, RCC). + +Enable it by setting `build.qt = true` in `dcr.toml`. DCR will automatically detect Qt-related files (`.ui`, `.qrc`, `.h` with `Q_OBJECT`) and process them. + +```toml +[build] +qt = true +``` + +*Note: Requires `qt6` modules (Core, Widgets, Gui, Svg) installed via `pkg-config`.* + +Advanced customization is still possible via `build.steps` if special handling is needed: + +```toml +[build.steps] +moc = "moc {in} -o {out}" +``` + +### Unix CC + +* Compiler resolved via `resolve_compiler()`: `DCR_COMPILER` > `DCR_CC` > `[toolchain]` > `build.compiler` > `PATH` +* Supports `.d` files for header dependency tracking +* Flags: `-std=`, `-MMD -MF`, `-c -o`, `-I`, `-L`, `-l` +* Conditional flags based on config: + * `freestanding` or bare-metal target: `-ffreestanding` (compile), `-nostdlib -static` (link) + * `lto`: `-flto` (compile + link) + * `panic = "abort"`: `-fno-exceptions` (C++ only), `-fno-unwind-tables`, `-fno-asynchronous-unwind-tables` + +### MSVC + +* Supports cl.exe and clang-cl.exe +* Flags: `/std:`, `/Fo:`, `/Fe:`, `/I`, `/link` + +### GAS / NASM / MASM / FASM / LLVM-IR + +* GAS: `-I`, `-c -o`, `--defsym` +* NASM: `-I`, `-o`, `-D`, `-f` (format: win64/elf64/macho64/macho32/elf32) +* MASM: `/nologo /c /Fo\ ` +* FASM: ` \` (output path is the object file) +* LLVM IR: `-filetype=obj -o \` + +## Incremental Builds + +Three levels of incrementality: + +1. **mtime** — if output is newer than all inputs, skip +2. **`.d` files** — header change tracking (including transitive) +3. **SHA256 fingerprint** — recompile if compiler flags changed (stored in `.dcr_fingerprint`) + +## Parallel Compilation + +* `thread::scope` for thread pool +* Atomic task queue (`AtomicU64`) +* Mutex on stdout (`OUTPUT_MUTEX`) +* Thread count = `available_parallelism()`, capped by `build.codegen-units` if set + +## Build Kinds + +| Kind | Type | Path (Linux example) | +| ----------- | ------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | +| `bin` | Executable | `target/\/\/\` (.exe on Windows) | +| `staticlib` | Static library | `target/\/\/lib\.a` (.lib) | +| `sharedlib` | Dynamic library | `target/\/\/lib\.so` (.dll/.dylib) | +| `efi` | UEFI application | `target/\/\/\.efi` | +| `elf` | ELF without stdlib | `target/\/\/\` | +| `none` | Compile only, no link | — | +| `custom` | Full filename+extension control | `target/\/\/\.\` | + +## Build Steps + +DCR supports pre-build and post-build steps: + +* `build.steps` — commands before compilation +* `build.post_steps` — commands after compilation + +Substitutions: `{stem}`, `{in}`, `{out}`, `{profile}`, `{version}`, `{name}`. + +Example Qt codegen via build steps: + +```toml +[build.steps] +moc = "moc {in} -o {out}" +``` + +## pkg-config + +Automatic lookup (read from raw config): + +```toml +[build] +pkg_config = ["sdl2", "gl"] +``` + +DCR runs `pkg-config --cflags sdl2 gl` and `pkg-config --libs sdl2 gl` and adds results to compiler/linker flags. + +## Variable Substitution + +Supported variables: + +| Variable | Description | +| ----------------------- | ---------------------------- | +| `{version}` | Package version | +| `{version_major}` | Major version part | +| `{version_minor}` | Minor version part | +| `{version_patch}` | Patch version | +| `{version_suffix}` | Suffix (e.g., `-rc1`) | +| `{version_suffix_dash}` | Suffix with dash | +| `{profile}` | Profile name (debug/release) | +| `{name}` | Package name | From bb2dbcd5fe59a9cb8f9d61d921e991bda0cd8f49 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:38:54 +0800 Subject: [PATCH 075/274] New translations build-system.mdx (Russian) [ci skip] --- .../ru-RU/docs/reference/build-system.mdx.mdx | 131 ++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/reference/build-system.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/reference/build-system.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/build-system.mdx.mdx new file mode 100644 index 0000000..68a8444 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/reference/build-system.mdx.mdx @@ -0,0 +1,131 @@ +--- +sidebar_label: Build system +--- + +# Build System + +## Compiler Backends + +DCR supports 7 compilation backends. Selection is automatic based on file extension and `build.compiler` value. + +| Backend | Files | When used | +| --------- | --------------------------------- | ------------------------------------- | +| `unix_cc` | `.c`, `.cpp`, `.cxx`, `.cc`, `.S` | gcc/clang on Linux/macOS/BSD | +| `msvc` | `.c`, `.cpp`, `.cxx`, `.cc` | Windows (cl, clang-cl) | +| `gas` | `.s` | ARM/ARM64 assembler (no preprocessor) | +| `nasm` | `.asm`, `.s` | x86/x86_64 NASM assembler | +| `masm` | `.asm` | MASM (ml/ml64) on Windows | +| `fasm` | `.asm`, `.fasm` | Flat Assembler | +| `llvm_ir` | `.ll` | LLVM IR via `llc -filetype=obj` | + +## Qt Support + +DCR provides native Qt support for automatic meta-object handling (MOC, UIC, RCC). + +Enable it by setting `build.qt = true` in `dcr.toml`. DCR will automatically detect Qt-related files (`.ui`, `.qrc`, `.h` with `Q_OBJECT`) and process them. + +```toml +[build] +qt = true +``` + +*Note: Requires `qt6` modules (Core, Widgets, Gui, Svg) installed via `pkg-config`.* + +Advanced customization is still possible via `build.steps` if special handling is needed: + +```toml +[build.steps] +moc = "moc {in} -o {out}" +``` + +### Unix CC + +* Compiler resolved via `resolve_compiler()`: `DCR_COMPILER` > `DCR_CC` > `[toolchain]` > `build.compiler` > `PATH` +* Supports `.d` files for header dependency tracking +* Flags: `-std=`, `-MMD -MF`, `-c -o`, `-I`, `-L`, `-l` +* Conditional flags based on config: + * `freestanding` or bare-metal target: `-ffreestanding` (compile), `-nostdlib -static` (link) + * `lto`: `-flto` (compile + link) + * `panic = "abort"`: `-fno-exceptions` (C++ only), `-fno-unwind-tables`, `-fno-asynchronous-unwind-tables` + +### MSVC + +* Supports cl.exe and clang-cl.exe +* Flags: `/std:`, `/Fo:`, `/Fe:`, `/I`, `/link` + +### GAS / NASM / MASM / FASM / LLVM-IR + +* GAS: `-I`, `-c -o`, `--defsym` +* NASM: `-I`, `-o`, `-D`, `-f` (format: win64/elf64/macho64/macho32/elf32) +* MASM: `/nologo /c /Fo\ ` +* FASM: ` \` (output path is the object file) +* LLVM IR: `-filetype=obj -o \` + +## Incremental Builds + +Three levels of incrementality: + +1. **mtime** — if output is newer than all inputs, skip +2. **`.d` files** — header change tracking (including transitive) +3. **SHA256 fingerprint** — recompile if compiler flags changed (stored in `.dcr_fingerprint`) + +## Parallel Compilation + +* `thread::scope` for thread pool +* Atomic task queue (`AtomicU64`) +* Mutex on stdout (`OUTPUT_MUTEX`) +* Thread count = `available_parallelism()`, capped by `build.codegen-units` if set + +## Build Kinds + +| Kind | Type | Path (Linux example) | +| ----------- | ------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | +| `bin` | Executable | `target/\/\/\` (.exe on Windows) | +| `staticlib` | Static library | `target/\/\/lib\.a` (.lib) | +| `sharedlib` | Dynamic library | `target/\/\/lib\.so` (.dll/.dylib) | +| `efi` | UEFI application | `target/\/\/\.efi` | +| `elf` | ELF without stdlib | `target/\/\/\` | +| `none` | Compile only, no link | — | +| `custom` | Full filename+extension control | `target/\/\/\.\` | + +## Build Steps + +DCR supports pre-build and post-build steps: + +* `build.steps` — commands before compilation +* `build.post_steps` — commands after compilation + +Substitutions: `{stem}`, `{in}`, `{out}`, `{profile}`, `{version}`, `{name}`. + +Example Qt codegen via build steps: + +```toml +[build.steps] +moc = "moc {in} -o {out}" +``` + +## pkg-config + +Automatic lookup (read from raw config): + +```toml +[build] +pkg_config = ["sdl2", "gl"] +``` + +DCR runs `pkg-config --cflags sdl2 gl` and `pkg-config --libs sdl2 gl` and adds results to compiler/linker flags. + +## Variable Substitution + +Supported variables: + +| Variable | Description | +| ----------------------- | ---------------------------- | +| `{version}` | Package version | +| `{version_major}` | Major version part | +| `{version_minor}` | Minor version part | +| `{version_patch}` | Patch version | +| `{version_suffix}` | Suffix (e.g., `-rc1`) | +| `{version_suffix_dash}` | Suffix with dash | +| `{profile}` | Profile name (debug/release) | +| `{name}` | Package name | From 2ddcebbc8f6f29cf25e814a073c3a90bac07cf70 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:38:56 +0800 Subject: [PATCH 076/274] New translations build-system.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/reference/build-system.mdx.mdx | 131 ++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/reference/build-system.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/reference/build-system.mdx.mdx b/docs-crowdin-export/uk-UA/docs/reference/build-system.mdx.mdx new file mode 100644 index 0000000..68a8444 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/reference/build-system.mdx.mdx @@ -0,0 +1,131 @@ +--- +sidebar_label: Build system +--- + +# Build System + +## Compiler Backends + +DCR supports 7 compilation backends. Selection is automatic based on file extension and `build.compiler` value. + +| Backend | Files | When used | +| --------- | --------------------------------- | ------------------------------------- | +| `unix_cc` | `.c`, `.cpp`, `.cxx`, `.cc`, `.S` | gcc/clang on Linux/macOS/BSD | +| `msvc` | `.c`, `.cpp`, `.cxx`, `.cc` | Windows (cl, clang-cl) | +| `gas` | `.s` | ARM/ARM64 assembler (no preprocessor) | +| `nasm` | `.asm`, `.s` | x86/x86_64 NASM assembler | +| `masm` | `.asm` | MASM (ml/ml64) on Windows | +| `fasm` | `.asm`, `.fasm` | Flat Assembler | +| `llvm_ir` | `.ll` | LLVM IR via `llc -filetype=obj` | + +## Qt Support + +DCR provides native Qt support for automatic meta-object handling (MOC, UIC, RCC). + +Enable it by setting `build.qt = true` in `dcr.toml`. DCR will automatically detect Qt-related files (`.ui`, `.qrc`, `.h` with `Q_OBJECT`) and process them. + +```toml +[build] +qt = true +``` + +*Note: Requires `qt6` modules (Core, Widgets, Gui, Svg) installed via `pkg-config`.* + +Advanced customization is still possible via `build.steps` if special handling is needed: + +```toml +[build.steps] +moc = "moc {in} -o {out}" +``` + +### Unix CC + +* Compiler resolved via `resolve_compiler()`: `DCR_COMPILER` > `DCR_CC` > `[toolchain]` > `build.compiler` > `PATH` +* Supports `.d` files for header dependency tracking +* Flags: `-std=`, `-MMD -MF`, `-c -o`, `-I`, `-L`, `-l` +* Conditional flags based on config: + * `freestanding` or bare-metal target: `-ffreestanding` (compile), `-nostdlib -static` (link) + * `lto`: `-flto` (compile + link) + * `panic = "abort"`: `-fno-exceptions` (C++ only), `-fno-unwind-tables`, `-fno-asynchronous-unwind-tables` + +### MSVC + +* Supports cl.exe and clang-cl.exe +* Flags: `/std:`, `/Fo:`, `/Fe:`, `/I`, `/link` + +### GAS / NASM / MASM / FASM / LLVM-IR + +* GAS: `-I`, `-c -o`, `--defsym` +* NASM: `-I`, `-o`, `-D`, `-f` (format: win64/elf64/macho64/macho32/elf32) +* MASM: `/nologo /c /Fo\ ` +* FASM: ` \` (output path is the object file) +* LLVM IR: `-filetype=obj -o \` + +## Incremental Builds + +Three levels of incrementality: + +1. **mtime** — if output is newer than all inputs, skip +2. **`.d` files** — header change tracking (including transitive) +3. **SHA256 fingerprint** — recompile if compiler flags changed (stored in `.dcr_fingerprint`) + +## Parallel Compilation + +* `thread::scope` for thread pool +* Atomic task queue (`AtomicU64`) +* Mutex on stdout (`OUTPUT_MUTEX`) +* Thread count = `available_parallelism()`, capped by `build.codegen-units` if set + +## Build Kinds + +| Kind | Type | Path (Linux example) | +| ----------- | ------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | +| `bin` | Executable | `target/\/\/\` (.exe on Windows) | +| `staticlib` | Static library | `target/\/\/lib\.a` (.lib) | +| `sharedlib` | Dynamic library | `target/\/\/lib\.so` (.dll/.dylib) | +| `efi` | UEFI application | `target/\/\/\.efi` | +| `elf` | ELF without stdlib | `target/\/\/\` | +| `none` | Compile only, no link | — | +| `custom` | Full filename+extension control | `target/\/\/\.\` | + +## Build Steps + +DCR supports pre-build and post-build steps: + +* `build.steps` — commands before compilation +* `build.post_steps` — commands after compilation + +Substitutions: `{stem}`, `{in}`, `{out}`, `{profile}`, `{version}`, `{name}`. + +Example Qt codegen via build steps: + +```toml +[build.steps] +moc = "moc {in} -o {out}" +``` + +## pkg-config + +Automatic lookup (read from raw config): + +```toml +[build] +pkg_config = ["sdl2", "gl"] +``` + +DCR runs `pkg-config --cflags sdl2 gl` and `pkg-config --libs sdl2 gl` and adds results to compiler/linker flags. + +## Variable Substitution + +Supported variables: + +| Variable | Description | +| ----------------------- | ---------------------------- | +| `{version}` | Package version | +| `{version_major}` | Major version part | +| `{version_minor}` | Minor version part | +| `{version_patch}` | Patch version | +| `{version_suffix}` | Suffix (e.g., `-rc1`) | +| `{version_suffix_dash}` | Suffix with dash | +| `{profile}` | Profile name (debug/release) | +| `{name}` | Package name | From 54736fb8a6fa53d7d7a34ac6c1ae672a6943dbe6 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:38:59 +0800 Subject: [PATCH 077/274] New translations cross-compilation.mdx (German) [ci skip] --- .../docs/reference/cross-compilation.mdx.mdx | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/reference/cross-compilation.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/reference/cross-compilation.mdx.mdx b/docs-crowdin-export/de-DE/docs/reference/cross-compilation.mdx.mdx new file mode 100644 index 0000000..352170f --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/reference/cross-compilation.mdx.mdx @@ -0,0 +1,70 @@ +--- +sidebar_label: Cross-compilation +--- + +# Cross-Compilation + +## Short Names + +DCR supports short platform names: + +| Short Name | Full Triple | +| ---------- | -------------------------- | +| `linux` | `x86_64-unknown-linux-gnu` | +| `macos` | `x86_64-apple-darwin` | +| `windows` | `x86_64-pc-windows-msvc` | + +```bash +dcr build --target windows +``` + +## Full Triples + +```bash +dcr build --target aarch64-unknown-linux-gnu +dcr build --target x86_64-pc-windows-gnu # mingw +dcr build --target armv7-unknown-linux-gnueabihf +``` + +## clang --target + +When using clang, DCR injects `--target=\` into CFLAGS. + +```toml +[build] +compiler = "clang" +target = "aarch64-unknown-linux-gnu" +# Auto: cflags += ["--target=aarch64-unknown-linux-gnu"] +``` + +## Bare-Metal / Freestanding + +For targets containing `none`, `-elf`, `eabi`, or `baremetal`, DCR automatically: + +1. **Disables default flags** — no system include paths, no `-l` libc +2. **Injects `-ffreestanding`** at compile time and `-nostdlib -static` at link time + +You can also enable freestanding mode explicitly: + +```toml +[build] +freestanding = true +``` + +```bash +dcr build --target aarch64-none-elf +``` + +## Target Directory + +On Linux with explicit target: + +``` +target/// +``` + +On macOS/Windows or without target: + +``` +target// +``` From 70b6968a78ee2dd927fa67d91d0e10e1b738f8bd Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:39:01 +0800 Subject: [PATCH 078/274] New translations cross-compilation.mdx (Polish) [ci skip] --- .../docs/reference/cross-compilation.mdx.mdx | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/reference/cross-compilation.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/reference/cross-compilation.mdx.mdx b/docs-crowdin-export/pl-PL/docs/reference/cross-compilation.mdx.mdx new file mode 100644 index 0000000..352170f --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/reference/cross-compilation.mdx.mdx @@ -0,0 +1,70 @@ +--- +sidebar_label: Cross-compilation +--- + +# Cross-Compilation + +## Short Names + +DCR supports short platform names: + +| Short Name | Full Triple | +| ---------- | -------------------------- | +| `linux` | `x86_64-unknown-linux-gnu` | +| `macos` | `x86_64-apple-darwin` | +| `windows` | `x86_64-pc-windows-msvc` | + +```bash +dcr build --target windows +``` + +## Full Triples + +```bash +dcr build --target aarch64-unknown-linux-gnu +dcr build --target x86_64-pc-windows-gnu # mingw +dcr build --target armv7-unknown-linux-gnueabihf +``` + +## clang --target + +When using clang, DCR injects `--target=\` into CFLAGS. + +```toml +[build] +compiler = "clang" +target = "aarch64-unknown-linux-gnu" +# Auto: cflags += ["--target=aarch64-unknown-linux-gnu"] +``` + +## Bare-Metal / Freestanding + +For targets containing `none`, `-elf`, `eabi`, or `baremetal`, DCR automatically: + +1. **Disables default flags** — no system include paths, no `-l` libc +2. **Injects `-ffreestanding`** at compile time and `-nostdlib -static` at link time + +You can also enable freestanding mode explicitly: + +```toml +[build] +freestanding = true +``` + +```bash +dcr build --target aarch64-none-elf +``` + +## Target Directory + +On Linux with explicit target: + +``` +target/// +``` + +On macOS/Windows or without target: + +``` +target// +``` From 0f4abebd5f0c74ee1b9f5ee7efe24839743272b1 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:39:03 +0800 Subject: [PATCH 079/274] New translations cross-compilation.mdx (Russian) [ci skip] --- .../docs/reference/cross-compilation.mdx.mdx | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/reference/cross-compilation.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/reference/cross-compilation.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/cross-compilation.mdx.mdx new file mode 100644 index 0000000..352170f --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/reference/cross-compilation.mdx.mdx @@ -0,0 +1,70 @@ +--- +sidebar_label: Cross-compilation +--- + +# Cross-Compilation + +## Short Names + +DCR supports short platform names: + +| Short Name | Full Triple | +| ---------- | -------------------------- | +| `linux` | `x86_64-unknown-linux-gnu` | +| `macos` | `x86_64-apple-darwin` | +| `windows` | `x86_64-pc-windows-msvc` | + +```bash +dcr build --target windows +``` + +## Full Triples + +```bash +dcr build --target aarch64-unknown-linux-gnu +dcr build --target x86_64-pc-windows-gnu # mingw +dcr build --target armv7-unknown-linux-gnueabihf +``` + +## clang --target + +When using clang, DCR injects `--target=\` into CFLAGS. + +```toml +[build] +compiler = "clang" +target = "aarch64-unknown-linux-gnu" +# Auto: cflags += ["--target=aarch64-unknown-linux-gnu"] +``` + +## Bare-Metal / Freestanding + +For targets containing `none`, `-elf`, `eabi`, or `baremetal`, DCR automatically: + +1. **Disables default flags** — no system include paths, no `-l` libc +2. **Injects `-ffreestanding`** at compile time and `-nostdlib -static` at link time + +You can also enable freestanding mode explicitly: + +```toml +[build] +freestanding = true +``` + +```bash +dcr build --target aarch64-none-elf +``` + +## Target Directory + +On Linux with explicit target: + +``` +target/// +``` + +On macOS/Windows or without target: + +``` +target// +``` From abd79d0f49cbb7779f4129ae9ca7bd9856685365 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:39:06 +0800 Subject: [PATCH 080/274] New translations cross-compilation.mdx (Ukrainian) [ci skip] --- .../docs/reference/cross-compilation.mdx.mdx | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/reference/cross-compilation.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/reference/cross-compilation.mdx.mdx b/docs-crowdin-export/uk-UA/docs/reference/cross-compilation.mdx.mdx new file mode 100644 index 0000000..352170f --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/reference/cross-compilation.mdx.mdx @@ -0,0 +1,70 @@ +--- +sidebar_label: Cross-compilation +--- + +# Cross-Compilation + +## Short Names + +DCR supports short platform names: + +| Short Name | Full Triple | +| ---------- | -------------------------- | +| `linux` | `x86_64-unknown-linux-gnu` | +| `macos` | `x86_64-apple-darwin` | +| `windows` | `x86_64-pc-windows-msvc` | + +```bash +dcr build --target windows +``` + +## Full Triples + +```bash +dcr build --target aarch64-unknown-linux-gnu +dcr build --target x86_64-pc-windows-gnu # mingw +dcr build --target armv7-unknown-linux-gnueabihf +``` + +## clang --target + +When using clang, DCR injects `--target=\` into CFLAGS. + +```toml +[build] +compiler = "clang" +target = "aarch64-unknown-linux-gnu" +# Auto: cflags += ["--target=aarch64-unknown-linux-gnu"] +``` + +## Bare-Metal / Freestanding + +For targets containing `none`, `-elf`, `eabi`, or `baremetal`, DCR automatically: + +1. **Disables default flags** — no system include paths, no `-l` libc +2. **Injects `-ffreestanding`** at compile time and `-nostdlib -static` at link time + +You can also enable freestanding mode explicitly: + +```toml +[build] +freestanding = true +``` + +```bash +dcr build --target aarch64-none-elf +``` + +## Target Directory + +On Linux with explicit target: + +``` +target/// +``` + +On macOS/Windows or without target: + +``` +target// +``` From 928a35d0178601b47b54f02e31efa27814c7af7b Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:39:09 +0800 Subject: [PATCH 081/274] New translations dcr-toml.mdx (German) [ci skip] --- .../de-DE/docs/reference/dcr-toml.mdx.mdx | 152 ++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/reference/dcr-toml.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/reference/dcr-toml.mdx.mdx b/docs-crowdin-export/de-DE/docs/reference/dcr-toml.mdx.mdx new file mode 100644 index 0000000..29ca0b0 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/reference/dcr-toml.mdx.mdx @@ -0,0 +1,152 @@ +--- +sidebar_label: dcr.toml overview +--- + +# dcr.toml + +Main project configuration file. Located at the project root. + +## Structure + +```toml +[package] +# required fields + +[build] +# build settings + +[build.debug] # optional: debug override +[build.release] # optional: release override + +[build.linux] # optional: Linux override +[build.windows] # optional: Windows override +[build.windows.debug] # target + profile combination + +[toolchain] +# compiler/linker paths + +[dependencies] +# project dependencies + +[workspace] +# multi-package configuration + +[run] +# run settings +``` + +## [package] + +| Field | Required | Description | +| --------- | -------- | ----------------------- | +| `name` | yes | Project name | +| `version` | yes | Semantic version | +| `type` | yes | `app`, `lib`, `none` | +| `license` | no | SPDX license identifier | +| `author` | no | Author | + +```toml +[package] +name = "my-app" +version = "0.1.0" +type = "app" +license = "MIT" +author = "John Doe" +``` + +## [build] + +... + +* `build.qt` — (bool) Enable automatic Qt meta-object handling (MOC, UIC, RCC). Requires `qt6` modules installed via `pkg-config`. + +| Field | Default | Description | +| ---------------- | ------------------------------------------- | --------------------------------------------------------------------- | +| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"` | +| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | +| `cxx_standard` | `"c++20"` | C++ standard (`c++17`, `c++20`, `c++23`) | +| `compiler` | `"clang"` | Preferred compiler | +| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom` | +| `target` | host | Target triple for cross-compilation | +| `platform` | `"native"` | `native`, `efi` | +| `cflags` | `[]` | Additional C/C++/ASM flags | +| `ldflags` | `[]` | Additional linker flags | +| `filename` | `""` | Custom output file name | +| `extension` | `""` | Custom file extension | +| `roots` | `["src"]` | Source root directories | +| `exclude` | `[]` | Exclude patterns | +| `include` | `[]` | Additional include directories | +| `src_disable` | `false` | Disable auto source discovery | +| `inherit` | `false` | Inherit build from workspace root | +| `clean` | `[]` | Glob patterns for custom clean paths | +| `out_dir` | `""` | Custom output directory | +| `workspace_only` | `false` | Workspace-only, not built standalone | +| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | +| `opt_level` | `"0"` (debug) / `"3"` (release) | Optimization level: `0`-`3`, `"s"`, `"z"` | +| `debug` | `true` (debug) / `false` (release) | Emit debug symbols (`-g`) | +| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | +| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | +| `warnings` | `["all", "extra"]` (debug) / `[]` (release) | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`) | +| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | +| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | +| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | + +Settings from raw config (not in typed struct): + +* `pkg_config` — list of pkg-config packages +* `ldscript` — linker script path +* `build.steps` / `build.post_steps` — codegen steps + +Example: + +```toml +[build] +language = "c++" +standard = "c23" +cxx_standard = "c++23" +compiler = "clang" +kind = "sharedlib" +cflags = ["-Wall", "-Wextra"] +opt_level = "z" +lto = true +strip = true +panic = "abort" +codegen-units = "2" +``` + +## [toolchain] + +```toml +[toolchain] +cc = "/usr/bin/clang" +cxx = "/usr/bin/clang++" +as = "/usr/bin/as" +ar = "/usr/bin/ar" +ld = "/usr/bin/ld.lld" +``` + +Raw config also supports `uic`, `moc`, `rcc` for Qt codegen. + +## [dependencies] + +See [dependencies](/docs/reference/dependencies). + +## [run] + +```toml +[run] +cmd = "./target/{profile}/{name}" +``` + +Substitutions: + +* `{version}` — package version +* `{version_major}`, `{version_minor}`, `{version_patch}`, `{version_suffix}`, `{version_suffix_dash}` — version parts +* `{profile}` — debug / release +* `{name}` — package name + +Default `cmd` = `./target/{profile}/{name}` (macOS/Windows) or `./target/\/\/\` (Linux). + +## [workspace] + +See [workspaces](/docs/reference/workspaces). From aee2bc2fdaf43ee7bb05ca3a3cc78661823b614f Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:39:11 +0800 Subject: [PATCH 082/274] New translations dcr-toml.mdx (Polish) [ci skip] --- .../pl-PL/docs/reference/dcr-toml.mdx.mdx | 152 ++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/reference/dcr-toml.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/reference/dcr-toml.mdx.mdx b/docs-crowdin-export/pl-PL/docs/reference/dcr-toml.mdx.mdx new file mode 100644 index 0000000..29ca0b0 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/reference/dcr-toml.mdx.mdx @@ -0,0 +1,152 @@ +--- +sidebar_label: dcr.toml overview +--- + +# dcr.toml + +Main project configuration file. Located at the project root. + +## Structure + +```toml +[package] +# required fields + +[build] +# build settings + +[build.debug] # optional: debug override +[build.release] # optional: release override + +[build.linux] # optional: Linux override +[build.windows] # optional: Windows override +[build.windows.debug] # target + profile combination + +[toolchain] +# compiler/linker paths + +[dependencies] +# project dependencies + +[workspace] +# multi-package configuration + +[run] +# run settings +``` + +## [package] + +| Field | Required | Description | +| --------- | -------- | ----------------------- | +| `name` | yes | Project name | +| `version` | yes | Semantic version | +| `type` | yes | `app`, `lib`, `none` | +| `license` | no | SPDX license identifier | +| `author` | no | Author | + +```toml +[package] +name = "my-app" +version = "0.1.0" +type = "app" +license = "MIT" +author = "John Doe" +``` + +## [build] + +... + +* `build.qt` — (bool) Enable automatic Qt meta-object handling (MOC, UIC, RCC). Requires `qt6` modules installed via `pkg-config`. + +| Field | Default | Description | +| ---------------- | ------------------------------------------- | --------------------------------------------------------------------- | +| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"` | +| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | +| `cxx_standard` | `"c++20"` | C++ standard (`c++17`, `c++20`, `c++23`) | +| `compiler` | `"clang"` | Preferred compiler | +| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom` | +| `target` | host | Target triple for cross-compilation | +| `platform` | `"native"` | `native`, `efi` | +| `cflags` | `[]` | Additional C/C++/ASM flags | +| `ldflags` | `[]` | Additional linker flags | +| `filename` | `""` | Custom output file name | +| `extension` | `""` | Custom file extension | +| `roots` | `["src"]` | Source root directories | +| `exclude` | `[]` | Exclude patterns | +| `include` | `[]` | Additional include directories | +| `src_disable` | `false` | Disable auto source discovery | +| `inherit` | `false` | Inherit build from workspace root | +| `clean` | `[]` | Glob patterns for custom clean paths | +| `out_dir` | `""` | Custom output directory | +| `workspace_only` | `false` | Workspace-only, not built standalone | +| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | +| `opt_level` | `"0"` (debug) / `"3"` (release) | Optimization level: `0`-`3`, `"s"`, `"z"` | +| `debug` | `true` (debug) / `false` (release) | Emit debug symbols (`-g`) | +| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | +| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | +| `warnings` | `["all", "extra"]` (debug) / `[]` (release) | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`) | +| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | +| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | +| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | + +Settings from raw config (not in typed struct): + +* `pkg_config` — list of pkg-config packages +* `ldscript` — linker script path +* `build.steps` / `build.post_steps` — codegen steps + +Example: + +```toml +[build] +language = "c++" +standard = "c23" +cxx_standard = "c++23" +compiler = "clang" +kind = "sharedlib" +cflags = ["-Wall", "-Wextra"] +opt_level = "z" +lto = true +strip = true +panic = "abort" +codegen-units = "2" +``` + +## [toolchain] + +```toml +[toolchain] +cc = "/usr/bin/clang" +cxx = "/usr/bin/clang++" +as = "/usr/bin/as" +ar = "/usr/bin/ar" +ld = "/usr/bin/ld.lld" +``` + +Raw config also supports `uic`, `moc`, `rcc` for Qt codegen. + +## [dependencies] + +See [dependencies](/docs/reference/dependencies). + +## [run] + +```toml +[run] +cmd = "./target/{profile}/{name}" +``` + +Substitutions: + +* `{version}` — package version +* `{version_major}`, `{version_minor}`, `{version_patch}`, `{version_suffix}`, `{version_suffix_dash}` — version parts +* `{profile}` — debug / release +* `{name}` — package name + +Default `cmd` = `./target/{profile}/{name}` (macOS/Windows) or `./target/\/\/\` (Linux). + +## [workspace] + +See [workspaces](/docs/reference/workspaces). From 94e32d8f10a4aa9e229cc8774385dada39c9b644 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:39:14 +0800 Subject: [PATCH 083/274] New translations dcr-toml.mdx (Russian) [ci skip] --- .../ru-RU/docs/reference/dcr-toml.mdx.mdx | 152 ++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx new file mode 100644 index 0000000..29ca0b0 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx @@ -0,0 +1,152 @@ +--- +sidebar_label: dcr.toml overview +--- + +# dcr.toml + +Main project configuration file. Located at the project root. + +## Structure + +```toml +[package] +# required fields + +[build] +# build settings + +[build.debug] # optional: debug override +[build.release] # optional: release override + +[build.linux] # optional: Linux override +[build.windows] # optional: Windows override +[build.windows.debug] # target + profile combination + +[toolchain] +# compiler/linker paths + +[dependencies] +# project dependencies + +[workspace] +# multi-package configuration + +[run] +# run settings +``` + +## [package] + +| Field | Required | Description | +| --------- | -------- | ----------------------- | +| `name` | yes | Project name | +| `version` | yes | Semantic version | +| `type` | yes | `app`, `lib`, `none` | +| `license` | no | SPDX license identifier | +| `author` | no | Author | + +```toml +[package] +name = "my-app" +version = "0.1.0" +type = "app" +license = "MIT" +author = "John Doe" +``` + +## [build] + +... + +* `build.qt` — (bool) Enable automatic Qt meta-object handling (MOC, UIC, RCC). Requires `qt6` modules installed via `pkg-config`. + +| Field | Default | Description | +| ---------------- | ------------------------------------------- | --------------------------------------------------------------------- | +| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"` | +| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | +| `cxx_standard` | `"c++20"` | C++ standard (`c++17`, `c++20`, `c++23`) | +| `compiler` | `"clang"` | Preferred compiler | +| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom` | +| `target` | host | Target triple for cross-compilation | +| `platform` | `"native"` | `native`, `efi` | +| `cflags` | `[]` | Additional C/C++/ASM flags | +| `ldflags` | `[]` | Additional linker flags | +| `filename` | `""` | Custom output file name | +| `extension` | `""` | Custom file extension | +| `roots` | `["src"]` | Source root directories | +| `exclude` | `[]` | Exclude patterns | +| `include` | `[]` | Additional include directories | +| `src_disable` | `false` | Disable auto source discovery | +| `inherit` | `false` | Inherit build from workspace root | +| `clean` | `[]` | Glob patterns for custom clean paths | +| `out_dir` | `""` | Custom output directory | +| `workspace_only` | `false` | Workspace-only, not built standalone | +| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | +| `opt_level` | `"0"` (debug) / `"3"` (release) | Optimization level: `0`-`3`, `"s"`, `"z"` | +| `debug` | `true` (debug) / `false` (release) | Emit debug symbols (`-g`) | +| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | +| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | +| `warnings` | `["all", "extra"]` (debug) / `[]` (release) | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`) | +| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | +| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | +| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | + +Settings from raw config (not in typed struct): + +* `pkg_config` — list of pkg-config packages +* `ldscript` — linker script path +* `build.steps` / `build.post_steps` — codegen steps + +Example: + +```toml +[build] +language = "c++" +standard = "c23" +cxx_standard = "c++23" +compiler = "clang" +kind = "sharedlib" +cflags = ["-Wall", "-Wextra"] +opt_level = "z" +lto = true +strip = true +panic = "abort" +codegen-units = "2" +``` + +## [toolchain] + +```toml +[toolchain] +cc = "/usr/bin/clang" +cxx = "/usr/bin/clang++" +as = "/usr/bin/as" +ar = "/usr/bin/ar" +ld = "/usr/bin/ld.lld" +``` + +Raw config also supports `uic`, `moc`, `rcc` for Qt codegen. + +## [dependencies] + +See [dependencies](/docs/reference/dependencies). + +## [run] + +```toml +[run] +cmd = "./target/{profile}/{name}" +``` + +Substitutions: + +* `{version}` — package version +* `{version_major}`, `{version_minor}`, `{version_patch}`, `{version_suffix}`, `{version_suffix_dash}` — version parts +* `{profile}` — debug / release +* `{name}` — package name + +Default `cmd` = `./target/{profile}/{name}` (macOS/Windows) or `./target/\/\/\` (Linux). + +## [workspace] + +See [workspaces](/docs/reference/workspaces). From 207709f65c94720e37b0cf73656bbd3e641d5a1d Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:39:17 +0800 Subject: [PATCH 084/274] New translations dcr-toml.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/reference/dcr-toml.mdx.mdx | 152 ++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/reference/dcr-toml.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/reference/dcr-toml.mdx.mdx b/docs-crowdin-export/uk-UA/docs/reference/dcr-toml.mdx.mdx new file mode 100644 index 0000000..29ca0b0 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/reference/dcr-toml.mdx.mdx @@ -0,0 +1,152 @@ +--- +sidebar_label: dcr.toml overview +--- + +# dcr.toml + +Main project configuration file. Located at the project root. + +## Structure + +```toml +[package] +# required fields + +[build] +# build settings + +[build.debug] # optional: debug override +[build.release] # optional: release override + +[build.linux] # optional: Linux override +[build.windows] # optional: Windows override +[build.windows.debug] # target + profile combination + +[toolchain] +# compiler/linker paths + +[dependencies] +# project dependencies + +[workspace] +# multi-package configuration + +[run] +# run settings +``` + +## [package] + +| Field | Required | Description | +| --------- | -------- | ----------------------- | +| `name` | yes | Project name | +| `version` | yes | Semantic version | +| `type` | yes | `app`, `lib`, `none` | +| `license` | no | SPDX license identifier | +| `author` | no | Author | + +```toml +[package] +name = "my-app" +version = "0.1.0" +type = "app" +license = "MIT" +author = "John Doe" +``` + +## [build] + +... + +* `build.qt` — (bool) Enable automatic Qt meta-object handling (MOC, UIC, RCC). Requires `qt6` modules installed via `pkg-config`. + +| Field | Default | Description | +| ---------------- | ------------------------------------------- | --------------------------------------------------------------------- | +| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"` | +| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | +| `cxx_standard` | `"c++20"` | C++ standard (`c++17`, `c++20`, `c++23`) | +| `compiler` | `"clang"` | Preferred compiler | +| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom` | +| `target` | host | Target triple for cross-compilation | +| `platform` | `"native"` | `native`, `efi` | +| `cflags` | `[]` | Additional C/C++/ASM flags | +| `ldflags` | `[]` | Additional linker flags | +| `filename` | `""` | Custom output file name | +| `extension` | `""` | Custom file extension | +| `roots` | `["src"]` | Source root directories | +| `exclude` | `[]` | Exclude patterns | +| `include` | `[]` | Additional include directories | +| `src_disable` | `false` | Disable auto source discovery | +| `inherit` | `false` | Inherit build from workspace root | +| `clean` | `[]` | Glob patterns for custom clean paths | +| `out_dir` | `""` | Custom output directory | +| `workspace_only` | `false` | Workspace-only, not built standalone | +| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | +| `opt_level` | `"0"` (debug) / `"3"` (release) | Optimization level: `0`-`3`, `"s"`, `"z"` | +| `debug` | `true` (debug) / `false` (release) | Emit debug symbols (`-g`) | +| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | +| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | +| `warnings` | `["all", "extra"]` (debug) / `[]` (release) | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`) | +| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | +| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | +| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | + +Settings from raw config (not in typed struct): + +* `pkg_config` — list of pkg-config packages +* `ldscript` — linker script path +* `build.steps` / `build.post_steps` — codegen steps + +Example: + +```toml +[build] +language = "c++" +standard = "c23" +cxx_standard = "c++23" +compiler = "clang" +kind = "sharedlib" +cflags = ["-Wall", "-Wextra"] +opt_level = "z" +lto = true +strip = true +panic = "abort" +codegen-units = "2" +``` + +## [toolchain] + +```toml +[toolchain] +cc = "/usr/bin/clang" +cxx = "/usr/bin/clang++" +as = "/usr/bin/as" +ar = "/usr/bin/ar" +ld = "/usr/bin/ld.lld" +``` + +Raw config also supports `uic`, `moc`, `rcc` for Qt codegen. + +## [dependencies] + +See [dependencies](/docs/reference/dependencies). + +## [run] + +```toml +[run] +cmd = "./target/{profile}/{name}" +``` + +Substitutions: + +* `{version}` — package version +* `{version_major}`, `{version_minor}`, `{version_patch}`, `{version_suffix}`, `{version_suffix_dash}` — version parts +* `{profile}` — debug / release +* `{name}` — package name + +Default `cmd` = `./target/{profile}/{name}` (macOS/Windows) or `./target/\/\/\` (Linux). + +## [workspace] + +See [workspaces](/docs/reference/workspaces). From 6302cc5d37d8e52c58c41fec30d85e35596ab0d2 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:39:19 +0800 Subject: [PATCH 085/274] New translations dependencies.mdx (German) [ci skip] --- .../de-DE/docs/reference/dependencies.mdx.mdx | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/reference/dependencies.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/reference/dependencies.mdx.mdx b/docs-crowdin-export/de-DE/docs/reference/dependencies.mdx.mdx new file mode 100644 index 0000000..a2a88a9 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/reference/dependencies.mdx.mdx @@ -0,0 +1,84 @@ +--- +sidebar_label: Dependencies +--- + +# Dependencies + +## Formats + +The `[dependencies]` section supports three formats: + +### String (registry) + +```toml +[dependencies] +fmt = "10.1.1" +spdlog = "1.12" +catch2 = "3.4.0" +``` + +The version string is used as-is for registry lookup. + +### Table (git) + +```toml +[dependencies] +fmt = { git = "https://github.com/fmtlib/fmt", tag = "10.1.1" } +``` + +Fields: `git`, `branch`, `tag`, `rev`. + +### Table (path) + +```toml +[dependencies] +mylib = { path = "../mylib" } +``` + +## Registry + +DCR uses a package registry for dependency lookup by name. + +```toml +# ~/.dcr/config.toml +[[registry]] +name = "default" +url = "https://index.dcr.pm" +``` + +Registry priority: order in `config.toml`. The `DCR_INDEX_PATH` variable overrides the path to `index.json`. + +## Git dependencies + +DCR clones git repositories via `git2`: + +* `branch` — switch to a branch +* `tag` — switch to a tag +* `rev` — switch to a specific commit +* `features` — feature flags (parsed, but does not affect build) + +Cache path: `~/.dcr/git/\/`. + +## Path dependencies + +Local paths. DCR automatically discovers include and lib directories from the neighbor's `dcr.toml`. + +```toml +[dependencies] +mylib = { path = "/abs/path/to/lib" } +mylib = { path = "../relative/path" } +``` + +## dcr.lock + +Dependency lock file. Contains package names and sources. + +Created during `dcr build` when registry dependencies are present. Not updated during `dcr add` — only on the next `dcr build`. + +## Resolution process + +1. Load all dependencies (registry → git → path) +2. For path deps: recursively read their `dcr.toml` +3. For registry deps: search `index.json` +4. For git deps: clone to cache +5. Collect `include_dirs`, `lib_dirs`, `libs` for the compiler From 1ebc741c6dbc636bcddcd4164b0ac1c55923b64f Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:39:21 +0800 Subject: [PATCH 086/274] New translations dependencies.mdx (Polish) [ci skip] --- .../pl-PL/docs/reference/dependencies.mdx.mdx | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/reference/dependencies.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/reference/dependencies.mdx.mdx b/docs-crowdin-export/pl-PL/docs/reference/dependencies.mdx.mdx new file mode 100644 index 0000000..a2a88a9 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/reference/dependencies.mdx.mdx @@ -0,0 +1,84 @@ +--- +sidebar_label: Dependencies +--- + +# Dependencies + +## Formats + +The `[dependencies]` section supports three formats: + +### String (registry) + +```toml +[dependencies] +fmt = "10.1.1" +spdlog = "1.12" +catch2 = "3.4.0" +``` + +The version string is used as-is for registry lookup. + +### Table (git) + +```toml +[dependencies] +fmt = { git = "https://github.com/fmtlib/fmt", tag = "10.1.1" } +``` + +Fields: `git`, `branch`, `tag`, `rev`. + +### Table (path) + +```toml +[dependencies] +mylib = { path = "../mylib" } +``` + +## Registry + +DCR uses a package registry for dependency lookup by name. + +```toml +# ~/.dcr/config.toml +[[registry]] +name = "default" +url = "https://index.dcr.pm" +``` + +Registry priority: order in `config.toml`. The `DCR_INDEX_PATH` variable overrides the path to `index.json`. + +## Git dependencies + +DCR clones git repositories via `git2`: + +* `branch` — switch to a branch +* `tag` — switch to a tag +* `rev` — switch to a specific commit +* `features` — feature flags (parsed, but does not affect build) + +Cache path: `~/.dcr/git/\/`. + +## Path dependencies + +Local paths. DCR automatically discovers include and lib directories from the neighbor's `dcr.toml`. + +```toml +[dependencies] +mylib = { path = "/abs/path/to/lib" } +mylib = { path = "../relative/path" } +``` + +## dcr.lock + +Dependency lock file. Contains package names and sources. + +Created during `dcr build` when registry dependencies are present. Not updated during `dcr add` — only on the next `dcr build`. + +## Resolution process + +1. Load all dependencies (registry → git → path) +2. For path deps: recursively read their `dcr.toml` +3. For registry deps: search `index.json` +4. For git deps: clone to cache +5. Collect `include_dirs`, `lib_dirs`, `libs` for the compiler From b3c3583d79f16406c21a982d5aed18e2c5bc548c Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:39:24 +0800 Subject: [PATCH 087/274] New translations dependencies.mdx (Russian) [ci skip] --- .../ru-RU/docs/reference/dependencies.mdx.mdx | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/reference/dependencies.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/reference/dependencies.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/dependencies.mdx.mdx new file mode 100644 index 0000000..a2a88a9 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/reference/dependencies.mdx.mdx @@ -0,0 +1,84 @@ +--- +sidebar_label: Dependencies +--- + +# Dependencies + +## Formats + +The `[dependencies]` section supports three formats: + +### String (registry) + +```toml +[dependencies] +fmt = "10.1.1" +spdlog = "1.12" +catch2 = "3.4.0" +``` + +The version string is used as-is for registry lookup. + +### Table (git) + +```toml +[dependencies] +fmt = { git = "https://github.com/fmtlib/fmt", tag = "10.1.1" } +``` + +Fields: `git`, `branch`, `tag`, `rev`. + +### Table (path) + +```toml +[dependencies] +mylib = { path = "../mylib" } +``` + +## Registry + +DCR uses a package registry for dependency lookup by name. + +```toml +# ~/.dcr/config.toml +[[registry]] +name = "default" +url = "https://index.dcr.pm" +``` + +Registry priority: order in `config.toml`. The `DCR_INDEX_PATH` variable overrides the path to `index.json`. + +## Git dependencies + +DCR clones git repositories via `git2`: + +* `branch` — switch to a branch +* `tag` — switch to a tag +* `rev` — switch to a specific commit +* `features` — feature flags (parsed, but does not affect build) + +Cache path: `~/.dcr/git/\/`. + +## Path dependencies + +Local paths. DCR automatically discovers include and lib directories from the neighbor's `dcr.toml`. + +```toml +[dependencies] +mylib = { path = "/abs/path/to/lib" } +mylib = { path = "../relative/path" } +``` + +## dcr.lock + +Dependency lock file. Contains package names and sources. + +Created during `dcr build` when registry dependencies are present. Not updated during `dcr add` — only on the next `dcr build`. + +## Resolution process + +1. Load all dependencies (registry → git → path) +2. For path deps: recursively read their `dcr.toml` +3. For registry deps: search `index.json` +4. For git deps: clone to cache +5. Collect `include_dirs`, `lib_dirs`, `libs` for the compiler From 00e9dacd14f5645dd87bc17369c69c03522fc51e Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:39:26 +0800 Subject: [PATCH 088/274] New translations dependencies.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/reference/dependencies.mdx.mdx | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/reference/dependencies.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/reference/dependencies.mdx.mdx b/docs-crowdin-export/uk-UA/docs/reference/dependencies.mdx.mdx new file mode 100644 index 0000000..a2a88a9 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/reference/dependencies.mdx.mdx @@ -0,0 +1,84 @@ +--- +sidebar_label: Dependencies +--- + +# Dependencies + +## Formats + +The `[dependencies]` section supports three formats: + +### String (registry) + +```toml +[dependencies] +fmt = "10.1.1" +spdlog = "1.12" +catch2 = "3.4.0" +``` + +The version string is used as-is for registry lookup. + +### Table (git) + +```toml +[dependencies] +fmt = { git = "https://github.com/fmtlib/fmt", tag = "10.1.1" } +``` + +Fields: `git`, `branch`, `tag`, `rev`. + +### Table (path) + +```toml +[dependencies] +mylib = { path = "../mylib" } +``` + +## Registry + +DCR uses a package registry for dependency lookup by name. + +```toml +# ~/.dcr/config.toml +[[registry]] +name = "default" +url = "https://index.dcr.pm" +``` + +Registry priority: order in `config.toml`. The `DCR_INDEX_PATH` variable overrides the path to `index.json`. + +## Git dependencies + +DCR clones git repositories via `git2`: + +* `branch` — switch to a branch +* `tag` — switch to a tag +* `rev` — switch to a specific commit +* `features` — feature flags (parsed, but does not affect build) + +Cache path: `~/.dcr/git/\/`. + +## Path dependencies + +Local paths. DCR automatically discovers include and lib directories from the neighbor's `dcr.toml`. + +```toml +[dependencies] +mylib = { path = "/abs/path/to/lib" } +mylib = { path = "../relative/path" } +``` + +## dcr.lock + +Dependency lock file. Contains package names and sources. + +Created during `dcr build` when registry dependencies are present. Not updated during `dcr add` — only on the next `dcr build`. + +## Resolution process + +1. Load all dependencies (registry → git → path) +2. For path deps: recursively read their `dcr.toml` +3. For registry deps: search `index.json` +4. For git deps: clone to cache +5. Collect `include_dirs`, `lib_dirs`, `libs` for the compiler From cefaf40a0a7ffee799a347ee2c353cf160e8e646 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:39:29 +0800 Subject: [PATCH 089/274] New translations environment-variables.mdx (German) [ci skip] --- .../reference/environment-variables.mdx.mdx | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/reference/environment-variables.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/reference/environment-variables.mdx.mdx b/docs-crowdin-export/de-DE/docs/reference/environment-variables.mdx.mdx new file mode 100644 index 0000000..8b75814 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/reference/environment-variables.mdx.mdx @@ -0,0 +1,60 @@ +--- +sidebar_label: Environment variables +--- + +# Environment Variables + +## DCR_COMPILER + +Overrides the compiler for all languages. **Highest priority.** + +```bash +export DCR_COMPILER=clang +dcr build +``` + +Compiler resolution priority: + +1. `DCR_COMPILER` (env) +2. `DCR_CC` / `DCR_CXX` / `DCR_AS` (env) +3. `[toolchain]` (dcr.toml) +4. `build.compiler` (dcr.toml) +5. `PATH` + +## DCR_CC / DCR_CXX / DCR_AS + +Per-language override (lower priority than `DCR_COMPILER`, higher than `[toolchain]`). + +```bash +export DCR_CC=gcc-14 +export DCR_CXX=g++-14 +export DCR_AS=arm-linux-gnueabihf-as +``` + +## DCR_LD / DCR_AR + +Override linker and archiver. + +```bash +export DCR_LD=ld.lld +export DCR_AR=llvm-ar +``` + +## DCR_DEBUG + +Enables debug mode — prints all compilation commands to stderr before execution. + +```bash +export DCR_DEBUG=1 +dcr build +``` + +## DCR_INDEX_PATH + +Overrides the path to the registry `index.json`. + +```bash +export DCR_INDEX_PATH=/custom/path/index.json +``` + +Default: `~/.dcr/index.json`. From 60fe9864dcf62f9ecff262a26cabf97299d471ac Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:39:31 +0800 Subject: [PATCH 090/274] New translations environment-variables.mdx (Polish) [ci skip] --- .../reference/environment-variables.mdx.mdx | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/reference/environment-variables.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/reference/environment-variables.mdx.mdx b/docs-crowdin-export/pl-PL/docs/reference/environment-variables.mdx.mdx new file mode 100644 index 0000000..8b75814 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/reference/environment-variables.mdx.mdx @@ -0,0 +1,60 @@ +--- +sidebar_label: Environment variables +--- + +# Environment Variables + +## DCR_COMPILER + +Overrides the compiler for all languages. **Highest priority.** + +```bash +export DCR_COMPILER=clang +dcr build +``` + +Compiler resolution priority: + +1. `DCR_COMPILER` (env) +2. `DCR_CC` / `DCR_CXX` / `DCR_AS` (env) +3. `[toolchain]` (dcr.toml) +4. `build.compiler` (dcr.toml) +5. `PATH` + +## DCR_CC / DCR_CXX / DCR_AS + +Per-language override (lower priority than `DCR_COMPILER`, higher than `[toolchain]`). + +```bash +export DCR_CC=gcc-14 +export DCR_CXX=g++-14 +export DCR_AS=arm-linux-gnueabihf-as +``` + +## DCR_LD / DCR_AR + +Override linker and archiver. + +```bash +export DCR_LD=ld.lld +export DCR_AR=llvm-ar +``` + +## DCR_DEBUG + +Enables debug mode — prints all compilation commands to stderr before execution. + +```bash +export DCR_DEBUG=1 +dcr build +``` + +## DCR_INDEX_PATH + +Overrides the path to the registry `index.json`. + +```bash +export DCR_INDEX_PATH=/custom/path/index.json +``` + +Default: `~/.dcr/index.json`. From 7856b5a1b1e40bc6dff806fd6949dcac6821d915 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:39:33 +0800 Subject: [PATCH 091/274] New translations environment-variables.mdx (Russian) [ci skip] --- .../reference/environment-variables.mdx.mdx | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/reference/environment-variables.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/reference/environment-variables.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/environment-variables.mdx.mdx new file mode 100644 index 0000000..8b75814 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/reference/environment-variables.mdx.mdx @@ -0,0 +1,60 @@ +--- +sidebar_label: Environment variables +--- + +# Environment Variables + +## DCR_COMPILER + +Overrides the compiler for all languages. **Highest priority.** + +```bash +export DCR_COMPILER=clang +dcr build +``` + +Compiler resolution priority: + +1. `DCR_COMPILER` (env) +2. `DCR_CC` / `DCR_CXX` / `DCR_AS` (env) +3. `[toolchain]` (dcr.toml) +4. `build.compiler` (dcr.toml) +5. `PATH` + +## DCR_CC / DCR_CXX / DCR_AS + +Per-language override (lower priority than `DCR_COMPILER`, higher than `[toolchain]`). + +```bash +export DCR_CC=gcc-14 +export DCR_CXX=g++-14 +export DCR_AS=arm-linux-gnueabihf-as +``` + +## DCR_LD / DCR_AR + +Override linker and archiver. + +```bash +export DCR_LD=ld.lld +export DCR_AR=llvm-ar +``` + +## DCR_DEBUG + +Enables debug mode — prints all compilation commands to stderr before execution. + +```bash +export DCR_DEBUG=1 +dcr build +``` + +## DCR_INDEX_PATH + +Overrides the path to the registry `index.json`. + +```bash +export DCR_INDEX_PATH=/custom/path/index.json +``` + +Default: `~/.dcr/index.json`. From a04952c5f73f84bcf35457fc00066eb0667b52d9 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:39:36 +0800 Subject: [PATCH 092/274] New translations environment-variables.mdx (Ukrainian) [ci skip] --- .../reference/environment-variables.mdx.mdx | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/reference/environment-variables.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/reference/environment-variables.mdx.mdx b/docs-crowdin-export/uk-UA/docs/reference/environment-variables.mdx.mdx new file mode 100644 index 0000000..8b75814 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/reference/environment-variables.mdx.mdx @@ -0,0 +1,60 @@ +--- +sidebar_label: Environment variables +--- + +# Environment Variables + +## DCR_COMPILER + +Overrides the compiler for all languages. **Highest priority.** + +```bash +export DCR_COMPILER=clang +dcr build +``` + +Compiler resolution priority: + +1. `DCR_COMPILER` (env) +2. `DCR_CC` / `DCR_CXX` / `DCR_AS` (env) +3. `[toolchain]` (dcr.toml) +4. `build.compiler` (dcr.toml) +5. `PATH` + +## DCR_CC / DCR_CXX / DCR_AS + +Per-language override (lower priority than `DCR_COMPILER`, higher than `[toolchain]`). + +```bash +export DCR_CC=gcc-14 +export DCR_CXX=g++-14 +export DCR_AS=arm-linux-gnueabihf-as +``` + +## DCR_LD / DCR_AR + +Override linker and archiver. + +```bash +export DCR_LD=ld.lld +export DCR_AR=llvm-ar +``` + +## DCR_DEBUG + +Enables debug mode — prints all compilation commands to stderr before execution. + +```bash +export DCR_DEBUG=1 +dcr build +``` + +## DCR_INDEX_PATH + +Overrides the path to the registry `index.json`. + +```bash +export DCR_INDEX_PATH=/custom/path/index.json +``` + +Default: `~/.dcr/index.json`. From fbb2ac8cbc9a72a5375808b0b0d57362f1e03e66 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:39:38 +0800 Subject: [PATCH 093/274] New translations platform-support.mdx (German) [ci skip] --- .../docs/reference/platform-support.mdx.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/reference/platform-support.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/reference/platform-support.mdx.mdx b/docs-crowdin-export/de-DE/docs/reference/platform-support.mdx.mdx new file mode 100644 index 0000000..cc63c00 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/reference/platform-support.mdx.mdx @@ -0,0 +1,51 @@ +--- +sidebar_label: Platform support +--- + +# Platform Support + +## Target Triples + +DCR normalizes target triples. Short platform names are expanded to full triples. + +### Linux + +``` +target/-unknown-linux-gnu// +``` + +Architectures: `x86_64`, `aarch64` (host-detected). + +Artifact type: ELF. Extensions: `.so` (sharedlib), `.a` (staticlib). + +### macOS + +``` +target// +``` + +Architectures: `x86_64`, `aarch64` (host-detected). + +Extensions: `.dylib` (sharedlib), `.a` (staticlib). + +### Windows + +``` +target// +``` + +Architectures: `x86_64`, `aarch64`. + +Extensions: `.exe` (bin), `.lib` (staticlib), `.dll` (sharedlib), `.efi` (UEFI). + +### BSD + +``` +target/-unknown-// +``` + +Supported systems: `freebsd`, `openbsd`, `netbsd`, `dragonfly`. + +## Host Detection + +DCR uses `std::env::consts::ARCH` and `std::env::consts::OS` for host platform detection. Used as fallback when `target` is not specified. From b715d7a7ea2525b661f7041aff1d1197df6a37f4 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:39:41 +0800 Subject: [PATCH 094/274] New translations platform-support.mdx (Polish) [ci skip] --- .../docs/reference/platform-support.mdx.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/reference/platform-support.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/reference/platform-support.mdx.mdx b/docs-crowdin-export/pl-PL/docs/reference/platform-support.mdx.mdx new file mode 100644 index 0000000..cc63c00 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/reference/platform-support.mdx.mdx @@ -0,0 +1,51 @@ +--- +sidebar_label: Platform support +--- + +# Platform Support + +## Target Triples + +DCR normalizes target triples. Short platform names are expanded to full triples. + +### Linux + +``` +target/-unknown-linux-gnu// +``` + +Architectures: `x86_64`, `aarch64` (host-detected). + +Artifact type: ELF. Extensions: `.so` (sharedlib), `.a` (staticlib). + +### macOS + +``` +target// +``` + +Architectures: `x86_64`, `aarch64` (host-detected). + +Extensions: `.dylib` (sharedlib), `.a` (staticlib). + +### Windows + +``` +target// +``` + +Architectures: `x86_64`, `aarch64`. + +Extensions: `.exe` (bin), `.lib` (staticlib), `.dll` (sharedlib), `.efi` (UEFI). + +### BSD + +``` +target/-unknown-// +``` + +Supported systems: `freebsd`, `openbsd`, `netbsd`, `dragonfly`. + +## Host Detection + +DCR uses `std::env::consts::ARCH` and `std::env::consts::OS` for host platform detection. Used as fallback when `target` is not specified. From c0bcb5b0eba3d1c774438257952a6a64c06feff9 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:39:43 +0800 Subject: [PATCH 095/274] New translations platform-support.mdx (Russian) [ci skip] --- .../docs/reference/platform-support.mdx.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/reference/platform-support.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/reference/platform-support.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/platform-support.mdx.mdx new file mode 100644 index 0000000..cc63c00 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/reference/platform-support.mdx.mdx @@ -0,0 +1,51 @@ +--- +sidebar_label: Platform support +--- + +# Platform Support + +## Target Triples + +DCR normalizes target triples. Short platform names are expanded to full triples. + +### Linux + +``` +target/-unknown-linux-gnu// +``` + +Architectures: `x86_64`, `aarch64` (host-detected). + +Artifact type: ELF. Extensions: `.so` (sharedlib), `.a` (staticlib). + +### macOS + +``` +target// +``` + +Architectures: `x86_64`, `aarch64` (host-detected). + +Extensions: `.dylib` (sharedlib), `.a` (staticlib). + +### Windows + +``` +target// +``` + +Architectures: `x86_64`, `aarch64`. + +Extensions: `.exe` (bin), `.lib` (staticlib), `.dll` (sharedlib), `.efi` (UEFI). + +### BSD + +``` +target/-unknown-// +``` + +Supported systems: `freebsd`, `openbsd`, `netbsd`, `dragonfly`. + +## Host Detection + +DCR uses `std::env::consts::ARCH` and `std::env::consts::OS` for host platform detection. Used as fallback when `target` is not specified. From 9eb10ba6ab8fc2841a0eae3cbad688ad219e17c1 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:39:45 +0800 Subject: [PATCH 096/274] New translations platform-support.mdx (Ukrainian) [ci skip] --- .../docs/reference/platform-support.mdx.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/reference/platform-support.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/reference/platform-support.mdx.mdx b/docs-crowdin-export/uk-UA/docs/reference/platform-support.mdx.mdx new file mode 100644 index 0000000..cc63c00 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/reference/platform-support.mdx.mdx @@ -0,0 +1,51 @@ +--- +sidebar_label: Platform support +--- + +# Platform Support + +## Target Triples + +DCR normalizes target triples. Short platform names are expanded to full triples. + +### Linux + +``` +target/-unknown-linux-gnu// +``` + +Architectures: `x86_64`, `aarch64` (host-detected). + +Artifact type: ELF. Extensions: `.so` (sharedlib), `.a` (staticlib). + +### macOS + +``` +target// +``` + +Architectures: `x86_64`, `aarch64` (host-detected). + +Extensions: `.dylib` (sharedlib), `.a` (staticlib). + +### Windows + +``` +target// +``` + +Architectures: `x86_64`, `aarch64`. + +Extensions: `.exe` (bin), `.lib` (staticlib), `.dll` (sharedlib), `.efi` (UEFI). + +### BSD + +``` +target/-unknown-// +``` + +Supported systems: `freebsd`, `openbsd`, `netbsd`, `dragonfly`. + +## Host Detection + +DCR uses `std::env::consts::ARCH` and `std::env::consts::OS` for host platform detection. Used as fallback when `target` is not specified. From fae2c4cc85797112b0f73dd118f11613bb66df4a Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:39:48 +0800 Subject: [PATCH 097/274] New translations workspaces.mdx (German) [ci skip] --- .../de-DE/docs/reference/workspaces.mdx.mdx | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/reference/workspaces.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/reference/workspaces.mdx.mdx b/docs-crowdin-export/de-DE/docs/reference/workspaces.mdx.mdx new file mode 100644 index 0000000..a0c2b4d --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/reference/workspaces.mdx.mdx @@ -0,0 +1,67 @@ +--- +sidebar_label: Workspaces +--- + +# Workspaces + +Workspaces allow managing multiple packages in a single repository. + +## Configuration + +```toml +[workspace.lib-core] +path = "lib-core" + +[workspace.lib-utils] +path = "lib-utils" +deps = ["lib-core"] + +[workspace.app] +path = "app" +deps = ["lib-core", "lib-utils"] +main = true +``` + +### Member fields + +| Field | Description | +| ------ | ------------------------------------------------ | +| `path` | Path to the package (relative to workspace root) | +| `deps` | Dependencies on other members | +| `main` | Mark as the main package | + +## Topological sort + +DCR automatically sorts packages by dependencies: package A is built before B if B depends on A. + +Cyclic dependencies are detected and cause an error. + +## Build + +```bash +dcr build # build all packages in dependency order +dcr build --workspace app # build only app (dependencies built automatically) +``` + +When building a workspace, member outputs (libraries) are automatically added to include/lib paths of dependent packages. + +## Clean + +```bash +dcr clean # clean only root target/ +dcr clean --all # clean target/ of all packages +``` + +## Inheritance + +If a member has `inherit = true` in its `[build]` section, fields from the root `[build]` are merged into the member: + +```toml +# root dcr.toml +[build] +inherit = true +language = "c" +standard = "c17" + +# member inherits language and standard +``` From 72767955b87d6b72e1160e9dd2cb6e5d8ac4f439 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:39:50 +0800 Subject: [PATCH 098/274] New translations workspaces.mdx (Polish) [ci skip] --- .../pl-PL/docs/reference/workspaces.mdx.mdx | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/reference/workspaces.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/reference/workspaces.mdx.mdx b/docs-crowdin-export/pl-PL/docs/reference/workspaces.mdx.mdx new file mode 100644 index 0000000..a0c2b4d --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/reference/workspaces.mdx.mdx @@ -0,0 +1,67 @@ +--- +sidebar_label: Workspaces +--- + +# Workspaces + +Workspaces allow managing multiple packages in a single repository. + +## Configuration + +```toml +[workspace.lib-core] +path = "lib-core" + +[workspace.lib-utils] +path = "lib-utils" +deps = ["lib-core"] + +[workspace.app] +path = "app" +deps = ["lib-core", "lib-utils"] +main = true +``` + +### Member fields + +| Field | Description | +| ------ | ------------------------------------------------ | +| `path` | Path to the package (relative to workspace root) | +| `deps` | Dependencies on other members | +| `main` | Mark as the main package | + +## Topological sort + +DCR automatically sorts packages by dependencies: package A is built before B if B depends on A. + +Cyclic dependencies are detected and cause an error. + +## Build + +```bash +dcr build # build all packages in dependency order +dcr build --workspace app # build only app (dependencies built automatically) +``` + +When building a workspace, member outputs (libraries) are automatically added to include/lib paths of dependent packages. + +## Clean + +```bash +dcr clean # clean only root target/ +dcr clean --all # clean target/ of all packages +``` + +## Inheritance + +If a member has `inherit = true` in its `[build]` section, fields from the root `[build]` are merged into the member: + +```toml +# root dcr.toml +[build] +inherit = true +language = "c" +standard = "c17" + +# member inherits language and standard +``` From 8afe307c5c9e535f1f5bc3936cba174c7e9d7867 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:39:53 +0800 Subject: [PATCH 099/274] New translations workspaces.mdx (Russian) [ci skip] --- .../ru-RU/docs/reference/workspaces.mdx.mdx | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/reference/workspaces.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/reference/workspaces.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/workspaces.mdx.mdx new file mode 100644 index 0000000..a0c2b4d --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/reference/workspaces.mdx.mdx @@ -0,0 +1,67 @@ +--- +sidebar_label: Workspaces +--- + +# Workspaces + +Workspaces allow managing multiple packages in a single repository. + +## Configuration + +```toml +[workspace.lib-core] +path = "lib-core" + +[workspace.lib-utils] +path = "lib-utils" +deps = ["lib-core"] + +[workspace.app] +path = "app" +deps = ["lib-core", "lib-utils"] +main = true +``` + +### Member fields + +| Field | Description | +| ------ | ------------------------------------------------ | +| `path` | Path to the package (relative to workspace root) | +| `deps` | Dependencies on other members | +| `main` | Mark as the main package | + +## Topological sort + +DCR automatically sorts packages by dependencies: package A is built before B if B depends on A. + +Cyclic dependencies are detected and cause an error. + +## Build + +```bash +dcr build # build all packages in dependency order +dcr build --workspace app # build only app (dependencies built automatically) +``` + +When building a workspace, member outputs (libraries) are automatically added to include/lib paths of dependent packages. + +## Clean + +```bash +dcr clean # clean only root target/ +dcr clean --all # clean target/ of all packages +``` + +## Inheritance + +If a member has `inherit = true` in its `[build]` section, fields from the root `[build]` are merged into the member: + +```toml +# root dcr.toml +[build] +inherit = true +language = "c" +standard = "c17" + +# member inherits language and standard +``` From e5203315018c2e2637c8a3f6213a3156fa5a1ba1 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:39:55 +0800 Subject: [PATCH 100/274] New translations workspaces.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/reference/workspaces.mdx.mdx | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/reference/workspaces.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/reference/workspaces.mdx.mdx b/docs-crowdin-export/uk-UA/docs/reference/workspaces.mdx.mdx new file mode 100644 index 0000000..a0c2b4d --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/reference/workspaces.mdx.mdx @@ -0,0 +1,67 @@ +--- +sidebar_label: Workspaces +--- + +# Workspaces + +Workspaces allow managing multiple packages in a single repository. + +## Configuration + +```toml +[workspace.lib-core] +path = "lib-core" + +[workspace.lib-utils] +path = "lib-utils" +deps = ["lib-core"] + +[workspace.app] +path = "app" +deps = ["lib-core", "lib-utils"] +main = true +``` + +### Member fields + +| Field | Description | +| ------ | ------------------------------------------------ | +| `path` | Path to the package (relative to workspace root) | +| `deps` | Dependencies on other members | +| `main` | Mark as the main package | + +## Topological sort + +DCR automatically sorts packages by dependencies: package A is built before B if B depends on A. + +Cyclic dependencies are detected and cause an error. + +## Build + +```bash +dcr build # build all packages in dependency order +dcr build --workspace app # build only app (dependencies built automatically) +``` + +When building a workspace, member outputs (libraries) are automatically added to include/lib paths of dependent packages. + +## Clean + +```bash +dcr clean # clean only root target/ +dcr clean --all # clean target/ of all packages +``` + +## Inheritance + +If a member has `inherit = true` in its `[build]` section, fields from the root `[build]` are merged into the member: + +```toml +# root dcr.toml +[build] +inherit = true +language = "c" +standard = "c17" + +# member inherits language and standard +``` From d72f73a0a3ddd3e33a9cefbb28b216a777d108f9 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:39:57 +0800 Subject: [PATCH 101/274] New translations self-update.mdx (German) [ci skip] --- .../de-DE/docs/self-update.mdx.mdx | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/self-update.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/self-update.mdx.mdx b/docs-crowdin-export/de-DE/docs/self-update.mdx.mdx new file mode 100644 index 0000000..f9e7e88 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/self-update.mdx.mdx @@ -0,0 +1,46 @@ +--- +sidebar_label: Self Update +--- + +# Self Update + +## dcr --update + +Automatic update to the latest version. Downloads a binary (not an archive) from GitHub Releases and replaces the current executable. + +```bash +dcr --update +``` + +## How it works + +1. DCR detects the current platform and architecture +2. Fetches the latest release from `api.github.com/repos/dexoron/dcr/releases/latest` +3. Compares versions +4. Downloads the matching asset (direct binary URL, not archive) +5. Replaces the current executable via `self_replace` + +## Asset naming + +Pattern: `dcr-\` or `dcr-\.exe` + +| Platform | Asset name | +| -------------- | -------------------------------- | +| Linux x86_64 | `dcr-x86_64-unknown-linux-gnu` | +| macOS x86_64 | `dcr-x86_64-apple-darwin` | +| macOS ARM64 | `dcr-aarch64-apple-darwin` | +| Windows x86_64 | `dcr-x86_64-pc-windows-msvc.exe` | + +## AUR + +If DCR was installed via AUR, `--update` shows a warning: + +``` +Update via package manager: yay/paru -Syu {package_name} or sudo pacman -Syu {package_name} +``` + +## Errors + +* Cannot detect platform — error +* Cannot fetch release — error with URL +* No write permission — error (use `sudo` or manual install) From 2b40fcd2c5030095ab478860b34348fb38a2fd39 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:40:00 +0800 Subject: [PATCH 102/274] New translations self-update.mdx (Polish) [ci skip] --- .../pl-PL/docs/self-update.mdx.mdx | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/self-update.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/self-update.mdx.mdx b/docs-crowdin-export/pl-PL/docs/self-update.mdx.mdx new file mode 100644 index 0000000..f9e7e88 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/self-update.mdx.mdx @@ -0,0 +1,46 @@ +--- +sidebar_label: Self Update +--- + +# Self Update + +## dcr --update + +Automatic update to the latest version. Downloads a binary (not an archive) from GitHub Releases and replaces the current executable. + +```bash +dcr --update +``` + +## How it works + +1. DCR detects the current platform and architecture +2. Fetches the latest release from `api.github.com/repos/dexoron/dcr/releases/latest` +3. Compares versions +4. Downloads the matching asset (direct binary URL, not archive) +5. Replaces the current executable via `self_replace` + +## Asset naming + +Pattern: `dcr-\` or `dcr-\.exe` + +| Platform | Asset name | +| -------------- | -------------------------------- | +| Linux x86_64 | `dcr-x86_64-unknown-linux-gnu` | +| macOS x86_64 | `dcr-x86_64-apple-darwin` | +| macOS ARM64 | `dcr-aarch64-apple-darwin` | +| Windows x86_64 | `dcr-x86_64-pc-windows-msvc.exe` | + +## AUR + +If DCR was installed via AUR, `--update` shows a warning: + +``` +Update via package manager: yay/paru -Syu {package_name} or sudo pacman -Syu {package_name} +``` + +## Errors + +* Cannot detect platform — error +* Cannot fetch release — error with URL +* No write permission — error (use `sudo` or manual install) From 9cff770aa106089ae390087eab7d9b6cf342d732 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:40:02 +0800 Subject: [PATCH 103/274] New translations self-update.mdx (Russian) [ci skip] --- .../ru-RU/docs/self-update.mdx.mdx | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/self-update.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/self-update.mdx.mdx b/docs-crowdin-export/ru-RU/docs/self-update.mdx.mdx new file mode 100644 index 0000000..f9e7e88 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/self-update.mdx.mdx @@ -0,0 +1,46 @@ +--- +sidebar_label: Self Update +--- + +# Self Update + +## dcr --update + +Automatic update to the latest version. Downloads a binary (not an archive) from GitHub Releases and replaces the current executable. + +```bash +dcr --update +``` + +## How it works + +1. DCR detects the current platform and architecture +2. Fetches the latest release from `api.github.com/repos/dexoron/dcr/releases/latest` +3. Compares versions +4. Downloads the matching asset (direct binary URL, not archive) +5. Replaces the current executable via `self_replace` + +## Asset naming + +Pattern: `dcr-\` or `dcr-\.exe` + +| Platform | Asset name | +| -------------- | -------------------------------- | +| Linux x86_64 | `dcr-x86_64-unknown-linux-gnu` | +| macOS x86_64 | `dcr-x86_64-apple-darwin` | +| macOS ARM64 | `dcr-aarch64-apple-darwin` | +| Windows x86_64 | `dcr-x86_64-pc-windows-msvc.exe` | + +## AUR + +If DCR was installed via AUR, `--update` shows a warning: + +``` +Update via package manager: yay/paru -Syu {package_name} or sudo pacman -Syu {package_name} +``` + +## Errors + +* Cannot detect platform — error +* Cannot fetch release — error with URL +* No write permission — error (use `sudo` or manual install) From 85455854803ecc302aa8c1f680dcc906923bd0ee Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:40:05 +0800 Subject: [PATCH 104/274] New translations self-update.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/self-update.mdx.mdx | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/self-update.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/self-update.mdx.mdx b/docs-crowdin-export/uk-UA/docs/self-update.mdx.mdx new file mode 100644 index 0000000..f9e7e88 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/self-update.mdx.mdx @@ -0,0 +1,46 @@ +--- +sidebar_label: Self Update +--- + +# Self Update + +## dcr --update + +Automatic update to the latest version. Downloads a binary (not an archive) from GitHub Releases and replaces the current executable. + +```bash +dcr --update +``` + +## How it works + +1. DCR detects the current platform and architecture +2. Fetches the latest release from `api.github.com/repos/dexoron/dcr/releases/latest` +3. Compares versions +4. Downloads the matching asset (direct binary URL, not archive) +5. Replaces the current executable via `self_replace` + +## Asset naming + +Pattern: `dcr-\` or `dcr-\.exe` + +| Platform | Asset name | +| -------------- | -------------------------------- | +| Linux x86_64 | `dcr-x86_64-unknown-linux-gnu` | +| macOS x86_64 | `dcr-x86_64-apple-darwin` | +| macOS ARM64 | `dcr-aarch64-apple-darwin` | +| Windows x86_64 | `dcr-x86_64-pc-windows-msvc.exe` | + +## AUR + +If DCR was installed via AUR, `--update` shows a warning: + +``` +Update via package manager: yay/paru -Syu {package_name} or sudo pacman -Syu {package_name} +``` + +## Errors + +* Cannot detect platform — error +* Cannot fetch release — error with URL +* No write permission — error (use `sudo` or manual install) From 1f0692dc7d34a6b8964300e7f4a2d6ce478214a3 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:40:07 +0800 Subject: [PATCH 105/274] New translations running-tests.mdx (German) [ci skip] --- .../de-DE/docs/testing/running-tests.mdx.mdx | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/testing/running-tests.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/testing/running-tests.mdx.mdx b/docs-crowdin-export/de-DE/docs/testing/running-tests.mdx.mdx new file mode 100644 index 0000000..934b0ed --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/testing/running-tests.mdx.mdx @@ -0,0 +1,45 @@ +--- +sidebar_label: Running tests +--- + +# Running Tests + +## Execution + +```bash +dcr test +``` + +Builds the project, then compiles and runs test files from `tests/`. + +## Profiles + +```bash +dcr test # debug (default) +dcr test --release # release +dcr test --debug # explicit debug +``` + +## Output + +``` +===================== + Testsuite summary +===================== +TOTAL: 5 +PASS: 3 +SKIP: 1 +FAIL: 1 +===================== +``` + +## Exit code + +* 0 — all tests passed (FAIL = 0) +* 1 — test failures or build error + +## What gets built + +* All `.c` files from `tests/` (`.cpp` not supported) +* Include path: `tests/` (for `dcr_test.h`) +* Linked with project if `package.type = "lib"` or `kind = "staticlib"`/`"sharedlib"` From f3bdded8d46681df71f571c7d67e95107294d771 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:40:09 +0800 Subject: [PATCH 106/274] New translations running-tests.mdx (Polish) [ci skip] --- .../pl-PL/docs/testing/running-tests.mdx.mdx | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/testing/running-tests.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/testing/running-tests.mdx.mdx b/docs-crowdin-export/pl-PL/docs/testing/running-tests.mdx.mdx new file mode 100644 index 0000000..934b0ed --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/testing/running-tests.mdx.mdx @@ -0,0 +1,45 @@ +--- +sidebar_label: Running tests +--- + +# Running Tests + +## Execution + +```bash +dcr test +``` + +Builds the project, then compiles and runs test files from `tests/`. + +## Profiles + +```bash +dcr test # debug (default) +dcr test --release # release +dcr test --debug # explicit debug +``` + +## Output + +``` +===================== + Testsuite summary +===================== +TOTAL: 5 +PASS: 3 +SKIP: 1 +FAIL: 1 +===================== +``` + +## Exit code + +* 0 — all tests passed (FAIL = 0) +* 1 — test failures or build error + +## What gets built + +* All `.c` files from `tests/` (`.cpp` not supported) +* Include path: `tests/` (for `dcr_test.h`) +* Linked with project if `package.type = "lib"` or `kind = "staticlib"`/`"sharedlib"` From d45fc40eff228ff766c393d73f8c43ff548f8ce4 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:40:12 +0800 Subject: [PATCH 107/274] New translations running-tests.mdx (Russian) [ci skip] --- .../ru-RU/docs/testing/running-tests.mdx.mdx | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/testing/running-tests.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/testing/running-tests.mdx.mdx b/docs-crowdin-export/ru-RU/docs/testing/running-tests.mdx.mdx new file mode 100644 index 0000000..934b0ed --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/testing/running-tests.mdx.mdx @@ -0,0 +1,45 @@ +--- +sidebar_label: Running tests +--- + +# Running Tests + +## Execution + +```bash +dcr test +``` + +Builds the project, then compiles and runs test files from `tests/`. + +## Profiles + +```bash +dcr test # debug (default) +dcr test --release # release +dcr test --debug # explicit debug +``` + +## Output + +``` +===================== + Testsuite summary +===================== +TOTAL: 5 +PASS: 3 +SKIP: 1 +FAIL: 1 +===================== +``` + +## Exit code + +* 0 — all tests passed (FAIL = 0) +* 1 — test failures or build error + +## What gets built + +* All `.c` files from `tests/` (`.cpp` not supported) +* Include path: `tests/` (for `dcr_test.h`) +* Linked with project if `package.type = "lib"` or `kind = "staticlib"`/`"sharedlib"` From d437378db5a87a68b2b11768d416be8bdb6a0546 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:40:14 +0800 Subject: [PATCH 108/274] New translations running-tests.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/testing/running-tests.mdx.mdx | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/testing/running-tests.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/testing/running-tests.mdx.mdx b/docs-crowdin-export/uk-UA/docs/testing/running-tests.mdx.mdx new file mode 100644 index 0000000..934b0ed --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/testing/running-tests.mdx.mdx @@ -0,0 +1,45 @@ +--- +sidebar_label: Running tests +--- + +# Running Tests + +## Execution + +```bash +dcr test +``` + +Builds the project, then compiles and runs test files from `tests/`. + +## Profiles + +```bash +dcr test # debug (default) +dcr test --release # release +dcr test --debug # explicit debug +``` + +## Output + +``` +===================== + Testsuite summary +===================== +TOTAL: 5 +PASS: 3 +SKIP: 1 +FAIL: 1 +===================== +``` + +## Exit code + +* 0 — all tests passed (FAIL = 0) +* 1 — test failures or build error + +## What gets built + +* All `.c` files from `tests/` (`.cpp` not supported) +* Include path: `tests/` (for `dcr_test.h`) +* Linked with project if `package.type = "lib"` or `kind = "staticlib"`/`"sharedlib"` From a6e925cd7334cfd399fab1f10df6b8bab9e65481 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:40:16 +0800 Subject: [PATCH 109/274] New translations test-framework.mdx (German) [ci skip] --- .../de-DE/docs/testing/test-framework.mdx.mdx | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/testing/test-framework.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/testing/test-framework.mdx.mdx b/docs-crowdin-export/de-DE/docs/testing/test-framework.mdx.mdx new file mode 100644 index 0000000..ae43679 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/testing/test-framework.mdx.mdx @@ -0,0 +1,69 @@ +--- +sidebar_label: Test framework (EXPECT, TEST, ...) +--- + +# Test Framework + +DCR has a built-in minimal test framework for C. + +## Macros + +### `EXPECT(expr)` + +Asserts that an expression is true. + +```c +EXPECT(1 + 1 == 2); +EXPECT(ptr != NULL); +``` + +### `SKIP(reason)` + +Skips a test with a message. + +```c +SKIP("not implemented on Windows"); +``` + +### `TEST(name)` + +Defines a test. + +```c +TEST(addition) { + EXPECT(1 + 1 == 2); + EXPECT(2 + 2 == 4); +} +``` + +### `TEST_CASE(name)` + +Registers a test case. + +```c +TEST_CASE(math) { + EXPECT(1 + 1 == 2); +} +``` + +## Initialization + +```bash +dcr test --init +``` + +Creates: + +* `tests/dcr_test.h` — framework header (do not edit) +* `tests/test.c` — template with example test + +## Structure + +``` +tests/ +├── dcr_test.h # framework (do not edit) +├── test.c # main tests +└── ... # additional .c test files +``` + +Only `.c` files are compiled (`.cpp` is not supported). From c9ce87896e96d2906a24ce12056bea719127728f Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:40:19 +0800 Subject: [PATCH 110/274] New translations test-framework.mdx (Polish) [ci skip] --- .../pl-PL/docs/testing/test-framework.mdx.mdx | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/testing/test-framework.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/testing/test-framework.mdx.mdx b/docs-crowdin-export/pl-PL/docs/testing/test-framework.mdx.mdx new file mode 100644 index 0000000..ae43679 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/testing/test-framework.mdx.mdx @@ -0,0 +1,69 @@ +--- +sidebar_label: Test framework (EXPECT, TEST, ...) +--- + +# Test Framework + +DCR has a built-in minimal test framework for C. + +## Macros + +### `EXPECT(expr)` + +Asserts that an expression is true. + +```c +EXPECT(1 + 1 == 2); +EXPECT(ptr != NULL); +``` + +### `SKIP(reason)` + +Skips a test with a message. + +```c +SKIP("not implemented on Windows"); +``` + +### `TEST(name)` + +Defines a test. + +```c +TEST(addition) { + EXPECT(1 + 1 == 2); + EXPECT(2 + 2 == 4); +} +``` + +### `TEST_CASE(name)` + +Registers a test case. + +```c +TEST_CASE(math) { + EXPECT(1 + 1 == 2); +} +``` + +## Initialization + +```bash +dcr test --init +``` + +Creates: + +* `tests/dcr_test.h` — framework header (do not edit) +* `tests/test.c` — template with example test + +## Structure + +``` +tests/ +├── dcr_test.h # framework (do not edit) +├── test.c # main tests +└── ... # additional .c test files +``` + +Only `.c` files are compiled (`.cpp` is not supported). From dd3b858825dd4b52a84b1130caf2f5e03ba9e176 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:40:21 +0800 Subject: [PATCH 111/274] New translations test-framework.mdx (Russian) [ci skip] --- .../ru-RU/docs/testing/test-framework.mdx.mdx | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/testing/test-framework.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/testing/test-framework.mdx.mdx b/docs-crowdin-export/ru-RU/docs/testing/test-framework.mdx.mdx new file mode 100644 index 0000000..ae43679 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/testing/test-framework.mdx.mdx @@ -0,0 +1,69 @@ +--- +sidebar_label: Test framework (EXPECT, TEST, ...) +--- + +# Test Framework + +DCR has a built-in minimal test framework for C. + +## Macros + +### `EXPECT(expr)` + +Asserts that an expression is true. + +```c +EXPECT(1 + 1 == 2); +EXPECT(ptr != NULL); +``` + +### `SKIP(reason)` + +Skips a test with a message. + +```c +SKIP("not implemented on Windows"); +``` + +### `TEST(name)` + +Defines a test. + +```c +TEST(addition) { + EXPECT(1 + 1 == 2); + EXPECT(2 + 2 == 4); +} +``` + +### `TEST_CASE(name)` + +Registers a test case. + +```c +TEST_CASE(math) { + EXPECT(1 + 1 == 2); +} +``` + +## Initialization + +```bash +dcr test --init +``` + +Creates: + +* `tests/dcr_test.h` — framework header (do not edit) +* `tests/test.c` — template with example test + +## Structure + +``` +tests/ +├── dcr_test.h # framework (do not edit) +├── test.c # main tests +└── ... # additional .c test files +``` + +Only `.c` files are compiled (`.cpp` is not supported). From 00c554f59aeb1d92e8594da8eb3422c1b4c3ccc6 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 5 Jul 2026 17:40:23 +0800 Subject: [PATCH 112/274] New translations test-framework.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/testing/test-framework.mdx.mdx | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/testing/test-framework.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/testing/test-framework.mdx.mdx b/docs-crowdin-export/uk-UA/docs/testing/test-framework.mdx.mdx new file mode 100644 index 0000000..ae43679 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/testing/test-framework.mdx.mdx @@ -0,0 +1,69 @@ +--- +sidebar_label: Test framework (EXPECT, TEST, ...) +--- + +# Test Framework + +DCR has a built-in minimal test framework for C. + +## Macros + +### `EXPECT(expr)` + +Asserts that an expression is true. + +```c +EXPECT(1 + 1 == 2); +EXPECT(ptr != NULL); +``` + +### `SKIP(reason)` + +Skips a test with a message. + +```c +SKIP("not implemented on Windows"); +``` + +### `TEST(name)` + +Defines a test. + +```c +TEST(addition) { + EXPECT(1 + 1 == 2); + EXPECT(2 + 2 == 4); +} +``` + +### `TEST_CASE(name)` + +Registers a test case. + +```c +TEST_CASE(math) { + EXPECT(1 + 1 == 2); +} +``` + +## Initialization + +```bash +dcr test --init +``` + +Creates: + +* `tests/dcr_test.h` — framework header (do not edit) +* `tests/test.c` — template with example test + +## Structure + +``` +tests/ +├── dcr_test.h # framework (do not edit) +├── test.c # main tests +└── ... # additional .c test files +``` + +Only `.c` files are compiled (`.cpp` is not supported). From 19a1a6c21f9968f665d0bd51805f6448195edd31 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 02:20:51 +0800 Subject: [PATCH 113/274] New translations readme.mdx (Russian) [ci skip] --- docs-crowdin-export/ru-RU/docs/README.mdx.mdx | 78 ++++++++----------- 1 file changed, 34 insertions(+), 44 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/README.mdx.mdx b/docs-crowdin-export/ru-RU/docs/README.mdx.mdx index fba8a6d..06642ec 100644 --- a/docs-crowdin-export/ru-RU/docs/README.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/README.mdx.mdx @@ -1,63 +1,53 @@ --- -sidebar_label: Introduction +sidebar_label: Введение --- -# DCR — C/C++ Build Tool & Package Manager +# DCR — Инструмент сборки C/C++ & Пакетный менеджер
-Quick reference +Быстрая справка ```bash -# Installation +# Установка(Linux/MacOS скрипт) curl -fsSL https://dcr.dexoron.su/install.sh | sh -# Create a project +# Создать проект dcr new my-app cd my-app -# Build and run -dcr build +# Собрать и запустить dcr run - -# Run tests -dcr test - -# Add a dependency -dcr add fmt - -# Generate IDE files -dcr gen vscode ```
-## Contents - -| Section | Description | -| ----------------------------------------------------- | --------------------------------------------- | -| [Getting Started](/docs/getting-started/installation) | Installation and first steps | -| [Commands](/docs/commands/project-commands) | All CLI commands | -| [Reference](/docs/reference/dcr-toml) | Configuration, build, dependencies, platforms | -| [Testing](/docs/testing/test-framework) | Built-in test framework | -| [Recipes](/docs/recipes/cross-to-windows) | Common scenarios | -| [IDE Integration](/docs/ide-integration) | VS Code, CLion, compile_commands.json | -| [Self Update](/docs/self-update) | Auto-update | -| [FAQ](/docs/faq) | Frequently asked questions | -| [Changelog](/docs/changelog) | Version history | -| [License](/docs/license) | DCR and vendored library licenses | -| [Contributing](/docs/contributing) | DCR development | - -## Features - -* **Incremental builds** — mtime + `.d` headers + SHA256 fingerprint -* **Parallel compilation** — thread::scope, atomic task queue -* **4 backends** — gcc/clang, MSVC/clang-cl, GAS (ARM), NASM (x86) -* **7 project kinds** — bin, staticlib, sharedlib, efi, elf, none, custom -* **Cross-compilation** — short names and full triples -* **Profiles** — debug / release with field overrides -* **Workspaces** — multi-package projects with topological sort -* **Registry + Git + Path** — three dependency mechanisms -* **IDE generation** — VS Code, CLion, compile_commands.json, JSON metadata -* **pkg-config** — automatic system library discovery +## Содержание + +| Раздел | Описание | +| ----------------------------------------------------- | -------------------------------------------- | +| [Getting Started](/docs/getting-started/installation) | Установка и первые шаги | +| [Commands](/docs/commands/project-commands) | Все CLI-команды DCR | +| [Reference](/docs/reference/dcr-toml) | Конфигурация, сборка, зависимости, платформы | +| [Testing](/docs/testing/test-framework) | Встроенный фреймворк тестирования | +| [Recipes](/docs/recipes/cross-to-windows) | Типовые сценарии | +| [IDE Integration](/docs/ide-integration) | VS Code, CLion, compile_commands.json | +| [Self Update](/docs/self-update) | Автообновление | +| [FAQ](/docs/faq) | Частые вопросы | +| [Changelog](/docs/changelog) | История версий | +| [License](/docs/license) | Лицензии DCR и вендорных библиотек | +| [Contributing](/docs/contributing) | Разработка DCR | + +## Особенности + +* **Инкрементальная сборка** — mtime + `.d` headers + SHA256 fingerprint +* **Параллельная компиляция** — thread::scope, атомарная очередь задач +* **4 бэкенда** — gcc/clang, MSVC/clang-cl, GAS, NASM +* **7 типов проекта** — bin, staticlib, sharedlib, efi, elf, none, custom +* **Cross-compilation** — short names (linux, windows, macos) и полные triples +* **Профили** — debug / release с переопределением любого поля +* **Workspaces** — мультипакетные проекты с топологической сортировкой +* **Registry + Git + Path** — три механизма зависимостей +* **Генерация IDE** — VS Code, CLion, compile_commands.json, JSON metadata +* **pkg-config** — автоматический поиск системных библиотек * **Per-command `--help`** — `dcr build --help`, `dcr new --help`, etc. * **Man pages** — `man dcr`, `man dcr-build`, `man dcr-new` From 8c032da3ee1f09a740b30eeafb864594be5cabbc Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 02:20:54 +0800 Subject: [PATCH 114/274] New translations changelog.mdx (Russian) [ci skip] --- .../ru-RU/docs/changelog.mdx.mdx | 64 +++++++++---------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/changelog.mdx.mdx b/docs-crowdin-export/ru-RU/docs/changelog.mdx.mdx index 722bf4e..5f9090f 100644 --- a/docs-crowdin-export/ru-RU/docs/changelog.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/changelog.mdx.mdx @@ -6,7 +6,7 @@ sidebar_label: Changelog ## 0.7.1 (2026-06-02) -### Added +### Добавлено: * **`--help` for all commands** — `dcr build --help`, `dcr run --help`, `dcr new --help`, `dcr init --help`, `dcr clean --help`, `dcr add --help`, `dcr fmt --help`, @@ -29,7 +29,7 @@ sidebar_label: Changelog * **Snap publishing** — automated Snapcraft publishing in CI. * **Snap badge** — in README. -### Changed +### Изменено: * **`validate_package_name` made public** — callable from CLI commands. * **README platform table** — reorganized: libc variants as separate OS rows, @@ -38,7 +38,7 @@ sidebar_label: Changelog * **`tree.rs`, `fmt.rs`, and `setup.rs`** — now accept arguments for `--help`. * **README install commands** — `| bash` → `| sh` for POSIX compatibility. -### Fixed +### Исправлено: * **`dcr new \` creates directory then fails** — validation now happens before any file operations. @@ -52,40 +52,40 @@ sidebar_label: Changelog ### Added -* **OpenBSD and NetBSD target support** — full platform routing with dynamic target triples using `std::env::consts::ARCH` and `std::env::consts::OS`. Affects `build`, `run`, `clean` commands and the platform module. -* **`src/platform/bsd.rs`** — new BSD platform module (shared by FreeBSD, OpenBSD, NetBSD) providing `bin_path`, `lib_path`, `elf_path`, `efi_path`, `shared_lib_path`. -* **`build.out_dir` config option** — custom output directory that overrides the default `target/\/\` path for final artifacts. Supported in `build`, `run`, and config validation. -* **`dcr fmt` command** — new CLI command that formats all C/C++ source files (`*.c`, `*.cpp`, `*.h`, `*.hpp`) in `src/` and `tests/` using `clang-format`. -* **Incremental linking** — `needs_link()` in `common.rs` checks if any object file is newer than the linked output, skipping unnecessary relinking. Implemented for all backends (`unix_cc`, `msvc`, `gas`, `nasm`). -* **`build.kind = "none"` and `"custom"`** — two new project kinds for special build scenarios that don't produce standard artifacts. -* **`install_bsd.sh`** — POSIX-compliant installation script for BSD systems (FreeBSD, OpenBSD, NetBSD) with binary download and source build modes. -* **Linux ARM64 support in `install.sh`** — added `Linux:aarch64|Linux:arm64` target detection for pre-built binary downloads. -* **BSD OS detection in `install.sh`** — detects FreeBSD, OpenBSD, NetBSD and determines target triple. -* **`rust-toolchain.toml`** — explicit toolchain pinning to `stable` channel. -* **Integration tests** — `build_with_target_config` (verifies `build.target = "linux"`) and `build_with_out_dir` (validates custom output directory). -* **`get_build_string_with_profile` made `pub`** — so `run.rs` can determine custom output directory configuration. +* **Поддержка целевых платформ OpenBSD и NetBSD** — полная маршрутизация по платформам с динамически генерируемыми тройками целевых параметров с использованием `std::env::consts::ARCH` и `std::env::consts::OS`. Затрагивает команды `build`, `run`, `clean` и модуль платформы. +* **`src/platform/bsd.rs`** — новый специальный модуль платформы BSD, общий для FreeBSD, OpenBSD и NetBSD, предоставляющий `bin_path`, `lib_path`, `elf_path`, `efi_path` и `shared_lib_path`. +* **`Параметр конфигурации build.out_dir`** — настраиваемый каталог вывода, который переопределяет путь по умолчанию `target/\/\` для конечных артефактов. Поддерживается в `build`, `run` и при проверке конфигурации. +* **Команда `dcr fmt`** — новая команда CLI, которая форматирует все исходные файлы C/C++ (`*.c`, `*.cpp`, `*.h`, `*.hpp`) в `src/` и `tests/` с помощью `clang-format`. +* **Инкрементальная компоновка** — функция `needs_link()` в `common.rs`, которая проверяет, не является ли какой-либо объектный файл более новым, чем скомпонованный результат, пропуская ненужную повторную компоновку. Реализовано для всех бэкэндов (`unix_cc`, `msvc`, `gas`, `nasm`). +* **`build.kind = «none»` и `«custom»`** — два новых типа проектов для специальных сценариев сборки, при которых не создается стандартный артефакт. +* **`install_bsd.sh`** — специальный скрипт установки, совместимый с POSIX, для систем BSD (FreeBSD, OpenBSD, NetBSD) с режимами загрузки бинарных файлов и сборки из исходного кода. +* **Поддержка Linux ARM64 в `install.sh`** — добавлено определение целевой тройки `Linux:aarch64|Linux:arm64` для загрузки готовых бинарных файлов. +* **Обнаружение ОС BSD в `install.sh`** — обнаружение FreeBSD, OpenBSD, NetBSD и определение целевой тройки. +* **`rust-toolchain.toml`** — явное привязывание инструментария к каналу `stable`. +* **Интеграционные тесты** — `build_with_target_config` (проверяет `build.target = «linux»`) и `build_with_out_dir` (проверяет настраиваемый каталог вывода). +* **`get_build_string_with_profile` стал `pub`** — чтобы `run.rs` мог определять конфигурацию настраиваемого каталога вывода. ### Changed -* **`build.target` semantics changed** — now strictly contains a target triple (e.g., `x86_64-unknown-linux-gnu`) or short name (`linux`, `macos`, `windows`). No longer used as custom output directory — this functionality moved to `build.out_dir`. -* **`build.standard` made optional** — changed from `String` to `Option\`. Validation only enforces non-empty for non-ASM languages. Skipped in `dcr.toml` output if empty. -* **`dcr run` with `out_dir`** — now determines target directory respecting `build.out_dir` via `get_build_string_with_profile()` from `build.rs`. -* **`collect_sources()` returns empty vector** instead of error when no sources are found, allowing `kind = "none"` or `kind = "custom"` projects with no source files. -* **CI/CD release workflow refactored** — `git2` made target-specific (no vendored-openssl on Windows), Zig-based cross-compilation for non-x86_64 Linux targets, Arch Linux package version cleanup (dashes → dots), `gmake` symlink for NetBSD. -* **README compatibility table** — FreeBSD, OpenBSD, NetBSD build/run status upgraded from "community/best-effort" to "officially supported". -* **Documentation updated** — `build-section.md` describes new `build.target` and `build.out_dir` fields. `target-directory.md` rewritten to clarify the distinction. +* **Изменена семантика `build.target`** — теперь строго содержит тройку целей (например, `x86_64-unknown-linux-gnu`) или короткое имя (`linux`, `macos`, `windows`). Больше не используется в качестве пользовательского каталога вывода — эта функциональность перенесена в `build.out_dir`. +* **`build.standard` стал опциональным** — изменен с `String` на `Option\`. Проверка обеспечивает только непустоту для языков, отличных от ASM. Пропускается в выводе `dcr.toml`, если пуст. +* **`dcr run` с `out_dir`** — теперь определяет целевой каталог с учетом `build.out_dir`, если он настроен, через `get_build_string_with_profile()` из `build.rs`. +* **`collect_sources()` возвращает пустой вектор** вместо ошибки, если не найдено ни одного исходного файла, что позволяет проектам с `kind = «none»` или `kind = «custom»` не иметь исходных файлов. +* **Рефакторинг рабочего процесса выпуска CI/CD** — `git2` стал целевым (без vendored-openssl на Windows), кросс-компиляция на основе Zig для целей Linux, отличных от x86_64, очистка версий пакетов Arch Linux (тире → точки), символьная ссылка `gmake` для NetBSD. +* **Таблица совместимости README** — статус сборки/работы на FreeBSD, OpenBSD, NetBSD повышен с «сообщество/по возможности» до «официально поддерживается». +* **Обновлена документация** — `build-section.md` описывает новые поля `build.target` и `build.out_dir`. `target-directory.md` переписан для уточнения различия. ### Fixed -* **stdout/stderr not inherited in `dcr run`** — child process output was captured and manually printed, breaking interactive programs. Fixed by switching to `Command::status()`. -* **Race condition in release CI** — matrix build jobs could upload assets to a release that didn't exist yet. Fixed by adding a dedicated `create-release` job. -* **Release GHA — stable toolchain override** — fixed Rust toolchain override issues in CI. -* **Arch Linux package version sanitization** — version strings with dashes (e.g., `0.7.0-dev`) are invalid for `pkgver`. Fixed by replacing dashes with dots. -* **GPG permissions after Docker** — Docker operations changed GPG directory ownership. Fixed by running `chown` after Docker commands. -* **RPM artifact paths** — RPM artifacts were placed in `rpm/x86_64/` instead of `fedora/x86_64/`. Fixed in Dexoron Packages Index workflow. -* **JSON parsing reliability in `install.sh`** — added `jq` as primary parser with `python3` fallback for dev channel release lookup. +* **stdout/stderr `dcr run` не наследуются** — вывод дочернего процесса захватывался и выводился вручную, что приводило к сбоям интерактивных программ. Исправлено путем перехода на `Command::status()`. +* **Условие гонки в CI релиза** — задания матрицы сборки могли загружать ресурсы в релиз, который еще не существовал. Исправлено добавлением специального задания `create-release`. +* **Релиз GHA — переопределение стабильного набора инструментов** — устранены проблемы с переопределением набора инструментов Rust в CI. +* **Очистка версий пакетов Arch Linux** — строки версий с дефисами (например, `0.7.0-dev`) являются недопустимыми для `pkgver` в Arch Linux. Исправлено путем замены дефисов точками. +* **Права доступа GPG после Docker** — операции Docker изменяли владельца каталога GPG. Исправлено путем запуска `chown` после команд Docker. +* **Пути к артефактам пакетов RPM** — артефакты RPM размещались в `rpm/x86_64/` вместо `fedora/x86_64/`. Исправлено в рабочем процессе Dexoron Packages Index. +* **Надежность разбора JSON в `install.sh`** — добавлен `jq` в качестве основного парсера с резервным вариантом `python3` для поиска релизов в канале dev. -### Removed +### Удалено: -* **`format_roots()` helper function** — removed from `common.rs`. Was only used by the old error handling path in `collect_sources()`. -* **Per-distribution artifact download steps** — three separate `actions/download-artifact` steps replaced with unified `gh release download --clobber`. +* **Вспомогательная функция `format_roots()`** — удалена из `common.rs`. Использовалась только старым путем обработки ошибок в `collect_sources()`. +* **Отдельные шаги загрузки артефактов для каждой дистрибуции** — три отдельных шага `actions/download-artifact` заменены на унифицированный `gh release download --clobber`. From d44c62da6ddea0f1b6d13f84a3bd3348de8fd185 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 02:20:56 +0800 Subject: [PATCH 115/274] New translations build-commands.mdx (Russian) [ci skip] --- .../docs/commands/build-commands.mdx.mdx | 31 ++++++++++--------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/commands/build-commands.mdx.mdx b/docs-crowdin-export/ru-RU/docs/commands/build-commands.mdx.mdx index 9bdd3b3..0a6a4b0 100644 --- a/docs-crowdin-export/ru-RU/docs/commands/build-commands.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/commands/build-commands.mdx.mdx @@ -1,29 +1,30 @@ --- -sidebar_label: Build commands (build, run, clean) +sidebar_label: Команды сборки (build, run, clean) --- -# Build Commands +# Команды сборки ## `dcr build` -Builds the project according to `dcr.toml`. +Собирает проект по `dcr.toml`. ```bash -dcr build # debug profile -dcr build --release # release build -dcr build --debug # explicit debug +dcr build # debug профиль +dcr build --release # release профиль +dcr build --debug # явно debug +dcr build --profile custom # произвольный профиль dcr build --target aarch64-unknown-linux-gnu -dcr build --force # full rebuild +dcr build --force # пересобрать всё с нуля dcr build --clean # clean + build -dcr build --verbose # show compilation commands -dcr build --workspace pkg-a # build specific workspace package +dcr build --verbose # показать команды компиляции +dcr build --workspace pkg-a # собрать конкретный пакет в workspace ``` -Artifacts: `target/\/\/\` (Linux with explicit target). +Артефакты: `target/\/\/\` (Linux с явным целевым объектом). ## `dcr run` -Builds (if sources are newer than artifacts) and runs the binary. +Собирает (если исходники новее артефакта) и запускает бинарник. ```bash dcr run @@ -32,11 +33,11 @@ dcr run --release ## `dcr clean` -Removes `target/` directory (or `target/\/\`). +Удаляет директорию `target/`(или `target/\/\`). ```bash dcr clean -dcr clean --release # target/release/ only -dcr clean --target windows # target/x86_64-pc-windows-msvc/ -dcr clean --all # clean all workspace packages +dcr clean --release # очистить target/release/ +dcr clean --target windows # очистить target/x86_64-pc-windows-msvc/ +dcr clean --all # очистить все пакеты workspace ``` From eee70da2755b53733bd7c89ba1023b1f01a0f9ed Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 02:20:59 +0800 Subject: [PATCH 116/274] New translations dependency-commands.mdx (Russian) [ci skip] --- .../docs/commands/dependency-commands.mdx.mdx | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/commands/dependency-commands.mdx.mdx b/docs-crowdin-export/ru-RU/docs/commands/dependency-commands.mdx.mdx index 4b5b982..079c4ec 100644 --- a/docs-crowdin-export/ru-RU/docs/commands/dependency-commands.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/commands/dependency-commands.mdx.mdx @@ -1,47 +1,47 @@ --- -sidebar_label: Dependency commands (add, tree) +sidebar_label: Команды зависимостей (add, tree) --- -# Dependency Commands +# Команды зависимостей ## `dcr add \ [source]` -Adds a dependency to `dcr.toml`. +Добавляет зависимость в `dcr.toml`. ```bash -dcr add fmt # registry lookup -dcr add mylib ../path/to/lib # path as source -dcr add mylib path:./lib # explicit path prefix -dcr add mylib git:https://github.com/user/repo # explicit git prefix -dcr add mylib github:user/repo # GitHub shorthand -dcr add mylib gitlab:user/repo # GitLab shorthand +dcr add fmt # поиск в реестре +dcr add mylib ../path/to/lib # путь как источник +dcr add mylib path:./lib # явный префикс пути +dcr add mylib git:https://github.com/user/repo # явный префикс git +dcr add mylib github:user/repo # сокращённая запись GitHub +dcr add mylib gitlab:user/repo # сокращённая запись GitLab ``` -Source prefixes: +Префиксы источника: -* `path:` — local path -* `git:` — generic git URL -* `github:` — expands to `https://github.com/\/\` -* `gitlab:` — expands to `https://gitlab.com/\/\` -* `http://` / `https://` / `git@` — full URL +* `path:` — локальный путь +* `git:` — URL адрес git-репозитория +* `github:` — расширение `https://github.com/\/\` +* `gitlab:` — расширение `https://gitlab.com/\/\` +* `http://` / `https://` / `git@` — полный URL -Flags: +Флаги: -* `--branch \` — git branch +* `--branch \` — git ветка * `--tag \` — git tag * `--rev \` — git commit -If source is omitted — DCR searches connected registries. +Если источник не указан — DCR выполняет поиск в подключенных реестрах. ## `dcr tree` -Displays the project dependency tree. +Показывает дерево зависимостей проекта. ```bash dcr tree ``` -Example output: +Пример вывода: ``` my-app v0.1.0 @@ -50,4 +50,4 @@ my-app v0.1.0 └── catch2 (registry) ``` -For path dependencies, recursively shows their own dependencies (from their `dcr.toml`). +В случае path зависимостей, рекурсивно отображает их собственные зависимости (из файла `dcr.toml`). From 63d0da68f3b2c36f633f12e8e35ad05fb6c49821 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 02:21:01 +0800 Subject: [PATCH 117/274] New translations gen-commands.mdx (Russian) [ci skip] --- .../ru-RU/docs/commands/gen-commands.mdx.mdx | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/commands/gen-commands.mdx.mdx b/docs-crowdin-export/ru-RU/docs/commands/gen-commands.mdx.mdx index 466b04c..c4cd7a3 100644 --- a/docs-crowdin-export/ru-RU/docs/commands/gen-commands.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/commands/gen-commands.mdx.mdx @@ -1,12 +1,12 @@ --- -sidebar_label: Gen commands (vscode, clion, ...) +sidebar_label: Gen команды (vscode, clion, ...) --- -# Gen Commands +# Gen команды ## `dcr gen \` -Generates IDE integration files. +Генерирует файл интеграции с IDE. ### vscode @@ -14,12 +14,12 @@ Generates IDE integration files. dcr gen vscode ``` -Creates: +Создаёт: -* `.vscode/tasks.json` — `build` task (dcr build) -* `.vscode/launch.json` — debug launch configuration -* `.vscode/settings.json` — C/C++ settings (clangd paths, includes) -* `.vscode/extensions.json` — recommended extensions (vscode-clangd, vscode-lldb) +* `.vscode/tasks.json` — `build` задача (dcr build) +* `.vscode/launch.json` — конфигурация запуска отладки +* `.vscode/settings.json` — настройки C/C++ (clangd пути, includes) +* `.vscode/extensions.json` — рекомендуемые расширения (vscode-clangd, vscode-lldb) ### clion @@ -27,12 +27,12 @@ Creates: dcr gen clion ``` -Creates: +Создаёт: -* `.idea/externalTools.xml` — external tools (build, run, clean, test) -* `.idea/customTargets.xml` — custom build targets -* `.idea/misc.xml` — C/C++ project settings -* `.idea/runConfigurations/\.xml` — per-binary run configurations +* `.idea/externalTools.xml` — внешние инструменты (build, run, clean, test) +* `.idea/customTargets.xml` — пользовательские цели сборки +* `.idea/misc.xml` — настройки C/C++ проекта +* `.idea/runConfigurations/\.xml` — конфигурация запуска ### compile-commands @@ -40,7 +40,7 @@ Creates: dcr gen compile-commands ``` -Generates `compile_commands.json` — standard format for clangd, cpptools, static analyzers. +Генерирует `compile_commands.json` — стандартный формат для clangd, cpptools, статических анализаторов. ### project-info @@ -48,7 +48,7 @@ Generates `compile_commands.json` — standard format for clangd, cpptools, stat dcr gen project-info ``` -Outputs JSON array with project metadata: +Выводит JSON с метаданными проекта: ```json [ From 0edda3658ba691ab6a5cc9f15b845bb2e508ce15 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 02:21:04 +0800 Subject: [PATCH 118/274] New translations project-commands.mdx (Russian) [ci skip] --- .../docs/commands/project-commands.mdx.mdx | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/commands/project-commands.mdx.mdx b/docs-crowdin-export/ru-RU/docs/commands/project-commands.mdx.mdx index 5258c44..195a1cc 100644 --- a/docs-crowdin-export/ru-RU/docs/commands/project-commands.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/commands/project-commands.mdx.mdx @@ -1,31 +1,31 @@ --- -sidebar_label: Project commands (new, init) +sidebar_label: Команды проекта (new, init) --- -# Project Commands +# Команды проекта ## `dcr new \` -Creates a new project with a standard structure and `dcr.toml`. The `name` argument is required. +Создает новый проект со стандартной структурой и `dcr.toml`. Аргумент `name` является обязательным. -Only ASCII letters, digits, underscores `_` and hyphens `-` are allowed in the project name. +В названии проекта допускаются только ASCII буквы, цифры и подчеркивания `_` и дефисы `-`. ```bash dcr new my-app ``` -Generates: +Генерирует: -* `dcr.toml` with basic fields -* `src/main.c` with a `main` template +* `dcr.toml` с базовыми полями +* `src/main.c` с основным шаблоном ## `dcr init` -Initializes a DCR project in the current (empty) directory. +Инициализирует проект DCR в текущем (пустом) каталоге. ```bash mkdir app && cd app dcr init ``` -The project name is taken from the current directory name. The directory name must follow the same naming rules as `dcr new`. +Название проекта взято из имени текущего каталога. Имя каталога должно соответствовать тем же правилам именования, что и в `dcr new`. From f73eb0191ea25b53c56a1ce6390d6d1de7ec4e98 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 02:21:06 +0800 Subject: [PATCH 119/274] New translations quality-commands.mdx (Russian) [ci skip] --- .../docs/commands/quality-commands.mdx.mdx | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/commands/quality-commands.mdx.mdx b/docs-crowdin-export/ru-RU/docs/commands/quality-commands.mdx.mdx index cdfe503..976e2e6 100644 --- a/docs-crowdin-export/ru-RU/docs/commands/quality-commands.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/commands/quality-commands.mdx.mdx @@ -1,40 +1,39 @@ --- -sidebar_label: Quality commands (test, fmt) +sidebar_label: Команды качества (test, fmt) --- -# Quality Commands +# Команды качества ## `dcr test` -Runs tests. +Запускает тесты. ```bash -dcr test # debug profile -dcr test --release # release profile -dcr test --debug # explicit debug -dcr test --help # detailed help +dcr test # debug профиль +dcr test --release # release профиль +dcr test --debug # явно debug ``` -Before first use, initialize tests: +Перед первым запуском нужно инициализировать тесты: ```bash dcr test --init ``` -This creates `tests/dcr_test.h` (framework) and `tests/test.c` (template). +Это создаёт `tests/dcr_test.h` (фреймворк) и `tests/test.c` (шаблон). -What `dcr test` does: +Что делает `dcr test`: 1. Builds the project 2. Collects `tests/*.c` files (`.c` only, not `.cpp`) 3. Compiles and links each test file 4. Runs each test binary 5. Prints summary: TOTAL, PASS, SKIP, FAIL -6. Returns non-zero exit code on any FAIL +6. Возвращает ненулевой код при наличии FAIL ## `dcr fmt` -Formats C/C++ source files using `clang-format`. +Форматирует исходный код C/C++ через `clang-format`. ```bash dcr fmt @@ -42,7 +41,7 @@ dcr fmt Processes: `src/**/*.{c,cpp,cxx,cc,h,hpp,hxx,hh}` and `tests/**/*.{c,cpp,cxx,cc,h,hpp,hxx,hh}`. -Uses `.clang-format` at the project root (if present), otherwise default clang-format style. +Используется файл `.clang-format` в корне проекта (если есть), иначе дефолтный стиль DCR. ## `dcr lint` From bd4648b278e036f8509eff67115d3609720162a7 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 02:21:09 +0800 Subject: [PATCH 120/274] New translations system-commands.mdx (Russian) [ci skip] --- .../ru-RU/docs/commands/system-commands.mdx.mdx | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/commands/system-commands.mdx.mdx b/docs-crowdin-export/ru-RU/docs/commands/system-commands.mdx.mdx index ac1c0c2..33e095c 100644 --- a/docs-crowdin-export/ru-RU/docs/commands/system-commands.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/commands/system-commands.mdx.mdx @@ -1,12 +1,12 @@ --- -sidebar_label: System commands (setup, --help, ...) +sidebar_label: Системные команды (setup, --help, ...) --- -# System Commands +# Системные команды ## `dcr setup` -Shows configured registries from `~/.dcr/config.toml`. +`~/.dcr/config.toml` — конфигурация реестров ```bash dcr setup @@ -26,6 +26,7 @@ Shows help for all commands. ```bash dcr --help +dcr build --help # справка по конкретной команде ``` ## `dcr --version` @@ -33,19 +34,19 @@ dcr --help Shows version and target triple. ```bash -dcr --version # dcr 0.7.0 (x86_64-unknown-linux-gnu) +dcr --version # dcr 0.7.0 ``` ## `dcr --update` -Self-update. Downloads the latest release binary from GitHub Releases and replaces the current one. +Самообновление. Скачивает последний релиз с GitHub Releases и заменяет текущий бинарник. ```bash dcr --update ``` -Features: +Особенности: -* Auto-detects platform and architecture +* Определяет платформу и архитектуру автоматически * Warns if installed via AUR (use package manager instead) -* Works on Linux, macOS, Windows +* Работает на Linux, macOS, Windows From 194963c6b98ec477f78fe6382b885b3caa1e3dc7 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 02:21:11 +0800 Subject: [PATCH 121/274] New translations contributing.mdx (Russian) [ci skip] --- .../ru-RU/docs/contributing.mdx.mdx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/contributing.mdx.mdx b/docs-crowdin-export/ru-RU/docs/contributing.mdx.mdx index 92a14e0..9a852d0 100644 --- a/docs-crowdin-export/ru-RU/docs/contributing.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/contributing.mdx.mdx @@ -14,19 +14,19 @@ cargo build ## Code style -All code must be formatted with `cargo fmt`: +Весь код форматируется через `cargo fmt`: ```bash cargo fmt ``` -## Linting +## Линтер ```bash cargo clippy --all-targets -- -D warnings ``` -## Tests +## Тесты ```bash cargo test --all-targets @@ -34,18 +34,18 @@ cargo test --all-targets ## PR process -1. Fork the repository -2. Create a branch: `git checkout -b feature/description` -3. Make changes -4. Run `cargo fmt && cargo clippy && cargo test` -5. Open a Pull Request +1. Форкните репозиторий +2. Создайте ветку: `git checkout -b feature/description` +3. Внесите изменения +4. Запустите `cargo fmt && cargo clippy --all-targets -- -D warnings && cargo test --all-targets` +5. Откройте Pull Request ## CI -CI runs: +В CI запускаются: * `cargo fmt --check` * `cargo clippy --all-targets -- -D warnings` * `cargo test --all-targets` -* Build on Linux, macOS, Windows -* Integration tests +* Сборка под Linux, macOS, Windows, FreeBSD, OpenBSD, NetBSD +* Интеграционные тесты From 9ba9cade8607aeae928b8c63c61a0dc76cb1065d Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 02:21:13 +0800 Subject: [PATCH 122/274] New translations faq.mdx (Russian) [ci skip] --- docs-crowdin-export/ru-RU/docs/faq.mdx.mdx | 32 +++++++++++----------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/faq.mdx.mdx b/docs-crowdin-export/ru-RU/docs/faq.mdx.mdx index 75e1036..1b5e00c 100644 --- a/docs-crowdin-export/ru-RU/docs/faq.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/faq.mdx.mdx @@ -1,8 +1,8 @@ --- -sidebar_label: FAQ +sidebar_label: Часто задаваемые вопросы --- -# FAQ +# Часто задаваемые вопросы ## Registry not found @@ -18,7 +18,7 @@ name = "default" url = "https://index.dcr.pm" ``` -And check `DCR_INDEX_PATH`: +Если реестр кастомный, проверьте `DCR_INDEX_PATH`: ```bash echo $DCR_INDEX_PATH @@ -30,24 +30,24 @@ echo $DCR_INDEX_PATH error: compiler not found ``` -**Solution:** Ensure a compiler is installed and available in PATH. +**Решение:** Убедитесь, что компилятор установлен и доступен в PATH. ```bash which gcc which clang ``` -Or specify explicitly via `[toolchain]` in `dcr.toml`. +Или укажите явно через `[toolchain]` или `DCR_COMPILER`. ## openssl-sys build failed -When building DCR from source: +При сборке DCR из исходников: ``` error: failed to run custom build command for openssl-sys ``` -**Solution:** Install OpenSSL development headers: +**Решение:** Установите OpenSSL development headers: ```bash # Ubuntu/Debian @@ -60,22 +60,22 @@ sudo dnf install openssl-devel brew install openssl ``` -## Ctrl+C during build +## Ctrl+C во время сборки -DCR handles SIGINT: interrupts the current compilation and exits with non-zero code. +DCR корректно обрабатывает SIGINT: прерывает текущую компиляцию и завершает процесс с ненулевым кодом. -## How to create a library? +## Как создать библиотеку? -See [Library Recipe](/docs/recipes/library-project). +[Library Recipe](/docs/recipes/library-project). ## How to cross-compile to Windows? -See [Cross-Compile Recipe](/docs/recipes/cross-to-windows). +См. [Cross-Compile Recipe](/docs/recipes/cross-to-windows). -## How to create a multi-package project? +## Как сделать мультипакетный проект? -See [Workspace Recipe](/docs/recipes/multi-package-workspace). +См. [Workspace Recipe](/docs/recipes/multi-package-workspace). -## Lock file +## Lock-файл устарел -`dcr.lock` is created during builds (`dcr build`) when registry dependencies are present. To force an update — delete `dcr.lock` and run `dcr build`. +При изменении зависимостей `dcr.lock` автоматически обновляется при следующем `dcr add`. Если нужно принудительно обновить — удалите `dcr.lock` и выполните `dcr build`. From 4a3c97d67407872848b1b668f8fa5483cc5e6986 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 02:21:16 +0800 Subject: [PATCH 123/274] New translations first-steps.mdx (Russian) [ci skip] --- .../docs/getting-started/first-steps.mdx.mdx | 27 +++++++++++-------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/getting-started/first-steps.mdx.mdx b/docs-crowdin-export/ru-RU/docs/getting-started/first-steps.mdx.mdx index c090838..039354b 100644 --- a/docs-crowdin-export/ru-RU/docs/getting-started/first-steps.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/getting-started/first-steps.mdx.mdx @@ -1,17 +1,17 @@ --- -sidebar_label: First steps +sidebar_label: Первые шаги --- -# First Steps +# Первые шаги -## Create a project +## Создать проект ```bash dcr new my-app cd my-app ``` -Structure: +Будет создана структура: ``` my-app/ @@ -27,12 +27,17 @@ my-app/ name = "my-app" version = "0.1.0" type = "none" +description="" +author="" +license = "GPL-3.0-or-later" [build] language = "c" standard = "c11" compiler = "clang" kind = "bin" + +[dependencies] ``` ## Build @@ -43,20 +48,20 @@ dcr build Output — `target/\/debug/my-app` (Linux) or `target/debug/my-app.exe` (Windows). -Build profiles: +Профиль: ```bash -dcr build --release # release build -dcr build --debug # debug (default) +dcr build --release # релизная сборка +dcr build --debug # дебажная (по умолчанию) ``` -## Run +## Запустить ```bash dcr run ``` -Builds (if needed) and runs the binary. +Собирает (если нужно) и запускает бинарник. ## First test @@ -65,8 +70,8 @@ dcr test --init # create test template dcr test # run tests ``` -## Formatting +## Форматирование ```bash -dcr fmt # clang-format with .clang-format +dcr fmt # clang-format по .clang-format ``` From 7cf2cd65b4f1c7106aa7ae6351e3da290820a573 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 02:21:18 +0800 Subject: [PATCH 124/274] New translations installation.mdx (Russian) [ci skip] --- .../docs/getting-started/installation.mdx.mdx | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/getting-started/installation.mdx.mdx b/docs-crowdin-export/ru-RU/docs/getting-started/installation.mdx.mdx index 177bf77..cdd8c37 100644 --- a/docs-crowdin-export/ru-RU/docs/getting-started/installation.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/getting-started/installation.mdx.mdx @@ -1,12 +1,12 @@ --- -sidebar_label: Installation +sidebar_label: Установка --- -# Installation +# Установка ## Linux (Dexoron Packages) -Configure your package manager at https://pkg.dexoron.su and install: +Настройте менеджер пакетов на https://pkg.dexoron.su и установите: **Arch Linux** @@ -37,6 +37,8 @@ yay -S dcr ```sh brew tap dexoron/dexoron brew install dcr +# or +brew install dexoron/dexoron/dcr ``` ## Snap (Linux) @@ -62,13 +64,13 @@ cargo install dcr ## Linux / macOS (script) ```sh -curl -fsSL https://dcr.dexoron.su/install.sh | sh +curl -fsSL https://dcr.dexoron.su/install_bsd.sh | bash ``` ## BSD (script) ```sh -curl -fsSL https://dcr.dexoron.su/install_bsd.sh | sh +curl -fsSL https://dcr.dexoron.su/install.sh | bash ``` ## Windows (PowerShell) @@ -90,7 +92,7 @@ ln -sf "$PWD/target/release/dcr" ~/.local/bin/dcr Verify the installation: ```bash -dcr --version +dcr setup ``` Man pages are available after installation: @@ -100,7 +102,7 @@ man dcr man dcr-build ``` -To use the registry, create `~/.dcr/config.toml`: +Команда создаёт `~/.dcr/` с дефолтным `config.toml` и скачивает публичный реестр. ```toml [[registry]] From 5876c71be7e21b4660c1c60ff3a37766c1a77106 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 02:21:21 +0800 Subject: [PATCH 125/274] New translations ide-integration.mdx (Russian) [ci skip] --- .../ru-RU/docs/ide-integration.mdx.mdx | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/ide-integration.mdx.mdx b/docs-crowdin-export/ru-RU/docs/ide-integration.mdx.mdx index 7b0fdf6..8ba1fc2 100644 --- a/docs-crowdin-export/ru-RU/docs/ide-integration.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/ide-integration.mdx.mdx @@ -1,8 +1,8 @@ --- -sidebar_label: IDE Integration +sidebar_label: Интеграция с IDE --- -# IDE Integration +# Интеграция с IDE ## VS Code @@ -10,14 +10,14 @@ sidebar_label: IDE Integration dcr gen vscode ``` -Generates in `.vscode/`: +Генерирует в `.vscode/`: -| File | Purpose | -| ----------------- | -------------------------------------------- | -| `tasks.json` | `build` task (dcr build) | -| `launch.json` | Debug launch configuration | -| `settings.json` | clangd/IntelliSense: include paths, standard | -| `extensions.json` | Recommends vscode-clangd, vscode-lldb | +| Файл | Назначение | +| ----------------- | ------------------------------------------- | +| `tasks.json` | Задача `build` (dcr build) | +| `launch.json` | Debug-запуск бинарника | +| `settings.json` | clangd/IntelliSense: include пути, стандарт | +| `extensions.json` | Рекомендует clangd, C/C++ | ## CLion @@ -25,14 +25,14 @@ Generates in `.vscode/`: dcr gen clion ``` -Generates in `.idea/`: +Генерирует в `.idea/`: -| File | Purpose | -| ------------------------------------------------ | ----------------------------------------- | -| `externalTools.xml` | Build, Run, Clean, Test as external tools | -| `customTargets.xml` | Custom build targets | -| `misc.xml` | C/C++ project settings | -| `runConfigurations/\.xml` | Per-binary run configurations | +| Файл | Назначение | +| ----------------------------------------- | ----------------------------------------------- | +| `externalTools.xml` | Build, Run, Clean, Test как внешние инструменты | +| `customTargets.xml` | Кастомные цели сборки | +| `misc.xml` | Настройки C/C++ проекта | +| `runConfigurations/dcr_build_and_run.xml` | Per-binary run configurations | ## compile_commands.json @@ -40,7 +40,7 @@ Generates in `.idea/`: dcr gen compile-commands ``` -Generates `compile_commands.json` at project root. Standard format for clangd, C/C++ IntelliSense, static analyzers. +Генерирует `compile_commands.json` в корне проекта. Стандартный формат для: ## project-info @@ -48,4 +48,4 @@ Generates `compile_commands.json` at project root. Standard format for clangd, C dcr gen project-info ``` -Outputs JSON array with project metadata (see [gen-commands](/docs/commands/gen-commands)). +Выводит JSON с метаданными проекта (см. [gen-commands](/docs/commands/gen-commands)). From c7c743c0c9219b1c2efb22b0e3b178777842c200 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 02:21:23 +0800 Subject: [PATCH 126/274] New translations license.mdx (Russian) [ci skip] --- .../ru-RU/docs/license.mdx.mdx | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/license.mdx.mdx b/docs-crowdin-export/ru-RU/docs/license.mdx.mdx index 39caf78..49e2202 100644 --- a/docs-crowdin-export/ru-RU/docs/license.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/license.mdx.mdx @@ -1,20 +1,20 @@ --- -sidebar_label: License +sidebar_label: Лицензия --- -# License +# Лицензия ## DCR -DCR itself is [GPL-3.0-or-later](https://spdx.org/licenses/GPL-3.0-or-later.html) licensed. +DCR распространяется под лицензией [GPL-3.0-or-later](https://spdx.org/licenses/GPL-3.0-or-later.html). -> **Note:** DCR is a build tool, not a library. The GPL applies only to DCR's own source code. Projects built with DCR are not subject to DCR's license — their licensing is determined solely by their own code and dependencies. +> **Важно:** DCR — инструмент сборки, а не библиотека. GPL распространяется только на исходный код самого DCR. Проекты, собранные с помощью DCR, не подпадают под лицензию DCR — их лицензирование определяется исключительно их собственным кодом и зависимостями. -## Vendored libraries +## Вендорные библиотеки -DCR statically links the following C libraries through its vendored Rust dependencies: +DCR статически связывает следующие C-библиотеки через вендорные Rust-зависимости: -| Library | License | Bundled by | +| Библиотека | Лицензия | Bundled by | | ------------------------------------------ | ------------------ | ----------------------------- | | [libgit2](https://libgit2.org) | MIT OR Apache-2.0 | `git2` / `libgit2-sys` | | [libssh2](https://libssh2.org) | MIT OR Apache-2.0 | `libgit2-sys` | @@ -22,11 +22,11 @@ DCR statically links the following C libraries through its vendored Rust depende | [OpenSSL](https://openssl.org) | Apache-2.0 | `openssl-sys` / `openssl-src` | | [ring](https://github.com/briansmith/ring) | Apache-2.0 AND ISC | `rustls` | -## Rust dependencies +## Rust-зависимости -DCR is written in Rust. The following notable Rust crates are statically linked: +DCR написан на Rust. Ниже перечислены основные статически связываемые крейты: -| Crate | License | +| Крейт | Лицензия | | --------------------------------------------- | ------------------------ | | [`reqwest`](https://crates.io/crates/reqwest) | MIT OR Apache-2.0 | | [`rustls`](https://crates.io/crates/rustls) | Apache-2.0 OR ISC OR MIT | @@ -39,8 +39,8 @@ DCR is written in Rust. The following notable Rust crates are statically linked: | [`hyper`](https://crates.io/crates/hyper) | MIT | | [`ctrlc`](https://crates.io/crates/ctrlc) | MIT OR Apache-2.0 | -Full dependency tree (143 packages) is available in [`Cargo.lock`](https://github.com/dexoron/dcr/blob/main/Cargo.lock). The overwhelming majority are dual-licensed under MIT OR Apache-2.0. +Полное дерево зависимостей (143 пакета) доступно в [`Cargo.lock`](https://github.com/dexoron/dcr/blob/main/Cargo.lock). Подавляющее большинство имеют двойную лицензию MIT OR Apache-2.0. ## Additional credits -* DCR's CLI design and project model are inspired by [Cargo](https://doc.rust-lang.org/cargo/). +* Дизайн CLI и модель проектов DCR вдохновлены [Cargo](https://doc.rust-lang.org/cargo/). From 57c35a1c995413279e8021a03db766dbd3a57c08 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 02:21:26 +0800 Subject: [PATCH 127/274] New translations cross-to-windows.mdx (Russian) [ci skip] --- .../docs/recipes/cross-to-windows.mdx.mdx | 26 +++++++++---------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/recipes/cross-to-windows.mdx.mdx b/docs-crowdin-export/ru-RU/docs/recipes/cross-to-windows.mdx.mdx index 1250349..c982a8d 100644 --- a/docs-crowdin-export/ru-RU/docs/recipes/cross-to-windows.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/recipes/cross-to-windows.mdx.mdx @@ -1,12 +1,12 @@ --- -sidebar_label: Cross-compile to Windows +sidebar_label: Кросс-компиляция для Windows --- -# Cross-Compile to Windows from Linux +# Кросс-компиляция для Windows на Linux -Building a Windows binary on Linux using mingw-w64. +Сборка Windows-бинаря на Linux с использованием mingw-w64. -## Install toolchain +## Установка toolchain ```bash # Ubuntu/Debian @@ -16,31 +16,29 @@ sudo apt install mingw-w64 sudo dnf install mingw64-gcc mingw64-binutils ``` -## Configuration +## Конфигурация ```toml [package] name = "my-app" version = "0.1.0" -type = "none" +type = "app" [build] language = "c" -standard = "c11" -compiler = "clang" -kind = "bin" -target = "x86_64-pc-windows-gnu" # explicit mingw, not msvc +standard = "c17" +target = "windows" ``` -## Build +## Сборка ```bash -dcr build --target x86_64-pc-windows-gnu --release +dcr build --target windows --release ``` -Artifact: `target/x86_64-pc-windows-gnu/release/my-app.exe`. +Артефакт: `target/x86_64-pc-windows-gnu/release/my-app.exe`. -## Custom toolchain +## Кастомный toolchain (опционально) ```toml [toolchain] From 72039965881dd1358beea10a00d28a8a4ec7f514 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 02:21:28 +0800 Subject: [PATCH 128/274] New translations library-project.mdx (Russian) [ci skip] --- .../docs/recipes/library-project.mdx.mdx | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/recipes/library-project.mdx.mdx b/docs-crowdin-export/ru-RU/docs/recipes/library-project.mdx.mdx index 336c122..db31aaa 100644 --- a/docs-crowdin-export/ru-RU/docs/recipes/library-project.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/recipes/library-project.mdx.mdx @@ -1,16 +1,15 @@ --- -sidebar_label: Library project +sidebar_label: Проект библиотеки --- -# Library Project +# Проект библиотеки -Creating a static library and using it in another project. +Создание статической библиотеки и её использование в другом проекте. -## Step 1: Create the library +## Шаг 1: Создать библиотеку ```bash dcr new my-lib -cd my-lib ``` `dcr.toml`: @@ -19,11 +18,11 @@ cd my-lib [package] name = "my-lib" version = "0.1.0" -type = "none" +type = "lib" [build] language = "c" -standard = "c11" +standard = "c17" kind = "staticlib" ``` @@ -43,28 +42,29 @@ int add(int a, int b); int add(int a, int b) { return a + b; } ``` -## Step 2: Build +## Шаг 2: Собрать ```bash +cd my-lib dcr build --release ``` -Artifacts: +Артефакты: -* `target/\/release/libmy-lib.a` (Linux) +* `target/release/libmy-lib.a` (Linux/macOS) * `target/release/my-lib.lib` (Windows) -* `target/include/` — header files +* `target/include/` — заголовочные файлы -## Step 3: Use in another project +## Шаг 3: Использовать в проекте ```bash dcr new my-app cd my-app -dcr add my-lib ../my-lib +dcr add ../my-lib ``` -Automatically: +Автоматически: -* Adds include path to `target/include/` of the library -* Adds lib path to `target/\/release/` -* Links `libmy-lib.a` / `my-lib.lib` +* Добавляется include path на `target/include/` библиотеки +* Добавляется lib path на `target/release/` +* Линкуется `libmy-lib.a` / `my-lib.lib` From b840f658a2aaae48f861ade567658b51b31ee1a3 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 02:21:31 +0800 Subject: [PATCH 129/274] New translations multi-package-workspace.mdx (Russian) [ci skip] --- .../recipes/multi-package-workspace.mdx.mdx | 57 +++++++++---------- 1 file changed, 26 insertions(+), 31 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/recipes/multi-package-workspace.mdx.mdx b/docs-crowdin-export/ru-RU/docs/recipes/multi-package-workspace.mdx.mdx index f8e8a90..e7af284 100644 --- a/docs-crowdin-export/ru-RU/docs/recipes/multi-package-workspace.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/recipes/multi-package-workspace.mdx.mdx @@ -1,19 +1,19 @@ --- -sidebar_label: Multi-package workspace +sidebar_label: Рабочая область с несколькими пакетами --- -# Multi-Package Workspace +# Рабочая область с несколькими пакетами -A project with three packages: two libraries and a binary. +Проект из трёх пакетов: библиотека, утилита и основной бинарник. -## Structure +## Структура ``` workspace/ -├── dcr.toml # root workspace +├── dcr.toml # корневой workspace ├── lib-core/ │ ├── dcr.toml -│ └── src/core.c +│ └── src/lib.rs ├── lib-utils/ │ ├── dcr.toml │ └── src/utils.c @@ -22,7 +22,7 @@ workspace/ └── src/main.c ``` -## Root dcr.toml +## Корневой dcr.toml ```toml [package] @@ -33,22 +33,17 @@ type = "none" [build] inherit = true language = "c" -standard = "c11" - -[workspace.lib-core] -path = "lib-core" - -[workspace.lib-utils] -path = "lib-utils" -deps = ["lib-core"] - -[workspace.app] -path = "app" -deps = ["lib-core", "lib-utils"] -main = true +standard = "c17" + +[workspace] +members = [ + { path = "lib-core" }, + { path = "lib-utils", deps = ["lib-core"] }, + { path = "app", deps = ["lib-core", "lib-utils"], main = true }, +] ``` -## Packages +## Пакеты `lib-core/dcr.toml`: @@ -56,7 +51,7 @@ main = true [package] name = "lib-core" version = "0.1.0" -type = "none" +type = "lib" [build] kind = "staticlib" @@ -68,7 +63,7 @@ kind = "staticlib" [package] name = "lib-utils" version = "0.1.0" -type = "none" +type = "lib" [build] kind = "staticlib" @@ -80,23 +75,23 @@ kind = "staticlib" [package] name = "app" version = "0.1.0" -type = "none" +type = "app" [build] kind = "bin" ``` -## Build +## Сборка ```bash cd workspace -dcr build # builds everything in correct order -dcr build --workspace app # only app (lib-core and lib-utils built as deps) -dcr run # builds and runs main package +dcr build # собирает всё в правильном порядке +dcr build --workspace app # только app (lib-core и lib-utils собираются как зависимости) +dcr run # собирает и запускает main-пакет ``` -Build order (topological sort): +Порядок сборки (топологическая сортировка): 1. `lib-core` -2. `lib-utils` (depends on lib-core) -3. `app` (depends on lib-core, lib-utils) +2. `lib-utils` (зависит от lib-core) +3. `app` (зависит от lib-core, lib-utils) From 028c9ef16c136328ca464d337391a5cdb6911507 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 02:21:33 +0800 Subject: [PATCH 130/274] New translations build-profiles.mdx (Russian) [ci skip] --- .../docs/reference/build-profiles.mdx.mdx | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/reference/build-profiles.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/build-profiles.mdx.mdx index 694efb0..d83ab37 100644 --- a/docs-crowdin-export/ru-RU/docs/reference/build-profiles.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/reference/build-profiles.mdx.mdx @@ -1,12 +1,12 @@ --- -sidebar_label: Build profiles +sidebar_label: dcr build --profile lto --- -# Build Profiles +# Встроенные профили -Profiles allow overriding `[build]` fields for specific build modes. +Профили позволяют переопределять любые поля секции `[build]` для конкретного режима сборки. -## Configuration +## Конфигурация ```toml [build] @@ -18,31 +18,31 @@ cflags = ["-Wall"] cflags = ["-O0", "-g"] [build.release] -cflags = ["-O3", "-DNDEBUG"] +cflags = ["-O3", "-flto"] ``` -## Merge rules +## Правила -Fields from `[build.\]` are merged on top of `[build]`: +Поля из `[build.\]` **мержатся поверх** `[build]` * **Scalar fields** (strings, numbers, bools) — replaced -* **Arrays** (`cflags`, `ldflags`, ...) — **appended** (extend the `[build]` array) +* Массивы (`cflags`, `ldflags`, ...) **заменяются полностью**, а не дополняются Set `inherit = false` to disable array inheritance (only profile's own arrays are used). -## Built-in profiles +## Кастомные профили The default flags for each profile are composed from three config fields: -| Field | debug default | release default | -| ----------- | ------------------ | --------------- | -| `opt_level` | `"0"` | `"3"` | -| `debug` | `true` | `false` | -| `warnings` | `["all", "extra"]` | `[]` | +| Field | Default cflags | Профили сборки | +| ----------- | ------------------ | -------------- | +| `opt_level` | `-O0 -g` | `"3"` | +| `debug` | `true` | `false` | +| `warnings` | `["all", "extra"]` | `[]` | Which produce the equivalent compiler flags: -| Profile | Effective flags | +| Профиль | Effective flags | | --------- | ---------------------------------------------------------- | | `debug` | `-O0 -g -Wall -Wextra -fno-omit-frame-pointer -DDCR_DEBUG` | | `release` | `-O3 -DNDEBUG` | @@ -63,7 +63,7 @@ debug = false warnings = ["all", "error"] ``` -## Target-specific profiles +## Target-specific профили ```toml [build.linux] @@ -77,6 +77,6 @@ Application order (highest priority first): 1. `[build.\.\]` 2. `[build.\.\]` -3. `[build.\]` -4. `[build.\]` +3. ]`или`[build.\]\` +4. `[build.\]`. 5. `[build]` From b926bbdb3117e9f8e6b139f03657dda92066796d Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 02:21:36 +0800 Subject: [PATCH 131/274] New translations build-system.mdx (Russian) [ci skip] --- .../ru-RU/docs/reference/build-system.mdx.mdx | 96 +++++++++---------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/reference/build-system.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/build-system.mdx.mdx index 68a8444..3df0ba1 100644 --- a/docs-crowdin-export/ru-RU/docs/reference/build-system.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/reference/build-system.mdx.mdx @@ -1,22 +1,22 @@ --- -sidebar_label: Build system +sidebar_label: Система сборки --- # Build System ## Compiler Backends -DCR supports 7 compilation backends. Selection is automatic based on file extension and `build.compiler` value. +DCR поддерживает 4 бэкенда компиляции. Выбор происходит автоматически на основе расширения файла и target triple. -| Backend | Files | When used | -| --------- | --------------------------------- | ------------------------------------- | -| `unix_cc` | `.c`, `.cpp`, `.cxx`, `.cc`, `.S` | gcc/clang on Linux/macOS/BSD | -| `msvc` | `.c`, `.cpp`, `.cxx`, `.cc` | Windows (cl, clang-cl) | -| `gas` | `.s` | ARM/ARM64 assembler (no preprocessor) | -| `nasm` | `.asm`, `.s` | x86/x86_64 NASM assembler | -| `masm` | `.asm` | MASM (ml/ml64) on Windows | -| `fasm` | `.asm`, `.fasm` | Flat Assembler | -| `llvm_ir` | `.ll` | LLVM IR via `llc -filetype=obj` | +| Backend | Файлы | Когда используется | +| --------- | --------------------------------------- | ------------------------------- | +| `unix_cc` | `.c`, `.cpp`, `.cxx`, `.cc`, `.s`, `.S` | gcc/clang на Linux/macOS/BSD | +| `msvc` | `.c`, `.cpp`, `.cxx`, `.cc` | Windows (cl, clang-cl) | +| `gas` | `.s`, `.S` | ARM/ARM64 ассемблер | +| `nasm` | `.asm`, `.s` | x86/x86_64 ассемблер | +| `masm` | `.asm` | MASM (ml/ml64) on Windows | +| `fasm` | `.asm`, `.fasm` | Flat Assembler | +| `llvm_ir` | `.ll` | LLVM IR via `llc -filetype=obj` | ## Qt Support @@ -40,9 +40,9 @@ moc = "moc {in} -o {out}" ### Unix CC -* Compiler resolved via `resolve_compiler()`: `DCR_COMPILER` > `DCR_CC` > `[toolchain]` > `build.compiler` > `PATH` -* Supports `.d` files for header dependency tracking -* Flags: `-std=`, `-MMD -MF`, `-c -o`, `-I`, `-L`, `-l` +* Компилятор определяется через `resolve_compiler()`: CC/CXX из [toolchain], DCR_COMPILER/env, PATH +* Поддерживает генерацию `.d` файлов для header dependency tracking +* Флаги: `-std=`, `-MMD -MF`, `-c -o`, `-I`, `-L`, `-l` * Conditional flags based on config: * `freestanding` or bare-metal target: `-ffreestanding` (compile), `-nostdlib -static` (link) * `lto`: `-flto` (compile + link) @@ -50,54 +50,54 @@ moc = "moc {in} -o {out}" ### MSVC -* Supports cl.exe and clang-cl.exe -* Flags: `/std:`, `/Fo:`, `/Fe:`, `/I`, `/link` +* Поддерживает cl.exe и clang-cl.exe +* Флаги: `/std:`, `/Fo:`, `/Fe:`, `/I`, `/link` -### GAS / NASM / MASM / FASM / LLVM-IR +### GAS / NASM * GAS: `-I`, `-c -o`, `--defsym` -* NASM: `-I`, `-o`, `-D`, `-f` (format: win64/elf64/macho64/macho32/elf32) +* NASM: `-I`, `-c -o`, `-D`, `-f` (формат: win64/elf64/macho64/macho32/elf32) * MASM: `/nologo /c /Fo\ ` * FASM: ` \` (output path is the object file) * LLVM IR: `-filetype=obj -o \` ## Incremental Builds -Three levels of incrementality: +Три уровня инкрементальности: -1. **mtime** — if output is newer than all inputs, skip -2. **`.d` files** — header change tracking (including transitive) -3. **SHA256 fingerprint** — recompile if compiler flags changed (stored in `.dcr_fingerprint`) +1. **mtime** — если выходной файл новее всех входных, файл не перекомпилируется +2. **`.d` files** — отслеживание изменений в заголовочных файлах (включая транзитивные) +3. **SHA256 fingerprint** — если флаги компиляции изменились, файл перекомпилируется (fingerprint хранится в `.dcr_fingerprint`) ## Parallel Compilation -* `thread::scope` for thread pool -* Atomic task queue (`AtomicU64`) -* Mutex on stdout (`OUTPUT_MUTEX`) +* Используется `thread::scope` для создания пула потоков +* Атомарная очередь задач (`AtomicU64`) +* Мьютекс на запись в stdout (`OUTPUT_MUTEX`) * Thread count = `available_parallelism()`, capped by `build.codegen-units` if set ## Build Kinds -| Kind | Type | Path (Linux example) | -| ----------- | ------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -| `bin` | Executable | `target/\/\/\` (.exe on Windows) | -| `staticlib` | Static library | `target/\/\/lib\.a` (.lib) | -| `sharedlib` | Dynamic library | `target/\/\/lib\.so` (.dll/.dylib) | -| `efi` | UEFI application | `target/\/\/\.efi` | -| `elf` | ELF without stdlib | `target/\/\/\` | -| `none` | Compile only, no link | — | -| `custom` | Full filename+extension control | `target/\/\/\.\` | +| Kind | Тип | Path (Linux example) | +| ----------- | ------------------------------------ | ----------------------------------------------------------------------------------------------- | +| `bin` | Executable | `target/\/\` (.exe) | +| `staticlib` | Статическая библиотека | `target/\/lib\.a` (.lib) | +| `sharedlib` | Динамическая библиотека | `target/\/lib\.so` (.dll/.dylib) | +| `efi` | UEFI приложение | `target/\/\.efi` | +| `elf` | ELF без стандартной библиотеки | `target/\/\` | +| `none` | Compile only, no link | — | +| `custom` | Полный контроль filename + extension | `target/\/\.\` | ## Build Steps -DCR supports pre-build and post-build steps: +DCR поддерживает pre-build и post-build шаги через Qt codegen: * `build.steps` — commands before compilation * `build.post_steps` — commands after compilation -Substitutions: `{stem}`, `{in}`, `{out}`, `{profile}`, `{version}`, `{name}`. +Подстановки: `{stem}`, `{in}`, `{out}`. -Example Qt codegen via build steps: +`rcc` — Resource Compiler: `{stem}.qrc → qrc_{stem}.cpp` ```toml [build.steps] @@ -113,19 +113,19 @@ Automatic lookup (read from raw config): pkg_config = ["sdl2", "gl"] ``` -DCR runs `pkg-config --cflags sdl2 gl` and `pkg-config --libs sdl2 gl` and adds results to compiler/linker flags. +DCR вызывает `pkg-config --cflags sdl2 gl` и `pkg-config --libs sdl2 gl` и добавляет результат в флаги компиляции/линковки. ## Variable Substitution Supported variables: -| Variable | Description | -| ----------------------- | ---------------------------- | -| `{version}` | Package version | -| `{version_major}` | Major version part | -| `{version_minor}` | Minor version part | -| `{version_patch}` | Patch version | -| `{version_suffix}` | Suffix (e.g., `-rc1`) | -| `{version_suffix_dash}` | Suffix with dash | -| `{profile}` | Profile name (debug/release) | -| `{name}` | Package name | +| Variable | Описание | +| ----------------------- | ------------------------------- | +| `{version}` | Версия пакета | +| `{version_major}` | Major version part | +| `{version_minor}` | Minor version part | +| `{version_patch}` | Переменная | +| `{version_suffix}` | Suffix (e.g., `-rc1`) | +| `{version_suffix_dash}` | Suffix with dash | +| `{profile}` | Имя профиля (debug/release/...) | +| `{name}` | Имя пакета | From ec655d4783993f41731a2bc30017ed0ce20064a9 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 02:21:38 +0800 Subject: [PATCH 132/274] New translations cross-compilation.mdx (Russian) [ci skip] --- .../docs/reference/cross-compilation.mdx.mdx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/reference/cross-compilation.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/cross-compilation.mdx.mdx index 352170f..52521a0 100644 --- a/docs-crowdin-export/ru-RU/docs/reference/cross-compilation.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/reference/cross-compilation.mdx.mdx @@ -1,12 +1,12 @@ --- -sidebar_label: Cross-compilation +sidebar_label: Кросс-компиляция --- -# Cross-Compilation +# Кросс-компиляция ## Short Names -DCR supports short platform names: +DCR поддерживает короткие имена платформ, которые автоматически раскрываются в полные triples: | Short Name | Full Triple | | ---------- | -------------------------- | @@ -22,26 +22,26 @@ dcr build --target windows ```bash dcr build --target aarch64-unknown-linux-gnu -dcr build --target x86_64-pc-windows-gnu # mingw +dcr build --target x86_64-pc-windows-gnu dcr build --target armv7-unknown-linux-gnueabihf ``` ## clang --target -When using clang, DCR injects `--target=\` into CFLAGS. +При использовании clang DCR автоматически inject-ит `--target=\` в CFLAGS/CXXFLAGS. ```toml [build] compiler = "clang" target = "aarch64-unknown-linux-gnu" -# Auto: cflags += ["--target=aarch64-unknown-linux-gnu"] +# Авто: cflags = ["--target=aarch64-unknown-linux-gnu"] ``` -## Bare-Metal / Freestanding +## Bare-Metal For targets containing `none`, `-elf`, `eabi`, or `baremetal`, DCR automatically: -1. **Disables default flags** — no system include paths, no `-l` libc +1. Для none/elf/eabi/bare-metal target-ов отключаются DCR default флаги (нет `-I` системных путей, нет `-l` libc). 2. **Injects `-ffreestanding`** at compile time and `-nostdlib -static` at link time You can also enable freestanding mode explicitly: From 0d4c2399c9c6fa419e9a65fab50c389900370c19 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 02:21:41 +0800 Subject: [PATCH 133/274] New translations dcr-toml.mdx (Russian) [ci skip] --- .../ru-RU/docs/reference/dcr-toml.mdx.mdx | 111 +++++++++--------- 1 file changed, 56 insertions(+), 55 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx index 29ca0b0..c33c2d8 100644 --- a/docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx @@ -1,49 +1,50 @@ --- -sidebar_label: dcr.toml overview +sidebar_label: Обзор dcr.toml --- -# dcr.toml +# Обзор dcr.toml -Main project configuration file. Located at the project root. +Основной конфигурационный файл проекта. Располагается в корне проекта. -## Structure +## Структура ```toml [package] -# required fields +# обязательные поля [build] -# build settings +# настройки сборки -[build.debug] # optional: debug override -[build.release] # optional: release override +[build.debug] # опционально: переопределение для debug +[build.release] # опционально: переопределение для release -[build.linux] # optional: Linux override -[build.windows] # optional: Windows override -[build.windows.debug] # target + profile combination +[build.linux] # опционально: переопределение для Linux +[build.windows] # опционально: переопределение для Windows +[build.windows.debug] # комбинация target + profile [toolchain] -# compiler/linker paths +# пути к компиляторам/линкеру [dependencies] -# project dependencies +# зависимости проекта [workspace] -# multi-package configuration +# мультипакетная конфигурация [run] -# run settings +[run.release] # опционально: переопределение для release +# настройки запуска ``` ## [package] -| Field | Required | Description | -| --------- | -------- | ----------------------- | -| `name` | yes | Project name | -| `version` | yes | Semantic version | -| `type` | yes | `app`, `lib`, `none` | -| `license` | no | SPDX license identifier | -| `author` | no | Author | +| Поле | Обязательное | Описание | +| --------- | ------------ | --------------------------- | +| `name` | да | Имя проекта | +| `version` | да | Семантическая версия | +| `type` | да | `app`, `lib`, `none` | +| `license` | нет | SPDX-идентификатор лицензии | +| `author` | нет | Автор | ```toml [package] @@ -60,58 +61,55 @@ author = "John Doe" * `build.qt` — (bool) Enable automatic Qt meta-object handling (MOC, UIC, RCC). Requires `qt6` modules installed via `pkg-config`. -| Field | Default | Description | +| Поле | По умолчанию | Описание | | ---------------- | ------------------------------------------- | --------------------------------------------------------------------- | -| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"` | -| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | -| `cxx_standard` | `"c++20"` | C++ standard (`c++17`, `c++20`, `c++23`) | -| `compiler` | `"clang"` | Preferred compiler | +| `language` | `"c"` | `"c"`, `"cxx"`, `"cpp"` | +| `standard` | `"c11"` | Стандарт C (`c11`, `c17`, `c23`) | +| `cxx_standard` | `"c++20"` | Стандарт C++ (`c++17`, `c++20`, `c++23`) | +| `compiler` | `cxxflags` | Предпочитаемый компилятор | | `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom` | -| `target` | host | Target triple for cross-compilation | -| `platform` | `"native"` | `native`, `efi` | -| `cflags` | `[]` | Additional C/C++/ASM flags | -| `ldflags` | `[]` | Additional linker flags | -| `filename` | `""` | Custom output file name | +| `target` | хост | Target triple для кросс-компиляции | +| `platform` | `"native"` | `native`, `efi`, `freestanding` | +| `cflags` | `[]` | Дополнительные флаги C++ | +| `ldflags` | `[]` | Дополнительные флаги линковки | +| `filename` | `""` | Кастомное имя выходного файла | | `extension` | `""` | Custom file extension | -| `roots` | `["src"]` | Source root directories | -| `exclude` | `[]` | Exclude patterns | -| `include` | `[]` | Additional include directories | +| `roots` | `["src"]` | Корневые директории с исходниками | +| `exclude` | `[]` | Паттерны исключений | +| `include` | `[]` | Дополнительные include-директории | | `src_disable` | `false` | Disable auto source discovery | -| `inherit` | `false` | Inherit build from workspace root | +| `inherit` | `false` | Наследовать build от корня workspace | | `clean` | `[]` | Glob patterns for custom clean paths | | `out_dir` | `""` | Custom output directory | -| `workspace_only` | `false` | Workspace-only, not built standalone | +| `workspace_only` | `false` | Только для workspace, не собирать отдельно | | `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | | `opt_level` | `"0"` (debug) / `"3"` (release) | Optimization level: `0`-`3`, `"s"`, `"z"` | -| `debug` | `true` (debug) / `false` (release) | Emit debug symbols (`-g`) | +| `ldscript` | `true` (debug) / `false` (release) | Emit debug symbols (`-g`) | | `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | -| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | -| `warnings` | `["all", "extra"]` (debug) / `[]` (release) | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`) | +| `asflags` | `false` | Strip symbols from output (`-s` in ldflags) | +| `true` | `["all", "extra"]` (debug) / `[]` (release) | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`) | | `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | | `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | | `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | Settings from raw config (not in typed struct): -* `pkg_config` — list of pkg-config packages -* `ldscript` — linker script path +* Пакеты для pkg-config +* Путь к linker script * `build.steps` / `build.post_steps` — codegen steps Example: ```toml [build] -language = "c++" +language = ["cpp", "c"] +standard = "c17" standard = "c23" cxx_standard = "c++23" compiler = "clang" kind = "sharedlib" cflags = ["-Wall", "-Wextra"] -opt_level = "z" -lto = true -strip = true -panic = "abort" -codegen-units = "2" +pkg_config = ["sdl2", "gl"] ``` ## [toolchain] @@ -123,13 +121,16 @@ cxx = "/usr/bin/clang++" as = "/usr/bin/as" ar = "/usr/bin/ar" ld = "/usr/bin/ld.lld" +uic = "/usr/bin/uic" # Qt +moc = "/usr/bin/moc" # Qt +rcc = "/usr/bin/rcc" # Qt ``` Raw config also supports `uic`, `moc`, `rcc` for Qt codegen. ## [dependencies] -See [dependencies](/docs/reference/dependencies). +См. [dependencies](/docs/reference/dependencies). ## [run] @@ -138,15 +139,15 @@ See [dependencies](/docs/reference/dependencies). cmd = "./target/{profile}/{name}" ``` -Substitutions: +Подстановки: -* `{version}` — package version -* `{version_major}`, `{version_minor}`, `{version_patch}`, `{version_suffix}`, `{version_suffix_dash}` — version parts +* `{version}` — версия из [package] +* `pkg_config` * `{profile}` — debug / release -* `{name}` — package name +* `{name}` — имя из [package] -Default `cmd` = `./target/{profile}/{name}` (macOS/Windows) or `./target/\/\/\` (Linux). +По умолчанию `cmd` вычисляется как `./target/{profile}/{name}`. ## [workspace] -See [workspaces](/docs/reference/workspaces). +См. [workspaces](/docs/reference/workspaces). From 8a33a314459fe8630a8af96f7131f55d8343fac3 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 02:21:43 +0800 Subject: [PATCH 134/274] New translations dependencies.mdx (Russian) [ci skip] --- .../ru-RU/docs/reference/dependencies.mdx.mdx | 50 ++++++++++--------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/reference/dependencies.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/dependencies.mdx.mdx index a2a88a9..cc2101b 100644 --- a/docs-crowdin-export/ru-RU/docs/reference/dependencies.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/reference/dependencies.mdx.mdx @@ -1,34 +1,34 @@ --- -sidebar_label: Dependencies +sidebar_label: Зависимости --- -# Dependencies +# Зависимости -## Formats +## Форматы -The `[dependencies]` section supports three formats: +В секции `[dependencies]` поддерживаются три формата: ### String (registry) ```toml [dependencies] fmt = "10.1.1" -spdlog = "1.12" -catch2 = "3.4.0" +spdlog = "^1.12" +catch2 = ">=3.0,<4.0" ``` The version string is used as-is for registry lookup. -### Table (git) +### Табличный (git) ```toml [dependencies] fmt = { git = "https://github.com/fmtlib/fmt", tag = "10.1.1" } ``` -Fields: `git`, `branch`, `tag`, `rev`. +Поля: `git`, `branch`, `tag`, `rev`, `features`. -### Table (path) +### Табличный (path) ```toml [dependencies] @@ -37,7 +37,11 @@ mylib = { path = "../mylib" } ## Registry -DCR uses a package registry for dependency lookup by name. +## RegistryDCR использует реестр пакетов для поиска зависимостей по имени.```toml +# ~/.dcr/config.toml +[registry] +main = { url = "https://github.com/dcr-ports/dcr-index", priority = 1 } +``` ```toml # ~/.dcr/config.toml @@ -46,22 +50,22 @@ name = "default" url = "https://index.dcr.pm" ``` -Registry priority: order in `config.toml`. The `DCR_INDEX_PATH` variable overrides the path to `index.json`. +Registry priority: order in `config.toml`. Переменная `DCR_INDEX_PATH` переопределяет путь к index.json. -## Git dependencies +## Git-зависимости -DCR clones git repositories via `git2`: +При добавлении git-зависимости DCR клонирует репозиторий через `git2`: -* `branch` — switch to a branch -* `tag` — switch to a tag -* `rev` — switch to a specific commit +* `branch` — переключиться на ветку +* `tag` — переключиться на тег +* `rev` — переключиться на конкретный коммит * `features` — feature flags (parsed, but does not affect build) Cache path: `~/.dcr/git/\/`. -## Path dependencies +## Path-зависимости -Local paths. DCR automatically discovers include and lib directories from the neighbor's `dcr.toml`. +Локальные пути. DCR автоматически находит include и lib директории. ```toml [dependencies] @@ -71,14 +75,14 @@ mylib = { path = "../relative/path" } ## dcr.lock -Dependency lock file. Contains package names and sources. +Файл блокировки зависимостей. Содержит точные версии, хеши и источники. -Created during `dcr build` when registry dependencies are present. Not updated during `dcr add` — only on the next `dcr build`. +Created during `dcr build` when registry dependencies are present. Автоматически обновляется при `dcr add`. -## Resolution process +## Процесс резолва -1. Load all dependencies (registry → git → path) +1. Загружаются все зависимости (registry → git → path) 2. For path deps: recursively read their `dcr.toml` 3. For registry deps: search `index.json` 4. For git deps: clone to cache -5. Collect `include_dirs`, `lib_dirs`, `libs` for the compiler +5. Собираются include_dirs, lib_dirs, libs для передачи компилятору From 32d76ff80f3a365092057d7445c4a582e64d6940 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 02:21:46 +0800 Subject: [PATCH 135/274] New translations environment-variables.mdx (Russian) [ci skip] --- .../docs/reference/environment-variables.mdx.mdx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/reference/environment-variables.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/environment-variables.mdx.mdx index 8b75814..d4d0f44 100644 --- a/docs-crowdin-export/ru-RU/docs/reference/environment-variables.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/reference/environment-variables.mdx.mdx @@ -1,12 +1,12 @@ --- -sidebar_label: Environment variables +sidebar_label: Переменные среды --- -# Environment Variables +# Переменные среды ## DCR_COMPILER -Overrides the compiler for all languages. **Highest priority.** +Переопределяет компилятор для всех языков. **Highest priority.** ```bash export DCR_COMPILER=clang @@ -23,7 +23,7 @@ Compiler resolution priority: ## DCR_CC / DCR_CXX / DCR_AS -Per-language override (lower priority than `DCR_COMPILER`, higher than `[toolchain]`). +Приоритет: `[toolchain]` > `DCR_COMPILER` > `DCR_CC` > `PATH`. ```bash export DCR_CC=gcc-14 @@ -42,7 +42,7 @@ export DCR_AR=llvm-ar ## DCR_DEBUG -Enables debug mode — prints all compilation commands to stderr before execution. +Включает режим отладки — печатает все команды компиляции перед выполнением. ```bash export DCR_DEBUG=1 @@ -51,10 +51,10 @@ dcr build ## DCR_INDEX_PATH -Overrides the path to the registry `index.json`. +Переопределяет путь к index.json реестра. ```bash export DCR_INDEX_PATH=/custom/path/index.json ``` -Default: `~/.dcr/index.json`. +По умолчанию: `~/.dcr/index.json`. From 4b779d14324c3effe7aebb81421e65b28c7be64c Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 02:21:48 +0800 Subject: [PATCH 136/274] New translations platform-support.mdx (Russian) [ci skip] --- .../docs/reference/platform-support.mdx.mdx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/reference/platform-support.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/platform-support.mdx.mdx index cc63c00..b51f52d 100644 --- a/docs-crowdin-export/ru-RU/docs/reference/platform-support.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/reference/platform-support.mdx.mdx @@ -1,12 +1,12 @@ --- -sidebar_label: Platform support +sidebar_label: Поддержка платформ --- -# Platform Support +# Поддержка платформ ## Target Triples -DCR normalizes target triples. Short platform names are expanded to full triples. +DCR нормализует target triple через `platform_triple::normalize_triple()`. Если задано имя платформы (short name), оно раскрывается в triple. ### Linux @@ -14,9 +14,9 @@ DCR normalizes target triples. Short platform names are expanded to full triples target/-unknown-linux-gnu// ``` -Architectures: `x86_64`, `aarch64` (host-detected). +Поддержка архитектур: `x86_64`, `aarch64`. -Artifact type: ELF. Extensions: `.so` (sharedlib), `.a` (staticlib). +Artifact type: ELF. Расширения: `.so` для sharedlib, `.a` для staticlib ### macOS @@ -24,9 +24,9 @@ Artifact type: ELF. Extensions: `.so` (sharedlib), `.a` (staticlib). target// ``` -Architectures: `x86_64`, `aarch64` (host-detected). +Поддержка архитектур: `x86_64`, `aarch64`. -Extensions: `.dylib` (sharedlib), `.a` (staticlib). +`.dylib` для sharedlib, `.a` для staticlib ### Windows @@ -34,7 +34,7 @@ Extensions: `.dylib` (sharedlib), `.a` (staticlib). target// ``` -Architectures: `x86_64`, `aarch64`. +Поддержка архитектур: `x86_64`, `aarch64`. Extensions: `.exe` (bin), `.lib` (staticlib), `.dll` (sharedlib), `.efi` (UEFI). @@ -44,8 +44,8 @@ Extensions: `.exe` (bin), `.lib` (staticlib), `.dll` (sharedlib), `.efi` (UEFI). target/-unknown-// ``` -Supported systems: `freebsd`, `openbsd`, `netbsd`, `dragonfly`. +Поддерживаемые системы: `freebsd`, `openbsd`, `netbsd`. -## Host Detection +## Определение хоста -DCR uses `std::env::consts::ARCH` and `std::env::consts::OS` for host platform detection. Used as fallback when `target` is not specified. +`platform_triple::host_triple()` возвращает тройку текущей системы. Используется как fallback, если `target` не указан. From 08409563478fde3e120af5ca4b4d896e412d6c76 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 02:21:51 +0800 Subject: [PATCH 137/274] New translations workspaces.mdx (Russian) [ci skip] --- .../ru-RU/docs/reference/workspaces.mdx.mdx | 64 ++++++++----------- 1 file changed, 28 insertions(+), 36 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/reference/workspaces.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/workspaces.mdx.mdx index a0c2b4d..5f3a703 100644 --- a/docs-crowdin-export/ru-RU/docs/reference/workspaces.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/reference/workspaces.mdx.mdx @@ -1,67 +1,59 @@ --- -sidebar_label: Workspaces +sidebar_label: Рабочие пространства --- -# Workspaces +# Рабочие пространства -Workspaces allow managing multiple packages in a single repository. +Workspaces позволяют управлять несколькими пакетами в одном репозитории. -## Configuration +## Конфигурация ```toml -[workspace.lib-core] -path = "lib-core" - -[workspace.lib-utils] -path = "lib-utils" -deps = ["lib-core"] - -[workspace.app] -path = "app" -deps = ["lib-core", "lib-utils"] -main = true +[workspace] +members = [ + { path = "pkg-a" }, + { path = "pkg-b", deps = ["pkg-a"] }, + { path = "pkg-c", deps = ["pkg-a", "pkg-b"], main = true }, +] ``` -### Member fields +### Поля member -| Field | Description | -| ------ | ------------------------------------------------ | -| `path` | Path to the package (relative to workspace root) | -| `deps` | Dependencies on other members | -| `main` | Mark as the main package | +| Поле | Описание | +| ------ | -------------------------------------------- | +| `path` | Путь к пакету (относительно корня workspace) | +| `deps` | Зависимости от других member-ов | +| `main` | Пометить как главный пакет | -## Topological sort +## Топологическая сортировка -DCR automatically sorts packages by dependencies: package A is built before B if B depends on A. +DCR автоматически сортирует пакеты по зависимостям: пакет A собирается раньше B, если B зависит от A. -Cyclic dependencies are detected and cause an error. +Циклические зависимости обнаруживаются и приводят к ошибке. -## Build +## Сборка ```bash -dcr build # build all packages in dependency order -dcr build --workspace app # build only app (dependencies built automatically) +dcr build # собрать все пакеты +dcr build --workspace pkg-a # собрать только pkg-a ``` -When building a workspace, member outputs (libraries) are automatically added to include/lib paths of dependent packages. +При сборке workspace выходные файлы member-ов (библиотеки) автоматически добавляются в include/lib пути зависимых пакетов. -## Clean +## Очистка ```bash -dcr clean # clean only root target/ -dcr clean --all # clean target/ of all packages +dcr clean # очистить только корневой target/ +dcr clean --all # очистить target/ всех пакетов ``` -## Inheritance +## Наследование -If a member has `inherit = true` in its `[build]` section, fields from the root `[build]` are merged into the member: +Если у member-а нет своей секции `[build]`, а в корневом `[build]` указано `inherit = true`: ```toml -# root dcr.toml [build] inherit = true language = "c" standard = "c17" - -# member inherits language and standard ``` From facf44ddc38296c25156ef42bb76fddc86bce765 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 02:21:53 +0800 Subject: [PATCH 138/274] New translations self-update.mdx (Russian) [ci skip] --- .../ru-RU/docs/self-update.mdx.mdx | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/self-update.mdx.mdx b/docs-crowdin-export/ru-RU/docs/self-update.mdx.mdx index f9e7e88..d52839f 100644 --- a/docs-crowdin-export/ru-RU/docs/self-update.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/self-update.mdx.mdx @@ -1,46 +1,46 @@ --- -sidebar_label: Self Update +sidebar_label: Автоматическое обновление --- -# Self Update +# Автоматическое обновление ## dcr --update -Automatic update to the latest version. Downloads a binary (not an archive) from GitHub Releases and replaces the current executable. +Автоматическое обновление до последней версии. Downloads a binary (not an archive) from GitHub Releases and replaces the current executable. ```bash dcr --update ``` -## How it works +## Как это работает -1. DCR detects the current platform and architecture +1. DCR определяет текущую платформу и архитектуру 2. Fetches the latest release from `api.github.com/repos/dexoron/dcr/releases/latest` 3. Compares versions 4. Downloads the matching asset (direct binary URL, not archive) -5. Replaces the current executable via `self_replace` +5. Заменяет текущий исполняемый файл ## Asset naming -Pattern: `dcr-\` or `dcr-\.exe` +Шаблон: `dcr-\.\ ` -| Platform | Asset name | -| -------------- | -------------------------------- | -| Linux x86_64 | `dcr-x86_64-unknown-linux-gnu` | -| macOS x86_64 | `dcr-x86_64-apple-darwin` | -| macOS ARM64 | `dcr-aarch64-apple-darwin` | -| Windows x86_64 | `dcr-x86_64-pc-windows-msvc.exe` | +| Платформа | Asset name | +| -------------- | ------------------------------------- | +| Linux x86_64 | `dcr-x86_64-unknown-linux-gnu.tar.gz` | +| macOS x86_64 | `dcr-x86_64-apple-darwin.tar.gz` | +| macOS ARM64 | `dcr-aarch64-apple-darwin.tar.gz` | +| Windows x86_64 | `dcr-x86_64-pc-windows-msvc.zip` | ## AUR -If DCR was installed via AUR, `--update` shows a warning: +Если DCR установлен через AUR, `--update` выводит предупреждение: ``` Update via package manager: yay/paru -Syu {package_name} or sudo pacman -Syu {package_name} ``` -## Errors +## Ошибки -* Cannot detect platform — error -* Cannot fetch release — error with URL -* No write permission — error (use `sudo` or manual install) +* Не удалось определить платформу — ошибка +* Не удалось скачать релиз — ошибка с URL +* Нет прав на запись бинарника — ошибка (нужен `sudo` или ручная установка) From b36d6a210925417d2e6b1d45984b908bb555eabe Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 02:21:56 +0800 Subject: [PATCH 139/274] New translations running-tests.mdx (Russian) [ci skip] --- .../ru-RU/docs/testing/running-tests.mdx.mdx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/testing/running-tests.mdx.mdx b/docs-crowdin-export/ru-RU/docs/testing/running-tests.mdx.mdx index 934b0ed..294f598 100644 --- a/docs-crowdin-export/ru-RU/docs/testing/running-tests.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/testing/running-tests.mdx.mdx @@ -1,8 +1,8 @@ --- -sidebar_label: Running tests +sidebar_label: Запуск тестов --- -# Running Tests +# Запуск тестов ## Execution @@ -15,12 +15,12 @@ Builds the project, then compiles and runs test files from `tests/`. ## Profiles ```bash -dcr test # debug (default) +dcr test # debug (по умолчанию) dcr test --release # release -dcr test --debug # explicit debug +dcr test --debug # явно debug ``` -## Output +## Вывод ``` ===================== @@ -33,13 +33,13 @@ FAIL: 1 ===================== ``` -## Exit code +## Код возврата -* 0 — all tests passed (FAIL = 0) -* 1 — test failures or build error +* 0 — все тесты пройдены (FAIL = 0) +* 1 — есть упавшие тесты ## What gets built -* All `.c` files from `tests/` (`.cpp` not supported) -* Include path: `tests/` (for `dcr_test.h`) -* Linked with project if `package.type = "lib"` or `kind = "staticlib"`/`"sharedlib"` +* Все C/C++ файлы из `tests/` +* Include path: `tests/` (для `dcr_test.h`) +* Линкуется с основным проектом (если `type = "lib"`) From d3cdb8d4791e15ab9b2a9fe7c48ca8ace1b7371c Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 02:21:58 +0800 Subject: [PATCH 140/274] New translations test-framework.mdx (Russian) [ci skip] --- .../ru-RU/docs/testing/test-framework.mdx.mdx | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/testing/test-framework.mdx.mdx b/docs-crowdin-export/ru-RU/docs/testing/test-framework.mdx.mdx index ae43679..c1f0a6a 100644 --- a/docs-crowdin-export/ru-RU/docs/testing/test-framework.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/testing/test-framework.mdx.mdx @@ -1,33 +1,33 @@ --- -sidebar_label: Test framework (EXPECT, TEST, ...) +sidebar_label: Тестовая инфраструктура (EXPECT, TEST, ...) --- -# Test Framework +# Тестовая инфраструктура -DCR has a built-in minimal test framework for C. +DCR имеет встроенный минималистичный фреймворк для тестирования на C/C++. -## Macros +## Макросы -### `EXPECT(expr)` +### `EXPECT(expr, ...)` -Asserts that an expression is true. +Проверяет, что выражение истинно. ```c EXPECT(1 + 1 == 2); -EXPECT(ptr != NULL); +EXPECT(ptr != NULL, "ptr should not be NULL"); ``` -### `SKIP(reason)` +### `SKIP(...)` -Skips a test with a message. +Пропускает тест с опциональным сообщением. ```c -SKIP("not implemented on Windows"); +SKIP("not implemented on Windows yet"); ``` ### `TEST(name)` -Defines a test. +Определяет тест. ```c TEST(addition) { @@ -36,34 +36,34 @@ TEST(addition) { } ``` -### `TEST_CASE(name)` +### `TEST_CASE(name, ...)` Registers a test case. ```c -TEST_CASE(math) { - EXPECT(1 + 1 == 2); +TEST_CASE(math, a, b) { + EXPECT(a + b == b + a); } ``` -## Initialization +## Инициализация ```bash dcr test --init ``` -Creates: +Создаются файлы: -* `tests/dcr_test.h` — framework header (do not edit) -* `tests/test.c` — template with example test +* `tests/dcr_test.h` — заголовочный файл фреймворка +* `tests/test.c` — шаблон с примером теста -## Structure +## Структура tests/ ``` tests/ -├── dcr_test.h # framework (do not edit) -├── test.c # main tests -└── ... # additional .c test files +├── dcr_test.h # фреймворк (не редактировать) +├── test.c # основные тесты +└── ... # дополнительные .c файлы с тестами ``` Only `.c` files are compiled (`.cpp` is not supported). From d001ef3e82d95ebca71ef2dc01aea400bb840130 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 03:25:46 +0800 Subject: [PATCH 141/274] New translations quality-commands.mdx (Russian) [ci skip] --- .../ru-RU/docs/commands/quality-commands.mdx.mdx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs-crowdin-export/ru-RU/docs/commands/quality-commands.mdx.mdx b/docs-crowdin-export/ru-RU/docs/commands/quality-commands.mdx.mdx index 976e2e6..184e879 100644 --- a/docs-crowdin-export/ru-RU/docs/commands/quality-commands.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/commands/quality-commands.mdx.mdx @@ -11,7 +11,8 @@ sidebar_label: Команды качества (test, fmt) ```bash dcr test # debug профиль dcr test --release # release профиль -dcr test --debug # явно debug +dcr test --debug # явный debug +dcr test --help # подробная справка ``` Перед первым запуском нужно инициализировать тесты: From 50fa84c31724837c3c2b62bf161f71fec83e95a7 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 13:57:31 +0800 Subject: [PATCH 142/274] New translations quality-commands.mdx (Russian) [ci skip] --- .../ru-RU/docs/commands/quality-commands.mdx.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs-crowdin-export/ru-RU/docs/commands/quality-commands.mdx.mdx b/docs-crowdin-export/ru-RU/docs/commands/quality-commands.mdx.mdx index 184e879..b9f27e8 100644 --- a/docs-crowdin-export/ru-RU/docs/commands/quality-commands.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/commands/quality-commands.mdx.mdx @@ -42,7 +42,7 @@ dcr fmt Processes: `src/**/*.{c,cpp,cxx,cc,h,hpp,hxx,hh}` and `tests/**/*.{c,cpp,cxx,cc,h,hpp,hxx,hh}`. -Используется файл `.clang-format` в корне проекта (если есть), иначе дефолтный стиль DCR. +Использует `.clang-format` в корне проекта (если таковой имеется), иначе стиль clang-format по умолчанию. ## `dcr lint` From 9d033ef9a4c1c71ac5eaf860a201a2abed2cc7f5 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 15:01:06 +0800 Subject: [PATCH 143/274] New translations readme.mdx (Russian) [ci skip] --- docs-crowdin-export/ru-RU/docs/README.mdx.mdx | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/README.mdx.mdx b/docs-crowdin-export/ru-RU/docs/README.mdx.mdx index 06642ec..7f63616 100644 --- a/docs-crowdin-export/ru-RU/docs/README.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/README.mdx.mdx @@ -23,19 +23,19 @@ dcr run ## Содержание -| Раздел | Описание | -| ----------------------------------------------------- | -------------------------------------------- | -| [Getting Started](/docs/getting-started/installation) | Установка и первые шаги | -| [Commands](/docs/commands/project-commands) | Все CLI-команды DCR | -| [Reference](/docs/reference/dcr-toml) | Конфигурация, сборка, зависимости, платформы | -| [Testing](/docs/testing/test-framework) | Встроенный фреймворк тестирования | -| [Recipes](/docs/recipes/cross-to-windows) | Типовые сценарии | -| [IDE Integration](/docs/ide-integration) | VS Code, CLion, compile_commands.json | -| [Self Update](/docs/self-update) | Автообновление | -| [FAQ](/docs/faq) | Частые вопросы | -| [Changelog](/docs/changelog) | История версий | -| [License](/docs/license) | Лицензии DCR и вендорных библиотек | -| [Contributing](/docs/contributing) | Разработка DCR | +| Раздел | Описание | +| --------------------------------------------------- | -------------------------------------------- | +| [Начало работы](/docs/getting-started/installation) | Установка и первые шаги | +| [Команды](/docs/commands/project-commands) | Все CLI-команды DCR | +| [Ссылка](/docs/reference/dcr-toml) | Конфигурация, сборка, зависимости, платформы | +| [Тестирование](/docs/testing/test-framework) | Встроенный фреймворк тестирования | +| [Рецепты](/docs/recipes/cross-to-windows) | Типовые сценарии | +| [Интеграция с IDE](/docs/ide-integration) | VS Code, CLion, compile_commands.json | +| [Автоматическое обновление](/docs/self-update) | Автообновление | +| [Часто задаваемые вопросы](/docs/faq) | Частые вопросы | +| [Журнал изменений](/docs/changelog) | История версий | +| [Лицензия](/docs/license) | Лицензии DCR и вендорных библиотек | +| [Внести свой вклад](/docs/contributing) | Разработка DCR | ## Особенности @@ -49,5 +49,5 @@ dcr run * **Registry + Git + Path** — три механизма зависимостей * **Генерация IDE** — VS Code, CLion, compile_commands.json, JSON metadata * **pkg-config** — автоматический поиск системных библиотек -* **Per-command `--help`** — `dcr build --help`, `dcr new --help`, etc. -* **Man pages** — `man dcr`, `man dcr-build`, `man dcr-new` +* **Команда `--help` для каждой команды** — `dcr build --help`, `dcr new --help` и т. д. +* **Справочные страницы** — `man dcr`, `man dcr-build`, `man dcr-new` From 9c9a2d9096575dff143c262eaa2098efd00346a8 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 15:01:09 +0800 Subject: [PATCH 144/274] New translations changelog.mdx (Russian) [ci skip] --- .../ru-RU/docs/changelog.mdx.mdx | 70 +++++++++---------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/changelog.mdx.mdx b/docs-crowdin-export/ru-RU/docs/changelog.mdx.mdx index 5f9090f..cfb1f3b 100644 --- a/docs-crowdin-export/ru-RU/docs/changelog.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/changelog.mdx.mdx @@ -1,56 +1,56 @@ --- -sidebar_label: Changelog +sidebar_label: Список изменений --- -# Changelog +# Список изменений -## 0.7.1 (2026-06-02) +## 0.7.1 (02.06.2026) ### Добавлено: -* **`--help` for all commands** — `dcr build --help`, `dcr run --help`, `dcr new --help`, +* **`--help` для всех команд** — `dcr build --help`, `dcr run --help`, `dcr new --help`, `dcr init --help`, `dcr clean --help`, `dcr add --help`, `dcr fmt --help`, `dcr setup --help`, `dcr tree --help`, `dcr gen --help`, `dcr --update --help`, - `dcr test --help`. All output uses styled headers (green) and usage lines (cyan). -* **Man pages** — 12 troff pages in `man/man1/`: `dcr.1`, `dcr-build.1`, + `dcr test --help`. Во всех результатах вывода используются стилизованные заголовки (зелёного цвета) и строки с информацией об использовании (голубого цвета). +* **Справочные страницы** — 12 страниц в формате troff в каталоге `man/man1/`: `dcr.1`, `dcr-build.1`, `dcr-run.1`, `dcr-new.1`, `dcr-init.1`, `dcr-clean.1`, `dcr-add.1`, `dcr-test.1`, `dcr-gen.1`, `dcr-fmt.1`, `dcr-tree.1`, `dcr-setup.1`. -* **Man pages in all packaging** — install.sh, install_bsd.sh, AUR PKGBUILD, +* **Справочные страницы во всех пакетах** — install.sh, install_bsd.sh, PKGBUILD из AUR, Debian (cargo-deb), RPM (cargo-generate-rpm), Nix (postInstall), Homebrew - (resource), Snap, GitHub Release assets. -* **Project name validation** — `dcr init` and `dcr new` now validate names before - creating files. Only ASCII letters, digits, `_` and `-` are allowed. -* **`documentation` and `homepage` fields** — added to `Cargo.toml`. -* **Release profile optimizations** — `opt-level = "z"`, LTO, `codegen-units = 1`, - `panic = "abort"`, `strip = true` for smaller binaries. -* **Linux i686, armv7, riscv64 targets** — added to release workflow and install scripts. -* **Linux musl i686, armv7 targets** — cross-compiled via zigbuild in CI. -* **AUR packages** — `dcr-dev`, `dcr-dev-bin` publishing workflow. -* **Snap publishing** — automated Snapcraft publishing in CI. -* **Snap badge** — in README. + (ресурс), Snap, ресурсы релизов GitHub. +* **Проверка имени проекта** — команды `dcr init` и `dcr new` теперь проверяют имена перед созданием файлов + . Допускаются только буквы ASCII, цифры, символы `_` и `-`. +* **Поля `documentation` и `homepage`** — добавлены в файл `Cargo.toml`. +* **Оптимизации профиля релиза** — `opt-level = "z"`, LTO, `codegen-units = 1`, + `panic = "abort"`, `strip = true` для уменьшения размера бинарных файлов. +* **Платформы Linux i686, armv7, riscv64** — добавлены в рабочий процесс выпуска и скрипты установки. +* **Платформы Linux musl i686 и armv7** — скомпилированы с помощью zigbuild в системе непрерывной интеграции (CI). +* **Пакеты AUR** — рабочий процесс публикации `dcr-dev`, `dcr-dev-bin`. +* **Публикация Snap** — автоматическая публикация Snapcraft в рамках непрерывной интеграции (CI). +* **Значок Snap** — в файле README. ### Изменено: -* **`validate_package_name` made public** — callable from CLI commands. -* **README platform table** — reorganized: libc variants as separate OS rows, - removed extra columns. Linux architecture list updated. -* **`gen.rs` no-args output** — now uses styled output instead of raw `eprintln!`. -* **`tree.rs`, `fmt.rs`, and `setup.rs`** — now accept arguments for `--help`. -* **README install commands** — `| bash` → `| sh` for POSIX compatibility. +* **`validate_package_name` стал общедоступным** — его можно вызывать из команд CLI. +* **Таблица платформы README** — реорганизована: варианты libc вынесены в отдельные строки по ОС, + удалены лишние столбцы. Обновлен список архитектур Linux. +* **Вывод `gen.rs` без аргументов** — теперь используется стилизованный вывод вместо необработанного `eprintln!`. +* **`tree.rs`, `fmt.rs` и `setup.rs`** — теперь поддерживают аргументы для опции `--help`. +* **Команды установки из файла README** — `| bash` → `| sh` для обеспечения совместимости с POSIX. ### Исправлено: -* **`dcr new \` creates directory then fails** — validation now - happens before any file operations. -* **`dcr init` on invalid directory name** — same fix. -* **Man pages missing in installed packages** — now shipped in all formats. -* **Windows drive letter false positive** — in dependency file parser. -* **CRLF (`\r\n`) breaks dependency parser** — now handles mixed line endings. -* **Newline after backslash not consumed** — in `parse_d_file` escape handling. +* **`dcr new \` создает каталог, а затем завершается с ошибкой** — теперь проверка + выполняется до начала любых операций с файлами. +* **`dcr init` при указании недопустимого имени каталога** — то же исправление. +* **Отсутствующие справочные страницы в установленных пакетах** — теперь поставляются во всех форматах. +* **Ложное срабатывание по букве диска Windows** — в модуле анализа файлов зависимостей. +* **CRLF (`\r\n`) вызывает сбой в работе парсера зависимостей** — теперь поддерживается обработка смешанных символов окончания строк. +* **Новая строка после обратного слеша не обработана** — при обработке экранирующих символов в функции `parse_d_file`. -## 0.7.0 (2026-06-01) +## 0.7.0 (01.06.2026) -### Added +### Добавлено * **Поддержка целевых платформ OpenBSD и NetBSD** — полная маршрутизация по платформам с динамически генерируемыми тройками целевых параметров с использованием `std::env::consts::ARCH` и `std::env::consts::OS`. Затрагивает команды `build`, `run`, `clean` и модуль платформы. * **`src/platform/bsd.rs`** — новый специальный модуль платформы BSD, общий для FreeBSD, OpenBSD и NetBSD, предоставляющий `bin_path`, `lib_path`, `elf_path`, `efi_path` и `shared_lib_path`. @@ -65,7 +65,7 @@ sidebar_label: Changelog * **Интеграционные тесты** — `build_with_target_config` (проверяет `build.target = «linux»`) и `build_with_out_dir` (проверяет настраиваемый каталог вывода). * **`get_build_string_with_profile` стал `pub`** — чтобы `run.rs` мог определять конфигурацию настраиваемого каталога вывода. -### Changed +### Изменено * **Изменена семантика `build.target`** — теперь строго содержит тройку целей (например, `x86_64-unknown-linux-gnu`) или короткое имя (`linux`, `macos`, `windows`). Больше не используется в качестве пользовательского каталога вывода — эта функциональность перенесена в `build.out_dir`. * **`build.standard` стал опциональным** — изменен с `String` на `Option\`. Проверка обеспечивает только непустоту для языков, отличных от ASM. Пропускается в выводе `dcr.toml`, если пуст. @@ -75,7 +75,7 @@ sidebar_label: Changelog * **Таблица совместимости README** — статус сборки/работы на FreeBSD, OpenBSD, NetBSD повышен с «сообщество/по возможности» до «официально поддерживается». * **Обновлена документация** — `build-section.md` описывает новые поля `build.target` и `build.out_dir`. `target-directory.md` переписан для уточнения различия. -### Fixed +### Исправлено * **stdout/stderr `dcr run` не наследуются** — вывод дочернего процесса захватывался и выводился вручную, что приводило к сбоям интерактивных программ. Исправлено путем перехода на `Command::status()`. * **Условие гонки в CI релиза** — задания матрицы сборки могли загружать ресурсы в релиз, который еще не существовал. Исправлено добавлением специального задания `create-release`. From 8ded7958f6f16b0fa7d05560290a0f6f75f02b26 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 15:01:11 +0800 Subject: [PATCH 145/274] New translations quality-commands.mdx (Russian) [ci skip] --- .../docs/commands/quality-commands.mdx.mdx | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/commands/quality-commands.mdx.mdx b/docs-crowdin-export/ru-RU/docs/commands/quality-commands.mdx.mdx index b9f27e8..7c53a2a 100644 --- a/docs-crowdin-export/ru-RU/docs/commands/quality-commands.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/commands/quality-commands.mdx.mdx @@ -25,11 +25,11 @@ dcr test --init Что делает `dcr test`: -1. Builds the project -2. Collects `tests/*.c` files (`.c` only, not `.cpp`) -3. Compiles and links each test file -4. Runs each test binary -5. Prints summary: TOTAL, PASS, SKIP, FAIL +1. Собирает проект +2. Собирает файлы `tests/*.c` (только `.c`, не `.cpp`) +3. Компилирует и линкует каждый файл теста +4. Запускает каждый бинарник тестов +5. Вывод сводки: TOTAL, PASS, SKIP, FAIL 6. Возвращает ненулевой код при наличии FAIL ## `dcr fmt` @@ -40,21 +40,21 @@ dcr test --init dcr fmt ``` -Processes: `src/**/*.{c,cpp,cxx,cc,h,hpp,hxx,hh}` and `tests/**/*.{c,cpp,cxx,cc,h,hpp,hxx,hh}`. +Процессы: `src/**/*.{c,cpp,cxx,cc,h,hpp,hxx,hh}` и `tests/**/*.{c,cpp,cxx,cc,h,hpp,hxx,hh}`. Использует `.clang-format` в корне проекта (если таковой имеется), иначе стиль clang-format по умолчанию. ## `dcr lint` -Runs `clang-tidy` on C/C++ source files for static analysis. +Выполняет `clang-tidy` на C/C++ исходных файлах для статического анализа. ```bash -dcr lint # show diagnostics -dcr lint --fix # apply fixes automatically -dcr lint --help # detailed help +dcr lint # отобразить диагностику +dcr lint --fix # автоматически применить исправления +dcr lint --help # подробная справка ``` -Processes: `src/**/*.{c,cpp,cxx,cc}` and `tests/**/*.{c,cpp,cxx,cc}`. +Процессы: `src/**/*.{c,cpp,cxx,cc}` и `tests/**/*.{c,cpp,cxx,cc}`. -Without `--fix`, clang-tidy reports warnings and errors without modifying files. -With `--fix`, clang-tidy applies automatic suggestions in place. +Без параметра `--fix` clang-tidy выдает предупреждения и ошибки, не внося изменений в файлы. +При параметре `--fix` clang-tidy автоматически вносит предложения по исправлениям на месте. From 66195b53e2e2cee2901750e3d7a7eccc3096041c Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 15:01:14 +0800 Subject: [PATCH 146/274] New translations system-commands.mdx (Russian) [ci skip] --- .../ru-RU/docs/commands/system-commands.mdx.mdx | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/commands/system-commands.mdx.mdx b/docs-crowdin-export/ru-RU/docs/commands/system-commands.mdx.mdx index 33e095c..031a21b 100644 --- a/docs-crowdin-export/ru-RU/docs/commands/system-commands.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/commands/system-commands.mdx.mdx @@ -12,7 +12,7 @@ sidebar_label: Системные команды (setup, --help, ...) dcr setup ``` -If `~/.dcr/config.toml` is not found, DCR returns an error. Create it manually: +Если файл `~/.dcr/config.toml` не найден, DCR возвращает ошибку. Создайте его вручную: ```toml [[registry]] @@ -22,31 +22,30 @@ url = "https://index.dcr.pm" ## `dcr --help` -Shows help for all commands. +Отображает справку по всем командам. ```bash dcr --help -dcr build --help # справка по конкретной команде ``` ## `dcr --version` -Shows version and target triple. +Отображает версию и целевую платформу. ```bash -dcr --version # dcr 0.7.0 +dcr --version # dcr 0.7.0 (x86_64-unknown-linux-gnu) ``` ## `dcr --update` -Самообновление. Скачивает последний релиз с GitHub Releases и заменяет текущий бинарник. +Автоматическое обновление. Загружает последнюю версию бинарного файла из раздела «Релизы» на GitHub и заменяет текущую версию. ```bash dcr --update ``` -Особенности: +Возможности: * Определяет платформу и архитектуру автоматически -* Warns if installed via AUR (use package manager instead) +* Выдает предупреждение при установке через AUR (вместо этого используйте пакетный менеджер) * Работает на Linux, macOS, Windows From 828624860a7a1a5bee65034932f9a4573414959d Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 15:01:16 +0800 Subject: [PATCH 147/274] New translations contributing.mdx (Russian) [ci skip] --- .../ru-RU/docs/contributing.mdx.mdx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/contributing.mdx.mdx b/docs-crowdin-export/ru-RU/docs/contributing.mdx.mdx index 9a852d0..a4f0771 100644 --- a/docs-crowdin-export/ru-RU/docs/contributing.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/contributing.mdx.mdx @@ -1,10 +1,10 @@ --- -sidebar_label: Contributing +sidebar_label: Вклад --- -# Contributing +# Вклад -## Setup +## Настройка ```bash git clone https://github.com/dexoron/dcr @@ -12,12 +12,12 @@ cd dcr cargo build ``` -## Code style +## Стиль написания кода Весь код форматируется через `cargo fmt`: ```bash -cargo fmt +формат груза ``` ## Линтер @@ -29,10 +29,10 @@ cargo clippy --all-targets -- -D warnings ## Тесты ```bash -cargo test --all-targets +тест cargo --all-targets ``` -## PR process +## Процесс связей с общественностью 1. Форкните репозиторий 2. Создайте ветку: `git checkout -b feature/description` From 17aa2937be8088713ae1a777ae172ddad48cf93a Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 15:01:19 +0800 Subject: [PATCH 148/274] New translations faq.mdx (Russian) [ci skip] --- docs-crowdin-export/ru-RU/docs/faq.mdx.mdx | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/faq.mdx.mdx b/docs-crowdin-export/ru-RU/docs/faq.mdx.mdx index 1b5e00c..6089ebb 100644 --- a/docs-crowdin-export/ru-RU/docs/faq.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/faq.mdx.mdx @@ -4,16 +4,16 @@ sidebar_label: Часто задаваемые вопросы # Часто задаваемые вопросы -## Registry not found +## Реестр не найден ``` -error: registry not found +Ошибка: реестр не найден ``` -**Solution:** Make sure `~/.dcr/config.toml` exists: +**Решение:** Убедитесь, что файл `~/.dcr/config.toml` существует: ```toml -[[registry]] +[[реестр]] name = "default" url = "https://index.dcr.pm" ``` @@ -24,27 +24,27 @@ url = "https://index.dcr.pm" echo $DCR_INDEX_PATH ``` -## Compiler not found +## Компилятор не найден ``` -error: compiler not found +Ошибка: компилятор не найден ``` **Решение:** Убедитесь, что компилятор установлен и доступен в PATH. ```bash -which gcc -which clang +какой gcc +какой clang ``` Или укажите явно через `[toolchain]` или `DCR_COMPILER`. -## openssl-sys build failed +## Сбой сборки openssl-sys При сборке DCR из исходников: ``` -error: failed to run custom build command for openssl-sys +Ошибка: не удалось выполнить пользовательскую команду сборки для openssl-sys ``` **Решение:** Установите OpenSSL development headers: @@ -68,7 +68,7 @@ DCR корректно обрабатывает SIGINT: прерывает те [Library Recipe](/docs/recipes/library-project). -## How to cross-compile to Windows? +## Как выполнить кросс-компиляцию для Windows? См. [Cross-Compile Recipe](/docs/recipes/cross-to-windows). From 6575f5d2f00d8b029bb3fdec87cd6ed78154d537 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 15:01:22 +0800 Subject: [PATCH 149/274] New translations first-steps.mdx (Russian) [ci skip] --- .../docs/getting-started/first-steps.mdx.mdx | 21 +++++++------------ 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/getting-started/first-steps.mdx.mdx b/docs-crowdin-export/ru-RU/docs/getting-started/first-steps.mdx.mdx index 039354b..028fdd1 100644 --- a/docs-crowdin-export/ru-RU/docs/getting-started/first-steps.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/getting-started/first-steps.mdx.mdx @@ -27,32 +27,27 @@ my-app/ name = "my-app" version = "0.1.0" type = "none" -description="" -author="" -license = "GPL-3.0-or-later" [build] language = "c" standard = "c11" compiler = "clang" kind = "bin" - -[dependencies] ``` -## Build +## Сборка ```bash dcr build ``` -Output — `target/\/debug/my-app` (Linux) or `target/debug/my-app.exe` (Windows). +Результат — `target/\/debug/my-app` (Linux) или `target/debug/my-app.exe` (Windows). -Профиль: +Профиль сборки: ```bash -dcr build --release # релизная сборка -dcr build --debug # дебажная (по умолчанию) +dcr build --release # release сборка +dcr build --debug # debug (по умолчанию) ``` ## Запустить @@ -63,11 +58,11 @@ dcr run Собирает (если нужно) и запускает бинарник. -## First test +## Первый тест ```bash -dcr test --init # create test template -dcr test # run tests +dcr test --init # создать шаблон теста +dcr test # запустить тесты ``` ## Форматирование From a988adea3a154a3b6f6ac4573b50d2465544dcfd Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 15:01:24 +0800 Subject: [PATCH 150/274] New translations installation.mdx (Russian) [ci skip] --- .../docs/getting-started/installation.mdx.mdx | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/getting-started/installation.mdx.mdx b/docs-crowdin-export/ru-RU/docs/getting-started/installation.mdx.mdx index cdd8c37..ef654ff 100644 --- a/docs-crowdin-export/ru-RU/docs/getting-started/installation.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/getting-started/installation.mdx.mdx @@ -29,7 +29,7 @@ sudo dnf install dcr ## Arch Linux (AUR) ```sh -yay -S dcr +ура -S dcr ``` ## macOS / Linux (Homebrew) @@ -37,8 +37,6 @@ yay -S dcr ```sh brew tap dexoron/dexoron brew install dcr -# or -brew install dexoron/dexoron/dcr ``` ## Snap (Linux) @@ -51,7 +49,7 @@ sudo snap install dcrup ```sh nix run github:dexoron/dcr -# or install to profile: +# или установить в профиль: nix profile install github:dexoron/dcr ``` @@ -61,13 +59,13 @@ nix profile install github:dexoron/dcr cargo install dcr ``` -## Linux / macOS (script) +## Linux / macOS (скрипт) ```sh curl -fsSL https://dcr.dexoron.su/install_bsd.sh | bash ``` -## BSD (script) +## BSD (скрипт) ```sh curl -fsSL https://dcr.dexoron.su/install.sh | bash @@ -79,7 +77,7 @@ curl -fsSL https://dcr.dexoron.su/install.sh | bash irm https://dcr.dexoron.su/install.ps1 | iex ``` -## From source +## Из источника ```sh git clone https://github.com/dexoron/dcr.git @@ -87,22 +85,22 @@ cd dcr && cargo build --release ln -sf "$PWD/target/release/dcr" ~/.local/bin/dcr ``` -## Post-install +## После установки -Verify the installation: +Проверьте установку: ```bash dcr setup ``` -Man pages are available after installation: +После установки становятся доступны man страницы: ```bash man dcr man dcr-build ``` -Команда создаёт `~/.dcr/` с дефолтным `config.toml` и скачивает публичный реестр. +Чтобы использовать реестр, создайте файл `~/.dcr/config.toml`: ```toml [[registry]] From fce6804c3289cebb1b16537cf4e9b20ee279ca7c Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 15:01:27 +0800 Subject: [PATCH 151/274] New translations ide-integration.mdx (Russian) [ci skip] --- .../ru-RU/docs/ide-integration.mdx.mdx | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/ide-integration.mdx.mdx b/docs-crowdin-export/ru-RU/docs/ide-integration.mdx.mdx index 8ba1fc2..dea2252 100644 --- a/docs-crowdin-export/ru-RU/docs/ide-integration.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/ide-integration.mdx.mdx @@ -27,25 +27,25 @@ dcr gen clion Генерирует в `.idea/`: -| Файл | Назначение | -| ----------------------------------------- | ----------------------------------------------- | -| `externalTools.xml` | Build, Run, Clean, Test как внешние инструменты | -| `customTargets.xml` | Кастомные цели сборки | -| `misc.xml` | Настройки C/C++ проекта | -| `runConfigurations/dcr_build_and_run.xml` | Per-binary run configurations | +| Файл | Назначение | +| ----------------------------------------- | ------------------------------------------------ | +| `externalTools.xml` | Build, Run, Clean, Test как внешние инструменты | +| `customTargets.xml` | Кастомные цели сборки | +| `misc.xml` | Настройки C/C++ проекта | +| `runConfigurations/dcr_build_and_run.xml` | Конфигурации запуска для каждого бинарного файла | ## compile_commands.json ```bash -dcr gen compile-commands +dcr gen команды компиляции ``` Генерирует `compile_commands.json` в корне проекта. Стандартный формат для: -## project-info +## информация о проекте ```bash -dcr gen project-info +dcr gen info-проекта ``` Выводит JSON с метаданными проекта (см. [gen-commands](/docs/commands/gen-commands)). From b8cceb29459d55dc1b17d364f6d51eec883fee79 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 15:01:29 +0800 Subject: [PATCH 152/274] New translations license.mdx (Russian) [ci skip] --- .../ru-RU/docs/license.mdx.mdx | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/license.mdx.mdx b/docs-crowdin-export/ru-RU/docs/license.mdx.mdx index 49e2202..5ea1ffb 100644 --- a/docs-crowdin-export/ru-RU/docs/license.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/license.mdx.mdx @@ -14,33 +14,33 @@ DCR распространяется под лицензией [GPL-3.0-or-later DCR статически связывает следующие C-библиотеки через вендорные Rust-зависимости: -| Библиотека | Лицензия | Bundled by | -| ------------------------------------------ | ------------------ | ----------------------------- | -| [libgit2](https://libgit2.org) | MIT OR Apache-2.0 | `git2` / `libgit2-sys` | -| [libssh2](https://libssh2.org) | MIT OR Apache-2.0 | `libgit2-sys` | -| [zlib](https://zlib.net) | MIT OR Apache-2.0 | `libgit2-sys` | -| [OpenSSL](https://openssl.org) | Apache-2.0 | `openssl-sys` / `openssl-src` | -| [ring](https://github.com/briansmith/ring) | Apache-2.0 AND ISC | `rustls` | +| Библиотека | Лицензия | В комплекте с | +| -------------------------------------------- | ------------------ | ----------------------------- | +| [libgit2](https://libgit2.org) | MIT ИЛИ Apache-2.0 | `git2` / `libgit2-sys` | +| [libssh2](https://libssh2.org) | MIT ИЛИ Apache-2.0 | `libgit2-sys` | +| [zlib](https://zlib.net) | MIT ИЛИ Apache-2.0 | `libgit2-sys` | +| [OpenSSL](https://openssl.org) | Apache-2.0 | `openssl-sys` / `openssl-src` | +| [кольцо](https://github.com/briansmith/ring) | Apache-2.0 И ISC | `rustls` | ## Rust-зависимости DCR написан на Rust. Ниже перечислены основные статически связываемые крейты: -| Крейт | Лицензия | -| --------------------------------------------- | ------------------------ | -| [`reqwest`](https://crates.io/crates/reqwest) | MIT OR Apache-2.0 | -| [`rustls`](https://crates.io/crates/rustls) | Apache-2.0 OR ISC OR MIT | -| [`serde`](https://crates.io/crates/serde) | MIT OR Apache-2.0 | -| [`toml`](https://crates.io/crates/toml) | MIT OR Apache-2.0 | -| [`sha2`](https://crates.io/crates/sha2) | MIT OR Apache-2.0 | -| [`git2`](https://crates.io/crates/git2) | MIT OR Apache-2.0 | -| [`openssl`](https://crates.io/crates/openssl) | Apache-2.0 | -| [`tokio`](https://crates.io/crates/tokio) | MIT | -| [`hyper`](https://crates.io/crates/hyper) | MIT | -| [`ctrlc`](https://crates.io/crates/ctrlc) | MIT OR Apache-2.0 | +| Крейт | Лицензия | +| --------------------------------------------- | -------------------------- | +| [`reqwest`](https://crates.io/crates/reqwest) | MIT ИЛИ Apache-2.0 | +| [`rustls`](https://crates.io/crates/rustls) | Apache-2.0 ИЛИ ISC ИЛИ MIT | +| [`serde`](https://crates.io/crates/serde) | MIT ИЛИ Apache-2.0 | +| [`toml`](https://crates.io/crates/toml) | MIT ИЛИ Apache-2.0 | +| [`sha2`](https://crates.io/crates/sha2) | MIT ИЛИ Apache-2.0 | +| [`git2`](https://crates.io/crates/git2) | MIT ИЛИ Apache-2.0 | +| [`openssl`](https://crates.io/crates/openssl) | Apache-2.0 | +| [`tokio`](https://crates.io/crates/tokio) | MIT | +| [`hyper`](https://crates.io/crates/hyper) | MIT | +| [`ctrlc`](https://crates.io/crates/ctrlc) | MIT ИЛИ Apache-2.0 | Полное дерево зависимостей (143 пакета) доступно в [`Cargo.lock`](https://github.com/dexoron/dcr/blob/main/Cargo.lock). Подавляющее большинство имеют двойную лицензию MIT OR Apache-2.0. -## Additional credits +## Дополнительные благодарности * Дизайн CLI и модель проектов DCR вдохновлены [Cargo](https://doc.rust-lang.org/cargo/). From 0f1fff7072625b261d0a7d4576dba9d6ac365d53 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 15:01:38 +0800 Subject: [PATCH 153/274] New translations build-profiles.mdx (Russian) [ci skip] --- .../docs/reference/build-profiles.mdx.mdx | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/reference/build-profiles.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/build-profiles.mdx.mdx index d83ab37..d98c699 100644 --- a/docs-crowdin-export/ru-RU/docs/reference/build-profiles.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/reference/build-profiles.mdx.mdx @@ -25,29 +25,29 @@ cflags = ["-O3", "-flto"] Поля из `[build.\]` **мержатся поверх** `[build]` -* **Scalar fields** (strings, numbers, bools) — replaced +* **Скалярные поля** (строки, числа, логические значения) — заменены * Массивы (`cflags`, `ldflags`, ...) **заменяются полностью**, а не дополняются -Set `inherit = false` to disable array inheritance (only profile's own arrays are used). +Установите `inherit = false`, чтобы отключить наследование массивов (будут использоваться только собственные массивы профиля). ## Кастомные профили -The default flags for each profile are composed from three config fields: +Флаги по умолчанию для каждого профиля формируются из трёх полей конфигурации: -| Field | Default cflags | Профили сборки | -| ----------- | ------------------ | -------------- | -| `opt_level` | `-O0 -g` | `"3"` | -| `debug` | `true` | `false` | -| `warnings` | `["all", "extra"]` | `[]` | +| Поле | Default cflags | Профили сборки | +| ---------------- | ------------------ | -------------- | +| `opt_level` | `-O0 -g` | `"3"` | +| `debug` | `true` | `false` | +| `предупреждения` | `["all", "extra"]` | `[]` | -Which produce the equivalent compiler flags: +Которые генерируют соответствующие флаги компилятора: -| Профиль | Effective flags | -| --------- | ---------------------------------------------------------- | -| `debug` | `-O0 -g -Wall -Wextra -fno-omit-frame-pointer -DDCR_DEBUG` | -| `release` | `-O3 -DNDEBUG` | +| Профиль | Действующие флаги | +| ------- | ---------------------------------------------------------- | +| `debug` | `-O0 -g -Wall -Wextra -fno-omit-frame-pointer -DDCR_DEBUG` | +| `релиз` | `-O3 -DNDEBUG` | -Additional build options can be toggled per-profile: +Дополнительные параметры сборки можно включать или отключать для каждого профиля: ```toml [build.release] @@ -73,7 +73,7 @@ cflags = ["-DLINUX"] cflags = ["-DWIN32", "-O0", "-g"] ``` -Application order (highest priority first): +Порядок применения (в порядке убывания приоритета): 1. `[build.\.\]` 2. `[build.\.\]` From ff5d8ba4bfb6de294cf9e5b29ede215ad22d7871 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 15:01:41 +0800 Subject: [PATCH 154/274] New translations build-system.mdx (Russian) [ci skip] --- .../ru-RU/docs/reference/build-system.mdx.mdx | 100 +++++++++--------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/reference/build-system.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/build-system.mdx.mdx index 3df0ba1..6093730 100644 --- a/docs-crowdin-export/ru-RU/docs/reference/build-system.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/reference/build-system.mdx.mdx @@ -2,36 +2,36 @@ sidebar_label: Система сборки --- -# Build System +# Система сборки -## Compiler Backends +## Бэкенды компилятора DCR поддерживает 4 бэкенда компиляции. Выбор происходит автоматически на основе расширения файла и target triple. -| Backend | Файлы | Когда используется | -| --------- | --------------------------------------- | ------------------------------- | -| `unix_cc` | `.c`, `.cpp`, `.cxx`, `.cc`, `.s`, `.S` | gcc/clang на Linux/macOS/BSD | -| `msvc` | `.c`, `.cpp`, `.cxx`, `.cc` | Windows (cl, clang-cl) | -| `gas` | `.s`, `.S` | ARM/ARM64 ассемблер | -| `nasm` | `.asm`, `.s` | x86/x86_64 ассемблер | -| `masm` | `.asm` | MASM (ml/ml64) on Windows | -| `fasm` | `.asm`, `.fasm` | Flat Assembler | -| `llvm_ir` | `.ll` | LLVM IR via `llc -filetype=obj` | +| Бэкенд | Файлы | Когда используется | +| --------- | --------------------------------------- | ------------------------------------- | +| `unix_cc` | `.c`, `.cpp`, `.cxx`, `.cc`, `.s`, `.S` | gcc/clang на Linux/macOS/BSD | +| `msvc` | `.c`, `.cpp`, `.cxx`, `.cc` | Windows (cl, clang-cl) | +| `газ` | `.s`, `.S` | ARM/ARM64 ассемблер | +| `nasm` | `.asm`, `.s` | x86/x86_64 ассемблер | +| `masm` | `.asm` | MASM (ml/ml64) в Windows | +| `fasm` | `.asm`, `.fasm` | Сборщик плоских деталей | +| `llvm_ir` | `.ll` | LLVM IR с помощью `llc -filetype=obj` | -## Qt Support +## Поддержка Qt -DCR provides native Qt support for automatic meta-object handling (MOC, UIC, RCC). +DCR обеспечивает встроенную поддержку Qt для автоматической обработки метаобъектов (MOC, UIC, RCC). -Enable it by setting `build.qt = true` in `dcr.toml`. DCR will automatically detect Qt-related files (`.ui`, `.qrc`, `.h` with `Q_OBJECT`) and process them. +Чтобы включить эту функцию, установите значение `build.qt = true` в файле `dcr.toml`. DCR автоматически обнаружит файлы, связанные с Qt (`.ui`, `.qrc`, `.h` с `Q_OBJECT`), и обработает их. ```toml [build] qt = true ``` -*Note: Requires `qt6` modules (Core, Widgets, Gui, Svg) installed via `pkg-config`.* +*Примечание: Требуется установка модулей `qt6` (Core, Widgets, Gui, Svg) с помощью `pkg-config`.* -Advanced customization is still possible via `build.steps` if special handling is needed: +Если требуется специальная обработка, по-прежнему можно выполнить расширенную настройку с помощью файла `build.steps`: ```toml [build.steps] @@ -43,10 +43,10 @@ moc = "moc {in} -o {out}" * Компилятор определяется через `resolve_compiler()`: CC/CXX из [toolchain], DCR_COMPILER/env, PATH * Поддерживает генерацию `.d` файлов для header dependency tracking * Флаги: `-std=`, `-MMD -MF`, `-c -o`, `-I`, `-L`, `-l` -* Conditional flags based on config: - * `freestanding` or bare-metal target: `-ffreestanding` (compile), `-nostdlib -static` (link) - * `lto`: `-flto` (compile + link) - * `panic = "abort"`: `-fno-exceptions` (C++ only), `-fno-unwind-tables`, `-fno-asynchronous-unwind-tables` +* Условные флаги, зависящие от настроек: + * `freestanding` или целевая среда «bare-metal»: `-ffreestanding` (компиляция), `-nostdlib -static` (линковка) + * `lto`: `-flto` (компиляция + линковка) + * `panic = "abort"`: `-fno-exceptions` (только для C++), `-fno-unwind-tables`, `-fno-asynchronous-unwind-tables` ### MSVC @@ -58,10 +58,10 @@ moc = "moc {in} -o {out}" * GAS: `-I`, `-c -o`, `--defsym` * NASM: `-I`, `-c -o`, `-D`, `-f` (формат: win64/elf64/macho64/macho32/elf32) * MASM: `/nologo /c /Fo\ ` -* FASM: ` \` (output path is the object file) +* FASM: ` \` (путь вывода — объектный файл) * LLVM IR: `-filetype=obj -o \` -## Incremental Builds +## Инкрементные сборки Три уровня инкрементальности: @@ -69,31 +69,31 @@ moc = "moc {in} -o {out}" 2. **`.d` files** — отслеживание изменений в заголовочных файлах (включая транзитивные) 3. **SHA256 fingerprint** — если флаги компиляции изменились, файл перекомпилируется (fingerprint хранится в `.dcr_fingerprint`) -## Parallel Compilation +## Параллельная компиляция * Используется `thread::scope` для создания пула потоков * Атомарная очередь задач (`AtomicU64`) * Мьютекс на запись в stdout (`OUTPUT_MUTEX`) -* Thread count = `available_parallelism()`, capped by `build.codegen-units` if set +* Количество потоков = `available_parallelism()`, ограниченное значением `build.codegen-units`, если оно задано -## Build Kinds +## Типы сборок -| Kind | Тип | Path (Linux example) | -| ----------- | ------------------------------------ | ----------------------------------------------------------------------------------------------- | -| `bin` | Executable | `target/\/\` (.exe) | -| `staticlib` | Статическая библиотека | `target/\/lib\.a` (.lib) | -| `sharedlib` | Динамическая библиотека | `target/\/lib\.so` (.dll/.dylib) | -| `efi` | UEFI приложение | `target/\/\.efi` | -| `elf` | ELF без стандартной библиотеки | `target/\/\` | -| `none` | Compile only, no link | — | -| `custom` | Полный контроль filename + extension | `target/\/\.\` | +| Тип | Тип | Путь (пример для Linux) | +| ------------------ | ------------------------------------ | ----------------------------------------------------------------------------------------------- | +| `bin` | Исполняемый файл | `target/\/\` (.exe) | +| `staticlib` | Статическая библиотека | `target/\/lib\.a` (.lib) | +| `sharedlib` | Динамическая библиотека | `target/\/lib\.so` (.dll/.dylib) | +| `efi` | UEFI приложение | `target/\/\.efi` | +| `эльф` | ELF без стандартной библиотеки | `target/\/\` | +| `нет` | Только компиляция, без линковки | — | +| `пользовательский` | Полный контроль filename + extension | `target/\/\.\` | -## Build Steps +## Этапы сборки DCR поддерживает pre-build и post-build шаги через Qt codegen: -* `build.steps` — commands before compilation -* `build.post_steps` — commands after compilation +* `build.steps` — команды, выполняемые перед компиляцией +* `build.post_steps` — команды, выполняемые после компиляции Подстановки: `{stem}`, `{in}`, `{out}`. @@ -106,7 +106,7 @@ moc = "moc {in} -o {out}" ## pkg-config -Automatic lookup (read from raw config): +Автоматический поиск (чтение из исходного файла конфигурации): ```toml [build] @@ -115,17 +115,17 @@ pkg_config = ["sdl2", "gl"] DCR вызывает `pkg-config --cflags sdl2 gl` и `pkg-config --libs sdl2 gl` и добавляет результат в флаги компиляции/линковки. -## Variable Substitution +## Подстановка переменных -Supported variables: +Поддерживаемые переменные: -| Variable | Описание | -| ----------------------- | ------------------------------- | -| `{version}` | Версия пакета | -| `{version_major}` | Major version part | -| `{version_minor}` | Minor version part | -| `{version_patch}` | Переменная | -| `{version_suffix}` | Suffix (e.g., `-rc1`) | -| `{version_suffix_dash}` | Suffix with dash | -| `{profile}` | Имя профиля (debug/release/...) | -| `{name}` | Имя пакета | +| Переменная | Описание | +| ----------------------- | ----------------------------------------- | +| `{version}` | Версия пакета | +| `{version_major}` | Часть, обозначающая основную версию | +| `{version_minor}` | Часть, обозначающая второстепенную версию | +| `{version_patch}` | Переменная | +| `{version_suffix}` | Суффикс (например, `-rc1`) | +| `{version_suffix_dash}` | Суффикс с тире | +| `{profile}` | Имя профиля (debug/release/...) | +| `{name}` | Имя пакета | From 5682792c2fe3a523265fb658f145cb76f29c788a Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 15:01:44 +0800 Subject: [PATCH 155/274] New translations cross-compilation.mdx (Russian) [ci skip] --- .../docs/reference/cross-compilation.mdx.mdx | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/reference/cross-compilation.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/cross-compilation.mdx.mdx index 52521a0..2837f59 100644 --- a/docs-crowdin-export/ru-RU/docs/reference/cross-compilation.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/reference/cross-compilation.mdx.mdx @@ -4,21 +4,21 @@ sidebar_label: Кросс-компиляция # Кросс-компиляция -## Short Names +## Сокращённые названия DCR поддерживает короткие имена платформ, которые автоматически раскрываются в полные triples: -| Short Name | Full Triple | -| ---------- | -------------------------- | -| `linux` | `x86_64-unknown-linux-gnu` | -| `macos` | `x86_64-apple-darwin` | -| `windows` | `x86_64-pc-windows-msvc` | +| Краткое название | Полный тройной | +| ---------------- | -------------------------- | +| `linux` | `x86_64-unknown-linux-gnu` | +| `macos` | `x86_64-apple-darwin` | +| `windows` | `x86_64-pc-windows-msvc` | ```bash dcr build --target windows ``` -## Full Triples +## Полные тройки ```bash dcr build --target aarch64-unknown-linux-gnu @@ -39,12 +39,12 @@ target = "aarch64-unknown-linux-gnu" ## Bare-Metal -For targets containing `none`, `-elf`, `eabi`, or `baremetal`, DCR automatically: +Для целевых платформ, содержащих значения `none`, `-elf`, `eabi` или `baremetal`, DCR автоматически: 1. Для none/elf/eabi/bare-metal target-ов отключаются DCR default флаги (нет `-I` системных путей, нет `-l` libc). -2. **Injects `-ffreestanding`** at compile time and `-nostdlib -static` at link time +2. **Вставляет `-ffreestanding`** на этапе компиляции и `-nostdlib -static` на этапе линковки -You can also enable freestanding mode explicitly: +Кроме того, можно явно включить автономный режим: ```toml [build] @@ -55,15 +55,15 @@ freestanding = true dcr build --target aarch64-none-elf ``` -## Target Directory +## Целевой каталог -On Linux with explicit target: +В Linux с явным указанием цели: ``` target/// ``` -On macOS/Windows or without target: +В macOS/Windows или без указания целевой платформы: ``` target// From 3e810c476d8c0f091770f49becf83e4e3776acf1 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 15:01:47 +0800 Subject: [PATCH 156/274] New translations dcr-toml.mdx (Russian) [ci skip] --- .../ru-RU/docs/reference/dcr-toml.mdx.mdx | 104 +++++++++--------- 1 file changed, 52 insertions(+), 52 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx index c33c2d8..f4509ae 100644 --- a/docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx @@ -36,15 +36,15 @@ sidebar_label: Обзор dcr.toml # настройки запуска ``` -## [package] +## [пакет] -| Поле | Обязательное | Описание | -| --------- | ------------ | --------------------------- | -| `name` | да | Имя проекта | -| `version` | да | Семантическая версия | -| `type` | да | `app`, `lib`, `none` | -| `license` | нет | SPDX-идентификатор лицензии | -| `author` | нет | Автор | +| Поле | Обязательное | Описание | +| ---------- | ------------ | --------------------------- | +| `имя` | да | Имя проекта | +| `версия` | да | Семантическая версия | +| `тип` | да | `app`, `lib`, `none` | +| `лицензия` | нет | SPDX-идентификатор лицензии | +| `автор` | нет | Автор | ```toml [package] @@ -55,50 +55,50 @@ license = "MIT" author = "John Doe" ``` -## [build] +## [сборка] ... -* `build.qt` — (bool) Enable automatic Qt meta-object handling (MOC, UIC, RCC). Requires `qt6` modules installed via `pkg-config`. - -| Поле | По умолчанию | Описание | -| ---------------- | ------------------------------------------- | --------------------------------------------------------------------- | -| `language` | `"c"` | `"c"`, `"cxx"`, `"cpp"` | -| `standard` | `"c11"` | Стандарт C (`c11`, `c17`, `c23`) | -| `cxx_standard` | `"c++20"` | Стандарт C++ (`c++17`, `c++20`, `c++23`) | -| `compiler` | `cxxflags` | Предпочитаемый компилятор | -| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom` | -| `target` | хост | Target triple для кросс-компиляции | -| `platform` | `"native"` | `native`, `efi`, `freestanding` | -| `cflags` | `[]` | Дополнительные флаги C++ | -| `ldflags` | `[]` | Дополнительные флаги линковки | -| `filename` | `""` | Кастомное имя выходного файла | -| `extension` | `""` | Custom file extension | -| `roots` | `["src"]` | Корневые директории с исходниками | -| `exclude` | `[]` | Паттерны исключений | -| `include` | `[]` | Дополнительные include-директории | -| `src_disable` | `false` | Disable auto source discovery | -| `inherit` | `false` | Наследовать build от корня workspace | -| `clean` | `[]` | Glob patterns for custom clean paths | -| `out_dir` | `""` | Custom output directory | -| `workspace_only` | `false` | Только для workspace, не собирать отдельно | -| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | -| `opt_level` | `"0"` (debug) / `"3"` (release) | Optimization level: `0`-`3`, `"s"`, `"z"` | -| `ldscript` | `true` (debug) / `false` (release) | Emit debug symbols (`-g`) | -| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | -| `asflags` | `false` | Strip symbols from output (`-s` in ldflags) | -| `true` | `["all", "extra"]` (debug) / `[]` (release) | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`) | -| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | -| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | -| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | - -Settings from raw config (not in typed struct): +* `build.qt` — (bool) Включить автоматическую обработку метаобъектов Qt (MOC, UIC, RCC). Требуется установка модулей `qt6` с помощью `pkg-config`. + +| Поле | По умолчанию | Описание | +| ------------------------ | --------------------------------------------------------------- | ------------------------------------------------------------------------------------- | +| `язык` | `"c"` | `"c"`, `"cxx"`, `"cpp"` | +| `стандартный` | `"c11"` | Стандарт C (`c11`, `c17`, `c23`) | +| `cxx_standard` | `"c++20"` | Стандарт C++ (`c++17`, `c++20`, `c++23`) | +| `компилятор` | `cxxflags` | Предпочитаемый компилятор | +| `тип` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom` | +| `target` | хост | Target triple для кросс-компиляции | +| `платформа` | `"нативный"` | `native`, `efi`, `freestanding` | +| `cflags` | `[]` | Дополнительные флаги C++ | +| `ldflags` | `[]` | Дополнительные флаги линковки | +| `имя файла` | `""` | Кастомное имя выходного файла | +| `расширение` | `""` | Пользовательское расширение файла | +| `корни` | `["src"]` | Корневые директории с исходниками | +| `exclude` | `[]` | Паттерны исключений | +| `include` | `[]` | Дополнительные include-директории | +| `src_disable` | `false` | Отключить автоматический поиск источников | +| `наследовать` | `false` | Наследовать build от корня workspace | +| `clean` | `[]` | Шаблоны Glob для настраиваемых чистых путей | +| `out_dir` | `""` | Пользовательский каталог для вывода данных | +| `только рабочая область` | `false` | Только для workspace, не собирать отдельно | +| `отдельно стоящий` | `false` | Компилировать в автономном режиме (`-ffreestanding` + `-nostdlib -static`) | +| `opt_level` | `"0"` (отладочная версия) / `"3"` (релизная версия) | Уровень оптимизации: `0`–`3`, `"s"`, `"z"` | +| `ldscript` | `true` (отладочный режим) / `false` (релизный режим) | Выводить отладочные символы (`-g`) | +| `lto` | `false` | Оптимизация на этапе компоновки (`-flto` как для компилятора, так и для компоновщика) | +| `asflags` | `false` | Удалить символы из вывода (опция `-s` в ldflags) | +| `true` | `["all", "extra"]` (отладочная версия) / `[]` (релизная версия) | Флаги предупреждений (например, `"all"`, `"extra"`, `"pedantic"`) | +| `panic` | `""` | Стратегия «Паника»: `"abort"` отключает исключения и таблицы развертки | +| `codegen-units` | `""` | Максимальное количество параллельных заданий компиляции (`"0"` = автоматически) | +| `qt` | `false` | Включить автоматическую обработку метаобъектов Qt (MOC, UIC, RCC) | + +Параметры из исходного файла конфигурации (не в виде типизированной структуры): * Пакеты для pkg-config * Путь к linker script -* `build.steps` / `build.post_steps` — codegen steps +* `build.steps` / `build.post_steps` — этапы генерации кода -Example: +Пример: ```toml [build] @@ -112,7 +112,7 @@ cflags = ["-Wall", "-Wextra"] pkg_config = ["sdl2", "gl"] ``` -## [toolchain] +## [набор инструментов] ```toml [toolchain] @@ -126,16 +126,16 @@ moc = "/usr/bin/moc" # Qt rcc = "/usr/bin/rcc" # Qt ``` -Raw config also supports `uic`, `moc`, `rcc` for Qt codegen. +Raw config также поддерживает `uic`, `moc` и `rcc` для генерации кода Qt. -## [dependencies] +## [зависимости] См. [dependencies](/docs/reference/dependencies). -## [run] +## [запустить] ```toml -[run] +[запустить] cmd = "./target/{profile}/{name}" ``` @@ -143,11 +143,11 @@ cmd = "./target/{profile}/{name}" * `{version}` — версия из [package] * `pkg_config` -* `{profile}` — debug / release +* `{profile}` — отладочная / релизная версия * `{name}` — имя из [package] По умолчанию `cmd` вычисляется как `./target/{profile}/{name}`. -## [workspace] +## [рабочая область] См. [workspaces](/docs/reference/workspaces). From 4c24089cb2794e32ac8808d2a3f0aac2bb0750fd Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 15:01:49 +0800 Subject: [PATCH 157/274] New translations dependencies.mdx (Russian) [ci skip] --- .../ru-RU/docs/reference/dependencies.mdx.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/reference/dependencies.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/dependencies.mdx.mdx index cc2101b..9c16a52 100644 --- a/docs-crowdin-export/ru-RU/docs/reference/dependencies.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/reference/dependencies.mdx.mdx @@ -8,7 +8,7 @@ sidebar_label: Зависимости В секции `[dependencies]` поддерживаются три формата: -### String (registry) +### Строка (реестр) ```toml [dependencies] @@ -17,7 +17,7 @@ spdlog = "^1.12" catch2 = ">=3.0,<4.0" ``` -The version string is used as-is for registry lookup. +Строка версии используется без изменений для поиска в реестре. ### Табличный (git) @@ -35,7 +35,7 @@ fmt = { git = "https://github.com/fmtlib/fmt", tag = "10.1.1" } mylib = { path = "../mylib" } ``` -## Registry +## Реестр ## RegistryDCR использует реестр пакетов для поиска зависимостей по имени.```toml # ~/.dcr/config.toml @@ -50,7 +50,7 @@ name = "default" url = "https://index.dcr.pm" ``` -Registry priority: order in `config.toml`. Переменная `DCR_INDEX_PATH` переопределяет путь к index.json. +Приоритет реестра: порядок в файле `config.toml`. Переменная `DCR_INDEX_PATH` переопределяет путь к index.json. ## Git-зависимости @@ -59,9 +59,9 @@ Registry priority: order in `config.toml`. Переменная `DCR_INDEX_PATH` * `branch` — переключиться на ветку * `tag` — переключиться на тег * `rev` — переключиться на конкретный коммит -* `features` — feature flags (parsed, but does not affect build) +* `features` — флаги функций (проанализированы, но не влияют на сборку) -Cache path: `~/.dcr/git/\/`. +Путь к кэшу: `~/.dcr/git/\/`. ## Path-зависимости @@ -77,12 +77,12 @@ mylib = { path = "../relative/path" } Файл блокировки зависимостей. Содержит точные версии, хеши и источники. -Created during `dcr build` when registry dependencies are present. Автоматически обновляется при `dcr add`. +Создаётся при выполнении команды `dcr build` при наличии зависимостей реестра. Автоматически обновляется при `dcr add`. ## Процесс резолва 1. Загружаются все зависимости (registry → git → path) -2. For path deps: recursively read their `dcr.toml` -3. For registry deps: search `index.json` -4. For git deps: clone to cache +2. Для зависимостей типа «path»: рекурсивно прочитать их файлы `dcr.toml` +3. Для зависимостей реестра: выполните поиск в файле `index.json` +4. Для зависимостей Git: клонировать в кэш 5. Собираются include_dirs, lib_dirs, libs для передачи компилятору From 360619fb78be5ded3045bd0b7f4625c90745a3dd Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 15:01:52 +0800 Subject: [PATCH 158/274] New translations environment-variables.mdx (Russian) [ci skip] --- .../ru-RU/docs/reference/environment-variables.mdx.mdx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/reference/environment-variables.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/environment-variables.mdx.mdx index d4d0f44..0ac98f7 100644 --- a/docs-crowdin-export/ru-RU/docs/reference/environment-variables.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/reference/environment-variables.mdx.mdx @@ -6,17 +6,17 @@ sidebar_label: Переменные среды ## DCR_COMPILER -Переопределяет компилятор для всех языков. **Highest priority.** +Переопределяет компилятор для всех языков. **Наивысший приоритет.** ```bash export DCR_COMPILER=clang dcr build ``` -Compiler resolution priority: +Приоритет разрешения компилятора: -1. `DCR_COMPILER` (env) -2. `DCR_CC` / `DCR_CXX` / `DCR_AS` (env) +1. `DCR_COMPILER` (переменная среды) +2. `DCR_CC` / `DCR_CXX` / `DCR_AS` (переменная среды) 3. `[toolchain]` (dcr.toml) 4. `build.compiler` (dcr.toml) 5. `PATH` @@ -33,7 +33,7 @@ export DCR_AS=arm-linux-gnueabihf-as ## DCR_LD / DCR_AR -Override linker and archiver. +Переопределить линкер и архиватор. ```bash export DCR_LD=ld.lld From 25ab25b9a29d986d27084dc3e7290356d7da703c Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 15:01:54 +0800 Subject: [PATCH 159/274] New translations platform-support.mdx (Russian) [ci skip] --- .../ru-RU/docs/reference/platform-support.mdx.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/reference/platform-support.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/platform-support.mdx.mdx index b51f52d..11bab4c 100644 --- a/docs-crowdin-export/ru-RU/docs/reference/platform-support.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/reference/platform-support.mdx.mdx @@ -4,7 +4,7 @@ sidebar_label: Поддержка платформ # Поддержка платформ -## Target Triples +## Тройные цели DCR нормализует target triple через `platform_triple::normalize_triple()`. Если задано имя платформы (short name), оно раскрывается в triple. @@ -16,7 +16,7 @@ target/-unknown-linux-gnu// Поддержка архитектур: `x86_64`, `aarch64`. -Artifact type: ELF. Расширения: `.so` для sharedlib, `.a` для staticlib +Тип артефакта: ELF. Расширения: `.so` для sharedlib, `.a` для staticlib ### macOS @@ -36,7 +36,7 @@ target// Поддержка архитектур: `x86_64`, `aarch64`. -Extensions: `.exe` (bin), `.lib` (staticlib), `.dll` (sharedlib), `.efi` (UEFI). +Расширения: `.exe` (бинарный файл), `.lib` (статическая библиотека), `.dll` (общая библиотека), `.efi` (UEFI). ### BSD From ee9cade5c8c13dddc1d6e06b262f120ac3e60528 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 15:01:59 +0800 Subject: [PATCH 160/274] New translations self-update.mdx (Russian) [ci skip] --- docs-crowdin-export/ru-RU/docs/self-update.mdx.mdx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/self-update.mdx.mdx b/docs-crowdin-export/ru-RU/docs/self-update.mdx.mdx index d52839f..106e6e0 100644 --- a/docs-crowdin-export/ru-RU/docs/self-update.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/self-update.mdx.mdx @@ -6,7 +6,7 @@ sidebar_label: Автоматическое обновление ## dcr --update -Автоматическое обновление до последней версии. Downloads a binary (not an archive) from GitHub Releases and replaces the current executable. +Автоматическое обновление до последней версии. Загружает бинарный файл (не архив) из раздела «Релизы» на GitHub и заменяет им текущий исполняемый файл. ```bash dcr --update @@ -15,16 +15,16 @@ dcr --update ## Как это работает 1. DCR определяет текущую платформу и архитектуру -2. Fetches the latest release from `api.github.com/repos/dexoron/dcr/releases/latest` -3. Compares versions -4. Downloads the matching asset (direct binary URL, not archive) +2. Загружает последнюю версию с `api.github.com/repos/dexoron/dcr/releases/latest` +3. Сравнивает версии +4. Загружает соответствующий ресурс (прямой URL-адрес двоичного файла, а не архива) 5. Заменяет текущий исполняемый файл -## Asset naming +## Названия активов Шаблон: `dcr-\.\ ` -| Платформа | Asset name | +| Платформа | Название актива | | -------------- | ------------------------------------- | | Linux x86_64 | `dcr-x86_64-unknown-linux-gnu.tar.gz` | | macOS x86_64 | `dcr-x86_64-apple-darwin.tar.gz` | @@ -36,7 +36,7 @@ dcr --update Если DCR установлен через AUR, `--update` выводит предупреждение: ``` -Update via package manager: yay/paru -Syu {package_name} or sudo pacman -Syu {package_name} +Обновление через менеджер пакетов: yay/paru -Syu {package_name} или sudo pacman -Syu {package_name} ``` ## Ошибки From 468cdef2d900be61d4628bebd2706a291f1a0425 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 15:02:02 +0800 Subject: [PATCH 161/274] New translations running-tests.mdx (Russian) [ci skip] --- .../ru-RU/docs/testing/running-tests.mdx.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/testing/running-tests.mdx.mdx b/docs-crowdin-export/ru-RU/docs/testing/running-tests.mdx.mdx index 294f598..e59b9ba 100644 --- a/docs-crowdin-export/ru-RU/docs/testing/running-tests.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/testing/running-tests.mdx.mdx @@ -4,15 +4,15 @@ sidebar_label: Запуск тестов # Запуск тестов -## Execution +## Выполнение ```bash -dcr test +Тест DCR ``` -Builds the project, then compiles and runs test files from `tests/`. +Выполняет сборку проекта, а затем компилирует и запускает тестовые файлы из каталога `tests/`. -## Profiles +## Профили ```bash dcr test # debug (по умолчанию) @@ -24,12 +24,12 @@ dcr test --debug # явно debug ``` ===================== - Testsuite summary + Сводка результатов набора тестов ===================== -TOTAL: 5 -PASS: 3 -SKIP: 1 -FAIL: 1 +ИСПОЛЬЗОВАНО: 5 +ПРОЙДЕНО: 3 +ПРОПУЩЕНО: 1 +НЕ ПРОЙДЕНО: 1 ===================== ``` @@ -38,7 +38,7 @@ FAIL: 1 * 0 — все тесты пройдены (FAIL = 0) * 1 — есть упавшие тесты -## What gets built +## Что строится * Все C/C++ файлы из `tests/` * Include path: `tests/` (для `dcr_test.h`) From 0e2d05788a97b1ff803790eb08f7c128ea647824 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 6 Jul 2026 15:02:04 +0800 Subject: [PATCH 162/274] New translations test-framework.mdx (Russian) [ci skip] --- .../ru-RU/docs/testing/test-framework.mdx.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/testing/test-framework.mdx.mdx b/docs-crowdin-export/ru-RU/docs/testing/test-framework.mdx.mdx index c1f0a6a..08f1581 100644 --- a/docs-crowdin-export/ru-RU/docs/testing/test-framework.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/testing/test-framework.mdx.mdx @@ -25,12 +25,12 @@ EXPECT(ptr != NULL, "ptr should not be NULL"); SKIP("not implemented on Windows yet"); ``` -### `TEST(name)` +### `TEST(имя)` Определяет тест. ```c -TEST(addition) { +TEST(сложение) { EXPECT(1 + 1 == 2); EXPECT(2 + 2 == 4); } @@ -38,7 +38,7 @@ TEST(addition) { ### `TEST_CASE(name, ...)` -Registers a test case. +Регистрирует тестовый случай. ```c TEST_CASE(math, a, b) { @@ -66,4 +66,4 @@ tests/ └── ... # дополнительные .c файлы с тестами ``` -Only `.c` files are compiled (`.cpp` is not supported). +Компилируются только файлы с расширением `.c` (файлы с расширением `.cpp` не поддерживаются). From 9f972021218e40b66832a9d0d518e8cb5ca97131 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:11:39 +0800 Subject: [PATCH 163/274] New translations project-commands.mdx (German) [ci skip] --- .../de-DE/docs/commands/project-commands.mdx.mdx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/docs-crowdin-export/de-DE/docs/commands/project-commands.mdx.mdx b/docs-crowdin-export/de-DE/docs/commands/project-commands.mdx.mdx index 5258c44..e5e4eb7 100644 --- a/docs-crowdin-export/de-DE/docs/commands/project-commands.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/commands/project-commands.mdx.mdx @@ -12,8 +12,13 @@ Only ASCII letters, digits, underscores `_` and hyphens `-` are allowed in the p ```bash dcr new my-app +dcr new my-app --vcs none ``` +Flags: + +* `--vcs \` — Initialize version control system (defaults to `git` if available, or `none`). + Generates: * `dcr.toml` with basic fields @@ -24,8 +29,12 @@ Generates: Initializes a DCR project in the current (empty) directory. ```bash -mkdir app && cd app dcr init +dcr init --vcs none ``` +Flags: + +* `--vcs \` — Initialize version control system (defaults to `git` if available, or `none`). + The project name is taken from the current directory name. The directory name must follow the same naming rules as `dcr new`. From 525bd52f8bf2f7bbc2c5e9b12fd5ce933fd5295e Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:11:41 +0800 Subject: [PATCH 164/274] New translations project-commands.mdx (Polish) [ci skip] --- .../pl-PL/docs/commands/project-commands.mdx.mdx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/docs-crowdin-export/pl-PL/docs/commands/project-commands.mdx.mdx b/docs-crowdin-export/pl-PL/docs/commands/project-commands.mdx.mdx index 5258c44..e5e4eb7 100644 --- a/docs-crowdin-export/pl-PL/docs/commands/project-commands.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/commands/project-commands.mdx.mdx @@ -12,8 +12,13 @@ Only ASCII letters, digits, underscores `_` and hyphens `-` are allowed in the p ```bash dcr new my-app +dcr new my-app --vcs none ``` +Flags: + +* `--vcs \` — Initialize version control system (defaults to `git` if available, or `none`). + Generates: * `dcr.toml` with basic fields @@ -24,8 +29,12 @@ Generates: Initializes a DCR project in the current (empty) directory. ```bash -mkdir app && cd app dcr init +dcr init --vcs none ``` +Flags: + +* `--vcs \` — Initialize version control system (defaults to `git` if available, or `none`). + The project name is taken from the current directory name. The directory name must follow the same naming rules as `dcr new`. From e63175549c044b34cc50932235a225bfb7aeb1d9 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:11:44 +0800 Subject: [PATCH 165/274] New translations project-commands.mdx (Russian) [ci skip] --- .../ru-RU/docs/commands/project-commands.mdx.mdx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/docs-crowdin-export/ru-RU/docs/commands/project-commands.mdx.mdx b/docs-crowdin-export/ru-RU/docs/commands/project-commands.mdx.mdx index 195a1cc..b21def0 100644 --- a/docs-crowdin-export/ru-RU/docs/commands/project-commands.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/commands/project-commands.mdx.mdx @@ -12,8 +12,13 @@ sidebar_label: Команды проекта (new, init) ```bash dcr new my-app +dcr new my-app --vcs none ``` +Flags: + +* `--vcs \` — Initialize version control system (defaults to `git` if available, or `none`). + Генерирует: * `dcr.toml` с базовыми полями @@ -24,8 +29,12 @@ dcr new my-app Инициализирует проект DCR в текущем (пустом) каталоге. ```bash -mkdir app && cd app dcr init +dcr init --vcs none ``` +Flags: + +* `--vcs \` — Initialize version control system (defaults to `git` if available, or `none`). + Название проекта взято из имени текущего каталога. Имя каталога должно соответствовать тем же правилам именования, что и в `dcr new`. From 05f16fc6b4e7db235faf64ff7a4827b97778460d Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:11:47 +0800 Subject: [PATCH 166/274] New translations project-commands.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/commands/project-commands.mdx.mdx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/docs-crowdin-export/uk-UA/docs/commands/project-commands.mdx.mdx b/docs-crowdin-export/uk-UA/docs/commands/project-commands.mdx.mdx index 5258c44..e5e4eb7 100644 --- a/docs-crowdin-export/uk-UA/docs/commands/project-commands.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/commands/project-commands.mdx.mdx @@ -12,8 +12,13 @@ Only ASCII letters, digits, underscores `_` and hyphens `-` are allowed in the p ```bash dcr new my-app +dcr new my-app --vcs none ``` +Flags: + +* `--vcs \` — Initialize version control system (defaults to `git` if available, or `none`). + Generates: * `dcr.toml` with basic fields @@ -24,8 +29,12 @@ Generates: Initializes a DCR project in the current (empty) directory. ```bash -mkdir app && cd app dcr init +dcr init --vcs none ``` +Flags: + +* `--vcs \` — Initialize version control system (defaults to `git` if available, or `none`). + The project name is taken from the current directory name. The directory name must follow the same naming rules as `dcr new`. From 80fc509997a7f71a08454c6db2db07289c0a34c2 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:11:49 +0800 Subject: [PATCH 167/274] New translations system-commands.mdx (German) [ci skip] --- .../de-DE/docs/commands/system-commands.mdx.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/de-DE/docs/commands/system-commands.mdx.mdx b/docs-crowdin-export/de-DE/docs/commands/system-commands.mdx.mdx index ac1c0c2..ec99cf1 100644 --- a/docs-crowdin-export/de-DE/docs/commands/system-commands.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/commands/system-commands.mdx.mdx @@ -15,9 +15,9 @@ dcr setup If `~/.dcr/config.toml` is not found, DCR returns an error. Create it manually: ```toml -[[registry]] -name = "default" +[registry.default] url = "https://index.dcr.pm" +priority = 1 ``` ## `dcr --help` From 5770d691287b4ef78bd78e5af5598de39af6a6b5 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:11:52 +0800 Subject: [PATCH 168/274] New translations system-commands.mdx (Polish) [ci skip] --- .../pl-PL/docs/commands/system-commands.mdx.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/pl-PL/docs/commands/system-commands.mdx.mdx b/docs-crowdin-export/pl-PL/docs/commands/system-commands.mdx.mdx index ac1c0c2..ec99cf1 100644 --- a/docs-crowdin-export/pl-PL/docs/commands/system-commands.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/commands/system-commands.mdx.mdx @@ -15,9 +15,9 @@ dcr setup If `~/.dcr/config.toml` is not found, DCR returns an error. Create it manually: ```toml -[[registry]] -name = "default" +[registry.default] url = "https://index.dcr.pm" +priority = 1 ``` ## `dcr --help` From 98068b54f7009b6a9ea82e13b125b8197c4d77c7 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:11:54 +0800 Subject: [PATCH 169/274] New translations system-commands.mdx (Russian) [ci skip] --- .../ru-RU/docs/commands/system-commands.mdx.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/commands/system-commands.mdx.mdx b/docs-crowdin-export/ru-RU/docs/commands/system-commands.mdx.mdx index 031a21b..32ebb84 100644 --- a/docs-crowdin-export/ru-RU/docs/commands/system-commands.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/commands/system-commands.mdx.mdx @@ -15,9 +15,9 @@ dcr setup Если файл `~/.dcr/config.toml` не найден, DCR возвращает ошибку. Создайте его вручную: ```toml -[[registry]] -name = "default" +[registry.default] url = "https://index.dcr.pm" +priority = 1 ``` ## `dcr --help` From ba408c3dcca7446aa78ecc335375b8ab63c5233c Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:11:57 +0800 Subject: [PATCH 170/274] New translations system-commands.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/commands/system-commands.mdx.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/uk-UA/docs/commands/system-commands.mdx.mdx b/docs-crowdin-export/uk-UA/docs/commands/system-commands.mdx.mdx index ac1c0c2..ec99cf1 100644 --- a/docs-crowdin-export/uk-UA/docs/commands/system-commands.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/commands/system-commands.mdx.mdx @@ -15,9 +15,9 @@ dcr setup If `~/.dcr/config.toml` is not found, DCR returns an error. Create it manually: ```toml -[[registry]] -name = "default" +[registry.default] url = "https://index.dcr.pm" +priority = 1 ``` ## `dcr --help` From d42eeee0ffaa6423d9f419c4711cc38ed8bf457e Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:11:59 +0800 Subject: [PATCH 171/274] New translations faq.mdx (German) [ci skip] --- docs-crowdin-export/de-DE/docs/faq.mdx.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/de-DE/docs/faq.mdx.mdx b/docs-crowdin-export/de-DE/docs/faq.mdx.mdx index 75e1036..085dbe2 100644 --- a/docs-crowdin-export/de-DE/docs/faq.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/faq.mdx.mdx @@ -13,9 +13,9 @@ error: registry not found **Solution:** Make sure `~/.dcr/config.toml` exists: ```toml -[[registry]] -name = "default" +[registry.default] url = "https://index.dcr.pm" +priority = 1 ``` And check `DCR_INDEX_PATH`: From 8998d19bced0547359228b069b6584a2b8ff4017 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:12:02 +0800 Subject: [PATCH 172/274] New translations faq.mdx (Polish) [ci skip] --- docs-crowdin-export/pl-PL/docs/faq.mdx.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/pl-PL/docs/faq.mdx.mdx b/docs-crowdin-export/pl-PL/docs/faq.mdx.mdx index 75e1036..085dbe2 100644 --- a/docs-crowdin-export/pl-PL/docs/faq.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/faq.mdx.mdx @@ -13,9 +13,9 @@ error: registry not found **Solution:** Make sure `~/.dcr/config.toml` exists: ```toml -[[registry]] -name = "default" +[registry.default] url = "https://index.dcr.pm" +priority = 1 ``` And check `DCR_INDEX_PATH`: From c7d5d135ca575d46f5b80add19669fc42551e24e Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:12:05 +0800 Subject: [PATCH 173/274] New translations faq.mdx (Russian) [ci skip] --- docs-crowdin-export/ru-RU/docs/faq.mdx.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/faq.mdx.mdx b/docs-crowdin-export/ru-RU/docs/faq.mdx.mdx index 6089ebb..699ee93 100644 --- a/docs-crowdin-export/ru-RU/docs/faq.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/faq.mdx.mdx @@ -13,9 +13,9 @@ sidebar_label: Часто задаваемые вопросы **Решение:** Убедитесь, что файл `~/.dcr/config.toml` существует: ```toml -[[реестр]] -name = "default" +[registry.default] url = "https://index.dcr.pm" +priority = 1 ``` Если реестр кастомный, проверьте `DCR_INDEX_PATH`: From 02ad12a902d22c05ea9089e4e85b7235bced108b Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:12:08 +0800 Subject: [PATCH 174/274] New translations faq.mdx (Ukrainian) [ci skip] --- docs-crowdin-export/uk-UA/docs/faq.mdx.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/uk-UA/docs/faq.mdx.mdx b/docs-crowdin-export/uk-UA/docs/faq.mdx.mdx index 75e1036..085dbe2 100644 --- a/docs-crowdin-export/uk-UA/docs/faq.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/faq.mdx.mdx @@ -13,9 +13,9 @@ error: registry not found **Solution:** Make sure `~/.dcr/config.toml` exists: ```toml -[[registry]] -name = "default" +[registry.default] url = "https://index.dcr.pm" +priority = 1 ``` And check `DCR_INDEX_PATH`: From 6704c96b3007734fa15a2954e6f70b7558d0a984 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:12:10 +0800 Subject: [PATCH 175/274] New translations installation.mdx (German) [ci skip] --- .../de-DE/docs/getting-started/installation.mdx.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/de-DE/docs/getting-started/installation.mdx.mdx b/docs-crowdin-export/de-DE/docs/getting-started/installation.mdx.mdx index 177bf77..d574bb4 100644 --- a/docs-crowdin-export/de-DE/docs/getting-started/installation.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/getting-started/installation.mdx.mdx @@ -103,7 +103,7 @@ man dcr-build To use the registry, create `~/.dcr/config.toml`: ```toml -[[registry]] -name = "default" +[registry.default] url = "https://index.dcr.pm" +priority = 1 ``` From 8edb16f1e436157e05ec80b082a83b83038798b5 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:12:12 +0800 Subject: [PATCH 176/274] New translations installation.mdx (Polish) [ci skip] --- .../pl-PL/docs/getting-started/installation.mdx.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/pl-PL/docs/getting-started/installation.mdx.mdx b/docs-crowdin-export/pl-PL/docs/getting-started/installation.mdx.mdx index 177bf77..d574bb4 100644 --- a/docs-crowdin-export/pl-PL/docs/getting-started/installation.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/getting-started/installation.mdx.mdx @@ -103,7 +103,7 @@ man dcr-build To use the registry, create `~/.dcr/config.toml`: ```toml -[[registry]] -name = "default" +[registry.default] url = "https://index.dcr.pm" +priority = 1 ``` From 8dae42f8ea9758283c281ab0aacb7424c88cb509 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:12:15 +0800 Subject: [PATCH 177/274] New translations installation.mdx (Russian) [ci skip] --- .../ru-RU/docs/getting-started/installation.mdx.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/getting-started/installation.mdx.mdx b/docs-crowdin-export/ru-RU/docs/getting-started/installation.mdx.mdx index ef654ff..08dc29e 100644 --- a/docs-crowdin-export/ru-RU/docs/getting-started/installation.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/getting-started/installation.mdx.mdx @@ -103,7 +103,7 @@ man dcr-build Чтобы использовать реестр, создайте файл `~/.dcr/config.toml`: ```toml -[[registry]] -name = "default" +[registry.default] url = "https://index.dcr.pm" +priority = 1 ``` From 54849b2c43b9bcc08d7d60b058cd6d59e6ebfc9d Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:12:17 +0800 Subject: [PATCH 178/274] New translations installation.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/getting-started/installation.mdx.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/uk-UA/docs/getting-started/installation.mdx.mdx b/docs-crowdin-export/uk-UA/docs/getting-started/installation.mdx.mdx index 177bf77..d574bb4 100644 --- a/docs-crowdin-export/uk-UA/docs/getting-started/installation.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/getting-started/installation.mdx.mdx @@ -103,7 +103,7 @@ man dcr-build To use the registry, create `~/.dcr/config.toml`: ```toml -[[registry]] -name = "default" +[registry.default] url = "https://index.dcr.pm" +priority = 1 ``` From 8ff841f2f50c76716423211d19b8dbcddf447785 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:12:20 +0800 Subject: [PATCH 179/274] New translations license.mdx (German) [ci skip] --- .../de-DE/docs/license.mdx.mdx | 39 +++++++------------ 1 file changed, 13 insertions(+), 26 deletions(-) diff --git a/docs-crowdin-export/de-DE/docs/license.mdx.mdx b/docs-crowdin-export/de-DE/docs/license.mdx.mdx index 39caf78..20a7804 100644 --- a/docs-crowdin-export/de-DE/docs/license.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/license.mdx.mdx @@ -10,36 +10,23 @@ DCR itself is [GPL-3.0-or-later](https://spdx.org/licenses/GPL-3.0-or-later.html > **Note:** DCR is a build tool, not a library. The GPL applies only to DCR's own source code. Projects built with DCR are not subject to DCR's license — their licensing is determined solely by their own code and dependencies. -## Vendored libraries - -DCR statically links the following C libraries through its vendored Rust dependencies: - -| Library | License | Bundled by | -| ------------------------------------------ | ------------------ | ----------------------------- | -| [libgit2](https://libgit2.org) | MIT OR Apache-2.0 | `git2` / `libgit2-sys` | -| [libssh2](https://libssh2.org) | MIT OR Apache-2.0 | `libgit2-sys` | -| [zlib](https://zlib.net) | MIT OR Apache-2.0 | `libgit2-sys` | -| [OpenSSL](https://openssl.org) | Apache-2.0 | `openssl-sys` / `openssl-src` | -| [ring](https://github.com/briansmith/ring) | Apache-2.0 AND ISC | `rustls` | - ## Rust dependencies DCR is written in Rust. The following notable Rust crates are statically linked: -| Crate | License | -| --------------------------------------------- | ------------------------ | -| [`reqwest`](https://crates.io/crates/reqwest) | MIT OR Apache-2.0 | -| [`rustls`](https://crates.io/crates/rustls) | Apache-2.0 OR ISC OR MIT | -| [`serde`](https://crates.io/crates/serde) | MIT OR Apache-2.0 | -| [`toml`](https://crates.io/crates/toml) | MIT OR Apache-2.0 | -| [`sha2`](https://crates.io/crates/sha2) | MIT OR Apache-2.0 | -| [`git2`](https://crates.io/crates/git2) | MIT OR Apache-2.0 | -| [`openssl`](https://crates.io/crates/openssl) | Apache-2.0 | -| [`tokio`](https://crates.io/crates/tokio) | MIT | -| [`hyper`](https://crates.io/crates/hyper) | MIT | -| [`ctrlc`](https://crates.io/crates/ctrlc) | MIT OR Apache-2.0 | - -Full dependency tree (143 packages) is available in [`Cargo.lock`](https://github.com/dexoron/dcr/blob/main/Cargo.lock). The overwhelming majority are dual-licensed under MIT OR Apache-2.0. +| Crate | License | +| ------------------------------------------------------- | ----------------- | +| [`ureq`](https://crates.io/crates/ureq) | MIT OR Apache-2.0 | +| [`serde`](https://crates.io/crates/serde) | MIT OR Apache-2.0 | +| [`toml`](https://crates.io/crates/toml) | MIT OR Apache-2.0 | +| [`toml_edit`](https://crates.io/crates/toml_edit) | MIT OR Apache-2.0 | +| [`serde_json`](https://crates.io/crates/serde_json) | MIT OR Apache-2.0 | +| [`sha2`](https://crates.io/crates/sha2) | MIT OR Apache-2.0 | +| [`glob`](https://crates.io/crates/glob) | MIT OR Apache-2.0 | +| [`self-replace`](https://crates.io/crates/self-replace) | MIT OR Apache-2.0 | +| [`ctrlc`](https://crates.io/crates/ctrlc) | MIT OR Apache-2.0 | + +Full dependency tree is available in [`Cargo.lock`](https://github.com/dexoron/dcr/blob/main/Cargo.lock). The overwhelming majority are dual-licensed under MIT OR Apache-2.0. ## Additional credits From b07ca1c0ac7a533067a66ab562212b1f05301481 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:12:23 +0800 Subject: [PATCH 180/274] New translations license.mdx (Polish) [ci skip] --- .../pl-PL/docs/license.mdx.mdx | 39 +++++++------------ 1 file changed, 13 insertions(+), 26 deletions(-) diff --git a/docs-crowdin-export/pl-PL/docs/license.mdx.mdx b/docs-crowdin-export/pl-PL/docs/license.mdx.mdx index 39caf78..20a7804 100644 --- a/docs-crowdin-export/pl-PL/docs/license.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/license.mdx.mdx @@ -10,36 +10,23 @@ DCR itself is [GPL-3.0-or-later](https://spdx.org/licenses/GPL-3.0-or-later.html > **Note:** DCR is a build tool, not a library. The GPL applies only to DCR's own source code. Projects built with DCR are not subject to DCR's license — their licensing is determined solely by their own code and dependencies. -## Vendored libraries - -DCR statically links the following C libraries through its vendored Rust dependencies: - -| Library | License | Bundled by | -| ------------------------------------------ | ------------------ | ----------------------------- | -| [libgit2](https://libgit2.org) | MIT OR Apache-2.0 | `git2` / `libgit2-sys` | -| [libssh2](https://libssh2.org) | MIT OR Apache-2.0 | `libgit2-sys` | -| [zlib](https://zlib.net) | MIT OR Apache-2.0 | `libgit2-sys` | -| [OpenSSL](https://openssl.org) | Apache-2.0 | `openssl-sys` / `openssl-src` | -| [ring](https://github.com/briansmith/ring) | Apache-2.0 AND ISC | `rustls` | - ## Rust dependencies DCR is written in Rust. The following notable Rust crates are statically linked: -| Crate | License | -| --------------------------------------------- | ------------------------ | -| [`reqwest`](https://crates.io/crates/reqwest) | MIT OR Apache-2.0 | -| [`rustls`](https://crates.io/crates/rustls) | Apache-2.0 OR ISC OR MIT | -| [`serde`](https://crates.io/crates/serde) | MIT OR Apache-2.0 | -| [`toml`](https://crates.io/crates/toml) | MIT OR Apache-2.0 | -| [`sha2`](https://crates.io/crates/sha2) | MIT OR Apache-2.0 | -| [`git2`](https://crates.io/crates/git2) | MIT OR Apache-2.0 | -| [`openssl`](https://crates.io/crates/openssl) | Apache-2.0 | -| [`tokio`](https://crates.io/crates/tokio) | MIT | -| [`hyper`](https://crates.io/crates/hyper) | MIT | -| [`ctrlc`](https://crates.io/crates/ctrlc) | MIT OR Apache-2.0 | - -Full dependency tree (143 packages) is available in [`Cargo.lock`](https://github.com/dexoron/dcr/blob/main/Cargo.lock). The overwhelming majority are dual-licensed under MIT OR Apache-2.0. +| Crate | License | +| ------------------------------------------------------- | ----------------- | +| [`ureq`](https://crates.io/crates/ureq) | MIT OR Apache-2.0 | +| [`serde`](https://crates.io/crates/serde) | MIT OR Apache-2.0 | +| [`toml`](https://crates.io/crates/toml) | MIT OR Apache-2.0 | +| [`toml_edit`](https://crates.io/crates/toml_edit) | MIT OR Apache-2.0 | +| [`serde_json`](https://crates.io/crates/serde_json) | MIT OR Apache-2.0 | +| [`sha2`](https://crates.io/crates/sha2) | MIT OR Apache-2.0 | +| [`glob`](https://crates.io/crates/glob) | MIT OR Apache-2.0 | +| [`self-replace`](https://crates.io/crates/self-replace) | MIT OR Apache-2.0 | +| [`ctrlc`](https://crates.io/crates/ctrlc) | MIT OR Apache-2.0 | + +Full dependency tree is available in [`Cargo.lock`](https://github.com/dexoron/dcr/blob/main/Cargo.lock). The overwhelming majority are dual-licensed under MIT OR Apache-2.0. ## Additional credits From 66797c22654b32d7e62833ecf864ba7a0ca980a3 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:12:25 +0800 Subject: [PATCH 181/274] New translations license.mdx (Russian) [ci skip] --- .../ru-RU/docs/license.mdx.mdx | 39 +++++++------------ 1 file changed, 13 insertions(+), 26 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/license.mdx.mdx b/docs-crowdin-export/ru-RU/docs/license.mdx.mdx index 5ea1ffb..a1533a4 100644 --- a/docs-crowdin-export/ru-RU/docs/license.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/license.mdx.mdx @@ -10,36 +10,23 @@ DCR распространяется под лицензией [GPL-3.0-or-later > **Важно:** DCR — инструмент сборки, а не библиотека. GPL распространяется только на исходный код самого DCR. Проекты, собранные с помощью DCR, не подпадают под лицензию DCR — их лицензирование определяется исключительно их собственным кодом и зависимостями. -## Вендорные библиотеки - -DCR статически связывает следующие C-библиотеки через вендорные Rust-зависимости: - -| Библиотека | Лицензия | В комплекте с | -| -------------------------------------------- | ------------------ | ----------------------------- | -| [libgit2](https://libgit2.org) | MIT ИЛИ Apache-2.0 | `git2` / `libgit2-sys` | -| [libssh2](https://libssh2.org) | MIT ИЛИ Apache-2.0 | `libgit2-sys` | -| [zlib](https://zlib.net) | MIT ИЛИ Apache-2.0 | `libgit2-sys` | -| [OpenSSL](https://openssl.org) | Apache-2.0 | `openssl-sys` / `openssl-src` | -| [кольцо](https://github.com/briansmith/ring) | Apache-2.0 И ISC | `rustls` | - ## Rust-зависимости DCR написан на Rust. Ниже перечислены основные статически связываемые крейты: -| Крейт | Лицензия | -| --------------------------------------------- | -------------------------- | -| [`reqwest`](https://crates.io/crates/reqwest) | MIT ИЛИ Apache-2.0 | -| [`rustls`](https://crates.io/crates/rustls) | Apache-2.0 ИЛИ ISC ИЛИ MIT | -| [`serde`](https://crates.io/crates/serde) | MIT ИЛИ Apache-2.0 | -| [`toml`](https://crates.io/crates/toml) | MIT ИЛИ Apache-2.0 | -| [`sha2`](https://crates.io/crates/sha2) | MIT ИЛИ Apache-2.0 | -| [`git2`](https://crates.io/crates/git2) | MIT ИЛИ Apache-2.0 | -| [`openssl`](https://crates.io/crates/openssl) | Apache-2.0 | -| [`tokio`](https://crates.io/crates/tokio) | MIT | -| [`hyper`](https://crates.io/crates/hyper) | MIT | -| [`ctrlc`](https://crates.io/crates/ctrlc) | MIT ИЛИ Apache-2.0 | - -Полное дерево зависимостей (143 пакета) доступно в [`Cargo.lock`](https://github.com/dexoron/dcr/blob/main/Cargo.lock). Подавляющее большинство имеют двойную лицензию MIT OR Apache-2.0. +| Крейт | Лицензия | +| ------------------------------------------------------- | ------------------ | +| [`ureq`](https://crates.io/crates/ureq) | MIT ИЛИ Apache-2.0 | +| [`serde`](https://crates.io/crates/serde) | MIT ИЛИ Apache-2.0 | +| [`toml`](https://crates.io/crates/toml) | MIT ИЛИ Apache-2.0 | +| [`toml_edit`](https://crates.io/crates/toml_edit) | MIT OR Apache-2.0 | +| [`serde_json`](https://crates.io/crates/serde_json) | MIT ИЛИ Apache-2.0 | +| [`sha2`](https://crates.io/crates/sha2) | MIT ИЛИ Apache-2.0 | +| [`glob`](https://crates.io/crates/glob) | MIT ИЛИ Apache-2.0 | +| [`self-replace`](https://crates.io/crates/self-replace) | MIT ИЛИ Apache-2.0 | +| [`ctrlc`](https://crates.io/crates/ctrlc) | MIT ИЛИ Apache-2.0 | + +Full dependency tree is available in [`Cargo.lock`](https://github.com/dexoron/dcr/blob/main/Cargo.lock). Подавляющее большинство имеют двойную лицензию MIT OR Apache-2.0. ## Дополнительные благодарности From 78151ff0dedf92fc5fb0b9fac0078c18ef62c75d Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:12:28 +0800 Subject: [PATCH 182/274] New translations license.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/license.mdx.mdx | 39 +++++++------------ 1 file changed, 13 insertions(+), 26 deletions(-) diff --git a/docs-crowdin-export/uk-UA/docs/license.mdx.mdx b/docs-crowdin-export/uk-UA/docs/license.mdx.mdx index 39caf78..20a7804 100644 --- a/docs-crowdin-export/uk-UA/docs/license.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/license.mdx.mdx @@ -10,36 +10,23 @@ DCR itself is [GPL-3.0-or-later](https://spdx.org/licenses/GPL-3.0-or-later.html > **Note:** DCR is a build tool, not a library. The GPL applies only to DCR's own source code. Projects built with DCR are not subject to DCR's license — their licensing is determined solely by their own code and dependencies. -## Vendored libraries - -DCR statically links the following C libraries through its vendored Rust dependencies: - -| Library | License | Bundled by | -| ------------------------------------------ | ------------------ | ----------------------------- | -| [libgit2](https://libgit2.org) | MIT OR Apache-2.0 | `git2` / `libgit2-sys` | -| [libssh2](https://libssh2.org) | MIT OR Apache-2.0 | `libgit2-sys` | -| [zlib](https://zlib.net) | MIT OR Apache-2.0 | `libgit2-sys` | -| [OpenSSL](https://openssl.org) | Apache-2.0 | `openssl-sys` / `openssl-src` | -| [ring](https://github.com/briansmith/ring) | Apache-2.0 AND ISC | `rustls` | - ## Rust dependencies DCR is written in Rust. The following notable Rust crates are statically linked: -| Crate | License | -| --------------------------------------------- | ------------------------ | -| [`reqwest`](https://crates.io/crates/reqwest) | MIT OR Apache-2.0 | -| [`rustls`](https://crates.io/crates/rustls) | Apache-2.0 OR ISC OR MIT | -| [`serde`](https://crates.io/crates/serde) | MIT OR Apache-2.0 | -| [`toml`](https://crates.io/crates/toml) | MIT OR Apache-2.0 | -| [`sha2`](https://crates.io/crates/sha2) | MIT OR Apache-2.0 | -| [`git2`](https://crates.io/crates/git2) | MIT OR Apache-2.0 | -| [`openssl`](https://crates.io/crates/openssl) | Apache-2.0 | -| [`tokio`](https://crates.io/crates/tokio) | MIT | -| [`hyper`](https://crates.io/crates/hyper) | MIT | -| [`ctrlc`](https://crates.io/crates/ctrlc) | MIT OR Apache-2.0 | - -Full dependency tree (143 packages) is available in [`Cargo.lock`](https://github.com/dexoron/dcr/blob/main/Cargo.lock). The overwhelming majority are dual-licensed under MIT OR Apache-2.0. +| Crate | License | +| ------------------------------------------------------- | ----------------- | +| [`ureq`](https://crates.io/crates/ureq) | MIT OR Apache-2.0 | +| [`serde`](https://crates.io/crates/serde) | MIT OR Apache-2.0 | +| [`toml`](https://crates.io/crates/toml) | MIT OR Apache-2.0 | +| [`toml_edit`](https://crates.io/crates/toml_edit) | MIT OR Apache-2.0 | +| [`serde_json`](https://crates.io/crates/serde_json) | MIT OR Apache-2.0 | +| [`sha2`](https://crates.io/crates/sha2) | MIT OR Apache-2.0 | +| [`glob`](https://crates.io/crates/glob) | MIT OR Apache-2.0 | +| [`self-replace`](https://crates.io/crates/self-replace) | MIT OR Apache-2.0 | +| [`ctrlc`](https://crates.io/crates/ctrlc) | MIT OR Apache-2.0 | + +Full dependency tree is available in [`Cargo.lock`](https://github.com/dexoron/dcr/blob/main/Cargo.lock). The overwhelming majority are dual-licensed under MIT OR Apache-2.0. ## Additional credits From 09dbd7f8e262d811fa5b71bfdb49d80ce34b517f Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:12:30 +0800 Subject: [PATCH 183/274] New translations multi-package-workspace.mdx (German) [ci skip] --- .../de-DE/docs/recipes/multi-package-workspace.mdx.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/docs-crowdin-export/de-DE/docs/recipes/multi-package-workspace.mdx.mdx b/docs-crowdin-export/de-DE/docs/recipes/multi-package-workspace.mdx.mdx index f8e8a90..dde7cb5 100644 --- a/docs-crowdin-export/de-DE/docs/recipes/multi-package-workspace.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/recipes/multi-package-workspace.mdx.mdx @@ -34,6 +34,7 @@ type = "none" inherit = true language = "c" standard = "c11" +workspace_only = true [workspace.lib-core] path = "lib-core" From bdf4c0baeeabd6bad2e8d24d46332a1eb23562e1 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:12:33 +0800 Subject: [PATCH 184/274] New translations multi-package-workspace.mdx (Polish) [ci skip] --- .../pl-PL/docs/recipes/multi-package-workspace.mdx.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/docs-crowdin-export/pl-PL/docs/recipes/multi-package-workspace.mdx.mdx b/docs-crowdin-export/pl-PL/docs/recipes/multi-package-workspace.mdx.mdx index f8e8a90..dde7cb5 100644 --- a/docs-crowdin-export/pl-PL/docs/recipes/multi-package-workspace.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/recipes/multi-package-workspace.mdx.mdx @@ -34,6 +34,7 @@ type = "none" inherit = true language = "c" standard = "c11" +workspace_only = true [workspace.lib-core] path = "lib-core" From 7d237531994cb7dcaab53f2d1060b9bfadf2acf4 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:12:35 +0800 Subject: [PATCH 185/274] New translations multi-package-workspace.mdx (Russian) [ci skip] --- .../recipes/multi-package-workspace.mdx.mdx | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/recipes/multi-package-workspace.mdx.mdx b/docs-crowdin-export/ru-RU/docs/recipes/multi-package-workspace.mdx.mdx index e7af284..b1b596f 100644 --- a/docs-crowdin-export/ru-RU/docs/recipes/multi-package-workspace.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/recipes/multi-package-workspace.mdx.mdx @@ -33,14 +33,20 @@ type = "none" [build] inherit = true language = "c" -standard = "c17" - -[workspace] -members = [ - { path = "lib-core" }, - { path = "lib-utils", deps = ["lib-core"] }, - { path = "app", deps = ["lib-core", "lib-utils"], main = true }, -] +standard = "c11" +workspace_only = true + +[workspace.lib-core] +path = "lib-core" + +[workspace.lib-utils] +path = "lib-utils" +deps = ["lib-core"] + +[workspace.app] +path = "app" +deps = ["lib-core", "lib-utils"] +main = true ``` ## Пакеты From 140dbe946922e901ee99ea837739f24f9e20d043 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:12:38 +0800 Subject: [PATCH 186/274] New translations multi-package-workspace.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/recipes/multi-package-workspace.mdx.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/docs-crowdin-export/uk-UA/docs/recipes/multi-package-workspace.mdx.mdx b/docs-crowdin-export/uk-UA/docs/recipes/multi-package-workspace.mdx.mdx index f8e8a90..dde7cb5 100644 --- a/docs-crowdin-export/uk-UA/docs/recipes/multi-package-workspace.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/recipes/multi-package-workspace.mdx.mdx @@ -34,6 +34,7 @@ type = "none" inherit = true language = "c" standard = "c11" +workspace_only = true [workspace.lib-core] path = "lib-core" From a8538fe408b79471be93211102c948f5f364c7af Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:12:40 +0800 Subject: [PATCH 187/274] New translations dcr-toml.mdx (German) [ci skip] --- .../de-DE/docs/reference/dcr-toml.mdx.mdx | 98 ++++++++++++------- 1 file changed, 61 insertions(+), 37 deletions(-) diff --git a/docs-crowdin-export/de-DE/docs/reference/dcr-toml.mdx.mdx b/docs-crowdin-export/de-DE/docs/reference/dcr-toml.mdx.mdx index 29ca0b0..43a6853 100644 --- a/docs-crowdin-export/de-DE/docs/reference/dcr-toml.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/reference/dcr-toml.mdx.mdx @@ -37,13 +37,13 @@ Main project configuration file. Located at the project root. ## [package] -| Field | Required | Description | -| --------- | -------- | ----------------------- | -| `name` | yes | Project name | -| `version` | yes | Semantic version | -| `type` | yes | `app`, `lib`, `none` | -| `license` | no | SPDX license identifier | -| `author` | no | Author | +| Field | Required | Description | +| --------- | -------- | ------------------------------------------- | +| `name` | yes | Project name | +| `version` | yes | Semantic version | +| `type` | no | `app`, `lib`, `none` (defaults to `"none"`) | +| `license` | no | SPDX license identifier | +| `author` | no | Author | ```toml [package] @@ -60,36 +60,36 @@ author = "John Doe" * `build.qt` — (bool) Enable automatic Qt meta-object handling (MOC, UIC, RCC). Requires `qt6` modules installed via `pkg-config`. -| Field | Default | Description | -| ---------------- | ------------------------------------------- | --------------------------------------------------------------------- | -| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"` | -| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | -| `cxx_standard` | `"c++20"` | C++ standard (`c++17`, `c++20`, `c++23`) | -| `compiler` | `"clang"` | Preferred compiler | -| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom` | -| `target` | host | Target triple for cross-compilation | -| `platform` | `"native"` | `native`, `efi` | -| `cflags` | `[]` | Additional C/C++/ASM flags | -| `ldflags` | `[]` | Additional linker flags | -| `filename` | `""` | Custom output file name | -| `extension` | `""` | Custom file extension | -| `roots` | `["src"]` | Source root directories | -| `exclude` | `[]` | Exclude patterns | -| `include` | `[]` | Additional include directories | -| `src_disable` | `false` | Disable auto source discovery | -| `inherit` | `false` | Inherit build from workspace root | -| `clean` | `[]` | Glob patterns for custom clean paths | -| `out_dir` | `""` | Custom output directory | -| `workspace_only` | `false` | Workspace-only, not built standalone | -| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | -| `opt_level` | `"0"` (debug) / `"3"` (release) | Optimization level: `0`-`3`, `"s"`, `"z"` | -| `debug` | `true` (debug) / `false` (release) | Emit debug symbols (`-g`) | -| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | -| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | -| `warnings` | `["all", "extra"]` (debug) / `[]` (release) | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`) | -| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | -| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | -| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | +| Field | Default | Description | +| ---------------- | ------------- | ---------------------------------------------------------------------------------------------------- | +| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"` (optional, defaults to `"c"`) | +| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | +| `cxx_standard` | — | C++ standard (`c++17`, `c++20`, `c++23`) | +| `compiler` | `"clang"` | Preferred compiler (optional, defaults to `"clang"`) | +| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom` | +| `target` | host | Target triple for cross-compilation | +| `platform` | `"native"` | `native`, `efi` | +| `cflags` | `[]` | Additional C/C++/ASM flags | +| `ldflags` | `[]` | Additional linker flags | +| `filename` | `""` | Custom output file name | +| `extension` | `""` | Custom file extension | +| `roots` | `["src"]` | Source root directories | +| `exclude` | `[]` | Exclude patterns | +| `include` | `[]` | Additional include directories | +| `src_disable` | `false` | Disable auto source discovery | +| `inherit` | `false` | Inherit build from workspace root | +| `clean` | `[]` | Glob patterns for custom clean paths | +| `out_dir` | `""` | Custom output directory | +| `workspace_only` | `false` | Workspace-only, not built standalone (no `language`/`compiler` required) | +| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | +| `opt_level` | — | Optimization level: `0`-`3`, `"s"`, `"z"` (derived from profile if omitted) | +| `debug` | profile-based | Emit debug symbols (`-g`): `true` in debug, `false` in release | +| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | +| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | +| `warnings` | `[]` | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`); engine adds `-Wall -Wextra` in debug if empty | +| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | +| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | +| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | Settings from raw config (not in typed struct): @@ -97,6 +97,30 @@ Settings from raw config (not in typed struct): * `ldscript` — linker script path * `build.steps` / `build.post_steps` — codegen steps +## Per-language overrides: `[build.c]`, `[build.cxx]`, `[build.asm]` + +Each language can have its own table that overrides the flat `[build]` settings: + +```toml +[build] +compiler = "clang" +standard = "c11" + +[build.c] +standard = "c23" +compiler = "gcc" + +[build.cxx] +standard = "c++23" +compiler = "g++" + +[build.asm] +compiler = "nasm" +flags = ["-felf64"] +``` + +The flat `[build]` acts as fallback; per-language tables take precedence for their language. + Example: ```toml From 02872886fdb7ec79695fd089a5de2df76847e0d3 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:12:43 +0800 Subject: [PATCH 188/274] New translations dcr-toml.mdx (Polish) [ci skip] --- .../pl-PL/docs/reference/dcr-toml.mdx.mdx | 98 ++++++++++++------- 1 file changed, 61 insertions(+), 37 deletions(-) diff --git a/docs-crowdin-export/pl-PL/docs/reference/dcr-toml.mdx.mdx b/docs-crowdin-export/pl-PL/docs/reference/dcr-toml.mdx.mdx index 29ca0b0..43a6853 100644 --- a/docs-crowdin-export/pl-PL/docs/reference/dcr-toml.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/reference/dcr-toml.mdx.mdx @@ -37,13 +37,13 @@ Main project configuration file. Located at the project root. ## [package] -| Field | Required | Description | -| --------- | -------- | ----------------------- | -| `name` | yes | Project name | -| `version` | yes | Semantic version | -| `type` | yes | `app`, `lib`, `none` | -| `license` | no | SPDX license identifier | -| `author` | no | Author | +| Field | Required | Description | +| --------- | -------- | ------------------------------------------- | +| `name` | yes | Project name | +| `version` | yes | Semantic version | +| `type` | no | `app`, `lib`, `none` (defaults to `"none"`) | +| `license` | no | SPDX license identifier | +| `author` | no | Author | ```toml [package] @@ -60,36 +60,36 @@ author = "John Doe" * `build.qt` — (bool) Enable automatic Qt meta-object handling (MOC, UIC, RCC). Requires `qt6` modules installed via `pkg-config`. -| Field | Default | Description | -| ---------------- | ------------------------------------------- | --------------------------------------------------------------------- | -| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"` | -| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | -| `cxx_standard` | `"c++20"` | C++ standard (`c++17`, `c++20`, `c++23`) | -| `compiler` | `"clang"` | Preferred compiler | -| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom` | -| `target` | host | Target triple for cross-compilation | -| `platform` | `"native"` | `native`, `efi` | -| `cflags` | `[]` | Additional C/C++/ASM flags | -| `ldflags` | `[]` | Additional linker flags | -| `filename` | `""` | Custom output file name | -| `extension` | `""` | Custom file extension | -| `roots` | `["src"]` | Source root directories | -| `exclude` | `[]` | Exclude patterns | -| `include` | `[]` | Additional include directories | -| `src_disable` | `false` | Disable auto source discovery | -| `inherit` | `false` | Inherit build from workspace root | -| `clean` | `[]` | Glob patterns for custom clean paths | -| `out_dir` | `""` | Custom output directory | -| `workspace_only` | `false` | Workspace-only, not built standalone | -| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | -| `opt_level` | `"0"` (debug) / `"3"` (release) | Optimization level: `0`-`3`, `"s"`, `"z"` | -| `debug` | `true` (debug) / `false` (release) | Emit debug symbols (`-g`) | -| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | -| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | -| `warnings` | `["all", "extra"]` (debug) / `[]` (release) | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`) | -| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | -| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | -| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | +| Field | Default | Description | +| ---------------- | ------------- | ---------------------------------------------------------------------------------------------------- | +| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"` (optional, defaults to `"c"`) | +| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | +| `cxx_standard` | — | C++ standard (`c++17`, `c++20`, `c++23`) | +| `compiler` | `"clang"` | Preferred compiler (optional, defaults to `"clang"`) | +| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom` | +| `target` | host | Target triple for cross-compilation | +| `platform` | `"native"` | `native`, `efi` | +| `cflags` | `[]` | Additional C/C++/ASM flags | +| `ldflags` | `[]` | Additional linker flags | +| `filename` | `""` | Custom output file name | +| `extension` | `""` | Custom file extension | +| `roots` | `["src"]` | Source root directories | +| `exclude` | `[]` | Exclude patterns | +| `include` | `[]` | Additional include directories | +| `src_disable` | `false` | Disable auto source discovery | +| `inherit` | `false` | Inherit build from workspace root | +| `clean` | `[]` | Glob patterns for custom clean paths | +| `out_dir` | `""` | Custom output directory | +| `workspace_only` | `false` | Workspace-only, not built standalone (no `language`/`compiler` required) | +| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | +| `opt_level` | — | Optimization level: `0`-`3`, `"s"`, `"z"` (derived from profile if omitted) | +| `debug` | profile-based | Emit debug symbols (`-g`): `true` in debug, `false` in release | +| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | +| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | +| `warnings` | `[]` | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`); engine adds `-Wall -Wextra` in debug if empty | +| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | +| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | +| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | Settings from raw config (not in typed struct): @@ -97,6 +97,30 @@ Settings from raw config (not in typed struct): * `ldscript` — linker script path * `build.steps` / `build.post_steps` — codegen steps +## Per-language overrides: `[build.c]`, `[build.cxx]`, `[build.asm]` + +Each language can have its own table that overrides the flat `[build]` settings: + +```toml +[build] +compiler = "clang" +standard = "c11" + +[build.c] +standard = "c23" +compiler = "gcc" + +[build.cxx] +standard = "c++23" +compiler = "g++" + +[build.asm] +compiler = "nasm" +flags = ["-felf64"] +``` + +The flat `[build]` acts as fallback; per-language tables take precedence for their language. + Example: ```toml From 2d182e725976f5ad8e771a5f4314188ce45ba29d Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:12:46 +0800 Subject: [PATCH 189/274] New translations dcr-toml.mdx (Russian) [ci skip] --- .../ru-RU/docs/reference/dcr-toml.mdx.mdx | 98 ++++++++++++------- 1 file changed, 61 insertions(+), 37 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx index f4509ae..fed35b3 100644 --- a/docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx @@ -38,13 +38,13 @@ sidebar_label: Обзор dcr.toml ## [пакет] -| Поле | Обязательное | Описание | -| ---------- | ------------ | --------------------------- | -| `имя` | да | Имя проекта | -| `версия` | да | Семантическая версия | -| `тип` | да | `app`, `lib`, `none` | -| `лицензия` | нет | SPDX-идентификатор лицензии | -| `автор` | нет | Автор | +| Поле | Обязательное | Описание | +| ---------- | ------------ | ------------------------------------------- | +| `имя` | да | Имя проекта | +| `версия` | да | Семантическая версия | +| `тип` | no | `app`, `lib`, `none` (defaults to `"none"`) | +| `лицензия` | нет | SPDX-идентификатор лицензии | +| `автор` | нет | Автор | ```toml [package] @@ -61,36 +61,36 @@ author = "John Doe" * `build.qt` — (bool) Включить автоматическую обработку метаобъектов Qt (MOC, UIC, RCC). Требуется установка модулей `qt6` с помощью `pkg-config`. -| Поле | По умолчанию | Описание | -| ------------------------ | --------------------------------------------------------------- | ------------------------------------------------------------------------------------- | -| `язык` | `"c"` | `"c"`, `"cxx"`, `"cpp"` | -| `стандартный` | `"c11"` | Стандарт C (`c11`, `c17`, `c23`) | -| `cxx_standard` | `"c++20"` | Стандарт C++ (`c++17`, `c++20`, `c++23`) | -| `компилятор` | `cxxflags` | Предпочитаемый компилятор | -| `тип` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom` | -| `target` | хост | Target triple для кросс-компиляции | -| `платформа` | `"нативный"` | `native`, `efi`, `freestanding` | -| `cflags` | `[]` | Дополнительные флаги C++ | -| `ldflags` | `[]` | Дополнительные флаги линковки | -| `имя файла` | `""` | Кастомное имя выходного файла | -| `расширение` | `""` | Пользовательское расширение файла | -| `корни` | `["src"]` | Корневые директории с исходниками | -| `exclude` | `[]` | Паттерны исключений | -| `include` | `[]` | Дополнительные include-директории | -| `src_disable` | `false` | Отключить автоматический поиск источников | -| `наследовать` | `false` | Наследовать build от корня workspace | -| `clean` | `[]` | Шаблоны Glob для настраиваемых чистых путей | -| `out_dir` | `""` | Пользовательский каталог для вывода данных | -| `только рабочая область` | `false` | Только для workspace, не собирать отдельно | -| `отдельно стоящий` | `false` | Компилировать в автономном режиме (`-ffreestanding` + `-nostdlib -static`) | -| `opt_level` | `"0"` (отладочная версия) / `"3"` (релизная версия) | Уровень оптимизации: `0`–`3`, `"s"`, `"z"` | -| `ldscript` | `true` (отладочный режим) / `false` (релизный режим) | Выводить отладочные символы (`-g`) | -| `lto` | `false` | Оптимизация на этапе компоновки (`-flto` как для компилятора, так и для компоновщика) | -| `asflags` | `false` | Удалить символы из вывода (опция `-s` в ldflags) | -| `true` | `["all", "extra"]` (отладочная версия) / `[]` (релизная версия) | Флаги предупреждений (например, `"all"`, `"extra"`, `"pedantic"`) | -| `panic` | `""` | Стратегия «Паника»: `"abort"` отключает исключения и таблицы развертки | -| `codegen-units` | `""` | Максимальное количество параллельных заданий компиляции (`"0"` = автоматически) | -| `qt` | `false` | Включить автоматическую обработку метаобъектов Qt (MOC, UIC, RCC) | +| Поле | По умолчанию | Описание | +| ------------------------ | ------------- | ---------------------------------------------------------------------------------------------------- | +| `язык` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"` (optional, defaults to `"c"`) | +| `стандартный` | `"c11"` | Стандарт C (`c11`, `c17`, `c23`) | +| `cxx_standard` | — | Стандарт C++ (`c++17`, `c++20`, `c++23`) | +| `компилятор` | `cxxflags` | Preferred compiler (optional, defaults to `"clang"`) | +| `тип` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom` | +| `target` | хост | Target triple для кросс-компиляции | +| `платформа` | `"нативный"` | `native`, `efi`, `freestanding` | +| `cflags` | `[]` | Дополнительные флаги C++ | +| `ldflags` | `[]` | Дополнительные флаги линковки | +| `имя файла` | `""` | Кастомное имя выходного файла | +| `расширение` | `""` | Пользовательское расширение файла | +| `корни` | `["src"]` | Корневые директории с исходниками | +| `exclude` | `[]` | Паттерны исключений | +| `include` | `[]` | Дополнительные include-директории | +| `src_disable` | `false` | Отключить автоматический поиск источников | +| `наследовать` | `false` | Наследовать build от корня workspace | +| `clean` | `[]` | Шаблоны Glob для настраиваемых чистых путей | +| `out_dir` | `""` | Пользовательский каталог для вывода данных | +| `только рабочая область` | `false` | Workspace-only, not built standalone (no `language`/`compiler` required) | +| `отдельно стоящий` | `false` | Компилировать в автономном режиме (`-ffreestanding` + `-nostdlib -static`) | +| `opt_level` | — | Optimization level: `0`-`3`, `"s"`, `"z"` (derived from profile if omitted) | +| `ldscript` | profile-based | Emit debug symbols (`-g`): `true` in debug, `false` in release | +| `lto` | `false` | Оптимизация на этапе компоновки (`-flto` как для компилятора, так и для компоновщика) | +| `asflags` | `false` | Удалить символы из вывода (опция `-s` в ldflags) | +| `true` | `[]` | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`); engine adds `-Wall -Wextra` in debug if empty | +| `panic` | `""` | Стратегия «Паника»: `"abort"` отключает исключения и таблицы развертки | +| `codegen-units` | `""` | Максимальное количество параллельных заданий компиляции (`"0"` = автоматически) | +| `qt` | `false` | Включить автоматическую обработку метаобъектов Qt (MOC, UIC, RCC) | Параметры из исходного файла конфигурации (не в виде типизированной структуры): @@ -98,6 +98,30 @@ author = "John Doe" * Путь к linker script * `build.steps` / `build.post_steps` — этапы генерации кода +## Per-language overrides: `[build.c]`, `[build.cxx]`, `[build.asm]` + +Each language can have its own table that overrides the flat `[build]` settings: + +```toml +[build] +compiler = "clang" +standard = "c11" + +[build.c] +standard = "c23" +compiler = "gcc" + +[build.cxx] +standard = "c++23" +compiler = "g++" + +[build.asm] +compiler = "nasm" +flags = ["-felf64"] +``` + +The flat `[build]` acts as fallback; per-language tables take precedence for their language. + Пример: ```toml From f7bb1fee0fa4034f861490d698cd479609829af9 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:12:48 +0800 Subject: [PATCH 190/274] New translations dcr-toml.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/reference/dcr-toml.mdx.mdx | 98 ++++++++++++------- 1 file changed, 61 insertions(+), 37 deletions(-) diff --git a/docs-crowdin-export/uk-UA/docs/reference/dcr-toml.mdx.mdx b/docs-crowdin-export/uk-UA/docs/reference/dcr-toml.mdx.mdx index 29ca0b0..43a6853 100644 --- a/docs-crowdin-export/uk-UA/docs/reference/dcr-toml.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/reference/dcr-toml.mdx.mdx @@ -37,13 +37,13 @@ Main project configuration file. Located at the project root. ## [package] -| Field | Required | Description | -| --------- | -------- | ----------------------- | -| `name` | yes | Project name | -| `version` | yes | Semantic version | -| `type` | yes | `app`, `lib`, `none` | -| `license` | no | SPDX license identifier | -| `author` | no | Author | +| Field | Required | Description | +| --------- | -------- | ------------------------------------------- | +| `name` | yes | Project name | +| `version` | yes | Semantic version | +| `type` | no | `app`, `lib`, `none` (defaults to `"none"`) | +| `license` | no | SPDX license identifier | +| `author` | no | Author | ```toml [package] @@ -60,36 +60,36 @@ author = "John Doe" * `build.qt` — (bool) Enable automatic Qt meta-object handling (MOC, UIC, RCC). Requires `qt6` modules installed via `pkg-config`. -| Field | Default | Description | -| ---------------- | ------------------------------------------- | --------------------------------------------------------------------- | -| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"` | -| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | -| `cxx_standard` | `"c++20"` | C++ standard (`c++17`, `c++20`, `c++23`) | -| `compiler` | `"clang"` | Preferred compiler | -| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom` | -| `target` | host | Target triple for cross-compilation | -| `platform` | `"native"` | `native`, `efi` | -| `cflags` | `[]` | Additional C/C++/ASM flags | -| `ldflags` | `[]` | Additional linker flags | -| `filename` | `""` | Custom output file name | -| `extension` | `""` | Custom file extension | -| `roots` | `["src"]` | Source root directories | -| `exclude` | `[]` | Exclude patterns | -| `include` | `[]` | Additional include directories | -| `src_disable` | `false` | Disable auto source discovery | -| `inherit` | `false` | Inherit build from workspace root | -| `clean` | `[]` | Glob patterns for custom clean paths | -| `out_dir` | `""` | Custom output directory | -| `workspace_only` | `false` | Workspace-only, not built standalone | -| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | -| `opt_level` | `"0"` (debug) / `"3"` (release) | Optimization level: `0`-`3`, `"s"`, `"z"` | -| `debug` | `true` (debug) / `false` (release) | Emit debug symbols (`-g`) | -| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | -| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | -| `warnings` | `["all", "extra"]` (debug) / `[]` (release) | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`) | -| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | -| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | -| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | +| Field | Default | Description | +| ---------------- | ------------- | ---------------------------------------------------------------------------------------------------- | +| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"` (optional, defaults to `"c"`) | +| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | +| `cxx_standard` | — | C++ standard (`c++17`, `c++20`, `c++23`) | +| `compiler` | `"clang"` | Preferred compiler (optional, defaults to `"clang"`) | +| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom` | +| `target` | host | Target triple for cross-compilation | +| `platform` | `"native"` | `native`, `efi` | +| `cflags` | `[]` | Additional C/C++/ASM flags | +| `ldflags` | `[]` | Additional linker flags | +| `filename` | `""` | Custom output file name | +| `extension` | `""` | Custom file extension | +| `roots` | `["src"]` | Source root directories | +| `exclude` | `[]` | Exclude patterns | +| `include` | `[]` | Additional include directories | +| `src_disable` | `false` | Disable auto source discovery | +| `inherit` | `false` | Inherit build from workspace root | +| `clean` | `[]` | Glob patterns for custom clean paths | +| `out_dir` | `""` | Custom output directory | +| `workspace_only` | `false` | Workspace-only, not built standalone (no `language`/`compiler` required) | +| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | +| `opt_level` | — | Optimization level: `0`-`3`, `"s"`, `"z"` (derived from profile if omitted) | +| `debug` | profile-based | Emit debug symbols (`-g`): `true` in debug, `false` in release | +| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | +| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | +| `warnings` | `[]` | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`); engine adds `-Wall -Wextra` in debug if empty | +| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | +| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | +| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | Settings from raw config (not in typed struct): @@ -97,6 +97,30 @@ Settings from raw config (not in typed struct): * `ldscript` — linker script path * `build.steps` / `build.post_steps` — codegen steps +## Per-language overrides: `[build.c]`, `[build.cxx]`, `[build.asm]` + +Each language can have its own table that overrides the flat `[build]` settings: + +```toml +[build] +compiler = "clang" +standard = "c11" + +[build.c] +standard = "c23" +compiler = "gcc" + +[build.cxx] +standard = "c++23" +compiler = "g++" + +[build.asm] +compiler = "nasm" +flags = ["-felf64"] +``` + +The flat `[build]` acts as fallback; per-language tables take precedence for their language. + Example: ```toml From aaba0d4f3db48f4f8a2717e1061b685322fa6501 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:12:51 +0800 Subject: [PATCH 191/274] New translations dependencies.mdx (German) [ci skip] --- .../de-DE/docs/reference/dependencies.mdx.mdx | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/docs-crowdin-export/de-DE/docs/reference/dependencies.mdx.mdx b/docs-crowdin-export/de-DE/docs/reference/dependencies.mdx.mdx index a2a88a9..8ab4a3c 100644 --- a/docs-crowdin-export/de-DE/docs/reference/dependencies.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/reference/dependencies.mdx.mdx @@ -41,24 +41,22 @@ DCR uses a package registry for dependency lookup by name. ```toml # ~/.dcr/config.toml -[[registry]] -name = "default" +[registry.default] url = "https://index.dcr.pm" +priority = 1 ``` Registry priority: order in `config.toml`. The `DCR_INDEX_PATH` variable overrides the path to `index.json`. ## Git dependencies -DCR clones git repositories via `git2`: +Git dependencies are parsed and recorded in `dcr.lock`. DCR supports specifying branch/tag/rev for git sources: * `branch` — switch to a branch * `tag` — switch to a tag * `rev` — switch to a specific commit * `features` — feature flags (parsed, but does not affect build) -Cache path: `~/.dcr/git/\/`. - ## Path dependencies Local paths. DCR automatically discovers include and lib directories from the neighbor's `dcr.toml`. From 7dc8d77e196b116cca715306e7ae6b0ca3b085b3 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:12:54 +0800 Subject: [PATCH 192/274] New translations dependencies.mdx (Polish) [ci skip] --- .../pl-PL/docs/reference/dependencies.mdx.mdx | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/docs-crowdin-export/pl-PL/docs/reference/dependencies.mdx.mdx b/docs-crowdin-export/pl-PL/docs/reference/dependencies.mdx.mdx index a2a88a9..8ab4a3c 100644 --- a/docs-crowdin-export/pl-PL/docs/reference/dependencies.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/reference/dependencies.mdx.mdx @@ -41,24 +41,22 @@ DCR uses a package registry for dependency lookup by name. ```toml # ~/.dcr/config.toml -[[registry]] -name = "default" +[registry.default] url = "https://index.dcr.pm" +priority = 1 ``` Registry priority: order in `config.toml`. The `DCR_INDEX_PATH` variable overrides the path to `index.json`. ## Git dependencies -DCR clones git repositories via `git2`: +Git dependencies are parsed and recorded in `dcr.lock`. DCR supports specifying branch/tag/rev for git sources: * `branch` — switch to a branch * `tag` — switch to a tag * `rev` — switch to a specific commit * `features` — feature flags (parsed, but does not affect build) -Cache path: `~/.dcr/git/\/`. - ## Path dependencies Local paths. DCR automatically discovers include and lib directories from the neighbor's `dcr.toml`. From 80ec220477a45f25a674d9c73f5178badeead3d5 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:12:56 +0800 Subject: [PATCH 193/274] New translations dependencies.mdx (Russian) [ci skip] --- .../ru-RU/docs/reference/dependencies.mdx.mdx | 28 +++++++++---------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/reference/dependencies.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/dependencies.mdx.mdx index 9c16a52..2661e79 100644 --- a/docs-crowdin-export/ru-RU/docs/reference/dependencies.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/reference/dependencies.mdx.mdx @@ -45,27 +45,25 @@ main = { url = "https://github.com/dcr-ports/dcr-index", priority = 1 } ```toml # ~/.dcr/config.toml -[[registry]] -name = "default" +[registry.default] url = "https://index.dcr.pm" +priority = 1 ``` Приоритет реестра: порядок в файле `config.toml`. Переменная `DCR_INDEX_PATH` переопределяет путь к index.json. ## Git-зависимости -При добавлении git-зависимости DCR клонирует репозиторий через `git2`: +Git dependencies are parsed and recorded in `dcr.lock`. DCR supports specifying branch/tag/rev for git sources: * `branch` — переключиться на ветку * `tag` — переключиться на тег * `rev` — переключиться на конкретный коммит * `features` — флаги функций (проанализированы, но не влияют на сборку) -Путь к кэшу: `~/.dcr/git/\/`. +## Path dependencies -## Path-зависимости - -Локальные пути. DCR автоматически находит include и lib директории. +Local paths. DCR automatically discovers include and lib directories from the neighbor's `dcr.toml`. ```toml [dependencies] @@ -75,14 +73,14 @@ mylib = { path = "../relative/path" } ## dcr.lock -Файл блокировки зависимостей. Содержит точные версии, хеши и источники. +Dependency lock file. Contains package names and sources. -Создаётся при выполнении команды `dcr build` при наличии зависимостей реестра. Автоматически обновляется при `dcr add`. +Created during `dcr build` when registry dependencies are present. Not updated during `dcr add` — only on the next `dcr build`. -## Процесс резолва +## Resolution process -1. Загружаются все зависимости (registry → git → path) -2. Для зависимостей типа «path»: рекурсивно прочитать их файлы `dcr.toml` -3. Для зависимостей реестра: выполните поиск в файле `index.json` -4. Для зависимостей Git: клонировать в кэш -5. Собираются include_dirs, lib_dirs, libs для передачи компилятору +1. Load all dependencies (registry → git → path) +2. For path deps: recursively read their `dcr.toml` +3. For registry deps: search `index.json` +4. For git deps: clone to cache +5. Collect `include_dirs`, `lib_dirs`, `libs` for the compiler From 2dc80ea28101bf0bea1475deb7494bc6cd8893c3 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:12:59 +0800 Subject: [PATCH 194/274] New translations dependencies.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/reference/dependencies.mdx.mdx | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/docs-crowdin-export/uk-UA/docs/reference/dependencies.mdx.mdx b/docs-crowdin-export/uk-UA/docs/reference/dependencies.mdx.mdx index a2a88a9..8ab4a3c 100644 --- a/docs-crowdin-export/uk-UA/docs/reference/dependencies.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/reference/dependencies.mdx.mdx @@ -41,24 +41,22 @@ DCR uses a package registry for dependency lookup by name. ```toml # ~/.dcr/config.toml -[[registry]] -name = "default" +[registry.default] url = "https://index.dcr.pm" +priority = 1 ``` Registry priority: order in `config.toml`. The `DCR_INDEX_PATH` variable overrides the path to `index.json`. ## Git dependencies -DCR clones git repositories via `git2`: +Git dependencies are parsed and recorded in `dcr.lock`. DCR supports specifying branch/tag/rev for git sources: * `branch` — switch to a branch * `tag` — switch to a tag * `rev` — switch to a specific commit * `features` — feature flags (parsed, but does not affect build) -Cache path: `~/.dcr/git/\/`. - ## Path dependencies Local paths. DCR automatically discovers include and lib directories from the neighbor's `dcr.toml`. From 4868b5d0d010704f7a698efb12696b8e5830f69a Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:13:01 +0800 Subject: [PATCH 195/274] New translations workspaces.mdx (German) [ci skip] --- .../de-DE/docs/reference/workspaces.mdx.mdx | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/docs-crowdin-export/de-DE/docs/reference/workspaces.mdx.mdx b/docs-crowdin-export/de-DE/docs/reference/workspaces.mdx.mdx index a0c2b4d..6046030 100644 --- a/docs-crowdin-export/de-DE/docs/reference/workspaces.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/reference/workspaces.mdx.mdx @@ -65,3 +65,21 @@ standard = "c17" # member inherits language and standard ``` + +## Workspace-only root (no build of its own) + +A workspace root can set `workspace_only = true` — it won't be built itself, and doesn't need `language` or `compiler`: + +```toml +[package] +name = "my-workspace" +version = "0.1.0" + +[build] +workspace_only = true +kind = "bin" + +[workspace] +lib-core = { path = "lib-core" } +app = { path = "app", deps = ["lib-core"] } +``` From 6157f1d8607845eb7dc8c83263b8bb26c703660b Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:13:04 +0800 Subject: [PATCH 196/274] New translations workspaces.mdx (Polish) [ci skip] --- .../pl-PL/docs/reference/workspaces.mdx.mdx | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/docs-crowdin-export/pl-PL/docs/reference/workspaces.mdx.mdx b/docs-crowdin-export/pl-PL/docs/reference/workspaces.mdx.mdx index a0c2b4d..6046030 100644 --- a/docs-crowdin-export/pl-PL/docs/reference/workspaces.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/reference/workspaces.mdx.mdx @@ -65,3 +65,21 @@ standard = "c17" # member inherits language and standard ``` + +## Workspace-only root (no build of its own) + +A workspace root can set `workspace_only = true` — it won't be built itself, and doesn't need `language` or `compiler`: + +```toml +[package] +name = "my-workspace" +version = "0.1.0" + +[build] +workspace_only = true +kind = "bin" + +[workspace] +lib-core = { path = "lib-core" } +app = { path = "app", deps = ["lib-core"] } +``` From 57cff02e587b942dceca620d668e9e41003e4472 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:13:06 +0800 Subject: [PATCH 197/274] New translations workspaces.mdx (Russian) [ci skip] --- .../ru-RU/docs/reference/workspaces.mdx.mdx | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/docs-crowdin-export/ru-RU/docs/reference/workspaces.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/workspaces.mdx.mdx index 5f3a703..0fcbf2e 100644 --- a/docs-crowdin-export/ru-RU/docs/reference/workspaces.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/reference/workspaces.mdx.mdx @@ -57,3 +57,21 @@ inherit = true language = "c" standard = "c17" ``` + +## Workspace-only root (no build of its own) + +A workspace root can set `workspace_only = true` — it won't be built itself, and doesn't need `language` or `compiler`: + +```toml +[package] +name = "my-workspace" +version = "0.1.0" + +[build] +workspace_only = true +kind = "bin" + +[workspace] +lib-core = { path = "lib-core" } +app = { path = "app", deps = ["lib-core"] } +``` From e72bc4e7785fd874199ca31bf42436146d2e8ce2 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 18 Jul 2026 20:13:09 +0800 Subject: [PATCH 198/274] New translations workspaces.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/reference/workspaces.mdx.mdx | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/docs-crowdin-export/uk-UA/docs/reference/workspaces.mdx.mdx b/docs-crowdin-export/uk-UA/docs/reference/workspaces.mdx.mdx index a0c2b4d..6046030 100644 --- a/docs-crowdin-export/uk-UA/docs/reference/workspaces.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/reference/workspaces.mdx.mdx @@ -65,3 +65,21 @@ standard = "c17" # member inherits language and standard ``` + +## Workspace-only root (no build of its own) + +A workspace root can set `workspace_only = true` — it won't be built itself, and doesn't need `language` or `compiler`: + +```toml +[package] +name = "my-workspace" +version = "0.1.0" + +[build] +workspace_only = true +kind = "bin" + +[workspace] +lib-core = { path = "lib-core" } +app = { path = "app", deps = ["lib-core"] } +``` From 5b1f774ac61aed1fffcf2d9eba92aa9ce2de14ae Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:49 +0800 Subject: [PATCH 199/274] New translations faq.mdx (German) [ci skip] --- docs-crowdin-export/de-DE/docs/faq.mdx.mdx | 27 +++++----------------- 1 file changed, 6 insertions(+), 21 deletions(-) diff --git a/docs-crowdin-export/de-DE/docs/faq.mdx.mdx b/docs-crowdin-export/de-DE/docs/faq.mdx.mdx index 085dbe2..4680f99 100644 --- a/docs-crowdin-export/de-DE/docs/faq.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/faq.mdx.mdx @@ -39,27 +39,6 @@ which clang Or specify explicitly via `[toolchain]` in `dcr.toml`. -## openssl-sys build failed - -When building DCR from source: - -``` -error: failed to run custom build command for openssl-sys -``` - -**Solution:** Install OpenSSL development headers: - -```bash -# Ubuntu/Debian -sudo apt install libssl-dev - -# Fedora -sudo dnf install openssl-devel - -# macOS -brew install openssl -``` - ## Ctrl+C during build DCR handles SIGINT: interrupts the current compilation and exits with non-zero code. @@ -76,6 +55,12 @@ See [Cross-Compile Recipe](/docs/recipes/cross-to-windows). See [Workspace Recipe](/docs/recipes/multi-package-workspace). +## Bootloader / pure NASM OS image + +Use `kind = "flat-bin"` (NASM `-f bin`) and optional `[archive]` for a FAT disk image. + +See [OS-dev recipe](/docs/recipes/os-flat-bin-archive). + ## Lock file `dcr.lock` is created during builds (`dcr build`) when registry dependencies are present. To force an update — delete `dcr.lock` and run `dcr build`. From 3b6aca35606fce7426ee28c1f9abbe6b0c4e5e2f Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:52 +0800 Subject: [PATCH 200/274] New translations faq.mdx (Polish) [ci skip] --- docs-crowdin-export/pl-PL/docs/faq.mdx.mdx | 27 +++++----------------- 1 file changed, 6 insertions(+), 21 deletions(-) diff --git a/docs-crowdin-export/pl-PL/docs/faq.mdx.mdx b/docs-crowdin-export/pl-PL/docs/faq.mdx.mdx index 085dbe2..4680f99 100644 --- a/docs-crowdin-export/pl-PL/docs/faq.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/faq.mdx.mdx @@ -39,27 +39,6 @@ which clang Or specify explicitly via `[toolchain]` in `dcr.toml`. -## openssl-sys build failed - -When building DCR from source: - -``` -error: failed to run custom build command for openssl-sys -``` - -**Solution:** Install OpenSSL development headers: - -```bash -# Ubuntu/Debian -sudo apt install libssl-dev - -# Fedora -sudo dnf install openssl-devel - -# macOS -brew install openssl -``` - ## Ctrl+C during build DCR handles SIGINT: interrupts the current compilation and exits with non-zero code. @@ -76,6 +55,12 @@ See [Cross-Compile Recipe](/docs/recipes/cross-to-windows). See [Workspace Recipe](/docs/recipes/multi-package-workspace). +## Bootloader / pure NASM OS image + +Use `kind = "flat-bin"` (NASM `-f bin`) and optional `[archive]` for a FAT disk image. + +See [OS-dev recipe](/docs/recipes/os-flat-bin-archive). + ## Lock file `dcr.lock` is created during builds (`dcr build`) when registry dependencies are present. To force an update — delete `dcr.lock` and run `dcr build`. From e42fc593c5b053257a29a2c71ba233741c315119 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:55 +0800 Subject: [PATCH 201/274] New translations faq.mdx (Russian) [ci skip] --- docs-crowdin-export/ru-RU/docs/faq.mdx.mdx | 27 +++++----------------- 1 file changed, 6 insertions(+), 21 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/faq.mdx.mdx b/docs-crowdin-export/ru-RU/docs/faq.mdx.mdx index 699ee93..fb811b9 100644 --- a/docs-crowdin-export/ru-RU/docs/faq.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/faq.mdx.mdx @@ -39,27 +39,6 @@ echo $DCR_INDEX_PATH Или укажите явно через `[toolchain]` или `DCR_COMPILER`. -## Сбой сборки openssl-sys - -При сборке DCR из исходников: - -``` -Ошибка: не удалось выполнить пользовательскую команду сборки для openssl-sys -``` - -**Решение:** Установите OpenSSL development headers: - -```bash -# Ubuntu/Debian -sudo apt install libssl-dev - -# Fedora -sudo dnf install openssl-devel - -# macOS -brew install openssl -``` - ## Ctrl+C во время сборки DCR корректно обрабатывает SIGINT: прерывает текущую компиляцию и завершает процесс с ненулевым кодом. @@ -76,6 +55,12 @@ DCR корректно обрабатывает SIGINT: прерывает те См. [Workspace Recipe](/docs/recipes/multi-package-workspace). +## Bootloader / pure NASM OS image + +Use `kind = "flat-bin"` (NASM `-f bin`) and optional `[archive]` for a FAT disk image. + +See [OS-dev recipe](/docs/recipes/os-flat-bin-archive). + ## Lock-файл устарел При изменении зависимостей `dcr.lock` автоматически обновляется при следующем `dcr add`. Если нужно принудительно обновить — удалите `dcr.lock` и выполните `dcr build`. From 4901ad59d64fee78e104653f7d91de0aa88a4ea4 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:16:58 +0800 Subject: [PATCH 202/274] New translations dcr-toml.mdx (German) [ci skip] --- .../de-DE/docs/reference/dcr-toml.mdx.mdx | 147 ++++++++++++++---- 1 file changed, 116 insertions(+), 31 deletions(-) diff --git a/docs-crowdin-export/de-DE/docs/reference/dcr-toml.mdx.mdx b/docs-crowdin-export/de-DE/docs/reference/dcr-toml.mdx.mdx index 43a6853..240399b 100644 --- a/docs-crowdin-export/de-DE/docs/reference/dcr-toml.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/reference/dcr-toml.mdx.mdx @@ -33,6 +33,9 @@ Main project configuration file. Located at the project root. [run] # run settings + +[archive] +# optional: pack FAT disk image after build ``` ## [package] @@ -60,36 +63,36 @@ author = "John Doe" * `build.qt` — (bool) Enable automatic Qt meta-object handling (MOC, UIC, RCC). Requires `qt6` modules installed via `pkg-config`. -| Field | Default | Description | -| ---------------- | ------------- | ---------------------------------------------------------------------------------------------------- | -| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"` (optional, defaults to `"c"`) | -| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | -| `cxx_standard` | — | C++ standard (`c++17`, `c++20`, `c++23`) | -| `compiler` | `"clang"` | Preferred compiler (optional, defaults to `"clang"`) | -| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom` | -| `target` | host | Target triple for cross-compilation | -| `platform` | `"native"` | `native`, `efi` | -| `cflags` | `[]` | Additional C/C++/ASM flags | -| `ldflags` | `[]` | Additional linker flags | -| `filename` | `""` | Custom output file name | -| `extension` | `""` | Custom file extension | -| `roots` | `["src"]` | Source root directories | -| `exclude` | `[]` | Exclude patterns | -| `include` | `[]` | Additional include directories | -| `src_disable` | `false` | Disable auto source discovery | -| `inherit` | `false` | Inherit build from workspace root | -| `clean` | `[]` | Glob patterns for custom clean paths | -| `out_dir` | `""` | Custom output directory | -| `workspace_only` | `false` | Workspace-only, not built standalone (no `language`/`compiler` required) | -| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | -| `opt_level` | — | Optimization level: `0`-`3`, `"s"`, `"z"` (derived from profile if omitted) | -| `debug` | profile-based | Emit debug symbols (`-g`): `true` in debug, `false` in release | -| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | -| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | -| `warnings` | `[]` | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`); engine adds `-Wall -Wextra` in debug if empty | -| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | -| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | -| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | +| Field | Default | Description | +| ---------------- | ------------- | --------------------------------------------------------------------------------------------------------- | +| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"`, `"llvm_ir"`, `"llvm-ir"`, `"ll"` (optional, defaults to `"c"`) | +| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | +| `cxx_standard` | — | C++ standard (`c++17`, `c++20`, `c++23`) | +| `compiler` | `"clang"` | Preferred compiler (optional, defaults to `"clang"`) | +| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom`, `flat-bin` | +| `target` | host | Target triple for cross-compilation | +| `platform` | `"native"` | `native`, `efi` | +| `cflags` | `[]` | Additional C/C++/ASM flags | +| `ldflags` | `[]` | Additional linker flags | +| `filename` | `""` | Custom output file name | +| `extension` | `""` | Custom file extension (for `flat-bin`, default is `bin`) | +| `roots` | `["src"]` | Source roots: directories and/or individual source/header files | +| `exclude` | `[]` | Exclude patterns | +| `include` | `[]` | Additional include directories | +| `src_disable` | `false` | Disable auto source discovery | +| `inherit` | `false` | Inherit build from workspace root | +| `clean` | `[]` | Glob patterns for custom clean paths | +| `out_dir` | `""` | Custom output directory | +| `workspace_only` | `false` | Workspace-only, not built standalone (no `language`/`compiler` required) | +| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | +| `opt_level` | — | Optimization level: `0`-`3`, `"s"`, `"z"` (derived from profile if omitted) | +| `debug` | profile-based | Emit debug symbols (`-g`): `true` in debug, `false` in release | +| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | +| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | +| `warnings` | `[]` | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`); engine adds `-Wall -Wextra` in debug if empty | +| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | +| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | +| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | Settings from raw config (not in typed struct): @@ -97,7 +100,7 @@ Settings from raw config (not in typed struct): * `ldscript` — linker script path * `build.steps` / `build.post_steps` — codegen steps -## Per-language overrides: `[build.c]`, `[build.cxx]`, `[build.asm]` +## Per-language overrides: `[build.c]`, `[build.cxx]`, `[build.asm]`, `[build.llvm_ir]` Each language can have its own table that overrides the flat `[build]` settings: @@ -117,6 +120,9 @@ compiler = "g++" [build.asm] compiler = "nasm" flags = ["-felf64"] + +[build.llvm_ir] +compiler = "llc" ``` The flat `[build]` acts as fallback; per-language tables take precedence for their language. @@ -174,3 +180,82 @@ Default `cmd` = `./target/{profile}/{name}` (macOS/Windows) or `./target/\.bin` | +| FASM | `compiler = "fasm"` | direct write (use `format binary` in source) | +| GAS | `compiler = "as"` / `"gas"` | assemble → `objcopy -O binary` | +| MASM | `compiler = "ml"` / `"ml64"` | assemble → `objcopy -O binary` | +| LLC | `language = "llvm_ir"`, `compiler = "llc"` | `-filetype=obj` → `objcopy -O binary` | + +```toml +[build] +language = "asm" +compiler = "nasm" +kind = "flat-bin" +extension = "bin" +roots = ["src/boot.asm"] +``` + +### C / C++ + +Compile all sources, link with `-nostdlib -static` (plus your `ldflags` / `ldscript`), then convert the intermediate ELF/PE with `objcopy -O binary` to `\.bin`. + +```toml +[build] +language = "c" +compiler = "clang" +kind = "flat-bin" +freestanding = true +filename = "kernel" +extension = "bin" +ldscript = "linker.ld" +ldflags = ["-T", "linker.ld"] +``` + +Notes: + +* Multi-file **ASM** packages emit one `\.bin` per source; **C/C++** emit a single project binary. +* `objcopy` tools tried in order: `llvm-objcopy`, `objcopy`, `gobjcopy`. +* Incompatible with `build.qt = true`. +* `dcr run` rejects `flat-bin` (not a host executable). From 87b9828511562926078380347391afa72e78356c Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:17:00 +0800 Subject: [PATCH 203/274] New translations dcr-toml.mdx (Polish) [ci skip] --- .../pl-PL/docs/reference/dcr-toml.mdx.mdx | 147 ++++++++++++++---- 1 file changed, 116 insertions(+), 31 deletions(-) diff --git a/docs-crowdin-export/pl-PL/docs/reference/dcr-toml.mdx.mdx b/docs-crowdin-export/pl-PL/docs/reference/dcr-toml.mdx.mdx index 43a6853..240399b 100644 --- a/docs-crowdin-export/pl-PL/docs/reference/dcr-toml.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/reference/dcr-toml.mdx.mdx @@ -33,6 +33,9 @@ Main project configuration file. Located at the project root. [run] # run settings + +[archive] +# optional: pack FAT disk image after build ``` ## [package] @@ -60,36 +63,36 @@ author = "John Doe" * `build.qt` — (bool) Enable automatic Qt meta-object handling (MOC, UIC, RCC). Requires `qt6` modules installed via `pkg-config`. -| Field | Default | Description | -| ---------------- | ------------- | ---------------------------------------------------------------------------------------------------- | -| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"` (optional, defaults to `"c"`) | -| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | -| `cxx_standard` | — | C++ standard (`c++17`, `c++20`, `c++23`) | -| `compiler` | `"clang"` | Preferred compiler (optional, defaults to `"clang"`) | -| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom` | -| `target` | host | Target triple for cross-compilation | -| `platform` | `"native"` | `native`, `efi` | -| `cflags` | `[]` | Additional C/C++/ASM flags | -| `ldflags` | `[]` | Additional linker flags | -| `filename` | `""` | Custom output file name | -| `extension` | `""` | Custom file extension | -| `roots` | `["src"]` | Source root directories | -| `exclude` | `[]` | Exclude patterns | -| `include` | `[]` | Additional include directories | -| `src_disable` | `false` | Disable auto source discovery | -| `inherit` | `false` | Inherit build from workspace root | -| `clean` | `[]` | Glob patterns for custom clean paths | -| `out_dir` | `""` | Custom output directory | -| `workspace_only` | `false` | Workspace-only, not built standalone (no `language`/`compiler` required) | -| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | -| `opt_level` | — | Optimization level: `0`-`3`, `"s"`, `"z"` (derived from profile if omitted) | -| `debug` | profile-based | Emit debug symbols (`-g`): `true` in debug, `false` in release | -| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | -| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | -| `warnings` | `[]` | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`); engine adds `-Wall -Wextra` in debug if empty | -| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | -| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | -| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | +| Field | Default | Description | +| ---------------- | ------------- | --------------------------------------------------------------------------------------------------------- | +| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"`, `"llvm_ir"`, `"llvm-ir"`, `"ll"` (optional, defaults to `"c"`) | +| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | +| `cxx_standard` | — | C++ standard (`c++17`, `c++20`, `c++23`) | +| `compiler` | `"clang"` | Preferred compiler (optional, defaults to `"clang"`) | +| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom`, `flat-bin` | +| `target` | host | Target triple for cross-compilation | +| `platform` | `"native"` | `native`, `efi` | +| `cflags` | `[]` | Additional C/C++/ASM flags | +| `ldflags` | `[]` | Additional linker flags | +| `filename` | `""` | Custom output file name | +| `extension` | `""` | Custom file extension (for `flat-bin`, default is `bin`) | +| `roots` | `["src"]` | Source roots: directories and/or individual source/header files | +| `exclude` | `[]` | Exclude patterns | +| `include` | `[]` | Additional include directories | +| `src_disable` | `false` | Disable auto source discovery | +| `inherit` | `false` | Inherit build from workspace root | +| `clean` | `[]` | Glob patterns for custom clean paths | +| `out_dir` | `""` | Custom output directory | +| `workspace_only` | `false` | Workspace-only, not built standalone (no `language`/`compiler` required) | +| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | +| `opt_level` | — | Optimization level: `0`-`3`, `"s"`, `"z"` (derived from profile if omitted) | +| `debug` | profile-based | Emit debug symbols (`-g`): `true` in debug, `false` in release | +| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | +| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | +| `warnings` | `[]` | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`); engine adds `-Wall -Wextra` in debug if empty | +| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | +| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | +| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | Settings from raw config (not in typed struct): @@ -97,7 +100,7 @@ Settings from raw config (not in typed struct): * `ldscript` — linker script path * `build.steps` / `build.post_steps` — codegen steps -## Per-language overrides: `[build.c]`, `[build.cxx]`, `[build.asm]` +## Per-language overrides: `[build.c]`, `[build.cxx]`, `[build.asm]`, `[build.llvm_ir]` Each language can have its own table that overrides the flat `[build]` settings: @@ -117,6 +120,9 @@ compiler = "g++" [build.asm] compiler = "nasm" flags = ["-felf64"] + +[build.llvm_ir] +compiler = "llc" ``` The flat `[build]` acts as fallback; per-language tables take precedence for their language. @@ -174,3 +180,82 @@ Default `cmd` = `./target/{profile}/{name}` (macOS/Windows) or `./target/\.bin` | +| FASM | `compiler = "fasm"` | direct write (use `format binary` in source) | +| GAS | `compiler = "as"` / `"gas"` | assemble → `objcopy -O binary` | +| MASM | `compiler = "ml"` / `"ml64"` | assemble → `objcopy -O binary` | +| LLC | `language = "llvm_ir"`, `compiler = "llc"` | `-filetype=obj` → `objcopy -O binary` | + +```toml +[build] +language = "asm" +compiler = "nasm" +kind = "flat-bin" +extension = "bin" +roots = ["src/boot.asm"] +``` + +### C / C++ + +Compile all sources, link with `-nostdlib -static` (plus your `ldflags` / `ldscript`), then convert the intermediate ELF/PE with `objcopy -O binary` to `\.bin`. + +```toml +[build] +language = "c" +compiler = "clang" +kind = "flat-bin" +freestanding = true +filename = "kernel" +extension = "bin" +ldscript = "linker.ld" +ldflags = ["-T", "linker.ld"] +``` + +Notes: + +* Multi-file **ASM** packages emit one `\.bin` per source; **C/C++** emit a single project binary. +* `objcopy` tools tried in order: `llvm-objcopy`, `objcopy`, `gobjcopy`. +* Incompatible with `build.qt = true`. +* `dcr run` rejects `flat-bin` (not a host executable). From 533874a3315364a31e7e37d8615c20b427c97cc5 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:17:03 +0800 Subject: [PATCH 204/274] New translations dcr-toml.mdx (Russian) [ci skip] --- .../ru-RU/docs/reference/dcr-toml.mdx.mdx | 170 +++++++++++++----- 1 file changed, 127 insertions(+), 43 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx index fed35b3..31654b3 100644 --- a/docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx @@ -10,30 +10,32 @@ sidebar_label: Обзор dcr.toml ```toml [package] -# обязательные поля +# required fields [build] -# настройки сборки +# build settings -[build.debug] # опционально: переопределение для debug -[build.release] # опционально: переопределение для release +[build.debug] # optional: debug override +[build.release] # optional: release override -[build.linux] # опционально: переопределение для Linux -[build.windows] # опционально: переопределение для Windows -[build.windows.debug] # комбинация target + profile +[build.linux] # optional: Linux override +[build.windows] # optional: Windows override +[build.windows.debug] # target + profile combination [toolchain] -# пути к компиляторам/линкеру +# compiler/linker paths [dependencies] -# зависимости проекта +# project dependencies [workspace] -# мультипакетная конфигурация +# multi-package configuration [run] -[run.release] # опционально: переопределение для release -# настройки запуска +# run settings + +[archive] +# optional: pack FAT disk image after build ``` ## [пакет] @@ -61,36 +63,36 @@ author = "John Doe" * `build.qt` — (bool) Включить автоматическую обработку метаобъектов Qt (MOC, UIC, RCC). Требуется установка модулей `qt6` с помощью `pkg-config`. -| Поле | По умолчанию | Описание | -| ------------------------ | ------------- | ---------------------------------------------------------------------------------------------------- | -| `язык` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"` (optional, defaults to `"c"`) | -| `стандартный` | `"c11"` | Стандарт C (`c11`, `c17`, `c23`) | -| `cxx_standard` | — | Стандарт C++ (`c++17`, `c++20`, `c++23`) | -| `компилятор` | `cxxflags` | Preferred compiler (optional, defaults to `"clang"`) | -| `тип` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom` | -| `target` | хост | Target triple для кросс-компиляции | -| `платформа` | `"нативный"` | `native`, `efi`, `freestanding` | -| `cflags` | `[]` | Дополнительные флаги C++ | -| `ldflags` | `[]` | Дополнительные флаги линковки | -| `имя файла` | `""` | Кастомное имя выходного файла | -| `расширение` | `""` | Пользовательское расширение файла | -| `корни` | `["src"]` | Корневые директории с исходниками | -| `exclude` | `[]` | Паттерны исключений | -| `include` | `[]` | Дополнительные include-директории | -| `src_disable` | `false` | Отключить автоматический поиск источников | -| `наследовать` | `false` | Наследовать build от корня workspace | -| `clean` | `[]` | Шаблоны Glob для настраиваемых чистых путей | -| `out_dir` | `""` | Пользовательский каталог для вывода данных | -| `только рабочая область` | `false` | Workspace-only, not built standalone (no `language`/`compiler` required) | -| `отдельно стоящий` | `false` | Компилировать в автономном режиме (`-ffreestanding` + `-nostdlib -static`) | -| `opt_level` | — | Optimization level: `0`-`3`, `"s"`, `"z"` (derived from profile if omitted) | -| `ldscript` | profile-based | Emit debug symbols (`-g`): `true` in debug, `false` in release | -| `lto` | `false` | Оптимизация на этапе компоновки (`-flto` как для компилятора, так и для компоновщика) | -| `asflags` | `false` | Удалить символы из вывода (опция `-s` в ldflags) | -| `true` | `[]` | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`); engine adds `-Wall -Wextra` in debug if empty | -| `panic` | `""` | Стратегия «Паника»: `"abort"` отключает исключения и таблицы развертки | -| `codegen-units` | `""` | Максимальное количество параллельных заданий компиляции (`"0"` = автоматически) | -| `qt` | `false` | Включить автоматическую обработку метаобъектов Qt (MOC, UIC, RCC) | +| Поле | По умолчанию | Описание | +| ------------------------ | ------------- | --------------------------------------------------------------------------------------------------------- | +| `язык` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"`, `"llvm_ir"`, `"llvm-ir"`, `"ll"` (optional, defaults to `"c"`) | +| `стандартный` | `"c11"` | Стандарт C (`c11`, `c17`, `c23`) | +| `cxx_standard` | — | Стандарт C++ (`c++17`, `c++20`, `c++23`) | +| `компилятор` | `cxxflags` | Preferred compiler (optional, defaults to `"clang"`) | +| `тип` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom`, `flat-bin` | +| `target` | хост | Target triple для кросс-компиляции | +| `платформа` | `"нативный"` | `native`, `efi`, `freestanding` | +| `cflags` | `[]` | Дополнительные флаги C++ | +| `ldflags` | `[]` | Дополнительные флаги линковки | +| `имя файла` | `""` | Кастомное имя выходного файла | +| `расширение` | `""` | Custom file extension (for `flat-bin`, default is `bin`) | +| `корни` | `["src"]` | Source roots: directories and/or individual source/header files | +| `exclude` | `[]` | Паттерны исключений | +| `include` | `[]` | Дополнительные include-директории | +| `src_disable` | `false` | Отключить автоматический поиск источников | +| `наследовать` | `false` | Наследовать build от корня workspace | +| `clean` | `[]` | Шаблоны Glob для настраиваемых чистых путей | +| `out_dir` | `""` | Пользовательский каталог для вывода данных | +| `только рабочая область` | `false` | Workspace-only, not built standalone (no `language`/`compiler` required) | +| `отдельно стоящий` | `false` | Компилировать в автономном режиме (`-ffreestanding` + `-nostdlib -static`) | +| `opt_level` | — | Optimization level: `0`-`3`, `"s"`, `"z"` (derived from profile if omitted) | +| `ldscript` | profile-based | Emit debug symbols (`-g`): `true` in debug, `false` in release | +| `lto` | `false` | Оптимизация на этапе компоновки (`-flto` как для компилятора, так и для компоновщика) | +| `asflags` | `false` | Удалить символы из вывода (опция `-s` в ldflags) | +| `true` | `[]` | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`); engine adds `-Wall -Wextra` in debug if empty | +| `panic` | `""` | Стратегия «Паника»: `"abort"` отключает исключения и таблицы развертки | +| `codegen-units` | `""` | Максимальное количество параллельных заданий компиляции (`"0"` = автоматически) | +| `qt` | `false` | Включить автоматическую обработку метаобъектов Qt (MOC, UIC, RCC) | Параметры из исходного файла конфигурации (не в виде типизированной структуры): @@ -98,7 +100,7 @@ author = "John Doe" * Путь к linker script * `build.steps` / `build.post_steps` — этапы генерации кода -## Per-language overrides: `[build.c]`, `[build.cxx]`, `[build.asm]` +## Per-language overrides: `[build.c]`, `[build.cxx]`, `[build.asm]`, `[build.llvm_ir]` Each language can have its own table that overrides the flat `[build]` settings: @@ -118,6 +120,9 @@ compiler = "g++" [build.asm] compiler = "nasm" flags = ["-felf64"] + +[build.llvm_ir] +compiler = "llc" ``` The flat `[build]` acts as fallback; per-language tables take precedence for their language. @@ -175,3 +180,82 @@ cmd = "./target/{profile}/{name}" ## [рабочая область] См. [workspaces](/docs/reference/workspaces). + +## [archive] + +Optional post-build step: format a FAT volume and copy built artifacts into a disk image. Runs after a successful package build (and after workspace member builds that define `[archive]`). + +| Field | Required | Description | +| ------------ | -------- | ------------------------------------------------------------------------------------------- | +| `output` | yes | Image path relative to project root (`{profile}` allowed) | +| `format` | yes | `fat12`, `fat16`, or `fat32` | +| `size` | no | Image size: bytes or `K`/`KB`/`M`/`MB`/`G`/`GB` (default `1474560` ≈ 1.44 MiB) | +| `offset` | no | Byte offset of the FAT volume inside the image (default `0`) | +| `label` | no | Volume label (max 11 chars, default `VOLUME`) | +| `bootsector` | no | Path to a 512-byte boot sector written at offset 0 when `offset` is 0 (`{profile}` allowed) | +| `layout` | no | List of `{ from, to }` entries (files or globs → path inside the volume) | + +```toml +[archive] +output = "target/{profile}/disk.img" +format = "fat12" +size = "1440K" +label = "MYOS" +bootsector = "target/{profile}/boot.bin" + +[[archive.layout]] +from = "target/{profile}/kernel.bin" +to = "KERNEL.BIN" + +[[archive.layout]] +from = "assets/*" +to = "/" +``` + +Typical pairing with `kind = "flat-bin"` (NASM `-f bin`) for bootloaders and pure-ASM OS images. + +## `flat-bin` (kind) + +Produces a raw binary (default extension `bin`) for boot sectors, kernels, and freestanding payloads. + +### Assemblers + +| Tool | Language / compiler | How flat-bin is produced | +| ---- | ------------------------------------------ | -------------------------------------------- | +| NASM | `language = "asm"`, `compiler = "nasm"` | `-f bin` → `\.bin` | +| FASM | `compiler = "fasm"` | direct write (use `format binary` in source) | +| GAS | `compiler = "as"` / `"gas"` | assemble → `objcopy -O binary` | +| MASM | `compiler = "ml"` / `"ml64"` | assemble → `objcopy -O binary` | +| LLC | `language = "llvm_ir"`, `compiler = "llc"` | `-filetype=obj` → `objcopy -O binary` | + +```toml +[build] +language = "asm" +compiler = "nasm" +kind = "flat-bin" +extension = "bin" +roots = ["src/boot.asm"] +``` + +### C / C++ + +Compile all sources, link with `-nostdlib -static` (plus your `ldflags` / `ldscript`), then convert the intermediate ELF/PE with `objcopy -O binary` to `\.bin`. + +```toml +[build] +language = "c" +compiler = "clang" +kind = "flat-bin" +freestanding = true +filename = "kernel" +extension = "bin" +ldscript = "linker.ld" +ldflags = ["-T", "linker.ld"] +``` + +Notes: + +* Multi-file **ASM** packages emit one `\.bin` per source; **C/C++** emit a single project binary. +* `objcopy` tools tried in order: `llvm-objcopy`, `objcopy`, `gobjcopy`. +* Incompatible with `build.qt = true`. +* `dcr run` rejects `flat-bin` (not a host executable). From ccc4749eb829e35ce654fb7be6e04f19859f6310 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:17:06 +0800 Subject: [PATCH 205/274] New translations dependencies.mdx (German) [ci skip] --- docs-crowdin-export/de-DE/docs/reference/dependencies.mdx.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs-crowdin-export/de-DE/docs/reference/dependencies.mdx.mdx b/docs-crowdin-export/de-DE/docs/reference/dependencies.mdx.mdx index 8ab4a3c..97a1a6e 100644 --- a/docs-crowdin-export/de-DE/docs/reference/dependencies.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/reference/dependencies.mdx.mdx @@ -67,6 +67,8 @@ mylib = { path = "/abs/path/to/lib" } mylib = { path = "../relative/path" } ``` +*Note: Header resolution automatically checks the packaged `target/include` directory of path dependencies, ensuring consumer packages can find headers from compiled static or dynamic libraries.* + ## dcr.lock Dependency lock file. Contains package names and sources. From 493da800bf7e1f356f70c23f9cf2c76c87a5e64b Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:17:09 +0800 Subject: [PATCH 206/274] New translations dependencies.mdx (Polish) [ci skip] --- docs-crowdin-export/pl-PL/docs/reference/dependencies.mdx.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs-crowdin-export/pl-PL/docs/reference/dependencies.mdx.mdx b/docs-crowdin-export/pl-PL/docs/reference/dependencies.mdx.mdx index 8ab4a3c..97a1a6e 100644 --- a/docs-crowdin-export/pl-PL/docs/reference/dependencies.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/reference/dependencies.mdx.mdx @@ -67,6 +67,8 @@ mylib = { path = "/abs/path/to/lib" } mylib = { path = "../relative/path" } ``` +*Note: Header resolution automatically checks the packaged `target/include` directory of path dependencies, ensuring consumer packages can find headers from compiled static or dynamic libraries.* + ## dcr.lock Dependency lock file. Contains package names and sources. From fc6edd6a5693a606748718c0aefd29b15507fe33 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:17:11 +0800 Subject: [PATCH 207/274] New translations dependencies.mdx (Russian) [ci skip] --- docs-crowdin-export/ru-RU/docs/reference/dependencies.mdx.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs-crowdin-export/ru-RU/docs/reference/dependencies.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/dependencies.mdx.mdx index 2661e79..b574740 100644 --- a/docs-crowdin-export/ru-RU/docs/reference/dependencies.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/reference/dependencies.mdx.mdx @@ -71,6 +71,8 @@ mylib = { path = "/abs/path/to/lib" } mylib = { path = "../relative/path" } ``` +*Note: Header resolution automatically checks the packaged `target/include` directory of path dependencies, ensuring consumer packages can find headers from compiled static or dynamic libraries.* + ## dcr.lock Dependency lock file. Contains package names and sources. From 18736a544a0e8a555482d5ccee1689b68d9bc6d3 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:17:14 +0800 Subject: [PATCH 208/274] New translations workspaces.mdx (German) [ci skip] --- docs-crowdin-export/de-DE/docs/reference/workspaces.mdx.mdx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs-crowdin-export/de-DE/docs/reference/workspaces.mdx.mdx b/docs-crowdin-export/de-DE/docs/reference/workspaces.mdx.mdx index 6046030..082be1e 100644 --- a/docs-crowdin-export/de-DE/docs/reference/workspaces.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/reference/workspaces.mdx.mdx @@ -43,7 +43,10 @@ dcr build # build all packages in dependency order dcr build --workspace app # build only app (dependencies built automatically) ``` -When building a workspace, member outputs (libraries) are automatically added to include/lib paths of dependent packages. +When building a workspace, DCR automatically injects include and library paths of dependent workspace members: + +* **Include Paths**: Automatically resolves and injects header directories of dependencies, including the member's `src/` directory, local `include/` directory, and the packaged `target/include` directory. +* **Library Paths**: Injects compiled library search paths (`target/lib` as well as target-specific build folders) to allow automatic linking with member libraries. ## Clean From 5fabc5b4320f404caf361f4c2c4e29c7c85cf9c3 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:17:16 +0800 Subject: [PATCH 209/274] New translations workspaces.mdx (Polish) [ci skip] --- docs-crowdin-export/pl-PL/docs/reference/workspaces.mdx.mdx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs-crowdin-export/pl-PL/docs/reference/workspaces.mdx.mdx b/docs-crowdin-export/pl-PL/docs/reference/workspaces.mdx.mdx index 6046030..082be1e 100644 --- a/docs-crowdin-export/pl-PL/docs/reference/workspaces.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/reference/workspaces.mdx.mdx @@ -43,7 +43,10 @@ dcr build # build all packages in dependency order dcr build --workspace app # build only app (dependencies built automatically) ``` -When building a workspace, member outputs (libraries) are automatically added to include/lib paths of dependent packages. +When building a workspace, DCR automatically injects include and library paths of dependent workspace members: + +* **Include Paths**: Automatically resolves and injects header directories of dependencies, including the member's `src/` directory, local `include/` directory, and the packaged `target/include` directory. +* **Library Paths**: Injects compiled library search paths (`target/lib` as well as target-specific build folders) to allow automatic linking with member libraries. ## Clean From 5222038639c04de3c7000cb6b3f7c0a1add0faf9 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:17:19 +0800 Subject: [PATCH 210/274] New translations workspaces.mdx (Russian) [ci skip] --- docs-crowdin-export/ru-RU/docs/reference/workspaces.mdx.mdx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs-crowdin-export/ru-RU/docs/reference/workspaces.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/workspaces.mdx.mdx index 0fcbf2e..3672689 100644 --- a/docs-crowdin-export/ru-RU/docs/reference/workspaces.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/reference/workspaces.mdx.mdx @@ -38,7 +38,10 @@ dcr build # собрать все пакеты dcr build --workspace pkg-a # собрать только pkg-a ``` -При сборке workspace выходные файлы member-ов (библиотеки) автоматически добавляются в include/lib пути зависимых пакетов. +When building a workspace, DCR automatically injects include and library paths of dependent workspace members: + +* **Include Paths**: Automatically resolves and injects header directories of dependencies, including the member's `src/` directory, local `include/` directory, and the packaged `target/include` directory. +* **Library Paths**: Injects compiled library search paths (`target/lib` as well as target-specific build folders) to allow automatic linking with member libraries. ## Очистка From f9ad515f4c19b12de8b54473c2db46e8b2334dea Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:17:21 +0800 Subject: [PATCH 211/274] New translations readme.mdx (German) [ci skip] --- docs-crowdin-export/de-DE/docs/README.mdx.mdx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/de-DE/docs/README.mdx.mdx b/docs-crowdin-export/de-DE/docs/README.mdx.mdx index fba8a6d..f00c04a 100644 --- a/docs-crowdin-export/de-DE/docs/README.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/README.mdx.mdx @@ -51,8 +51,9 @@ dcr gen vscode * **Incremental builds** — mtime + `.d` headers + SHA256 fingerprint * **Parallel compilation** — thread::scope, atomic task queue -* **4 backends** — gcc/clang, MSVC/clang-cl, GAS (ARM), NASM (x86) -* **7 project kinds** — bin, staticlib, sharedlib, efi, elf, none, custom +* **7 backends** — gcc/clang (unix_cc), MSVC/clang-cl (msvc), GAS, NASM, MASM, FASM, LLVM IR +* **8 project kinds** — bin, staticlib, sharedlib, efi, elf, none, custom, flat-bin +* **Disk images** — optional `[archive]` packs FAT12/16/32 images after build * **Cross-compilation** — short names and full triples * **Profiles** — debug / release with field overrides * **Workspaces** — multi-package projects with topological sort From 92f02abfd389cd43505c801e54e55458699e1e96 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:17:24 +0800 Subject: [PATCH 212/274] New translations changelog.mdx (German) [ci skip] --- .../de-DE/docs/changelog.mdx.mdx | 102 ++++++++++++++++++ 1 file changed, 102 insertions(+) diff --git a/docs-crowdin-export/de-DE/docs/changelog.mdx.mdx b/docs-crowdin-export/de-DE/docs/changelog.mdx.mdx index 722bf4e..6f494b7 100644 --- a/docs-crowdin-export/de-DE/docs/changelog.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/changelog.mdx.mdx @@ -4,6 +4,108 @@ sidebar_label: Changelog # Changelog +## 0.8.1 (2026-07-20) + +### Added + +* **`build.kind = "flat-bin"`** — raw binary (default `.bin`) for OS-dev payloads: + * **NASM** — `-f bin` → `\.bin` + * **FASM** — direct output (`format binary` in source) + * **GAS / MASM / LLC** — object → `objcopy -O binary` → `\.bin` + * **C/C++** — objects → freestanding link → `objcopy -O binary` → `\.bin` + * Requires `llvm-objcopy` / `objcopy` / `gobjcopy` except for NASM/FASM direct emit +* **`[archive]` section** — after a successful build, pack a FAT disk image (`fatfs`): `output`, `format` (`fat12`/`fat16`/`fat32`), optional `size` (default 1.44 MiB), `offset`, `label`, `bootsector`, and `layout` (`from` → `to`, supports globs). `{profile}` works in paths. +* **Single-file `build.roots`** — a root may be a single source or header file, not only a directory. + +### Changed + +* **`--force`** also re-runs `build.steps` and `build.post_steps`. +* **`dcr run` on workspace-only root** — if `[run].cmd` is set, run that after build; otherwise delegate to a workspace member. + +### Dependencies + +* `fatfs = "0.3"` for FAT image packing. + +## 0.8.0 (2026-07-18) + +### 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.\]`)** — introduced support for configuring language-specific compiler, standard, and flags (e.g. `[build.c]`, `[build.cxx]`, `[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\`) 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 execution** — `dcr 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`. + +## 0.7.4 (2026-06-17) + +### Added + +* **Native Qt support** — automatic meta-object handling (MOC, UIC, RCC) added when `build.qt = true` is set in `dcr.toml`. +* **`dcr lint` command** — C/C++ static analysis via `clang-tidy`. Supports `--fix` for automatic fixes. Respects `build.roots` and `build.src_disable` from config. +* **Three new assembler backends**: + * **MASM** (`compiler = "ml"` / `"ml64"`) — Microsoft Macro Assembler. + * **FASM** (`compiler = "fasm"`) — Flat Assembler. + * **LLVM IR** (`compiler = "llc"`) — compiles `.ll` files via `llc -filetype=obj`. +* **Shared ASM pipeline** — linking and archiving logic consolidated into `core/builder/asm.rs`. Adding a new assembler backend now takes ~30 lines. +* **Filesystem utilities** — `to_hex()` and `home_dir()` extracted to `utils/fs.rs`. +* **Build utilities** — `normalize_target()`, `normalize_kind()`, `normalize_platform()`, `default_profile_flags()` extracted to `utils/build.rs`. +* **Backend helpers** — `asm_lang_flag()`, `source_extensions()`, `elapsed_secs()` added to `core/builder/common.rs`. +* **Full Bare-Metal / Freestanding Automation** — introduced the `build.freestanding = true` configuration option. When enabled (or when a bare-metal target is detected), DCR automatically injects `-ffreestanding` during compilation and both `-nostdlib` and `-static` during linking. +* **Artifact Optimization (LTO & Strip)** — added `build.lto` (auto-injects `-flto` for compiler and linker) and `build.strip` (automatically strips debug symbols via linker `-s` flag) options to `dcr.toml`. +* **Compilation Thread Control** — added the `build.codegen-units` option to strictly limit the maximum number of parallel jobs utilized by the custom `parallel_build` worker pool. +* **Panic Behavior Management** — added `build.panic = "abort"` support. For C++ targets, it automatically strips exception handling and unwind tables via `-fno-exceptions`, `-fno-unwind-tables`, and `-fno-asynchronous-unwind-tables`. + +### Changed + +* **Intelligent Default Flags Generation** — automated injection of fallback optimization (`-O3`/`-O0`), debug (`-g`), and warning (`-Wall -Wextra`) flags is now suppressed for bare-metal and freestanding builds if `build.cflags` are overridden. +* **Centralized Bare-Metal Detection** — relocated the `is_bare_metal_target` helper to common build utilities (`src/utils/build.rs`) for unified access across the building core. +* **Architectural Refactoring**: + * Renamed `src/config.rs` to `src/templates.rs`. + * Started consolidation of configuration and build orchestration logic. + +## 0.7.3 (2026-06-13) + +### Added + +* **`--vcs` option for `new` and `init` commands** — introduced explicit version control system selection via `--vcs \`. +* **Git metadata integration in `--version`** — the CLI now appends the current short commit hash and a `-dirty` suffix if there are uncommitted changes in the DCR repository. +* **Automatic `.gitignore` generation** — Git repository initialization now automatically writes a `.gitignore` file excluding the `/target` directory. +* **Nested repository prevention** — automatic Git initialization is now skipped if `dcr new` or `dcr init` is executed inside an already existing Git repository. +* **VCS verification tests** — added `new_vcs_options_work` and `init_vcs_options_work` integration tests to ensure reliable repository behavior. + +### Changed + +* **Complete removal of `git2` dependency** — all Git actions (dependency fetching, VCS setup, status checks) are now delegated to the system `git` executable via `Command`. This simplifies compilation and drops the need for `vendored` and `openssl` features. +* **Migrated from `reqwest` to `ureq`** — replaced the heavy `reqwest` crate in `flag_update.rs` with the lightweight synchronous `ureq 2.10` client, reducing overhead and the final binary size. + +## 0.7.2 (2026-06-07) + +### Added + +* `default_target_triple()` now respects `target_env` — Linux (gnu/musl) and Windows (msvc/gnu) use the correct environment instead of hardcoded values. + +### Fixed + +* **macOS Apple Silicon builds failed with `_main` undefined** — `--target=` is now passed to ldflags, not just cflags. `default_target_triple()` uses `std::env::consts::ARCH` on macOS instead of hardcoded `x86_64`. +* **GitHub Stars and GPL-3.0 badges not rendering in README** — badge block converted to pure HTML. + +### Changed + +* Default target resolution extracted into shared `default_target_triple()` — removed duplication across build, run, clean. + ## 0.7.1 (2026-06-02) ### Added From 084059d414855270de5b4f10d1465a4acf6d26ba Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:17:27 +0800 Subject: [PATCH 213/274] New translations build-commands.mdx (German) [ci skip] --- .../de-DE/docs/commands/build-commands.mdx.mdx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docs-crowdin-export/de-DE/docs/commands/build-commands.mdx.mdx b/docs-crowdin-export/de-DE/docs/commands/build-commands.mdx.mdx index 9bdd3b3..ad38d1a 100644 --- a/docs-crowdin-export/de-DE/docs/commands/build-commands.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/commands/build-commands.mdx.mdx @@ -13,7 +13,7 @@ dcr build # debug profile dcr build --release # release build dcr build --debug # explicit debug dcr build --target aarch64-unknown-linux-gnu -dcr build --force # full rebuild +dcr build --force # full rebuild (also re-runs build.steps / post_steps) dcr build --clean # clean + build dcr build --verbose # show compilation commands dcr build --workspace pkg-a # build specific workspace package @@ -21,6 +21,8 @@ dcr build --workspace pkg-a # build specific workspace package Artifacts: `target/\/\/\` (Linux with explicit target). +With `[archive]` in `dcr.toml`, a FAT disk image is packed after a successful build. + ## `dcr run` Builds (if sources are newer than artifacts) and runs the binary. @@ -28,8 +30,11 @@ Builds (if sources are newer than artifacts) and runs the binary. ```bash dcr run dcr run --release +dcr run --force # force rebuild then run ``` +On a **workspace-only** root: if `[run].cmd` is set, that command is used after build; otherwise DCR delegates to a workspace member. + ## `dcr clean` Removes `target/` directory (or `target/\/\`). From d50ae819f8ac4529488079f674753ddb7202477f Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:17:29 +0800 Subject: [PATCH 214/274] New translations contributing.mdx (German) [ci skip] --- docs-crowdin-export/de-DE/docs/contributing.mdx.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/de-DE/docs/contributing.mdx.mdx b/docs-crowdin-export/de-DE/docs/contributing.mdx.mdx index 92a14e0..d422910 100644 --- a/docs-crowdin-export/de-DE/docs/contributing.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/contributing.mdx.mdx @@ -46,6 +46,6 @@ CI runs: * `cargo fmt --check` * `cargo clippy --all-targets -- -D warnings` -* `cargo test --all-targets` +* `cargo check --all-targets --all-features` * Build on Linux, macOS, Windows -* Integration tests +* Integration tests (compilation check) From 6c23a8316a915cf4195d5c2b82d1f22f02906968 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:17:32 +0800 Subject: [PATCH 215/274] New translations first-steps.mdx (German) [ci skip] --- .../de-DE/docs/getting-started/first-steps.mdx.mdx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs-crowdin-export/de-DE/docs/getting-started/first-steps.mdx.mdx b/docs-crowdin-export/de-DE/docs/getting-started/first-steps.mdx.mdx index c090838..ce4bcf9 100644 --- a/docs-crowdin-export/de-DE/docs/getting-started/first-steps.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/getting-started/first-steps.mdx.mdx @@ -70,3 +70,10 @@ dcr test # run tests ```bash dcr fmt # clang-format with .clang-format ``` + +## Linting + +```bash +dcr lint # clang-tidy checks +dcr lint --fix # apply fixes automatically +``` From 91bc295f41ad961b4f1cf27f3573f563d968f477 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:17:34 +0800 Subject: [PATCH 216/274] New translations build-system.mdx (German) [ci skip] --- .../de-DE/docs/reference/build-system.mdx.mdx | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/docs-crowdin-export/de-DE/docs/reference/build-system.mdx.mdx b/docs-crowdin-export/de-DE/docs/reference/build-system.mdx.mdx index 68a8444..10fbd56 100644 --- a/docs-crowdin-export/de-DE/docs/reference/build-system.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/reference/build-system.mdx.mdx @@ -56,7 +56,7 @@ moc = "moc {in} -o {out}" ### GAS / NASM / MASM / FASM / LLVM-IR * GAS: `-I`, `-c -o`, `--defsym` -* NASM: `-I`, `-o`, `-D`, `-f` (format: win64/elf64/macho64/macho32/elf32) +* NASM: `-I`, `-o`, `-D`, `-f` (format: win64/elf64/macho64/macho32/elf32; **`bin` when `kind = "flat-bin"`**) * MASM: `/nologo /c /Fo\ ` * FASM: ` \` (output path is the object file) * LLVM IR: `-filetype=obj -o \` @@ -78,15 +78,20 @@ Three levels of incrementality: ## Build Kinds -| Kind | Type | Path (Linux example) | -| ----------- | ------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -| `bin` | Executable | `target/\/\/\` (.exe on Windows) | -| `staticlib` | Static library | `target/\/\/lib\.a` (.lib) | -| `sharedlib` | Dynamic library | `target/\/\/lib\.so` (.dll/.dylib) | -| `efi` | UEFI application | `target/\/\/\.efi` | -| `elf` | ELF without stdlib | `target/\/\/\` | -| `none` | Compile only, no link | — | -| `custom` | Full filename+extension control | `target/\/\/\.\` | +| Kind | Type | Path (Linux example) | +| ----------- | ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | +| `bin` | Executable | `target/\/\/\` (.exe on Windows) | +| `staticlib` | Static library | `target/\/\/lib\.a` (.lib) | +| `sharedlib` | Dynamic library | `target/\/\/lib\.so` (.dll/.dylib) | +| `efi` | UEFI application | `target/\/\/\.efi` | +| `elf` | ELF without stdlib | `target/\/\/\` | +| `none` | Compile only, no link | — | +| `custom` | Full filename+extension control | `target/\/\/\.\` | +| `flat-bin` | Raw binary | ASM: `\.bin` (NASM `-f bin` / FASM / GAS·MASM·LLC via objcopy); C/C++: `\.bin` (link + objcopy) | + +## Disk images (`[archive]`) + +After a successful build, if `[archive]` is present in `dcr.toml`, DCR formats a FAT volume and copies files from `layout` into the image. See [dcr.toml → archive](/docs/reference/dcr-toml#archive). ## Build Steps From 5f80e65b4c3d76e65566f1f0e8d8c43a3d6a5e7e Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:17:37 +0800 Subject: [PATCH 217/274] New translations cross-compilation.mdx (German) [ci skip] --- .../de-DE/docs/reference/cross-compilation.mdx.mdx | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/docs-crowdin-export/de-DE/docs/reference/cross-compilation.mdx.mdx b/docs-crowdin-export/de-DE/docs/reference/cross-compilation.mdx.mdx index 352170f..2ca0cc7 100644 --- a/docs-crowdin-export/de-DE/docs/reference/cross-compilation.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/reference/cross-compilation.mdx.mdx @@ -57,14 +57,8 @@ dcr build --target aarch64-none-elf ## Target Directory -On Linux with explicit target: +By default, the compilation output directories are structured as follows: -``` -target/// -``` - -On macOS/Windows or without target: - -``` -target// -``` +* **Linux and BSD**: Always output to `target/\/\/` (using host triple if no target is specified). +* **macOS and Windows (without target)**: Output to `target/\/`. +* **macOS and Windows (with explicit target)**: Output to `target/\/\/`. From ea96f279cc1f79a02a6dde975280f257e33a4ec4 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:17:39 +0800 Subject: [PATCH 218/274] New translations platform-support.mdx (German) [ci skip] --- .../de-DE/docs/reference/platform-support.mdx.mdx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docs-crowdin-export/de-DE/docs/reference/platform-support.mdx.mdx b/docs-crowdin-export/de-DE/docs/reference/platform-support.mdx.mdx index cc63c00..a97eab5 100644 --- a/docs-crowdin-export/de-DE/docs/reference/platform-support.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/reference/platform-support.mdx.mdx @@ -11,17 +11,18 @@ DCR normalizes target triples. Short platform names are expanded to full triples ### Linux ``` -target/-unknown-linux-gnu// +target/-unknown-linux-// ``` -Architectures: `x86_64`, `aarch64` (host-detected). +Architectures: `x86_64`, `aarch64`, `i686`, `armv7`, `riscv64` (host-detected). +Environments: `gnu` (default), `musl`. Artifact type: ELF. Extensions: `.so` (sharedlib), `.a` (staticlib). ### macOS ``` -target// +target// (default) or target/// (with target) ``` Architectures: `x86_64`, `aarch64` (host-detected). @@ -31,10 +32,11 @@ Extensions: `.dylib` (sharedlib), `.a` (staticlib). ### Windows ``` -target// +target// (default) or target/// (with target) ``` Architectures: `x86_64`, `aarch64`. +Environments: `msvc` (default), `gnu` (MinGW). Extensions: `.exe` (bin), `.lib` (staticlib), `.dll` (sharedlib), `.efi` (UEFI). From e011803ad7308ccb1e232299c6cc9c8c2defefee Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:17:42 +0800 Subject: [PATCH 219/274] New translations os-flat-bin-archive.mdx (German) [ci skip] --- .../docs/recipes/os-flat-bin-archive.mdx.mdx | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 docs-crowdin-export/de-DE/docs/recipes/os-flat-bin-archive.mdx.mdx diff --git a/docs-crowdin-export/de-DE/docs/recipes/os-flat-bin-archive.mdx.mdx b/docs-crowdin-export/de-DE/docs/recipes/os-flat-bin-archive.mdx.mdx new file mode 100644 index 0000000..457bce4 --- /dev/null +++ b/docs-crowdin-export/de-DE/docs/recipes/os-flat-bin-archive.mdx.mdx @@ -0,0 +1,89 @@ +--- +sidebar_label: OS-dev (flat-bin + archive) +--- + +# Pure ASM / boot image (flat-bin + archive) + +Minimal OS-dev style pipeline: assemble raw binaries with NASM, then pack a FAT floppy/image with an optional boot sector. + +## Project layout + +``` +myos/ + dcr.toml + src/ + boot.asm # boot sector (512 bytes) + kernel.asm # payload +``` + +For multiple flat artifacts, use a **workspace** (one member per binary) or separate packages; a single `flat-bin` package produces one binary per source stem. + +## Boot package (`flat-bin`) + +```toml +[package] +name = "boot" +version = "0.1.0" + +[build] +language = "asm" +compiler = "nasm" +kind = "flat-bin" +extension = "bin" +roots = ["src/boot.asm"] +``` + +```bash +dcr build +# → target/<…>/debug/boot.bin (NASM -f bin, no link) +``` + +## Disk image after build + +```toml +[archive] +output = "target/{profile}/disk.img" +format = "fat12" +size = "1440K" +label = "MYOS" +bootsector = "target/{profile}/boot.bin" + +[[archive.layout]] +from = "target/{profile}/kernel.bin" +to = "KERNEL.BIN" +``` + +* `format`: `fat12`, `fat16`, or `fat32` +* `size`: bytes or `K`/`KB`/`M`/`MB`/`G`/`GB` (default ~1.44 MiB) +* `bootsector`: written only when `offset` is omitted or `0` +* `from` may be a glob; `{profile}` is substituted in paths + +## C kernel → flat binary + +```toml +[build] +language = "c" +compiler = "clang" +kind = "flat-bin" +freestanding = true +filename = "kernel" +extension = "bin" +ldflags = ["-T", "linker.ld"] +``` + +Pipeline: objects → temporary linked ELF → `objcopy -O binary` → `kernel.bin`. Requires `objcopy` / `llvm-objcopy` in PATH. + +## Other assemblers + +| Tool | Notes | +| -------- | --------------------------------------------------------------------------------------- | +| **FASM** | Write `format binary` in the source; DCR writes `\.bin` directly | +| **GAS** | Assemble `.s` → obj → `objcopy -O binary` | +| **LLC** | `language = "llvm_ir"` → obj → objcopy | +| **MASM** | COFF obj → objcopy (needs binutils/LLVM objcopy) | + +## Notes + +* Single-file `roots` are supported: `roots = ["src/boot.asm"]`. +* `--force` re-runs `build.steps` / `build.post_steps` as well as recompilation. +* Prefer `kind = "elf"` if you need a relocatable ELF kernel without stripping to raw binary. From c2e66576d5b9df287df4c3873694f8da182f23a7 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:17:44 +0800 Subject: [PATCH 220/274] New translations readme.mdx (Polish) [ci skip] --- docs-crowdin-export/pl-PL/docs/README.mdx.mdx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/pl-PL/docs/README.mdx.mdx b/docs-crowdin-export/pl-PL/docs/README.mdx.mdx index fba8a6d..f00c04a 100644 --- a/docs-crowdin-export/pl-PL/docs/README.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/README.mdx.mdx @@ -51,8 +51,9 @@ dcr gen vscode * **Incremental builds** — mtime + `.d` headers + SHA256 fingerprint * **Parallel compilation** — thread::scope, atomic task queue -* **4 backends** — gcc/clang, MSVC/clang-cl, GAS (ARM), NASM (x86) -* **7 project kinds** — bin, staticlib, sharedlib, efi, elf, none, custom +* **7 backends** — gcc/clang (unix_cc), MSVC/clang-cl (msvc), GAS, NASM, MASM, FASM, LLVM IR +* **8 project kinds** — bin, staticlib, sharedlib, efi, elf, none, custom, flat-bin +* **Disk images** — optional `[archive]` packs FAT12/16/32 images after build * **Cross-compilation** — short names and full triples * **Profiles** — debug / release with field overrides * **Workspaces** — multi-package projects with topological sort From 8579a221278f4d28b0747bc265e9ae6ec85a1571 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:17:47 +0800 Subject: [PATCH 221/274] New translations changelog.mdx (Polish) [ci skip] --- .../pl-PL/docs/changelog.mdx.mdx | 102 ++++++++++++++++++ 1 file changed, 102 insertions(+) diff --git a/docs-crowdin-export/pl-PL/docs/changelog.mdx.mdx b/docs-crowdin-export/pl-PL/docs/changelog.mdx.mdx index 722bf4e..6f494b7 100644 --- a/docs-crowdin-export/pl-PL/docs/changelog.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/changelog.mdx.mdx @@ -4,6 +4,108 @@ sidebar_label: Changelog # Changelog +## 0.8.1 (2026-07-20) + +### Added + +* **`build.kind = "flat-bin"`** — raw binary (default `.bin`) for OS-dev payloads: + * **NASM** — `-f bin` → `\.bin` + * **FASM** — direct output (`format binary` in source) + * **GAS / MASM / LLC** — object → `objcopy -O binary` → `\.bin` + * **C/C++** — objects → freestanding link → `objcopy -O binary` → `\.bin` + * Requires `llvm-objcopy` / `objcopy` / `gobjcopy` except for NASM/FASM direct emit +* **`[archive]` section** — after a successful build, pack a FAT disk image (`fatfs`): `output`, `format` (`fat12`/`fat16`/`fat32`), optional `size` (default 1.44 MiB), `offset`, `label`, `bootsector`, and `layout` (`from` → `to`, supports globs). `{profile}` works in paths. +* **Single-file `build.roots`** — a root may be a single source or header file, not only a directory. + +### Changed + +* **`--force`** also re-runs `build.steps` and `build.post_steps`. +* **`dcr run` on workspace-only root** — if `[run].cmd` is set, run that after build; otherwise delegate to a workspace member. + +### Dependencies + +* `fatfs = "0.3"` for FAT image packing. + +## 0.8.0 (2026-07-18) + +### 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.\]`)** — introduced support for configuring language-specific compiler, standard, and flags (e.g. `[build.c]`, `[build.cxx]`, `[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\`) 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 execution** — `dcr 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`. + +## 0.7.4 (2026-06-17) + +### Added + +* **Native Qt support** — automatic meta-object handling (MOC, UIC, RCC) added when `build.qt = true` is set in `dcr.toml`. +* **`dcr lint` command** — C/C++ static analysis via `clang-tidy`. Supports `--fix` for automatic fixes. Respects `build.roots` and `build.src_disable` from config. +* **Three new assembler backends**: + * **MASM** (`compiler = "ml"` / `"ml64"`) — Microsoft Macro Assembler. + * **FASM** (`compiler = "fasm"`) — Flat Assembler. + * **LLVM IR** (`compiler = "llc"`) — compiles `.ll` files via `llc -filetype=obj`. +* **Shared ASM pipeline** — linking and archiving logic consolidated into `core/builder/asm.rs`. Adding a new assembler backend now takes ~30 lines. +* **Filesystem utilities** — `to_hex()` and `home_dir()` extracted to `utils/fs.rs`. +* **Build utilities** — `normalize_target()`, `normalize_kind()`, `normalize_platform()`, `default_profile_flags()` extracted to `utils/build.rs`. +* **Backend helpers** — `asm_lang_flag()`, `source_extensions()`, `elapsed_secs()` added to `core/builder/common.rs`. +* **Full Bare-Metal / Freestanding Automation** — introduced the `build.freestanding = true` configuration option. When enabled (or when a bare-metal target is detected), DCR automatically injects `-ffreestanding` during compilation and both `-nostdlib` and `-static` during linking. +* **Artifact Optimization (LTO & Strip)** — added `build.lto` (auto-injects `-flto` for compiler and linker) and `build.strip` (automatically strips debug symbols via linker `-s` flag) options to `dcr.toml`. +* **Compilation Thread Control** — added the `build.codegen-units` option to strictly limit the maximum number of parallel jobs utilized by the custom `parallel_build` worker pool. +* **Panic Behavior Management** — added `build.panic = "abort"` support. For C++ targets, it automatically strips exception handling and unwind tables via `-fno-exceptions`, `-fno-unwind-tables`, and `-fno-asynchronous-unwind-tables`. + +### Changed + +* **Intelligent Default Flags Generation** — automated injection of fallback optimization (`-O3`/`-O0`), debug (`-g`), and warning (`-Wall -Wextra`) flags is now suppressed for bare-metal and freestanding builds if `build.cflags` are overridden. +* **Centralized Bare-Metal Detection** — relocated the `is_bare_metal_target` helper to common build utilities (`src/utils/build.rs`) for unified access across the building core. +* **Architectural Refactoring**: + * Renamed `src/config.rs` to `src/templates.rs`. + * Started consolidation of configuration and build orchestration logic. + +## 0.7.3 (2026-06-13) + +### Added + +* **`--vcs` option for `new` and `init` commands** — introduced explicit version control system selection via `--vcs \`. +* **Git metadata integration in `--version`** — the CLI now appends the current short commit hash and a `-dirty` suffix if there are uncommitted changes in the DCR repository. +* **Automatic `.gitignore` generation** — Git repository initialization now automatically writes a `.gitignore` file excluding the `/target` directory. +* **Nested repository prevention** — automatic Git initialization is now skipped if `dcr new` or `dcr init` is executed inside an already existing Git repository. +* **VCS verification tests** — added `new_vcs_options_work` and `init_vcs_options_work` integration tests to ensure reliable repository behavior. + +### Changed + +* **Complete removal of `git2` dependency** — all Git actions (dependency fetching, VCS setup, status checks) are now delegated to the system `git` executable via `Command`. This simplifies compilation and drops the need for `vendored` and `openssl` features. +* **Migrated from `reqwest` to `ureq`** — replaced the heavy `reqwest` crate in `flag_update.rs` with the lightweight synchronous `ureq 2.10` client, reducing overhead and the final binary size. + +## 0.7.2 (2026-06-07) + +### Added + +* `default_target_triple()` now respects `target_env` — Linux (gnu/musl) and Windows (msvc/gnu) use the correct environment instead of hardcoded values. + +### Fixed + +* **macOS Apple Silicon builds failed with `_main` undefined** — `--target=` is now passed to ldflags, not just cflags. `default_target_triple()` uses `std::env::consts::ARCH` on macOS instead of hardcoded `x86_64`. +* **GitHub Stars and GPL-3.0 badges not rendering in README** — badge block converted to pure HTML. + +### Changed + +* Default target resolution extracted into shared `default_target_triple()` — removed duplication across build, run, clean. + ## 0.7.1 (2026-06-02) ### Added From 20d7c33440838d34600a92e7701d49902f48dff1 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:17:49 +0800 Subject: [PATCH 222/274] New translations build-commands.mdx (Polish) [ci skip] --- .../pl-PL/docs/commands/build-commands.mdx.mdx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docs-crowdin-export/pl-PL/docs/commands/build-commands.mdx.mdx b/docs-crowdin-export/pl-PL/docs/commands/build-commands.mdx.mdx index 9bdd3b3..ad38d1a 100644 --- a/docs-crowdin-export/pl-PL/docs/commands/build-commands.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/commands/build-commands.mdx.mdx @@ -13,7 +13,7 @@ dcr build # debug profile dcr build --release # release build dcr build --debug # explicit debug dcr build --target aarch64-unknown-linux-gnu -dcr build --force # full rebuild +dcr build --force # full rebuild (also re-runs build.steps / post_steps) dcr build --clean # clean + build dcr build --verbose # show compilation commands dcr build --workspace pkg-a # build specific workspace package @@ -21,6 +21,8 @@ dcr build --workspace pkg-a # build specific workspace package Artifacts: `target/\/\/\` (Linux with explicit target). +With `[archive]` in `dcr.toml`, a FAT disk image is packed after a successful build. + ## `dcr run` Builds (if sources are newer than artifacts) and runs the binary. @@ -28,8 +30,11 @@ Builds (if sources are newer than artifacts) and runs the binary. ```bash dcr run dcr run --release +dcr run --force # force rebuild then run ``` +On a **workspace-only** root: if `[run].cmd` is set, that command is used after build; otherwise DCR delegates to a workspace member. + ## `dcr clean` Removes `target/` directory (or `target/\/\`). From bb5be69f89497daf34e218ad41f09bd384462f29 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:17:52 +0800 Subject: [PATCH 223/274] New translations contributing.mdx (Polish) [ci skip] --- docs-crowdin-export/pl-PL/docs/contributing.mdx.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/pl-PL/docs/contributing.mdx.mdx b/docs-crowdin-export/pl-PL/docs/contributing.mdx.mdx index 92a14e0..d422910 100644 --- a/docs-crowdin-export/pl-PL/docs/contributing.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/contributing.mdx.mdx @@ -46,6 +46,6 @@ CI runs: * `cargo fmt --check` * `cargo clippy --all-targets -- -D warnings` -* `cargo test --all-targets` +* `cargo check --all-targets --all-features` * Build on Linux, macOS, Windows -* Integration tests +* Integration tests (compilation check) From 3caa5e0fc86dde56824c2388a1963bb1ea502ae1 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:17:54 +0800 Subject: [PATCH 224/274] New translations first-steps.mdx (Polish) [ci skip] --- .../pl-PL/docs/getting-started/first-steps.mdx.mdx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs-crowdin-export/pl-PL/docs/getting-started/first-steps.mdx.mdx b/docs-crowdin-export/pl-PL/docs/getting-started/first-steps.mdx.mdx index c090838..ce4bcf9 100644 --- a/docs-crowdin-export/pl-PL/docs/getting-started/first-steps.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/getting-started/first-steps.mdx.mdx @@ -70,3 +70,10 @@ dcr test # run tests ```bash dcr fmt # clang-format with .clang-format ``` + +## Linting + +```bash +dcr lint # clang-tidy checks +dcr lint --fix # apply fixes automatically +``` From 39f681748157fde2dd8a0e69a2ae238e0e02b4eb Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:17:57 +0800 Subject: [PATCH 225/274] New translations build-system.mdx (Polish) [ci skip] --- .../pl-PL/docs/reference/build-system.mdx.mdx | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/docs-crowdin-export/pl-PL/docs/reference/build-system.mdx.mdx b/docs-crowdin-export/pl-PL/docs/reference/build-system.mdx.mdx index 68a8444..10fbd56 100644 --- a/docs-crowdin-export/pl-PL/docs/reference/build-system.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/reference/build-system.mdx.mdx @@ -56,7 +56,7 @@ moc = "moc {in} -o {out}" ### GAS / NASM / MASM / FASM / LLVM-IR * GAS: `-I`, `-c -o`, `--defsym` -* NASM: `-I`, `-o`, `-D`, `-f` (format: win64/elf64/macho64/macho32/elf32) +* NASM: `-I`, `-o`, `-D`, `-f` (format: win64/elf64/macho64/macho32/elf32; **`bin` when `kind = "flat-bin"`**) * MASM: `/nologo /c /Fo\ ` * FASM: ` \` (output path is the object file) * LLVM IR: `-filetype=obj -o \` @@ -78,15 +78,20 @@ Three levels of incrementality: ## Build Kinds -| Kind | Type | Path (Linux example) | -| ----------- | ------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -| `bin` | Executable | `target/\/\/\` (.exe on Windows) | -| `staticlib` | Static library | `target/\/\/lib\.a` (.lib) | -| `sharedlib` | Dynamic library | `target/\/\/lib\.so` (.dll/.dylib) | -| `efi` | UEFI application | `target/\/\/\.efi` | -| `elf` | ELF without stdlib | `target/\/\/\` | -| `none` | Compile only, no link | — | -| `custom` | Full filename+extension control | `target/\/\/\.\` | +| Kind | Type | Path (Linux example) | +| ----------- | ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | +| `bin` | Executable | `target/\/\/\` (.exe on Windows) | +| `staticlib` | Static library | `target/\/\/lib\.a` (.lib) | +| `sharedlib` | Dynamic library | `target/\/\/lib\.so` (.dll/.dylib) | +| `efi` | UEFI application | `target/\/\/\.efi` | +| `elf` | ELF without stdlib | `target/\/\/\` | +| `none` | Compile only, no link | — | +| `custom` | Full filename+extension control | `target/\/\/\.\` | +| `flat-bin` | Raw binary | ASM: `\.bin` (NASM `-f bin` / FASM / GAS·MASM·LLC via objcopy); C/C++: `\.bin` (link + objcopy) | + +## Disk images (`[archive]`) + +After a successful build, if `[archive]` is present in `dcr.toml`, DCR formats a FAT volume and copies files from `layout` into the image. See [dcr.toml → archive](/docs/reference/dcr-toml#archive). ## Build Steps From 52dd40306508c8aec3346eb9e3aa5b38f0fd92ce Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:18:00 +0800 Subject: [PATCH 226/274] New translations cross-compilation.mdx (Polish) [ci skip] --- .../pl-PL/docs/reference/cross-compilation.mdx.mdx | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/docs-crowdin-export/pl-PL/docs/reference/cross-compilation.mdx.mdx b/docs-crowdin-export/pl-PL/docs/reference/cross-compilation.mdx.mdx index 352170f..2ca0cc7 100644 --- a/docs-crowdin-export/pl-PL/docs/reference/cross-compilation.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/reference/cross-compilation.mdx.mdx @@ -57,14 +57,8 @@ dcr build --target aarch64-none-elf ## Target Directory -On Linux with explicit target: +By default, the compilation output directories are structured as follows: -``` -target/// -``` - -On macOS/Windows or without target: - -``` -target// -``` +* **Linux and BSD**: Always output to `target/\/\/` (using host triple if no target is specified). +* **macOS and Windows (without target)**: Output to `target/\/`. +* **macOS and Windows (with explicit target)**: Output to `target/\/\/`. From c10fbccfef22b3d9a54abe53f705db12c5972528 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:18:02 +0800 Subject: [PATCH 227/274] New translations platform-support.mdx (Polish) [ci skip] --- .../pl-PL/docs/reference/platform-support.mdx.mdx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docs-crowdin-export/pl-PL/docs/reference/platform-support.mdx.mdx b/docs-crowdin-export/pl-PL/docs/reference/platform-support.mdx.mdx index cc63c00..a97eab5 100644 --- a/docs-crowdin-export/pl-PL/docs/reference/platform-support.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/reference/platform-support.mdx.mdx @@ -11,17 +11,18 @@ DCR normalizes target triples. Short platform names are expanded to full triples ### Linux ``` -target/-unknown-linux-gnu// +target/-unknown-linux-// ``` -Architectures: `x86_64`, `aarch64` (host-detected). +Architectures: `x86_64`, `aarch64`, `i686`, `armv7`, `riscv64` (host-detected). +Environments: `gnu` (default), `musl`. Artifact type: ELF. Extensions: `.so` (sharedlib), `.a` (staticlib). ### macOS ``` -target// +target// (default) or target/// (with target) ``` Architectures: `x86_64`, `aarch64` (host-detected). @@ -31,10 +32,11 @@ Extensions: `.dylib` (sharedlib), `.a` (staticlib). ### Windows ``` -target// +target// (default) or target/// (with target) ``` Architectures: `x86_64`, `aarch64`. +Environments: `msvc` (default), `gnu` (MinGW). Extensions: `.exe` (bin), `.lib` (staticlib), `.dll` (sharedlib), `.efi` (UEFI). From e41b69f0e21535cc6f742ac5e556405f8ed9b74f Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:18:05 +0800 Subject: [PATCH 228/274] New translations os-flat-bin-archive.mdx (Polish) [ci skip] --- .../docs/recipes/os-flat-bin-archive.mdx.mdx | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 docs-crowdin-export/pl-PL/docs/recipes/os-flat-bin-archive.mdx.mdx diff --git a/docs-crowdin-export/pl-PL/docs/recipes/os-flat-bin-archive.mdx.mdx b/docs-crowdin-export/pl-PL/docs/recipes/os-flat-bin-archive.mdx.mdx new file mode 100644 index 0000000..457bce4 --- /dev/null +++ b/docs-crowdin-export/pl-PL/docs/recipes/os-flat-bin-archive.mdx.mdx @@ -0,0 +1,89 @@ +--- +sidebar_label: OS-dev (flat-bin + archive) +--- + +# Pure ASM / boot image (flat-bin + archive) + +Minimal OS-dev style pipeline: assemble raw binaries with NASM, then pack a FAT floppy/image with an optional boot sector. + +## Project layout + +``` +myos/ + dcr.toml + src/ + boot.asm # boot sector (512 bytes) + kernel.asm # payload +``` + +For multiple flat artifacts, use a **workspace** (one member per binary) or separate packages; a single `flat-bin` package produces one binary per source stem. + +## Boot package (`flat-bin`) + +```toml +[package] +name = "boot" +version = "0.1.0" + +[build] +language = "asm" +compiler = "nasm" +kind = "flat-bin" +extension = "bin" +roots = ["src/boot.asm"] +``` + +```bash +dcr build +# → target/<…>/debug/boot.bin (NASM -f bin, no link) +``` + +## Disk image after build + +```toml +[archive] +output = "target/{profile}/disk.img" +format = "fat12" +size = "1440K" +label = "MYOS" +bootsector = "target/{profile}/boot.bin" + +[[archive.layout]] +from = "target/{profile}/kernel.bin" +to = "KERNEL.BIN" +``` + +* `format`: `fat12`, `fat16`, or `fat32` +* `size`: bytes or `K`/`KB`/`M`/`MB`/`G`/`GB` (default ~1.44 MiB) +* `bootsector`: written only when `offset` is omitted or `0` +* `from` may be a glob; `{profile}` is substituted in paths + +## C kernel → flat binary + +```toml +[build] +language = "c" +compiler = "clang" +kind = "flat-bin" +freestanding = true +filename = "kernel" +extension = "bin" +ldflags = ["-T", "linker.ld"] +``` + +Pipeline: objects → temporary linked ELF → `objcopy -O binary` → `kernel.bin`. Requires `objcopy` / `llvm-objcopy` in PATH. + +## Other assemblers + +| Tool | Notes | +| -------- | --------------------------------------------------------------------------------------- | +| **FASM** | Write `format binary` in the source; DCR writes `\.bin` directly | +| **GAS** | Assemble `.s` → obj → `objcopy -O binary` | +| **LLC** | `language = "llvm_ir"` → obj → objcopy | +| **MASM** | COFF obj → objcopy (needs binutils/LLVM objcopy) | + +## Notes + +* Single-file `roots` are supported: `roots = ["src/boot.asm"]`. +* `--force` re-runs `build.steps` / `build.post_steps` as well as recompilation. +* Prefer `kind = "elf"` if you need a relocatable ELF kernel without stripping to raw binary. From 1960f354ef542667be4df3fea71837d2c8af989e Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:18:07 +0800 Subject: [PATCH 229/274] New translations readme.mdx (Russian) [ci skip] --- docs-crowdin-export/ru-RU/docs/README.mdx.mdx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/README.mdx.mdx b/docs-crowdin-export/ru-RU/docs/README.mdx.mdx index 7f63616..417adad 100644 --- a/docs-crowdin-export/ru-RU/docs/README.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/README.mdx.mdx @@ -41,8 +41,9 @@ dcr run * **Инкрементальная сборка** — mtime + `.d` headers + SHA256 fingerprint * **Параллельная компиляция** — thread::scope, атомарная очередь задач -* **4 бэкенда** — gcc/clang, MSVC/clang-cl, GAS, NASM -* **7 типов проекта** — bin, staticlib, sharedlib, efi, elf, none, custom +* **7 backends** — gcc/clang (unix_cc), MSVC/clang-cl (msvc), GAS, NASM, MASM, FASM, LLVM IR +* **8 project kinds** — bin, staticlib, sharedlib, efi, elf, none, custom, flat-bin +* **Disk images** — optional `[archive]` packs FAT12/16/32 images after build * **Cross-compilation** — short names (linux, windows, macos) и полные triples * **Профили** — debug / release с переопределением любого поля * **Workspaces** — мультипакетные проекты с топологической сортировкой From 054e715b06d57eef4ebf8638cff24d23571f25d1 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:18:10 +0800 Subject: [PATCH 230/274] New translations changelog.mdx (Russian) [ci skip] --- .../ru-RU/docs/changelog.mdx.mdx | 114 +++++++++++++++++- 1 file changed, 108 insertions(+), 6 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/changelog.mdx.mdx b/docs-crowdin-export/ru-RU/docs/changelog.mdx.mdx index cfb1f3b..c31a807 100644 --- a/docs-crowdin-export/ru-RU/docs/changelog.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/changelog.mdx.mdx @@ -4,10 +4,112 @@ sidebar_label: Список изменений # Список изменений -## 0.7.1 (02.06.2026) +## 0.8.1 (2026-07-20) ### Добавлено: +* **`build.kind = "flat-bin"`** — raw binary (default `.bin`) for OS-dev payloads: + * **NASM** — `-f bin` → `\.bin` + * **FASM** — direct output (`format binary` in source) + * **GAS / MASM / LLC** — object → `objcopy -O binary` → `\.bin` + * **C/C++** — objects → freestanding link → `objcopy -O binary` → `\.bin` + * Requires `llvm-objcopy` / `objcopy` / `gobjcopy` except for NASM/FASM direct emit +* **`[archive]` section** — after a successful build, pack a FAT disk image (`fatfs`): `output`, `format` (`fat12`/`fat16`/`fat32`), optional `size` (default 1.44 MiB), `offset`, `label`, `bootsector`, and `layout` (`from` → `to`, supports globs). `{profile}` works in paths. +* **Single-file `build.roots`** — a root may be a single source or header file, not only a directory. + +### Изменено: + +* **`--force`** also re-runs `build.steps` and `build.post_steps`. +* **`dcr run` on workspace-only root** — if `[run].cmd` is set, run that after build; otherwise delegate to a workspace member. + +### Dependencies + +* `fatfs = "0.3"` for FAT image packing. + +## 0.8.0 (2026-07-18) + +### Добавлено + +* **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.\]`)** — introduced support for configuring language-specific compiler, standard, and flags (e.g. `[build.c]`, `[build.cxx]`, `[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\`) 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`. + +### Изменено + +* **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 execution** — `dcr 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`. + +## 0.7.4 (2026-06-17) + +### Added + +* **Native Qt support** — automatic meta-object handling (MOC, UIC, RCC) added when `build.qt = true` is set in `dcr.toml`. +* **`dcr lint` command** — C/C++ static analysis via `clang-tidy`. Supports `--fix` for automatic fixes. Respects `build.roots` and `build.src_disable` from config. +* **Three new assembler backends**: + * **MASM** (`compiler = "ml"` / `"ml64"`) — Microsoft Macro Assembler. + * **FASM** (`compiler = "fasm"`) — Flat Assembler. + * **LLVM IR** (`compiler = "llc"`) — compiles `.ll` files via `llc -filetype=obj`. +* **Shared ASM pipeline** — linking and archiving logic consolidated into `core/builder/asm.rs`. Adding a new assembler backend now takes ~30 lines. +* **Filesystem utilities** — `to_hex()` and `home_dir()` extracted to `utils/fs.rs`. +* **Build utilities** — `normalize_target()`, `normalize_kind()`, `normalize_platform()`, `default_profile_flags()` extracted to `utils/build.rs`. +* **Backend helpers** — `asm_lang_flag()`, `source_extensions()`, `elapsed_secs()` added to `core/builder/common.rs`. +* **Full Bare-Metal / Freestanding Automation** — introduced the `build.freestanding = true` configuration option. When enabled (or when a bare-metal target is detected), DCR automatically injects `-ffreestanding` during compilation and both `-nostdlib` and `-static` during linking. +* **Artifact Optimization (LTO & Strip)** — added `build.lto` (auto-injects `-flto` for compiler and linker) and `build.strip` (automatically strips debug symbols via linker `-s` flag) options to `dcr.toml`. +* **Compilation Thread Control** — added the `build.codegen-units` option to strictly limit the maximum number of parallel jobs utilized by the custom `parallel_build` worker pool. +* **Panic Behavior Management** — added `build.panic = "abort"` support. For C++ targets, it automatically strips exception handling and unwind tables via `-fno-exceptions`, `-fno-unwind-tables`, and `-fno-asynchronous-unwind-tables`. + +### Changed + +* **Intelligent Default Flags Generation** — automated injection of fallback optimization (`-O3`/`-O0`), debug (`-g`), and warning (`-Wall -Wextra`) flags is now suppressed for bare-metal and freestanding builds if `build.cflags` are overridden. +* **Centralized Bare-Metal Detection** — relocated the `is_bare_metal_target` helper to common build utilities (`src/utils/build.rs`) for unified access across the building core. +* **Architectural Refactoring**: + * Renamed `src/config.rs` to `src/templates.rs`. + * Started consolidation of configuration and build orchestration logic. + +## 0.7.3 (2026-06-13) + +### Added + +* **`--vcs` option for `new` and `init` commands** — introduced explicit version control system selection via `--vcs \`. +* **Git metadata integration in `--version`** — the CLI now appends the current short commit hash and a `-dirty` suffix if there are uncommitted changes in the DCR repository. +* **Automatic `.gitignore` generation** — Git repository initialization now automatically writes a `.gitignore` file excluding the `/target` directory. +* **Nested repository prevention** — automatic Git initialization is now skipped if `dcr new` or `dcr init` is executed inside an already existing Git repository. +* **VCS verification tests** — added `new_vcs_options_work` and `init_vcs_options_work` integration tests to ensure reliable repository behavior. + +### Changed + +* **Complete removal of `git2` dependency** — all Git actions (dependency fetching, VCS setup, status checks) are now delegated to the system `git` executable via `Command`. This simplifies compilation and drops the need for `vendored` and `openssl` features. +* **Migrated from `reqwest` to `ureq`** — replaced the heavy `reqwest` crate in `flag_update.rs` with the lightweight synchronous `ureq 2.10` client, reducing overhead and the final binary size. + +## 0.7.2 (2026-06-07) + +### Added + +* `default_target_triple()` now respects `target_env` — Linux (gnu/musl) and Windows (msvc/gnu) use the correct environment instead of hardcoded values. + +### Исправлено: + +* **macOS Apple Silicon builds failed with `_main` undefined** — `--target=` is now passed to ldflags, not just cflags. `default_target_triple()` uses `std::env::consts::ARCH` on macOS instead of hardcoded `x86_64`. +* **GitHub Stars and GPL-3.0 badges not rendering in README** — badge block converted to pure HTML. + +### Changed + +* Default target resolution extracted into shared `default_target_triple()` — removed duplication across build, run, clean. + +## 0.7.1 (02.06.2026) + +### Added + * **`--help` для всех команд** — `dcr build --help`, `dcr run --help`, `dcr new --help`, `dcr init --help`, `dcr clean --help`, `dcr add --help`, `dcr fmt --help`, `dcr setup --help`, `dcr tree --help`, `dcr gen --help`, `dcr --update --help`, @@ -29,7 +131,7 @@ sidebar_label: Список изменений * **Публикация Snap** — автоматическая публикация Snapcraft в рамках непрерывной интеграции (CI). * **Значок Snap** — в файле README. -### Изменено: +### Changed * **`validate_package_name` стал общедоступным** — его можно вызывать из команд CLI. * **Таблица платформы README** — реорганизована: варианты libc вынесены в отдельные строки по ОС, @@ -38,7 +140,7 @@ sidebar_label: Список изменений * **`tree.rs`, `fmt.rs` и `setup.rs`** — теперь поддерживают аргументы для опции `--help`. * **Команды установки из файла README** — `| bash` → `| sh` для обеспечения совместимости с POSIX. -### Исправлено: +### Исправлено * **`dcr new \` создает каталог, а затем завершается с ошибкой** — теперь проверка выполняется до начала любых операций с файлами. @@ -50,7 +152,7 @@ sidebar_label: Список изменений ## 0.7.0 (01.06.2026) -### Добавлено +### Added * **Поддержка целевых платформ OpenBSD и NetBSD** — полная маршрутизация по платформам с динамически генерируемыми тройками целевых параметров с использованием `std::env::consts::ARCH` и `std::env::consts::OS`. Затрагивает команды `build`, `run`, `clean` и модуль платформы. * **`src/platform/bsd.rs`** — новый специальный модуль платформы BSD, общий для FreeBSD, OpenBSD и NetBSD, предоставляющий `bin_path`, `lib_path`, `elf_path`, `efi_path` и `shared_lib_path`. @@ -65,7 +167,7 @@ sidebar_label: Список изменений * **Интеграционные тесты** — `build_with_target_config` (проверяет `build.target = «linux»`) и `build_with_out_dir` (проверяет настраиваемый каталог вывода). * **`get_build_string_with_profile` стал `pub`** — чтобы `run.rs` мог определять конфигурацию настраиваемого каталога вывода. -### Изменено +### Changed * **Изменена семантика `build.target`** — теперь строго содержит тройку целей (например, `x86_64-unknown-linux-gnu`) или короткое имя (`linux`, `macos`, `windows`). Больше не используется в качестве пользовательского каталога вывода — эта функциональность перенесена в `build.out_dir`. * **`build.standard` стал опциональным** — изменен с `String` на `Option\`. Проверка обеспечивает только непустоту для языков, отличных от ASM. Пропускается в выводе `dcr.toml`, если пуст. @@ -75,7 +177,7 @@ sidebar_label: Список изменений * **Таблица совместимости README** — статус сборки/работы на FreeBSD, OpenBSD, NetBSD повышен с «сообщество/по возможности» до «официально поддерживается». * **Обновлена документация** — `build-section.md` описывает новые поля `build.target` и `build.out_dir`. `target-directory.md` переписан для уточнения различия. -### Исправлено +### Fixed * **stdout/stderr `dcr run` не наследуются** — вывод дочернего процесса захватывался и выводился вручную, что приводило к сбоям интерактивных программ. Исправлено путем перехода на `Command::status()`. * **Условие гонки в CI релиза** — задания матрицы сборки могли загружать ресурсы в релиз, который еще не существовал. Исправлено добавлением специального задания `create-release`. From 638f26c5df125b31c5718ada6259500ef8fd5cba Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:18:13 +0800 Subject: [PATCH 231/274] New translations build-commands.mdx (Russian) [ci skip] --- .../ru-RU/docs/commands/build-commands.mdx.mdx | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/commands/build-commands.mdx.mdx b/docs-crowdin-export/ru-RU/docs/commands/build-commands.mdx.mdx index 0a6a4b0..6ff4321 100644 --- a/docs-crowdin-export/ru-RU/docs/commands/build-commands.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/commands/build-commands.mdx.mdx @@ -9,19 +9,20 @@ sidebar_label: Команды сборки (build, run, clean) Собирает проект по `dcr.toml`. ```bash -dcr build # debug профиль -dcr build --release # release профиль -dcr build --debug # явно debug -dcr build --profile custom # произвольный профиль +dcr build # debug profile +dcr build --release # release build +dcr build --debug # explicit debug dcr build --target aarch64-unknown-linux-gnu -dcr build --force # пересобрать всё с нуля +dcr build --force # full rebuild (also re-runs build.steps / post_steps) dcr build --clean # clean + build -dcr build --verbose # показать команды компиляции -dcr build --workspace pkg-a # собрать конкретный пакет в workspace +dcr build --verbose # show compilation commands +dcr build --workspace pkg-a # build specific workspace package ``` Артефакты: `target/\/\/\` (Linux с явным целевым объектом). +With `[archive]` in `dcr.toml`, a FAT disk image is packed after a successful build. + ## `dcr run` Собирает (если исходники новее артефакта) и запускает бинарник. @@ -29,8 +30,11 @@ dcr build --workspace pkg-a # собрать конкретный паке ```bash dcr run dcr run --release +dcr run --force # force rebuild then run ``` +On a **workspace-only** root: if `[run].cmd` is set, that command is used after build; otherwise DCR delegates to a workspace member. + ## `dcr clean` Удаляет директорию `target/`(или `target/\/\`). From 1cb585b2b2c466f54cb0a0668e4ef096ad7b9281 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:18:15 +0800 Subject: [PATCH 232/274] New translations contributing.mdx (Russian) [ci skip] --- docs-crowdin-export/ru-RU/docs/contributing.mdx.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/contributing.mdx.mdx b/docs-crowdin-export/ru-RU/docs/contributing.mdx.mdx index a4f0771..f3a90f1 100644 --- a/docs-crowdin-export/ru-RU/docs/contributing.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/contributing.mdx.mdx @@ -46,6 +46,6 @@ cargo clippy --all-targets -- -D warnings * `cargo fmt --check` * `cargo clippy --all-targets -- -D warnings` -* `cargo test --all-targets` +* `cargo check --all-targets --all-features` * Сборка под Linux, macOS, Windows, FreeBSD, OpenBSD, NetBSD -* Интеграционные тесты +* Integration tests (compilation check) From 5aee983fd480d57fbd18da7751d9206db52ac677 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:18:18 +0800 Subject: [PATCH 233/274] New translations first-steps.mdx (Russian) [ci skip] --- .../ru-RU/docs/getting-started/first-steps.mdx.mdx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs-crowdin-export/ru-RU/docs/getting-started/first-steps.mdx.mdx b/docs-crowdin-export/ru-RU/docs/getting-started/first-steps.mdx.mdx index 028fdd1..de693fd 100644 --- a/docs-crowdin-export/ru-RU/docs/getting-started/first-steps.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/getting-started/first-steps.mdx.mdx @@ -70,3 +70,10 @@ dcr test # запустить тесты ```bash dcr fmt # clang-format по .clang-format ``` + +## Linting + +```bash +dcr lint # clang-tidy checks +dcr lint --fix # apply fixes automatically +``` From 80355ab7136c9828cc8cc32eec1a2f75c53aa908 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:18:20 +0800 Subject: [PATCH 234/274] New translations build-system.mdx (Russian) [ci skip] --- .../ru-RU/docs/reference/build-system.mdx.mdx | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/reference/build-system.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/build-system.mdx.mdx index 6093730..10d157c 100644 --- a/docs-crowdin-export/ru-RU/docs/reference/build-system.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/reference/build-system.mdx.mdx @@ -56,7 +56,7 @@ moc = "moc {in} -o {out}" ### GAS / NASM * GAS: `-I`, `-c -o`, `--defsym` -* NASM: `-I`, `-c -o`, `-D`, `-f` (формат: win64/elf64/macho64/macho32/elf32) +* NASM: `-I`, `-o`, `-D`, `-f` (format: win64/elf64/macho64/macho32/elf32; **`bin` when `kind = "flat-bin"`**) * MASM: `/nologo /c /Fo\ ` * FASM: ` \` (путь вывода — объектный файл) * LLVM IR: `-filetype=obj -o \` @@ -78,15 +78,20 @@ moc = "moc {in} -o {out}" ## Типы сборок -| Тип | Тип | Путь (пример для Linux) | -| ------------------ | ------------------------------------ | ----------------------------------------------------------------------------------------------- | -| `bin` | Исполняемый файл | `target/\/\` (.exe) | -| `staticlib` | Статическая библиотека | `target/\/lib\.a` (.lib) | -| `sharedlib` | Динамическая библиотека | `target/\/lib\.so` (.dll/.dylib) | -| `efi` | UEFI приложение | `target/\/\.efi` | -| `эльф` | ELF без стандартной библиотеки | `target/\/\` | -| `нет` | Только компиляция, без линковки | — | -| `пользовательский` | Полный контроль filename + extension | `target/\/\.\` | +| Тип | Тип | Путь (пример для Linux) | +| ------------------ | ------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------- | +| `bin` | Исполняемый файл | `target/\/\` (.exe) | +| `staticlib` | Статическая библиотека | `target/\/lib\.a` (.lib) | +| `sharedlib` | Динамическая библиотека | `target/\/lib\.so` (.dll/.dylib) | +| `efi` | UEFI приложение | `target/\/\.efi` | +| `эльф` | ELF без стандартной библиотеки | `target/\/\` | +| `нет` | Только компиляция, без линковки | — | +| `пользовательский` | Полный контроль filename + extension | `target/\/\.\` | +| `flat-bin` | Raw binary | ASM: `\.bin` (NASM `-f bin` / FASM / GAS·MASM·LLC via objcopy); C/C++: `\.bin` (link + objcopy) | + +## Disk images (`[archive]`) + +After a successful build, if `[archive]` is present in `dcr.toml`, DCR formats a FAT volume and copies files from `layout` into the image. See [dcr.toml → archive](/docs/reference/dcr-toml#archive). ## Этапы сборки From 781081f79174d2b43160cfa7788c84dec5692121 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:18:23 +0800 Subject: [PATCH 235/274] New translations cross-compilation.mdx (Russian) [ci skip] --- .../ru-RU/docs/reference/cross-compilation.mdx.mdx | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/reference/cross-compilation.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/cross-compilation.mdx.mdx index 2837f59..dbac4ba 100644 --- a/docs-crowdin-export/ru-RU/docs/reference/cross-compilation.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/reference/cross-compilation.mdx.mdx @@ -57,14 +57,8 @@ dcr build --target aarch64-none-elf ## Целевой каталог -В Linux с явным указанием цели: +By default, the compilation output directories are structured as follows: -``` -target/// -``` - -В macOS/Windows или без указания целевой платформы: - -``` -target// -``` +* **Linux and BSD**: Always output to `target/\/\/` (using host triple if no target is specified). +* **macOS and Windows (without target)**: Output to `target/\/`. +* **macOS and Windows (with explicit target)**: Output to `target/\/\/`. From d334d2bcb32c4cd028e2bd0ee5df7122512f8c9e Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:18:25 +0800 Subject: [PATCH 236/274] New translations platform-support.mdx (Russian) [ci skip] --- .../ru-RU/docs/reference/platform-support.mdx.mdx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/reference/platform-support.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/platform-support.mdx.mdx index 11bab4c..aeac65c 100644 --- a/docs-crowdin-export/ru-RU/docs/reference/platform-support.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/reference/platform-support.mdx.mdx @@ -11,17 +11,18 @@ DCR нормализует target triple через `platform_triple::normalize_ ### Linux ``` -target/-unknown-linux-gnu// +target/-unknown-linux-// ``` -Поддержка архитектур: `x86_64`, `aarch64`. +Architectures: `x86_64`, `aarch64`, `i686`, `armv7`, `riscv64` (host-detected). +Environments: `gnu` (default), `musl`. Тип артефакта: ELF. Расширения: `.so` для sharedlib, `.a` для staticlib ### macOS ``` -target// +target// (default) or target/// (with target) ``` Поддержка архитектур: `x86_64`, `aarch64`. @@ -31,10 +32,11 @@ target// ### Windows ``` -target// +target// (default) or target/// (with target) ``` Поддержка архитектур: `x86_64`, `aarch64`. +Environments: `msvc` (default), `gnu` (MinGW). Расширения: `.exe` (бинарный файл), `.lib` (статическая библиотека), `.dll` (общая библиотека), `.efi` (UEFI). From a0da1bc328ffc795ef5d9acbd33ffd4bb51ef010 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:18:28 +0800 Subject: [PATCH 237/274] New translations os-flat-bin-archive.mdx (Russian) [ci skip] --- .../docs/recipes/os-flat-bin-archive.mdx.mdx | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 docs-crowdin-export/ru-RU/docs/recipes/os-flat-bin-archive.mdx.mdx diff --git a/docs-crowdin-export/ru-RU/docs/recipes/os-flat-bin-archive.mdx.mdx b/docs-crowdin-export/ru-RU/docs/recipes/os-flat-bin-archive.mdx.mdx new file mode 100644 index 0000000..457bce4 --- /dev/null +++ b/docs-crowdin-export/ru-RU/docs/recipes/os-flat-bin-archive.mdx.mdx @@ -0,0 +1,89 @@ +--- +sidebar_label: OS-dev (flat-bin + archive) +--- + +# Pure ASM / boot image (flat-bin + archive) + +Minimal OS-dev style pipeline: assemble raw binaries with NASM, then pack a FAT floppy/image with an optional boot sector. + +## Project layout + +``` +myos/ + dcr.toml + src/ + boot.asm # boot sector (512 bytes) + kernel.asm # payload +``` + +For multiple flat artifacts, use a **workspace** (one member per binary) or separate packages; a single `flat-bin` package produces one binary per source stem. + +## Boot package (`flat-bin`) + +```toml +[package] +name = "boot" +version = "0.1.0" + +[build] +language = "asm" +compiler = "nasm" +kind = "flat-bin" +extension = "bin" +roots = ["src/boot.asm"] +``` + +```bash +dcr build +# → target/<…>/debug/boot.bin (NASM -f bin, no link) +``` + +## Disk image after build + +```toml +[archive] +output = "target/{profile}/disk.img" +format = "fat12" +size = "1440K" +label = "MYOS" +bootsector = "target/{profile}/boot.bin" + +[[archive.layout]] +from = "target/{profile}/kernel.bin" +to = "KERNEL.BIN" +``` + +* `format`: `fat12`, `fat16`, or `fat32` +* `size`: bytes or `K`/`KB`/`M`/`MB`/`G`/`GB` (default ~1.44 MiB) +* `bootsector`: written only when `offset` is omitted or `0` +* `from` may be a glob; `{profile}` is substituted in paths + +## C kernel → flat binary + +```toml +[build] +language = "c" +compiler = "clang" +kind = "flat-bin" +freestanding = true +filename = "kernel" +extension = "bin" +ldflags = ["-T", "linker.ld"] +``` + +Pipeline: objects → temporary linked ELF → `objcopy -O binary` → `kernel.bin`. Requires `objcopy` / `llvm-objcopy` in PATH. + +## Other assemblers + +| Tool | Notes | +| -------- | --------------------------------------------------------------------------------------- | +| **FASM** | Write `format binary` in the source; DCR writes `\.bin` directly | +| **GAS** | Assemble `.s` → obj → `objcopy -O binary` | +| **LLC** | `language = "llvm_ir"` → obj → objcopy | +| **MASM** | COFF obj → objcopy (needs binutils/LLVM objcopy) | + +## Notes + +* Single-file `roots` are supported: `roots = ["src/boot.asm"]`. +* `--force` re-runs `build.steps` / `build.post_steps` as well as recompilation. +* Prefer `kind = "elf"` if you need a relocatable ELF kernel without stripping to raw binary. From 0fcfc41f1b35eb16fba85ddc8bc12abfb1d46489 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:18:31 +0800 Subject: [PATCH 238/274] New translations readme.mdx (Ukrainian) [ci skip] --- docs-crowdin-export/uk-UA/docs/README.mdx.mdx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/uk-UA/docs/README.mdx.mdx b/docs-crowdin-export/uk-UA/docs/README.mdx.mdx index fba8a6d..f00c04a 100644 --- a/docs-crowdin-export/uk-UA/docs/README.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/README.mdx.mdx @@ -51,8 +51,9 @@ dcr gen vscode * **Incremental builds** — mtime + `.d` headers + SHA256 fingerprint * **Parallel compilation** — thread::scope, atomic task queue -* **4 backends** — gcc/clang, MSVC/clang-cl, GAS (ARM), NASM (x86) -* **7 project kinds** — bin, staticlib, sharedlib, efi, elf, none, custom +* **7 backends** — gcc/clang (unix_cc), MSVC/clang-cl (msvc), GAS, NASM, MASM, FASM, LLVM IR +* **8 project kinds** — bin, staticlib, sharedlib, efi, elf, none, custom, flat-bin +* **Disk images** — optional `[archive]` packs FAT12/16/32 images after build * **Cross-compilation** — short names and full triples * **Profiles** — debug / release with field overrides * **Workspaces** — multi-package projects with topological sort From 983ca31a0e467eb4e25d5be42323be6d548aca74 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:18:34 +0800 Subject: [PATCH 239/274] New translations changelog.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/changelog.mdx.mdx | 102 ++++++++++++++++++ 1 file changed, 102 insertions(+) diff --git a/docs-crowdin-export/uk-UA/docs/changelog.mdx.mdx b/docs-crowdin-export/uk-UA/docs/changelog.mdx.mdx index 722bf4e..6f494b7 100644 --- a/docs-crowdin-export/uk-UA/docs/changelog.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/changelog.mdx.mdx @@ -4,6 +4,108 @@ sidebar_label: Changelog # Changelog +## 0.8.1 (2026-07-20) + +### Added + +* **`build.kind = "flat-bin"`** — raw binary (default `.bin`) for OS-dev payloads: + * **NASM** — `-f bin` → `\.bin` + * **FASM** — direct output (`format binary` in source) + * **GAS / MASM / LLC** — object → `objcopy -O binary` → `\.bin` + * **C/C++** — objects → freestanding link → `objcopy -O binary` → `\.bin` + * Requires `llvm-objcopy` / `objcopy` / `gobjcopy` except for NASM/FASM direct emit +* **`[archive]` section** — after a successful build, pack a FAT disk image (`fatfs`): `output`, `format` (`fat12`/`fat16`/`fat32`), optional `size` (default 1.44 MiB), `offset`, `label`, `bootsector`, and `layout` (`from` → `to`, supports globs). `{profile}` works in paths. +* **Single-file `build.roots`** — a root may be a single source or header file, not only a directory. + +### Changed + +* **`--force`** also re-runs `build.steps` and `build.post_steps`. +* **`dcr run` on workspace-only root** — if `[run].cmd` is set, run that after build; otherwise delegate to a workspace member. + +### Dependencies + +* `fatfs = "0.3"` for FAT image packing. + +## 0.8.0 (2026-07-18) + +### 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.\]`)** — introduced support for configuring language-specific compiler, standard, and flags (e.g. `[build.c]`, `[build.cxx]`, `[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\`) 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 execution** — `dcr 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`. + +## 0.7.4 (2026-06-17) + +### Added + +* **Native Qt support** — automatic meta-object handling (MOC, UIC, RCC) added when `build.qt = true` is set in `dcr.toml`. +* **`dcr lint` command** — C/C++ static analysis via `clang-tidy`. Supports `--fix` for automatic fixes. Respects `build.roots` and `build.src_disable` from config. +* **Three new assembler backends**: + * **MASM** (`compiler = "ml"` / `"ml64"`) — Microsoft Macro Assembler. + * **FASM** (`compiler = "fasm"`) — Flat Assembler. + * **LLVM IR** (`compiler = "llc"`) — compiles `.ll` files via `llc -filetype=obj`. +* **Shared ASM pipeline** — linking and archiving logic consolidated into `core/builder/asm.rs`. Adding a new assembler backend now takes ~30 lines. +* **Filesystem utilities** — `to_hex()` and `home_dir()` extracted to `utils/fs.rs`. +* **Build utilities** — `normalize_target()`, `normalize_kind()`, `normalize_platform()`, `default_profile_flags()` extracted to `utils/build.rs`. +* **Backend helpers** — `asm_lang_flag()`, `source_extensions()`, `elapsed_secs()` added to `core/builder/common.rs`. +* **Full Bare-Metal / Freestanding Automation** — introduced the `build.freestanding = true` configuration option. When enabled (or when a bare-metal target is detected), DCR automatically injects `-ffreestanding` during compilation and both `-nostdlib` and `-static` during linking. +* **Artifact Optimization (LTO & Strip)** — added `build.lto` (auto-injects `-flto` for compiler and linker) and `build.strip` (automatically strips debug symbols via linker `-s` flag) options to `dcr.toml`. +* **Compilation Thread Control** — added the `build.codegen-units` option to strictly limit the maximum number of parallel jobs utilized by the custom `parallel_build` worker pool. +* **Panic Behavior Management** — added `build.panic = "abort"` support. For C++ targets, it automatically strips exception handling and unwind tables via `-fno-exceptions`, `-fno-unwind-tables`, and `-fno-asynchronous-unwind-tables`. + +### Changed + +* **Intelligent Default Flags Generation** — automated injection of fallback optimization (`-O3`/`-O0`), debug (`-g`), and warning (`-Wall -Wextra`) flags is now suppressed for bare-metal and freestanding builds if `build.cflags` are overridden. +* **Centralized Bare-Metal Detection** — relocated the `is_bare_metal_target` helper to common build utilities (`src/utils/build.rs`) for unified access across the building core. +* **Architectural Refactoring**: + * Renamed `src/config.rs` to `src/templates.rs`. + * Started consolidation of configuration and build orchestration logic. + +## 0.7.3 (2026-06-13) + +### Added + +* **`--vcs` option for `new` and `init` commands** — introduced explicit version control system selection via `--vcs \`. +* **Git metadata integration in `--version`** — the CLI now appends the current short commit hash and a `-dirty` suffix if there are uncommitted changes in the DCR repository. +* **Automatic `.gitignore` generation** — Git repository initialization now automatically writes a `.gitignore` file excluding the `/target` directory. +* **Nested repository prevention** — automatic Git initialization is now skipped if `dcr new` or `dcr init` is executed inside an already existing Git repository. +* **VCS verification tests** — added `new_vcs_options_work` and `init_vcs_options_work` integration tests to ensure reliable repository behavior. + +### Changed + +* **Complete removal of `git2` dependency** — all Git actions (dependency fetching, VCS setup, status checks) are now delegated to the system `git` executable via `Command`. This simplifies compilation and drops the need for `vendored` and `openssl` features. +* **Migrated from `reqwest` to `ureq`** — replaced the heavy `reqwest` crate in `flag_update.rs` with the lightweight synchronous `ureq 2.10` client, reducing overhead and the final binary size. + +## 0.7.2 (2026-06-07) + +### Added + +* `default_target_triple()` now respects `target_env` — Linux (gnu/musl) and Windows (msvc/gnu) use the correct environment instead of hardcoded values. + +### Fixed + +* **macOS Apple Silicon builds failed with `_main` undefined** — `--target=` is now passed to ldflags, not just cflags. `default_target_triple()` uses `std::env::consts::ARCH` on macOS instead of hardcoded `x86_64`. +* **GitHub Stars and GPL-3.0 badges not rendering in README** — badge block converted to pure HTML. + +### Changed + +* Default target resolution extracted into shared `default_target_triple()` — removed duplication across build, run, clean. + ## 0.7.1 (2026-06-02) ### Added From fd6077ff741f1b3bf1de47c1b08255acd3813cc1 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:18:36 +0800 Subject: [PATCH 240/274] New translations build-commands.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/commands/build-commands.mdx.mdx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docs-crowdin-export/uk-UA/docs/commands/build-commands.mdx.mdx b/docs-crowdin-export/uk-UA/docs/commands/build-commands.mdx.mdx index 9bdd3b3..ad38d1a 100644 --- a/docs-crowdin-export/uk-UA/docs/commands/build-commands.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/commands/build-commands.mdx.mdx @@ -13,7 +13,7 @@ dcr build # debug profile dcr build --release # release build dcr build --debug # explicit debug dcr build --target aarch64-unknown-linux-gnu -dcr build --force # full rebuild +dcr build --force # full rebuild (also re-runs build.steps / post_steps) dcr build --clean # clean + build dcr build --verbose # show compilation commands dcr build --workspace pkg-a # build specific workspace package @@ -21,6 +21,8 @@ dcr build --workspace pkg-a # build specific workspace package Artifacts: `target/\/\/\` (Linux with explicit target). +With `[archive]` in `dcr.toml`, a FAT disk image is packed after a successful build. + ## `dcr run` Builds (if sources are newer than artifacts) and runs the binary. @@ -28,8 +30,11 @@ Builds (if sources are newer than artifacts) and runs the binary. ```bash dcr run dcr run --release +dcr run --force # force rebuild then run ``` +On a **workspace-only** root: if `[run].cmd` is set, that command is used after build; otherwise DCR delegates to a workspace member. + ## `dcr clean` Removes `target/` directory (or `target/\/\`). From f1b66c511d278ad3ae53368d3dcfbd2259d005b9 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:18:39 +0800 Subject: [PATCH 241/274] New translations contributing.mdx (Ukrainian) [ci skip] --- docs-crowdin-export/uk-UA/docs/contributing.mdx.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/uk-UA/docs/contributing.mdx.mdx b/docs-crowdin-export/uk-UA/docs/contributing.mdx.mdx index 92a14e0..d422910 100644 --- a/docs-crowdin-export/uk-UA/docs/contributing.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/contributing.mdx.mdx @@ -46,6 +46,6 @@ CI runs: * `cargo fmt --check` * `cargo clippy --all-targets -- -D warnings` -* `cargo test --all-targets` +* `cargo check --all-targets --all-features` * Build on Linux, macOS, Windows -* Integration tests +* Integration tests (compilation check) From 7287af6a844c495121c04c089b4ba1d23d735be6 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:18:41 +0800 Subject: [PATCH 242/274] New translations faq.mdx (Ukrainian) [ci skip] --- docs-crowdin-export/uk-UA/docs/faq.mdx.mdx | 27 +++++----------------- 1 file changed, 6 insertions(+), 21 deletions(-) diff --git a/docs-crowdin-export/uk-UA/docs/faq.mdx.mdx b/docs-crowdin-export/uk-UA/docs/faq.mdx.mdx index 085dbe2..4680f99 100644 --- a/docs-crowdin-export/uk-UA/docs/faq.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/faq.mdx.mdx @@ -39,27 +39,6 @@ which clang Or specify explicitly via `[toolchain]` in `dcr.toml`. -## openssl-sys build failed - -When building DCR from source: - -``` -error: failed to run custom build command for openssl-sys -``` - -**Solution:** Install OpenSSL development headers: - -```bash -# Ubuntu/Debian -sudo apt install libssl-dev - -# Fedora -sudo dnf install openssl-devel - -# macOS -brew install openssl -``` - ## Ctrl+C during build DCR handles SIGINT: interrupts the current compilation and exits with non-zero code. @@ -76,6 +55,12 @@ See [Cross-Compile Recipe](/docs/recipes/cross-to-windows). See [Workspace Recipe](/docs/recipes/multi-package-workspace). +## Bootloader / pure NASM OS image + +Use `kind = "flat-bin"` (NASM `-f bin`) and optional `[archive]` for a FAT disk image. + +See [OS-dev recipe](/docs/recipes/os-flat-bin-archive). + ## Lock file `dcr.lock` is created during builds (`dcr build`) when registry dependencies are present. To force an update — delete `dcr.lock` and run `dcr build`. From 9a18dae5fd48fe1ad511312d1db5bdd47c96d94b Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:18:44 +0800 Subject: [PATCH 243/274] New translations dcr-toml.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/reference/dcr-toml.mdx.mdx | 147 ++++++++++++++---- 1 file changed, 116 insertions(+), 31 deletions(-) diff --git a/docs-crowdin-export/uk-UA/docs/reference/dcr-toml.mdx.mdx b/docs-crowdin-export/uk-UA/docs/reference/dcr-toml.mdx.mdx index 43a6853..240399b 100644 --- a/docs-crowdin-export/uk-UA/docs/reference/dcr-toml.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/reference/dcr-toml.mdx.mdx @@ -33,6 +33,9 @@ Main project configuration file. Located at the project root. [run] # run settings + +[archive] +# optional: pack FAT disk image after build ``` ## [package] @@ -60,36 +63,36 @@ author = "John Doe" * `build.qt` — (bool) Enable automatic Qt meta-object handling (MOC, UIC, RCC). Requires `qt6` modules installed via `pkg-config`. -| Field | Default | Description | -| ---------------- | ------------- | ---------------------------------------------------------------------------------------------------- | -| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"` (optional, defaults to `"c"`) | -| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | -| `cxx_standard` | — | C++ standard (`c++17`, `c++20`, `c++23`) | -| `compiler` | `"clang"` | Preferred compiler (optional, defaults to `"clang"`) | -| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom` | -| `target` | host | Target triple for cross-compilation | -| `platform` | `"native"` | `native`, `efi` | -| `cflags` | `[]` | Additional C/C++/ASM flags | -| `ldflags` | `[]` | Additional linker flags | -| `filename` | `""` | Custom output file name | -| `extension` | `""` | Custom file extension | -| `roots` | `["src"]` | Source root directories | -| `exclude` | `[]` | Exclude patterns | -| `include` | `[]` | Additional include directories | -| `src_disable` | `false` | Disable auto source discovery | -| `inherit` | `false` | Inherit build from workspace root | -| `clean` | `[]` | Glob patterns for custom clean paths | -| `out_dir` | `""` | Custom output directory | -| `workspace_only` | `false` | Workspace-only, not built standalone (no `language`/`compiler` required) | -| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | -| `opt_level` | — | Optimization level: `0`-`3`, `"s"`, `"z"` (derived from profile if omitted) | -| `debug` | profile-based | Emit debug symbols (`-g`): `true` in debug, `false` in release | -| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | -| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | -| `warnings` | `[]` | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`); engine adds `-Wall -Wextra` in debug if empty | -| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | -| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | -| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | +| Field | Default | Description | +| ---------------- | ------------- | --------------------------------------------------------------------------------------------------------- | +| `language` | `"c"` | `"c"`, `"c++"`, `"cpp"`, `"cxx"`, `"asm"`, `"llvm_ir"`, `"llvm-ir"`, `"ll"` (optional, defaults to `"c"`) | +| `standard` | `"c11"` | C standard (`c11`, `c17`, `c23`) | +| `cxx_standard` | — | C++ standard (`c++17`, `c++20`, `c++23`) | +| `compiler` | `"clang"` | Preferred compiler (optional, defaults to `"clang"`) | +| `kind` | `"bin"` | `bin`, `staticlib`, `sharedlib`, `efi`, `elf`, `none`, `custom`, `flat-bin` | +| `target` | host | Target triple for cross-compilation | +| `platform` | `"native"` | `native`, `efi` | +| `cflags` | `[]` | Additional C/C++/ASM flags | +| `ldflags` | `[]` | Additional linker flags | +| `filename` | `""` | Custom output file name | +| `extension` | `""` | Custom file extension (for `flat-bin`, default is `bin`) | +| `roots` | `["src"]` | Source roots: directories and/or individual source/header files | +| `exclude` | `[]` | Exclude patterns | +| `include` | `[]` | Additional include directories | +| `src_disable` | `false` | Disable auto source discovery | +| `inherit` | `false` | Inherit build from workspace root | +| `clean` | `[]` | Glob patterns for custom clean paths | +| `out_dir` | `""` | Custom output directory | +| `workspace_only` | `false` | Workspace-only, not built standalone (no `language`/`compiler` required) | +| `freestanding` | `false` | Compile in freestanding mode (`-ffreestanding` + `-nostdlib -static`) | +| `opt_level` | — | Optimization level: `0`-`3`, `"s"`, `"z"` (derived from profile if omitted) | +| `debug` | profile-based | Emit debug symbols (`-g`): `true` in debug, `false` in release | +| `lto` | `false` | Link-time optimization (`-flto` for both compiler and linker) | +| `strip` | `false` | Strip symbols from output (`-s` in ldflags) | +| `warnings` | `[]` | Warning flags (e.g. `"all"`, `"extra"`, `"pedantic"`); engine adds `-Wall -Wextra` in debug if empty | +| `panic` | `""` | Panic strategy: `"abort"` disables exceptions and unwind tables | +| `codegen-units` | `""` | Max parallel compilation jobs (`"0"` = auto) | +| `qt` | `false` | Enable automatic Qt meta-object handling (MOC, UIC, RCC) | Settings from raw config (not in typed struct): @@ -97,7 +100,7 @@ Settings from raw config (not in typed struct): * `ldscript` — linker script path * `build.steps` / `build.post_steps` — codegen steps -## Per-language overrides: `[build.c]`, `[build.cxx]`, `[build.asm]` +## Per-language overrides: `[build.c]`, `[build.cxx]`, `[build.asm]`, `[build.llvm_ir]` Each language can have its own table that overrides the flat `[build]` settings: @@ -117,6 +120,9 @@ compiler = "g++" [build.asm] compiler = "nasm" flags = ["-felf64"] + +[build.llvm_ir] +compiler = "llc" ``` The flat `[build]` acts as fallback; per-language tables take precedence for their language. @@ -174,3 +180,82 @@ Default `cmd` = `./target/{profile}/{name}` (macOS/Windows) or `./target/\.bin` | +| FASM | `compiler = "fasm"` | direct write (use `format binary` in source) | +| GAS | `compiler = "as"` / `"gas"` | assemble → `objcopy -O binary` | +| MASM | `compiler = "ml"` / `"ml64"` | assemble → `objcopy -O binary` | +| LLC | `language = "llvm_ir"`, `compiler = "llc"` | `-filetype=obj` → `objcopy -O binary` | + +```toml +[build] +language = "asm" +compiler = "nasm" +kind = "flat-bin" +extension = "bin" +roots = ["src/boot.asm"] +``` + +### C / C++ + +Compile all sources, link with `-nostdlib -static` (plus your `ldflags` / `ldscript`), then convert the intermediate ELF/PE with `objcopy -O binary` to `\.bin`. + +```toml +[build] +language = "c" +compiler = "clang" +kind = "flat-bin" +freestanding = true +filename = "kernel" +extension = "bin" +ldscript = "linker.ld" +ldflags = ["-T", "linker.ld"] +``` + +Notes: + +* Multi-file **ASM** packages emit one `\.bin` per source; **C/C++** emit a single project binary. +* `objcopy` tools tried in order: `llvm-objcopy`, `objcopy`, `gobjcopy`. +* Incompatible with `build.qt = true`. +* `dcr run` rejects `flat-bin` (not a host executable). From 42c5cbe97eed3132ae7c0d0608e32179f4bb5a32 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:18:47 +0800 Subject: [PATCH 244/274] New translations dependencies.mdx (Ukrainian) [ci skip] --- docs-crowdin-export/uk-UA/docs/reference/dependencies.mdx.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs-crowdin-export/uk-UA/docs/reference/dependencies.mdx.mdx b/docs-crowdin-export/uk-UA/docs/reference/dependencies.mdx.mdx index 8ab4a3c..97a1a6e 100644 --- a/docs-crowdin-export/uk-UA/docs/reference/dependencies.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/reference/dependencies.mdx.mdx @@ -67,6 +67,8 @@ mylib = { path = "/abs/path/to/lib" } mylib = { path = "../relative/path" } ``` +*Note: Header resolution automatically checks the packaged `target/include` directory of path dependencies, ensuring consumer packages can find headers from compiled static or dynamic libraries.* + ## dcr.lock Dependency lock file. Contains package names and sources. From 39a99e85fd7383be207a2a539f3a36e62f2686b1 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:18:49 +0800 Subject: [PATCH 245/274] New translations workspaces.mdx (Ukrainian) [ci skip] --- docs-crowdin-export/uk-UA/docs/reference/workspaces.mdx.mdx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs-crowdin-export/uk-UA/docs/reference/workspaces.mdx.mdx b/docs-crowdin-export/uk-UA/docs/reference/workspaces.mdx.mdx index 6046030..082be1e 100644 --- a/docs-crowdin-export/uk-UA/docs/reference/workspaces.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/reference/workspaces.mdx.mdx @@ -43,7 +43,10 @@ dcr build # build all packages in dependency order dcr build --workspace app # build only app (dependencies built automatically) ``` -When building a workspace, member outputs (libraries) are automatically added to include/lib paths of dependent packages. +When building a workspace, DCR automatically injects include and library paths of dependent workspace members: + +* **Include Paths**: Automatically resolves and injects header directories of dependencies, including the member's `src/` directory, local `include/` directory, and the packaged `target/include` directory. +* **Library Paths**: Injects compiled library search paths (`target/lib` as well as target-specific build folders) to allow automatic linking with member libraries. ## Clean From f104472a7e4697ea18f42932736da30cae981f39 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:18:52 +0800 Subject: [PATCH 246/274] New translations first-steps.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/getting-started/first-steps.mdx.mdx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs-crowdin-export/uk-UA/docs/getting-started/first-steps.mdx.mdx b/docs-crowdin-export/uk-UA/docs/getting-started/first-steps.mdx.mdx index c090838..ce4bcf9 100644 --- a/docs-crowdin-export/uk-UA/docs/getting-started/first-steps.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/getting-started/first-steps.mdx.mdx @@ -70,3 +70,10 @@ dcr test # run tests ```bash dcr fmt # clang-format with .clang-format ``` + +## Linting + +```bash +dcr lint # clang-tidy checks +dcr lint --fix # apply fixes automatically +``` From edf1c6d18116f89a43b5c1d6c926297098ee567d Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:18:54 +0800 Subject: [PATCH 247/274] New translations build-system.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/reference/build-system.mdx.mdx | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/docs-crowdin-export/uk-UA/docs/reference/build-system.mdx.mdx b/docs-crowdin-export/uk-UA/docs/reference/build-system.mdx.mdx index 68a8444..10fbd56 100644 --- a/docs-crowdin-export/uk-UA/docs/reference/build-system.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/reference/build-system.mdx.mdx @@ -56,7 +56,7 @@ moc = "moc {in} -o {out}" ### GAS / NASM / MASM / FASM / LLVM-IR * GAS: `-I`, `-c -o`, `--defsym` -* NASM: `-I`, `-o`, `-D`, `-f` (format: win64/elf64/macho64/macho32/elf32) +* NASM: `-I`, `-o`, `-D`, `-f` (format: win64/elf64/macho64/macho32/elf32; **`bin` when `kind = "flat-bin"`**) * MASM: `/nologo /c /Fo\ ` * FASM: ` \` (output path is the object file) * LLVM IR: `-filetype=obj -o \` @@ -78,15 +78,20 @@ Three levels of incrementality: ## Build Kinds -| Kind | Type | Path (Linux example) | -| ----------- | ------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -| `bin` | Executable | `target/\/\/\` (.exe on Windows) | -| `staticlib` | Static library | `target/\/\/lib\.a` (.lib) | -| `sharedlib` | Dynamic library | `target/\/\/lib\.so` (.dll/.dylib) | -| `efi` | UEFI application | `target/\/\/\.efi` | -| `elf` | ELF without stdlib | `target/\/\/\` | -| `none` | Compile only, no link | — | -| `custom` | Full filename+extension control | `target/\/\/\.\` | +| Kind | Type | Path (Linux example) | +| ----------- | ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | +| `bin` | Executable | `target/\/\/\` (.exe on Windows) | +| `staticlib` | Static library | `target/\/\/lib\.a` (.lib) | +| `sharedlib` | Dynamic library | `target/\/\/lib\.so` (.dll/.dylib) | +| `efi` | UEFI application | `target/\/\/\.efi` | +| `elf` | ELF without stdlib | `target/\/\/\` | +| `none` | Compile only, no link | — | +| `custom` | Full filename+extension control | `target/\/\/\.\` | +| `flat-bin` | Raw binary | ASM: `\.bin` (NASM `-f bin` / FASM / GAS·MASM·LLC via objcopy); C/C++: `\.bin` (link + objcopy) | + +## Disk images (`[archive]`) + +After a successful build, if `[archive]` is present in `dcr.toml`, DCR formats a FAT volume and copies files from `layout` into the image. See [dcr.toml → archive](/docs/reference/dcr-toml#archive). ## Build Steps From fc75d6239aabb58ef8a147276d3eec811e9ce485 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:18:57 +0800 Subject: [PATCH 248/274] New translations cross-compilation.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/reference/cross-compilation.mdx.mdx | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/docs-crowdin-export/uk-UA/docs/reference/cross-compilation.mdx.mdx b/docs-crowdin-export/uk-UA/docs/reference/cross-compilation.mdx.mdx index 352170f..2ca0cc7 100644 --- a/docs-crowdin-export/uk-UA/docs/reference/cross-compilation.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/reference/cross-compilation.mdx.mdx @@ -57,14 +57,8 @@ dcr build --target aarch64-none-elf ## Target Directory -On Linux with explicit target: +By default, the compilation output directories are structured as follows: -``` -target/// -``` - -On macOS/Windows or without target: - -``` -target// -``` +* **Linux and BSD**: Always output to `target/\/\/` (using host triple if no target is specified). +* **macOS and Windows (without target)**: Output to `target/\/`. +* **macOS and Windows (with explicit target)**: Output to `target/\/\/`. From f56f23b5015a526be6d3ffea7cfeb7fb610b07ee Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:18:59 +0800 Subject: [PATCH 249/274] New translations platform-support.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/reference/platform-support.mdx.mdx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docs-crowdin-export/uk-UA/docs/reference/platform-support.mdx.mdx b/docs-crowdin-export/uk-UA/docs/reference/platform-support.mdx.mdx index cc63c00..a97eab5 100644 --- a/docs-crowdin-export/uk-UA/docs/reference/platform-support.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/reference/platform-support.mdx.mdx @@ -11,17 +11,18 @@ DCR normalizes target triples. Short platform names are expanded to full triples ### Linux ``` -target/-unknown-linux-gnu// +target/-unknown-linux-// ``` -Architectures: `x86_64`, `aarch64` (host-detected). +Architectures: `x86_64`, `aarch64`, `i686`, `armv7`, `riscv64` (host-detected). +Environments: `gnu` (default), `musl`. Artifact type: ELF. Extensions: `.so` (sharedlib), `.a` (staticlib). ### macOS ``` -target// +target// (default) or target/// (with target) ``` Architectures: `x86_64`, `aarch64` (host-detected). @@ -31,10 +32,11 @@ Extensions: `.dylib` (sharedlib), `.a` (staticlib). ### Windows ``` -target// +target// (default) or target/// (with target) ``` Architectures: `x86_64`, `aarch64`. +Environments: `msvc` (default), `gnu` (MinGW). Extensions: `.exe` (bin), `.lib` (staticlib), `.dll` (sharedlib), `.efi` (UEFI). From 47d88d13ff9f04aad579685f9bf1c0185a3425ff Mon Sep 17 00:00:00 2001 From: Dexoron Date: Tue, 21 Jul 2026 18:19:02 +0800 Subject: [PATCH 250/274] New translations os-flat-bin-archive.mdx (Ukrainian) [ci skip] --- .../docs/recipes/os-flat-bin-archive.mdx.mdx | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 docs-crowdin-export/uk-UA/docs/recipes/os-flat-bin-archive.mdx.mdx diff --git a/docs-crowdin-export/uk-UA/docs/recipes/os-flat-bin-archive.mdx.mdx b/docs-crowdin-export/uk-UA/docs/recipes/os-flat-bin-archive.mdx.mdx new file mode 100644 index 0000000..457bce4 --- /dev/null +++ b/docs-crowdin-export/uk-UA/docs/recipes/os-flat-bin-archive.mdx.mdx @@ -0,0 +1,89 @@ +--- +sidebar_label: OS-dev (flat-bin + archive) +--- + +# Pure ASM / boot image (flat-bin + archive) + +Minimal OS-dev style pipeline: assemble raw binaries with NASM, then pack a FAT floppy/image with an optional boot sector. + +## Project layout + +``` +myos/ + dcr.toml + src/ + boot.asm # boot sector (512 bytes) + kernel.asm # payload +``` + +For multiple flat artifacts, use a **workspace** (one member per binary) or separate packages; a single `flat-bin` package produces one binary per source stem. + +## Boot package (`flat-bin`) + +```toml +[package] +name = "boot" +version = "0.1.0" + +[build] +language = "asm" +compiler = "nasm" +kind = "flat-bin" +extension = "bin" +roots = ["src/boot.asm"] +``` + +```bash +dcr build +# → target/<…>/debug/boot.bin (NASM -f bin, no link) +``` + +## Disk image after build + +```toml +[archive] +output = "target/{profile}/disk.img" +format = "fat12" +size = "1440K" +label = "MYOS" +bootsector = "target/{profile}/boot.bin" + +[[archive.layout]] +from = "target/{profile}/kernel.bin" +to = "KERNEL.BIN" +``` + +* `format`: `fat12`, `fat16`, or `fat32` +* `size`: bytes or `K`/`KB`/`M`/`MB`/`G`/`GB` (default ~1.44 MiB) +* `bootsector`: written only when `offset` is omitted or `0` +* `from` may be a glob; `{profile}` is substituted in paths + +## C kernel → flat binary + +```toml +[build] +language = "c" +compiler = "clang" +kind = "flat-bin" +freestanding = true +filename = "kernel" +extension = "bin" +ldflags = ["-T", "linker.ld"] +``` + +Pipeline: objects → temporary linked ELF → `objcopy -O binary` → `kernel.bin`. Requires `objcopy` / `llvm-objcopy` in PATH. + +## Other assemblers + +| Tool | Notes | +| -------- | --------------------------------------------------------------------------------------- | +| **FASM** | Write `format binary` in the source; DCR writes `\.bin` directly | +| **GAS** | Assemble `.s` → obj → `objcopy -O binary` | +| **LLC** | `language = "llvm_ir"` → obj → objcopy | +| **MASM** | COFF obj → objcopy (needs binutils/LLVM objcopy) | + +## Notes + +* Single-file `roots` are supported: `roots = ["src/boot.asm"]`. +* `--force` re-runs `build.steps` / `build.post_steps` as well as recompilation. +* Prefer `kind = "elf"` if you need a relocatable ELF kernel without stripping to raw binary. From 9c9a66d0fefa8a0b164f5f5281802a1768e29afc Mon Sep 17 00:00:00 2001 From: Dexoron Date: Fri, 24 Jul 2026 19:40:00 +0800 Subject: [PATCH 251/274] New translations installation.mdx (German) [ci skip] --- .../docs/getting-started/installation.mdx.mdx | 82 ++++++++++++------- 1 file changed, 54 insertions(+), 28 deletions(-) diff --git a/docs-crowdin-export/de-DE/docs/getting-started/installation.mdx.mdx b/docs-crowdin-export/de-DE/docs/getting-started/installation.mdx.mdx index d574bb4..79fc081 100644 --- a/docs-crowdin-export/de-DE/docs/getting-started/installation.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/getting-started/installation.mdx.mdx @@ -4,28 +4,64 @@ sidebar_label: Installation # Installation -## Linux (Dexoron Packages) +## dcrup (recommended) -Configure your package manager at https://pkg.dexoron.su and install: +Install and switch DCR versions (stable / dev / night, pin `0.8.2`, optional build from source). -**Arch Linux** +### Linux / macOS / BSD / Windows (bash) ```sh -sudo pacman -Sy dcr +curl -fsSL https://sh.dcr-tool.ru | sh -s -- self-install +export PATH="$HOME/.dcr/bin:$PATH" +dcrup install stable ``` -**Debian/Ubuntu** +Non-interactive install of DCR in one shot: ```sh -sudo apt update && sudo apt install dcr +curl -fsSL https://sh.dcr-tool.ru | sh -s -- install stable +export PATH="$HOME/.dcr/bin:$PATH" ``` -**Fedora/RHEL** +### Windows (PowerShell) + +```powershell +irm https://ps1.dcr-tool.ru | iex +# or download then run: +# irm https://ps1.dcr-tool.ru -OutFile dcrup.ps1 +# powershell -File .\dcrup.ps1 self-install +# $env:Path += ";$env:USERPROFILE\.dcr\bin" +dcrup install stable +``` + +Optional cmd bootstrap (if you prefer `curl` of the cmd shim): + +```bat +curl -fsSL -o dcrup.cmd https://cmd.dcr-tool.ru +``` + +After `self-install`, the command is **`dcrup`** (no `.sh` / `.ps1`): shims live in `~/.dcr/bin` (Unix) or `%USERPROFILE%\.dcr\bin` (Windows `dcrup.cmd`). + +### Common dcrup commands ```sh -sudo dnf install dcr +dcrup install stable # latest stable prebuilt +dcrup install 0.8.2 # pin → 0.8.2@stable +dcrup install 0.8.2@dev +dcrup install stable --libc musl # Linux: musl asset (default: gnu) +dcrup install stable --build # cargo build --features archive +dcrup install night # always build from branch dev HEAD +dcrup default 0.8.2 +dcrup update +dcrup list +dcrup show +dcrup which ``` +Layout: `~/.dcr/toolchains/\/dcr` and `~/.dcr/bin/dcr` → active version. + +--- + ## Arch Linux (AUR) ```sh @@ -45,11 +81,12 @@ brew install dcr sudo snap install dcrup ``` +> If classic Snap Store publishing is unavailable, install the `.snap` from [GitHub Releases](https://github.com/dexoron/dcr/releases/latest) with `--dangerous`. + ## Nix (flake) ```sh nix run github:dexoron/dcr -# or install to profile: nix profile install github:dexoron/dcr ``` @@ -59,48 +96,37 @@ nix profile install github:dexoron/dcr cargo install dcr ``` -## Linux / macOS (script) - -```sh -curl -fsSL https://dcr.dexoron.su/install.sh | sh -``` - -## BSD (script) +Note: crates.io builds may omit optional features. For FAT disk images (`[archive]`), prefer release binaries or: ```sh -curl -fsSL https://dcr.dexoron.su/install_bsd.sh | sh -``` - -## Windows (PowerShell) - -```powershell -irm https://dcr.dexoron.su/install.ps1 | iex +cargo install dcr --features archive ``` ## From source ```sh git clone https://github.com/dexoron/dcr.git -cd dcr && cargo build --release +cd dcr +cargo build --release --features archive ln -sf "$PWD/target/release/dcr" ~/.local/bin/dcr +# or manage versions with dcrup install night / --build ``` ## Post-install -Verify the installation: - ```bash dcr --version +dcrup show # if installed via dcrup ``` -Man pages are available after installation: +Man pages (package installs / release assets): ```bash man dcr man dcr-build ``` -To use the registry, create `~/.dcr/config.toml`: +Registry (optional) — `~/.dcr/config.toml`: ```toml [registry.default] From a0216a8fb085614985c5dbb6211bdcaf8b979cb3 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Fri, 24 Jul 2026 19:40:02 +0800 Subject: [PATCH 252/274] New translations installation.mdx (Polish) [ci skip] --- .../docs/getting-started/installation.mdx.mdx | 82 ++++++++++++------- 1 file changed, 54 insertions(+), 28 deletions(-) diff --git a/docs-crowdin-export/pl-PL/docs/getting-started/installation.mdx.mdx b/docs-crowdin-export/pl-PL/docs/getting-started/installation.mdx.mdx index d574bb4..79fc081 100644 --- a/docs-crowdin-export/pl-PL/docs/getting-started/installation.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/getting-started/installation.mdx.mdx @@ -4,28 +4,64 @@ sidebar_label: Installation # Installation -## Linux (Dexoron Packages) +## dcrup (recommended) -Configure your package manager at https://pkg.dexoron.su and install: +Install and switch DCR versions (stable / dev / night, pin `0.8.2`, optional build from source). -**Arch Linux** +### Linux / macOS / BSD / Windows (bash) ```sh -sudo pacman -Sy dcr +curl -fsSL https://sh.dcr-tool.ru | sh -s -- self-install +export PATH="$HOME/.dcr/bin:$PATH" +dcrup install stable ``` -**Debian/Ubuntu** +Non-interactive install of DCR in one shot: ```sh -sudo apt update && sudo apt install dcr +curl -fsSL https://sh.dcr-tool.ru | sh -s -- install stable +export PATH="$HOME/.dcr/bin:$PATH" ``` -**Fedora/RHEL** +### Windows (PowerShell) + +```powershell +irm https://ps1.dcr-tool.ru | iex +# or download then run: +# irm https://ps1.dcr-tool.ru -OutFile dcrup.ps1 +# powershell -File .\dcrup.ps1 self-install +# $env:Path += ";$env:USERPROFILE\.dcr\bin" +dcrup install stable +``` + +Optional cmd bootstrap (if you prefer `curl` of the cmd shim): + +```bat +curl -fsSL -o dcrup.cmd https://cmd.dcr-tool.ru +``` + +After `self-install`, the command is **`dcrup`** (no `.sh` / `.ps1`): shims live in `~/.dcr/bin` (Unix) or `%USERPROFILE%\.dcr\bin` (Windows `dcrup.cmd`). + +### Common dcrup commands ```sh -sudo dnf install dcr +dcrup install stable # latest stable prebuilt +dcrup install 0.8.2 # pin → 0.8.2@stable +dcrup install 0.8.2@dev +dcrup install stable --libc musl # Linux: musl asset (default: gnu) +dcrup install stable --build # cargo build --features archive +dcrup install night # always build from branch dev HEAD +dcrup default 0.8.2 +dcrup update +dcrup list +dcrup show +dcrup which ``` +Layout: `~/.dcr/toolchains/\/dcr` and `~/.dcr/bin/dcr` → active version. + +--- + ## Arch Linux (AUR) ```sh @@ -45,11 +81,12 @@ brew install dcr sudo snap install dcrup ``` +> If classic Snap Store publishing is unavailable, install the `.snap` from [GitHub Releases](https://github.com/dexoron/dcr/releases/latest) with `--dangerous`. + ## Nix (flake) ```sh nix run github:dexoron/dcr -# or install to profile: nix profile install github:dexoron/dcr ``` @@ -59,48 +96,37 @@ nix profile install github:dexoron/dcr cargo install dcr ``` -## Linux / macOS (script) - -```sh -curl -fsSL https://dcr.dexoron.su/install.sh | sh -``` - -## BSD (script) +Note: crates.io builds may omit optional features. For FAT disk images (`[archive]`), prefer release binaries or: ```sh -curl -fsSL https://dcr.dexoron.su/install_bsd.sh | sh -``` - -## Windows (PowerShell) - -```powershell -irm https://dcr.dexoron.su/install.ps1 | iex +cargo install dcr --features archive ``` ## From source ```sh git clone https://github.com/dexoron/dcr.git -cd dcr && cargo build --release +cd dcr +cargo build --release --features archive ln -sf "$PWD/target/release/dcr" ~/.local/bin/dcr +# or manage versions with dcrup install night / --build ``` ## Post-install -Verify the installation: - ```bash dcr --version +dcrup show # if installed via dcrup ``` -Man pages are available after installation: +Man pages (package installs / release assets): ```bash man dcr man dcr-build ``` -To use the registry, create `~/.dcr/config.toml`: +Registry (optional) — `~/.dcr/config.toml`: ```toml [registry.default] From 72e7a4c7ad0f3ca6a2b562358d19a5405cfe8c78 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Fri, 24 Jul 2026 19:40:05 +0800 Subject: [PATCH 253/274] New translations installation.mdx (Russian) [ci skip] --- .../docs/getting-started/installation.mdx.mdx | 84 ++++++++++++------- 1 file changed, 55 insertions(+), 29 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/getting-started/installation.mdx.mdx b/docs-crowdin-export/ru-RU/docs/getting-started/installation.mdx.mdx index 08dc29e..397932b 100644 --- a/docs-crowdin-export/ru-RU/docs/getting-started/installation.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/getting-started/installation.mdx.mdx @@ -4,28 +4,64 @@ sidebar_label: Установка # Установка -## Linux (Dexoron Packages) +## dcrup (recommended) -Настройте менеджер пакетов на https://pkg.dexoron.su и установите: +Install and switch DCR versions (stable / dev / night, pin `0.8.2`, optional build from source). -**Arch Linux** +### Linux / macOS / BSD / Windows (bash) ```sh -sudo pacman -Sy dcr +curl -fsSL https://sh.dcr-tool.ru | sh -s -- self-install +export PATH="$HOME/.dcr/bin:$PATH" +dcrup install stable ``` -**Debian/Ubuntu** +Non-interactive install of DCR in one shot: ```sh -sudo apt update && sudo apt install dcr +curl -fsSL https://sh.dcr-tool.ru | sh -s -- install stable +export PATH="$HOME/.dcr/bin:$PATH" ``` -**Fedora/RHEL** +### Windows (PowerShell) + +```powershell +irm https://ps1.dcr-tool.ru | iex +# or download then run: +# irm https://ps1.dcr-tool.ru -OutFile dcrup.ps1 +# powershell -File .\dcrup.ps1 self-install +# $env:Path += ";$env:USERPROFILE\.dcr\bin" +dcrup install stable +``` + +Optional cmd bootstrap (if you prefer `curl` of the cmd shim): + +```bat +curl -fsSL -o dcrup.cmd https://cmd.dcr-tool.ru +``` + +After `self-install`, the command is **`dcrup`** (no `.sh` / `.ps1`): shims live in `~/.dcr/bin` (Unix) or `%USERPROFILE%\.dcr\bin` (Windows `dcrup.cmd`). + +### Common dcrup commands ```sh -sudo dnf install dcr +dcrup install stable # latest stable prebuilt +dcrup install 0.8.2 # pin → 0.8.2@stable +dcrup install 0.8.2@dev +dcrup install stable --libc musl # Linux: musl asset (default: gnu) +dcrup install stable --build # cargo build --features archive +dcrup install night # always build from branch dev HEAD +dcrup default 0.8.2 +dcrup update +dcrup list +dcrup show +dcrup which ``` +Layout: `~/.dcr/toolchains/\/dcr` and `~/.dcr/bin/dcr` → active version. + +--- + ## Arch Linux (AUR) ```sh @@ -45,11 +81,12 @@ brew install dcr sudo snap install dcrup ``` +> If classic Snap Store publishing is unavailable, install the `.snap` from [GitHub Releases](https://github.com/dexoron/dcr/releases/latest) with `--dangerous`. + ## Nix (flake) ```sh nix run github:dexoron/dcr -# или установить в профиль: nix profile install github:dexoron/dcr ``` @@ -59,48 +96,37 @@ nix profile install github:dexoron/dcr cargo install dcr ``` -## Linux / macOS (скрипт) - -```sh -curl -fsSL https://dcr.dexoron.su/install_bsd.sh | bash -``` - -## BSD (скрипт) +Note: crates.io builds may omit optional features. For FAT disk images (`[archive]`), prefer release binaries or: ```sh -curl -fsSL https://dcr.dexoron.su/install.sh | bash -``` - -## Windows (PowerShell) - -```powershell -irm https://dcr.dexoron.su/install.ps1 | iex +cargo install dcr --features archive ``` ## Из источника ```sh git clone https://github.com/dexoron/dcr.git -cd dcr && cargo build --release +cd dcr +cargo build --release --features archive ln -sf "$PWD/target/release/dcr" ~/.local/bin/dcr +# or manage versions with dcrup install night / --build ``` ## После установки -Проверьте установку: - ```bash -dcr setup +dcr --version +dcrup show # if installed via dcrup ``` -После установки становятся доступны man страницы: +Man pages (package installs / release assets): ```bash man dcr man dcr-build ``` -Чтобы использовать реестр, создайте файл `~/.dcr/config.toml`: +Registry (optional) — `~/.dcr/config.toml`: ```toml [registry.default] From 60a14c7a4cdef9fdaf5e0abdf2393586abb43cff Mon Sep 17 00:00:00 2001 From: Dexoron Date: Fri, 24 Jul 2026 19:40:07 +0800 Subject: [PATCH 254/274] New translations installation.mdx (Ukrainian) [ci skip] --- .../docs/getting-started/installation.mdx.mdx | 82 ++++++++++++------- 1 file changed, 54 insertions(+), 28 deletions(-) diff --git a/docs-crowdin-export/uk-UA/docs/getting-started/installation.mdx.mdx b/docs-crowdin-export/uk-UA/docs/getting-started/installation.mdx.mdx index d574bb4..79fc081 100644 --- a/docs-crowdin-export/uk-UA/docs/getting-started/installation.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/getting-started/installation.mdx.mdx @@ -4,28 +4,64 @@ sidebar_label: Installation # Installation -## Linux (Dexoron Packages) +## dcrup (recommended) -Configure your package manager at https://pkg.dexoron.su and install: +Install and switch DCR versions (stable / dev / night, pin `0.8.2`, optional build from source). -**Arch Linux** +### Linux / macOS / BSD / Windows (bash) ```sh -sudo pacman -Sy dcr +curl -fsSL https://sh.dcr-tool.ru | sh -s -- self-install +export PATH="$HOME/.dcr/bin:$PATH" +dcrup install stable ``` -**Debian/Ubuntu** +Non-interactive install of DCR in one shot: ```sh -sudo apt update && sudo apt install dcr +curl -fsSL https://sh.dcr-tool.ru | sh -s -- install stable +export PATH="$HOME/.dcr/bin:$PATH" ``` -**Fedora/RHEL** +### Windows (PowerShell) + +```powershell +irm https://ps1.dcr-tool.ru | iex +# or download then run: +# irm https://ps1.dcr-tool.ru -OutFile dcrup.ps1 +# powershell -File .\dcrup.ps1 self-install +# $env:Path += ";$env:USERPROFILE\.dcr\bin" +dcrup install stable +``` + +Optional cmd bootstrap (if you prefer `curl` of the cmd shim): + +```bat +curl -fsSL -o dcrup.cmd https://cmd.dcr-tool.ru +``` + +After `self-install`, the command is **`dcrup`** (no `.sh` / `.ps1`): shims live in `~/.dcr/bin` (Unix) or `%USERPROFILE%\.dcr\bin` (Windows `dcrup.cmd`). + +### Common dcrup commands ```sh -sudo dnf install dcr +dcrup install stable # latest stable prebuilt +dcrup install 0.8.2 # pin → 0.8.2@stable +dcrup install 0.8.2@dev +dcrup install stable --libc musl # Linux: musl asset (default: gnu) +dcrup install stable --build # cargo build --features archive +dcrup install night # always build from branch dev HEAD +dcrup default 0.8.2 +dcrup update +dcrup list +dcrup show +dcrup which ``` +Layout: `~/.dcr/toolchains/\/dcr` and `~/.dcr/bin/dcr` → active version. + +--- + ## Arch Linux (AUR) ```sh @@ -45,11 +81,12 @@ brew install dcr sudo snap install dcrup ``` +> If classic Snap Store publishing is unavailable, install the `.snap` from [GitHub Releases](https://github.com/dexoron/dcr/releases/latest) with `--dangerous`. + ## Nix (flake) ```sh nix run github:dexoron/dcr -# or install to profile: nix profile install github:dexoron/dcr ``` @@ -59,48 +96,37 @@ nix profile install github:dexoron/dcr cargo install dcr ``` -## Linux / macOS (script) - -```sh -curl -fsSL https://dcr.dexoron.su/install.sh | sh -``` - -## BSD (script) +Note: crates.io builds may omit optional features. For FAT disk images (`[archive]`), prefer release binaries or: ```sh -curl -fsSL https://dcr.dexoron.su/install_bsd.sh | sh -``` - -## Windows (PowerShell) - -```powershell -irm https://dcr.dexoron.su/install.ps1 | iex +cargo install dcr --features archive ``` ## From source ```sh git clone https://github.com/dexoron/dcr.git -cd dcr && cargo build --release +cd dcr +cargo build --release --features archive ln -sf "$PWD/target/release/dcr" ~/.local/bin/dcr +# or manage versions with dcrup install night / --build ``` ## Post-install -Verify the installation: - ```bash dcr --version +dcrup show # if installed via dcrup ``` -Man pages are available after installation: +Man pages (package installs / release assets): ```bash man dcr man dcr-build ``` -To use the registry, create `~/.dcr/config.toml`: +Registry (optional) — `~/.dcr/config.toml`: ```toml [registry.default] From 6badcb7465bb518d9d29f5327710504bba48d534 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Fri, 24 Jul 2026 19:40:11 +0800 Subject: [PATCH 255/274] New translations dcr-toml.mdx (German) [ci skip] --- docs-crowdin-export/de-DE/docs/reference/dcr-toml.mdx.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs-crowdin-export/de-DE/docs/reference/dcr-toml.mdx.mdx b/docs-crowdin-export/de-DE/docs/reference/dcr-toml.mdx.mdx index 240399b..bb9be20 100644 --- a/docs-crowdin-export/de-DE/docs/reference/dcr-toml.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/reference/dcr-toml.mdx.mdx @@ -185,6 +185,8 @@ See [workspaces](/docs/reference/workspaces). Optional post-build step: format a FAT volume and copy built artifacts into a disk image. Runs after a successful package build (and after workspace member builds that define `[archive]`). +Requires DCR built with the `archive` Cargo feature (`cargo build --features archive`). Release binaries include this feature. + | Field | Required | Description | | ------------ | -------- | ------------------------------------------------------------------------------------------- | | `output` | yes | Image path relative to project root (`{profile}` allowed) | From 82de6e8c60e7dc5790d2ea8de9e8a302dd1fb4fd Mon Sep 17 00:00:00 2001 From: Dexoron Date: Fri, 24 Jul 2026 19:40:14 +0800 Subject: [PATCH 256/274] New translations dcr-toml.mdx (Polish) [ci skip] --- docs-crowdin-export/pl-PL/docs/reference/dcr-toml.mdx.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs-crowdin-export/pl-PL/docs/reference/dcr-toml.mdx.mdx b/docs-crowdin-export/pl-PL/docs/reference/dcr-toml.mdx.mdx index 240399b..bb9be20 100644 --- a/docs-crowdin-export/pl-PL/docs/reference/dcr-toml.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/reference/dcr-toml.mdx.mdx @@ -185,6 +185,8 @@ See [workspaces](/docs/reference/workspaces). Optional post-build step: format a FAT volume and copy built artifacts into a disk image. Runs after a successful package build (and after workspace member builds that define `[archive]`). +Requires DCR built with the `archive` Cargo feature (`cargo build --features archive`). Release binaries include this feature. + | Field | Required | Description | | ------------ | -------- | ------------------------------------------------------------------------------------------- | | `output` | yes | Image path relative to project root (`{profile}` allowed) | From ceddc3bb5ce8bc69cdfb8f0c2053b60421af4251 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Fri, 24 Jul 2026 19:40:17 +0800 Subject: [PATCH 257/274] New translations dcr-toml.mdx (Russian) [ci skip] --- docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx b/docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx index 31654b3..6f577ca 100644 --- a/docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/reference/dcr-toml.mdx.mdx @@ -185,6 +185,8 @@ cmd = "./target/{profile}/{name}" Optional post-build step: format a FAT volume and copy built artifacts into a disk image. Runs after a successful package build (and after workspace member builds that define `[archive]`). +Requires DCR built with the `archive` Cargo feature (`cargo build --features archive`). Release binaries include this feature. + | Field | Required | Description | | ------------ | -------- | ------------------------------------------------------------------------------------------- | | `output` | yes | Image path relative to project root (`{profile}` allowed) | From 9cf6223fcf0c465d10a673166cccb61aa1fd2697 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Fri, 24 Jul 2026 19:40:20 +0800 Subject: [PATCH 258/274] New translations dcr-toml.mdx (Ukrainian) [ci skip] --- docs-crowdin-export/uk-UA/docs/reference/dcr-toml.mdx.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs-crowdin-export/uk-UA/docs/reference/dcr-toml.mdx.mdx b/docs-crowdin-export/uk-UA/docs/reference/dcr-toml.mdx.mdx index 240399b..bb9be20 100644 --- a/docs-crowdin-export/uk-UA/docs/reference/dcr-toml.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/reference/dcr-toml.mdx.mdx @@ -185,6 +185,8 @@ See [workspaces](/docs/reference/workspaces). Optional post-build step: format a FAT volume and copy built artifacts into a disk image. Runs after a successful package build (and after workspace member builds that define `[archive]`). +Requires DCR built with the `archive` Cargo feature (`cargo build --features archive`). Release binaries include this feature. + | Field | Required | Description | | ------------ | -------- | ------------------------------------------------------------------------------------------- | | `output` | yes | Image path relative to project root (`{profile}` allowed) | From 9487b10e2d0881595673e2b5686b77af1716cd38 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Fri, 24 Jul 2026 19:40:22 +0800 Subject: [PATCH 259/274] New translations readme.mdx (German) [ci skip] --- docs-crowdin-export/de-DE/docs/README.mdx.mdx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/de-DE/docs/README.mdx.mdx b/docs-crowdin-export/de-DE/docs/README.mdx.mdx index f00c04a..8a63429 100644 --- a/docs-crowdin-export/de-DE/docs/README.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/README.mdx.mdx @@ -8,8 +8,10 @@ sidebar_label: Introduction Quick reference ```bash -# Installation -curl -fsSL https://dcr.dexoron.su/install.sh | sh +# Installation (dcrup) +curl -fsSL https://sh.dcr-tool.ru | sh -s -- self-install +export PATH="$HOME/.dcr/bin:$PATH" +dcrup install stable # Create a project dcr new my-app From 81ac949d6d50f220e6d469d43f3d1371192da1cc Mon Sep 17 00:00:00 2001 From: Dexoron Date: Fri, 24 Jul 2026 19:40:26 +0800 Subject: [PATCH 260/274] New translations changelog.mdx (German) [ci skip] --- .../de-DE/docs/changelog.mdx.mdx | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/docs-crowdin-export/de-DE/docs/changelog.mdx.mdx b/docs-crowdin-export/de-DE/docs/changelog.mdx.mdx index 6f494b7..8d2d94c 100644 --- a/docs-crowdin-export/de-DE/docs/changelog.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/changelog.mdx.mdx @@ -4,6 +4,25 @@ sidebar_label: Changelog # Changelog +## 0.8.2 (2026-07-22) + +### Added + +* **Compile progress `[N/M]`** — live TTY status line (`compile pkg v0.1.0 [12/41]`) so long mono-package builds do not look hung. +* **DCR status style** — fixed-width verbs: `project`, `compile`, `dep`, `ready`, `pack`, `done`, `run`. +* **Cargo feature `archive`** — optional FAT packing via `fatfs` (`cargo build --features archive`). Release CI builds with the feature; without it `[archive]` fails with a clear message. +* **Tests** — `flat_bin_nasm_build`, package `build.target` without CLI `--target`, stricter workspace `clean --all`. +* **CI expansion** — unit + integration on Linux/macOS/Windows, archive feature job, rust-cache, clippy default + all-features (see `.github/workflows/ci.yml`). + +### Changed + +* **No forced host triple from CLI** — without `--target`, package/member `build.target` is honored (bare-metal / ISO `post_steps` paths). +* **Relative include/lib flags** (`-I`, `-i`, `-isystem`, `-idirafter`, `-L`, `-T`) absolutized against the package root under workspace builds. +* **`dcr clean --all`** — no spam for members without a local `target/` (shared root `target/`). +* **`error` / `warn`** — red / yellow on stderr; CLI fully English (`Hint:`). +* **Help / man** — list `add`, `lint`, `setup`; unknown command exits with code 1. +* **Tool NotFound** — `linker not found: ld.lld …` / `{tool} not found …` instead of raw `os error 2`. + ## 0.8.1 (2026-07-20) ### Added @@ -14,7 +33,7 @@ sidebar_label: Changelog * **GAS / MASM / LLC** — object → `objcopy -O binary` → `\.bin` * **C/C++** — objects → freestanding link → `objcopy -O binary` → `\.bin` * Requires `llvm-objcopy` / `objcopy` / `gobjcopy` except for NASM/FASM direct emit -* **`[archive]` section** — after a successful build, pack a FAT disk image (`fatfs`): `output`, `format` (`fat12`/`fat16`/`fat32`), optional `size` (default 1.44 MiB), `offset`, `label`, `bootsector`, and `layout` (`from` → `to`, supports globs). `{profile}` works in paths. +* **`[archive]` section** — FAT12/16/32 disk images after build (`output`, `format`, `size`, `offset`, `label`, `bootsector`, `layout`). From 0.8.2 requires feature `archive`. * **Single-file `build.roots`** — a root may be a single source or header file, not only a directory. ### Changed @@ -22,10 +41,6 @@ sidebar_label: Changelog * **`--force`** also re-runs `build.steps` and `build.post_steps`. * **`dcr run` on workspace-only root** — if `[run].cmd` is set, run that after build; otherwise delegate to a workspace member. -### Dependencies - -* `fatfs = "0.3"` for FAT image packing. - ## 0.8.0 (2026-07-18) ### Added From cd33597a8ac841760664d0fdd5fb74657aaad0b5 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Fri, 24 Jul 2026 19:40:28 +0800 Subject: [PATCH 261/274] New translations contributing.mdx (German) [ci skip] --- docs-crowdin-export/de-DE/docs/contributing.mdx.mdx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs-crowdin-export/de-DE/docs/contributing.mdx.mdx b/docs-crowdin-export/de-DE/docs/contributing.mdx.mdx index d422910..615c9a8 100644 --- a/docs-crowdin-export/de-DE/docs/contributing.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/contributing.mdx.mdx @@ -42,10 +42,11 @@ cargo test --all-targets ## CI -CI runs: +CI runs (see `.github/workflows/ci.yml`): * `cargo fmt --check` -* `cargo clippy --all-targets -- -D warnings` +* `cargo clippy` (default + `--all-features`) * `cargo check --all-targets --all-features` -* Build on Linux, macOS, Windows -* Integration tests (compilation check) +* Unit + integration tests on Linux, macOS, Windows +* Extra Linux job with `--features archive` (FAT images) +* Tools on runners: clang, nasm, clang-format/tidy (Linux) From 5ba6d07847a72c7160ee4a939035b2c5daf0e097 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Fri, 24 Jul 2026 19:40:31 +0800 Subject: [PATCH 262/274] New translations readme.mdx (Polish) [ci skip] --- docs-crowdin-export/pl-PL/docs/README.mdx.mdx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/pl-PL/docs/README.mdx.mdx b/docs-crowdin-export/pl-PL/docs/README.mdx.mdx index f00c04a..8a63429 100644 --- a/docs-crowdin-export/pl-PL/docs/README.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/README.mdx.mdx @@ -8,8 +8,10 @@ sidebar_label: Introduction Quick reference ```bash -# Installation -curl -fsSL https://dcr.dexoron.su/install.sh | sh +# Installation (dcrup) +curl -fsSL https://sh.dcr-tool.ru | sh -s -- self-install +export PATH="$HOME/.dcr/bin:$PATH" +dcrup install stable # Create a project dcr new my-app From 12950b0c4648d691377c0b944c63cbff5ad8b93f Mon Sep 17 00:00:00 2001 From: Dexoron Date: Fri, 24 Jul 2026 19:40:34 +0800 Subject: [PATCH 263/274] New translations changelog.mdx (Polish) [ci skip] --- .../pl-PL/docs/changelog.mdx.mdx | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/docs-crowdin-export/pl-PL/docs/changelog.mdx.mdx b/docs-crowdin-export/pl-PL/docs/changelog.mdx.mdx index 6f494b7..8d2d94c 100644 --- a/docs-crowdin-export/pl-PL/docs/changelog.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/changelog.mdx.mdx @@ -4,6 +4,25 @@ sidebar_label: Changelog # Changelog +## 0.8.2 (2026-07-22) + +### Added + +* **Compile progress `[N/M]`** — live TTY status line (`compile pkg v0.1.0 [12/41]`) so long mono-package builds do not look hung. +* **DCR status style** — fixed-width verbs: `project`, `compile`, `dep`, `ready`, `pack`, `done`, `run`. +* **Cargo feature `archive`** — optional FAT packing via `fatfs` (`cargo build --features archive`). Release CI builds with the feature; without it `[archive]` fails with a clear message. +* **Tests** — `flat_bin_nasm_build`, package `build.target` without CLI `--target`, stricter workspace `clean --all`. +* **CI expansion** — unit + integration on Linux/macOS/Windows, archive feature job, rust-cache, clippy default + all-features (see `.github/workflows/ci.yml`). + +### Changed + +* **No forced host triple from CLI** — without `--target`, package/member `build.target` is honored (bare-metal / ISO `post_steps` paths). +* **Relative include/lib flags** (`-I`, `-i`, `-isystem`, `-idirafter`, `-L`, `-T`) absolutized against the package root under workspace builds. +* **`dcr clean --all`** — no spam for members without a local `target/` (shared root `target/`). +* **`error` / `warn`** — red / yellow on stderr; CLI fully English (`Hint:`). +* **Help / man** — list `add`, `lint`, `setup`; unknown command exits with code 1. +* **Tool NotFound** — `linker not found: ld.lld …` / `{tool} not found …` instead of raw `os error 2`. + ## 0.8.1 (2026-07-20) ### Added @@ -14,7 +33,7 @@ sidebar_label: Changelog * **GAS / MASM / LLC** — object → `objcopy -O binary` → `\.bin` * **C/C++** — objects → freestanding link → `objcopy -O binary` → `\.bin` * Requires `llvm-objcopy` / `objcopy` / `gobjcopy` except for NASM/FASM direct emit -* **`[archive]` section** — after a successful build, pack a FAT disk image (`fatfs`): `output`, `format` (`fat12`/`fat16`/`fat32`), optional `size` (default 1.44 MiB), `offset`, `label`, `bootsector`, and `layout` (`from` → `to`, supports globs). `{profile}` works in paths. +* **`[archive]` section** — FAT12/16/32 disk images after build (`output`, `format`, `size`, `offset`, `label`, `bootsector`, `layout`). From 0.8.2 requires feature `archive`. * **Single-file `build.roots`** — a root may be a single source or header file, not only a directory. ### Changed @@ -22,10 +41,6 @@ sidebar_label: Changelog * **`--force`** also re-runs `build.steps` and `build.post_steps`. * **`dcr run` on workspace-only root** — if `[run].cmd` is set, run that after build; otherwise delegate to a workspace member. -### Dependencies - -* `fatfs = "0.3"` for FAT image packing. - ## 0.8.0 (2026-07-18) ### Added From b9a53bbed17891d4716ea74c67da1a5537c9df37 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Fri, 24 Jul 2026 19:40:36 +0800 Subject: [PATCH 264/274] New translations contributing.mdx (Polish) [ci skip] --- docs-crowdin-export/pl-PL/docs/contributing.mdx.mdx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs-crowdin-export/pl-PL/docs/contributing.mdx.mdx b/docs-crowdin-export/pl-PL/docs/contributing.mdx.mdx index d422910..615c9a8 100644 --- a/docs-crowdin-export/pl-PL/docs/contributing.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/contributing.mdx.mdx @@ -42,10 +42,11 @@ cargo test --all-targets ## CI -CI runs: +CI runs (see `.github/workflows/ci.yml`): * `cargo fmt --check` -* `cargo clippy --all-targets -- -D warnings` +* `cargo clippy` (default + `--all-features`) * `cargo check --all-targets --all-features` -* Build on Linux, macOS, Windows -* Integration tests (compilation check) +* Unit + integration tests on Linux, macOS, Windows +* Extra Linux job with `--features archive` (FAT images) +* Tools on runners: clang, nasm, clang-format/tidy (Linux) From 0e7825ab7772a30c40acc046457cafd1faa9d895 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Fri, 24 Jul 2026 19:40:39 +0800 Subject: [PATCH 265/274] New translations readme.mdx (Russian) [ci skip] --- docs-crowdin-export/ru-RU/docs/README.mdx.mdx | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/README.mdx.mdx b/docs-crowdin-export/ru-RU/docs/README.mdx.mdx index 417adad..99d652f 100644 --- a/docs-crowdin-export/ru-RU/docs/README.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/README.mdx.mdx @@ -8,15 +8,27 @@ sidebar_label: Введение Быстрая справка ```bash -# Установка(Linux/MacOS скрипт) -curl -fsSL https://dcr.dexoron.su/install.sh | sh +# Installation (dcrup) +curl -fsSL https://sh.dcr-tool.ru | sh -s -- self-install +export PATH="$HOME/.dcr/bin:$PATH" +dcrup install stable -# Создать проект +# Create a project dcr new my-app cd my-app -# Собрать и запустить +# Build and run +dcr build dcr run + +# Run tests +dcr test + +# Add a dependency +dcr add fmt + +# Generate IDE files +dcr gen vscode ``` From 587d6aeb8001800a6f7bffdbab85137f6596f34e Mon Sep 17 00:00:00 2001 From: Dexoron Date: Fri, 24 Jul 2026 19:40:42 +0800 Subject: [PATCH 266/274] New translations changelog.mdx (Russian) [ci skip] --- .../ru-RU/docs/changelog.mdx.mdx | 33 ++++++++++++++----- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/changelog.mdx.mdx b/docs-crowdin-export/ru-RU/docs/changelog.mdx.mdx index c31a807..8af57dc 100644 --- a/docs-crowdin-export/ru-RU/docs/changelog.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/changelog.mdx.mdx @@ -4,31 +4,46 @@ sidebar_label: Список изменений # Список изменений -## 0.8.1 (2026-07-20) +## 0.8.2 (2026-07-22) ### Добавлено: +* **Compile progress `[N/M]`** — live TTY status line (`compile pkg v0.1.0 [12/41]`) so long mono-package builds do not look hung. +* **DCR status style** — fixed-width verbs: `project`, `compile`, `dep`, `ready`, `pack`, `done`, `run`. +* **Cargo feature `archive`** — optional FAT packing via `fatfs` (`cargo build --features archive`). Release CI builds with the feature; without it `[archive]` fails with a clear message. +* **Tests** — `flat_bin_nasm_build`, package `build.target` without CLI `--target`, stricter workspace `clean --all`. +* **CI expansion** — unit + integration on Linux/macOS/Windows, archive feature job, rust-cache, clippy default + all-features (see `.github/workflows/ci.yml`). + +### Изменено: + +* **No forced host triple from CLI** — without `--target`, package/member `build.target` is honored (bare-metal / ISO `post_steps` paths). +* **Relative include/lib flags** (`-I`, `-i`, `-isystem`, `-idirafter`, `-L`, `-T`) absolutized against the package root under workspace builds. +* **`dcr clean --all`** — no spam for members without a local `target/` (shared root `target/`). +* **`error` / `warn`** — red / yellow on stderr; CLI fully English (`Hint:`). +* **Help / man** — list `add`, `lint`, `setup`; unknown command exits with code 1. +* **Tool NotFound** — `linker not found: ld.lld …` / `{tool} not found …` instead of raw `os error 2`. + +## 0.8.1 (2026-07-20) + +### Добавлено + * **`build.kind = "flat-bin"`** — raw binary (default `.bin`) for OS-dev payloads: * **NASM** — `-f bin` → `\.bin` * **FASM** — direct output (`format binary` in source) * **GAS / MASM / LLC** — object → `objcopy -O binary` → `\.bin` * **C/C++** — objects → freestanding link → `objcopy -O binary` → `\.bin` * Requires `llvm-objcopy` / `objcopy` / `gobjcopy` except for NASM/FASM direct emit -* **`[archive]` section** — after a successful build, pack a FAT disk image (`fatfs`): `output`, `format` (`fat12`/`fat16`/`fat32`), optional `size` (default 1.44 MiB), `offset`, `label`, `bootsector`, and `layout` (`from` → `to`, supports globs). `{profile}` works in paths. +* **`[archive]` section** — FAT12/16/32 disk images after build (`output`, `format`, `size`, `offset`, `label`, `bootsector`, `layout`). From 0.8.2 requires feature `archive`. * **Single-file `build.roots`** — a root may be a single source or header file, not only a directory. -### Изменено: +### Изменено * **`--force`** also re-runs `build.steps` and `build.post_steps`. * **`dcr run` on workspace-only root** — if `[run].cmd` is set, run that after build; otherwise delegate to a workspace member. -### Dependencies - -* `fatfs = "0.3"` for FAT image packing. - ## 0.8.0 (2026-07-18) -### Добавлено +### 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). @@ -41,7 +56,7 @@ sidebar_label: Список изменений * **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 execution** — `dcr 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. From 81ae976c159c830e1761b894d44e07fc41a5167e Mon Sep 17 00:00:00 2001 From: Dexoron Date: Fri, 24 Jul 2026 19:40:45 +0800 Subject: [PATCH 267/274] New translations contributing.mdx (Russian) [ci skip] --- docs-crowdin-export/ru-RU/docs/contributing.mdx.mdx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/contributing.mdx.mdx b/docs-crowdin-export/ru-RU/docs/contributing.mdx.mdx index f3a90f1..a65b231 100644 --- a/docs-crowdin-export/ru-RU/docs/contributing.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/contributing.mdx.mdx @@ -42,10 +42,11 @@ cargo clippy --all-targets -- -D warnings ## CI -В CI запускаются: +CI runs (see `.github/workflows/ci.yml`): * `cargo fmt --check` -* `cargo clippy --all-targets -- -D warnings` +* `cargo clippy` (default + `--all-features`) * `cargo check --all-targets --all-features` -* Сборка под Linux, macOS, Windows, FreeBSD, OpenBSD, NetBSD -* Integration tests (compilation check) +* Unit + integration tests on Linux, macOS, Windows +* Extra Linux job with `--features archive` (FAT images) +* Tools on runners: clang, nasm, clang-format/tidy (Linux) From e294cc47e654be1ca95d1cc8a8044242681cb6e3 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Fri, 24 Jul 2026 19:40:47 +0800 Subject: [PATCH 268/274] New translations readme.mdx (Ukrainian) [ci skip] --- docs-crowdin-export/uk-UA/docs/README.mdx.mdx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs-crowdin-export/uk-UA/docs/README.mdx.mdx b/docs-crowdin-export/uk-UA/docs/README.mdx.mdx index f00c04a..8a63429 100644 --- a/docs-crowdin-export/uk-UA/docs/README.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/README.mdx.mdx @@ -8,8 +8,10 @@ sidebar_label: Introduction Quick reference ```bash -# Installation -curl -fsSL https://dcr.dexoron.su/install.sh | sh +# Installation (dcrup) +curl -fsSL https://sh.dcr-tool.ru | sh -s -- self-install +export PATH="$HOME/.dcr/bin:$PATH" +dcrup install stable # Create a project dcr new my-app From 4b061dae370d3bdd0bb11f304de30f0ab5f5557b Mon Sep 17 00:00:00 2001 From: Dexoron Date: Fri, 24 Jul 2026 19:40:50 +0800 Subject: [PATCH 269/274] New translations changelog.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/changelog.mdx.mdx | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/docs-crowdin-export/uk-UA/docs/changelog.mdx.mdx b/docs-crowdin-export/uk-UA/docs/changelog.mdx.mdx index 6f494b7..8d2d94c 100644 --- a/docs-crowdin-export/uk-UA/docs/changelog.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/changelog.mdx.mdx @@ -4,6 +4,25 @@ sidebar_label: Changelog # Changelog +## 0.8.2 (2026-07-22) + +### Added + +* **Compile progress `[N/M]`** — live TTY status line (`compile pkg v0.1.0 [12/41]`) so long mono-package builds do not look hung. +* **DCR status style** — fixed-width verbs: `project`, `compile`, `dep`, `ready`, `pack`, `done`, `run`. +* **Cargo feature `archive`** — optional FAT packing via `fatfs` (`cargo build --features archive`). Release CI builds with the feature; without it `[archive]` fails with a clear message. +* **Tests** — `flat_bin_nasm_build`, package `build.target` without CLI `--target`, stricter workspace `clean --all`. +* **CI expansion** — unit + integration on Linux/macOS/Windows, archive feature job, rust-cache, clippy default + all-features (see `.github/workflows/ci.yml`). + +### Changed + +* **No forced host triple from CLI** — without `--target`, package/member `build.target` is honored (bare-metal / ISO `post_steps` paths). +* **Relative include/lib flags** (`-I`, `-i`, `-isystem`, `-idirafter`, `-L`, `-T`) absolutized against the package root under workspace builds. +* **`dcr clean --all`** — no spam for members without a local `target/` (shared root `target/`). +* **`error` / `warn`** — red / yellow on stderr; CLI fully English (`Hint:`). +* **Help / man** — list `add`, `lint`, `setup`; unknown command exits with code 1. +* **Tool NotFound** — `linker not found: ld.lld …` / `{tool} not found …` instead of raw `os error 2`. + ## 0.8.1 (2026-07-20) ### Added @@ -14,7 +33,7 @@ sidebar_label: Changelog * **GAS / MASM / LLC** — object → `objcopy -O binary` → `\.bin` * **C/C++** — objects → freestanding link → `objcopy -O binary` → `\.bin` * Requires `llvm-objcopy` / `objcopy` / `gobjcopy` except for NASM/FASM direct emit -* **`[archive]` section** — after a successful build, pack a FAT disk image (`fatfs`): `output`, `format` (`fat12`/`fat16`/`fat32`), optional `size` (default 1.44 MiB), `offset`, `label`, `bootsector`, and `layout` (`from` → `to`, supports globs). `{profile}` works in paths. +* **`[archive]` section** — FAT12/16/32 disk images after build (`output`, `format`, `size`, `offset`, `label`, `bootsector`, `layout`). From 0.8.2 requires feature `archive`. * **Single-file `build.roots`** — a root may be a single source or header file, not only a directory. ### Changed @@ -22,10 +41,6 @@ sidebar_label: Changelog * **`--force`** also re-runs `build.steps` and `build.post_steps`. * **`dcr run` on workspace-only root** — if `[run].cmd` is set, run that after build; otherwise delegate to a workspace member. -### Dependencies - -* `fatfs = "0.3"` for FAT image packing. - ## 0.8.0 (2026-07-18) ### Added From 19aee3e0793f3ed86b7db3cc78b33c3b907b9db4 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Fri, 24 Jul 2026 19:40:52 +0800 Subject: [PATCH 270/274] New translations contributing.mdx (Ukrainian) [ci skip] --- docs-crowdin-export/uk-UA/docs/contributing.mdx.mdx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs-crowdin-export/uk-UA/docs/contributing.mdx.mdx b/docs-crowdin-export/uk-UA/docs/contributing.mdx.mdx index d422910..615c9a8 100644 --- a/docs-crowdin-export/uk-UA/docs/contributing.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/contributing.mdx.mdx @@ -42,10 +42,11 @@ cargo test --all-targets ## CI -CI runs: +CI runs (see `.github/workflows/ci.yml`): * `cargo fmt --check` -* `cargo clippy --all-targets -- -D warnings` +* `cargo clippy` (default + `--all-features`) * `cargo check --all-targets --all-features` -* Build on Linux, macOS, Windows -* Integration tests (compilation check) +* Unit + integration tests on Linux, macOS, Windows +* Extra Linux job with `--features archive` (FAT images) +* Tools on runners: clang, nasm, clang-format/tidy (Linux) From c68f639e612ee3c8cf4a57e4d30d2cb4a3a71b5c Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 3 Aug 2026 21:38:03 +0800 Subject: [PATCH 271/274] New translations changelog.mdx (German) [ci skip] --- .../de-DE/docs/changelog.mdx.mdx | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/docs-crowdin-export/de-DE/docs/changelog.mdx.mdx b/docs-crowdin-export/de-DE/docs/changelog.mdx.mdx index 8d2d94c..645cf7c 100644 --- a/docs-crowdin-export/de-DE/docs/changelog.mdx.mdx +++ b/docs-crowdin-export/de-DE/docs/changelog.mdx.mdx @@ -4,6 +4,28 @@ sidebar_label: Changelog # Changelog +## 0.8.3 (2026-08-03) + +### Added + +* **`dcr run -- \...`** — cargo-style argument forwarding after a bare `--`\ + (`dcr run --release -- --test_help`). Applies to direct binary runs and `[run].cmd`. +* **Tests** — host target section `ldflags` without CLI `--target`; run-arg forwarding; `split_double_dash` unit tests. + +### Changed + +* **Native builds resolve the host triple** — without `--target` / package `build.target`, host sections such as\ + `[build.x86_64-unknown-linux-gnu]` apply again (`cflags` / `ldflags` / toolchain).\ + Previously the target was empty and those sections were ignored while artifacts already used the host triple path. +* **Empty target** — no more `Unknown target ''` warning. +* **`dcr run --help` / man `dcr-run`** — document `--` forwarding. + +### Fixed + +* **Native artifact paths on Windows and macOS** — without an explicit `--target` / `build.target`, artifacts use `target/\`, so `dcr run` and flat-bin find the build output. +* Target-specific `ldflags` missing on native host builds (e.g. micro-lang + `libsct-elf`). +* Spurious empty-target warning. + ## 0.8.2 (2026-07-22) ### Added From 199f663d1bdefa3f835c2dbde1f2ac5bd1eff9bc Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 3 Aug 2026 21:38:06 +0800 Subject: [PATCH 272/274] New translations changelog.mdx (Polish) [ci skip] --- .../pl-PL/docs/changelog.mdx.mdx | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/docs-crowdin-export/pl-PL/docs/changelog.mdx.mdx b/docs-crowdin-export/pl-PL/docs/changelog.mdx.mdx index 8d2d94c..645cf7c 100644 --- a/docs-crowdin-export/pl-PL/docs/changelog.mdx.mdx +++ b/docs-crowdin-export/pl-PL/docs/changelog.mdx.mdx @@ -4,6 +4,28 @@ sidebar_label: Changelog # Changelog +## 0.8.3 (2026-08-03) + +### Added + +* **`dcr run -- \...`** — cargo-style argument forwarding after a bare `--`\ + (`dcr run --release -- --test_help`). Applies to direct binary runs and `[run].cmd`. +* **Tests** — host target section `ldflags` without CLI `--target`; run-arg forwarding; `split_double_dash` unit tests. + +### Changed + +* **Native builds resolve the host triple** — without `--target` / package `build.target`, host sections such as\ + `[build.x86_64-unknown-linux-gnu]` apply again (`cflags` / `ldflags` / toolchain).\ + Previously the target was empty and those sections were ignored while artifacts already used the host triple path. +* **Empty target** — no more `Unknown target ''` warning. +* **`dcr run --help` / man `dcr-run`** — document `--` forwarding. + +### Fixed + +* **Native artifact paths on Windows and macOS** — without an explicit `--target` / `build.target`, artifacts use `target/\`, so `dcr run` and flat-bin find the build output. +* Target-specific `ldflags` missing on native host builds (e.g. micro-lang + `libsct-elf`). +* Spurious empty-target warning. + ## 0.8.2 (2026-07-22) ### Added From 85783ff9816ac1ccccfe312bb83479d24a73770b Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 3 Aug 2026 21:38:10 +0800 Subject: [PATCH 273/274] New translations changelog.mdx (Russian) [ci skip] --- .../ru-RU/docs/changelog.mdx.mdx | 34 +++++++++++++++---- 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/docs-crowdin-export/ru-RU/docs/changelog.mdx.mdx b/docs-crowdin-export/ru-RU/docs/changelog.mdx.mdx index 8af57dc..6e26360 100644 --- a/docs-crowdin-export/ru-RU/docs/changelog.mdx.mdx +++ b/docs-crowdin-export/ru-RU/docs/changelog.mdx.mdx @@ -4,17 +4,39 @@ sidebar_label: Список изменений # Список изменений -## 0.8.2 (2026-07-22) +## 0.8.3 (2026-08-03) ### Добавлено: +* **`dcr run -- \...`** — cargo-style argument forwarding after a bare `--`\ + (`dcr run --release -- --test_help`). Applies to direct binary runs and `[run].cmd`. +* **Tests** — host target section `ldflags` without CLI `--target`; run-arg forwarding; `split_double_dash` unit tests. + +### Изменено: + +* **Native builds resolve the host triple** — without `--target` / package `build.target`, host sections such as\ + `[build.x86_64-unknown-linux-gnu]` apply again (`cflags` / `ldflags` / toolchain).\ + Previously the target was empty and those sections were ignored while artifacts already used the host triple path. +* **Empty target** — no more `Unknown target ''` warning. +* **`dcr run --help` / man `dcr-run`** — document `--` forwarding. + +### Исправлено: + +* **Native artifact paths on Windows and macOS** — without an explicit `--target` / `build.target`, artifacts use `target/\`, so `dcr run` and flat-bin find the build output. +* Target-specific `ldflags` missing on native host builds (e.g. micro-lang + `libsct-elf`). +* Spurious empty-target warning. + +## 0.8.2 (2026-07-22) + +### Добавлено + * **Compile progress `[N/M]`** — live TTY status line (`compile pkg v0.1.0 [12/41]`) so long mono-package builds do not look hung. * **DCR status style** — fixed-width verbs: `project`, `compile`, `dep`, `ready`, `pack`, `done`, `run`. * **Cargo feature `archive`** — optional FAT packing via `fatfs` (`cargo build --features archive`). Release CI builds with the feature; without it `[archive]` fails with a clear message. * **Tests** — `flat_bin_nasm_build`, package `build.target` without CLI `--target`, stricter workspace `clean --all`. * **CI expansion** — unit + integration on Linux/macOS/Windows, archive feature job, rust-cache, clippy default + all-features (see `.github/workflows/ci.yml`). -### Изменено: +### Изменено * **No forced host triple from CLI** — without `--target`, package/member `build.target` is honored (bare-metal / ISO `post_steps` paths). * **Relative include/lib flags** (`-I`, `-i`, `-isystem`, `-idirafter`, `-L`, `-T`) absolutized against the package root under workspace builds. @@ -25,7 +47,7 @@ sidebar_label: Список изменений ## 0.8.1 (2026-07-20) -### Добавлено +### Added * **`build.kind = "flat-bin"`** — raw binary (default `.bin`) for OS-dev payloads: * **NASM** — `-f bin` → `\.bin` @@ -36,7 +58,7 @@ sidebar_label: Список изменений * **`[archive]` section** — FAT12/16/32 disk images after build (`output`, `format`, `size`, `offset`, `label`, `bootsector`, `layout`). From 0.8.2 requires feature `archive`. * **Single-file `build.roots`** — a root may be a single source or header file, not only a directory. -### Изменено +### Changed * **`--force`** also re-runs `build.steps` and `build.post_steps`. * **`dcr run` on workspace-only root** — if `[run].cmd` is set, run that after build; otherwise delegate to a workspace member. @@ -112,7 +134,7 @@ sidebar_label: Список изменений * `default_target_triple()` now respects `target_env` — Linux (gnu/musl) and Windows (msvc/gnu) use the correct environment instead of hardcoded values. -### Исправлено: +### Исправлено * **macOS Apple Silicon builds failed with `_main` undefined** — `--target=` is now passed to ldflags, not just cflags. `default_target_triple()` uses `std::env::consts::ARCH` on macOS instead of hardcoded `x86_64`. * **GitHub Stars and GPL-3.0 badges not rendering in README** — badge block converted to pure HTML. @@ -155,7 +177,7 @@ sidebar_label: Список изменений * **`tree.rs`, `fmt.rs` и `setup.rs`** — теперь поддерживают аргументы для опции `--help`. * **Команды установки из файла README** — `| bash` → `| sh` для обеспечения совместимости с POSIX. -### Исправлено +### Fixed * **`dcr new \` создает каталог, а затем завершается с ошибкой** — теперь проверка выполняется до начала любых операций с файлами. From e1b32a5161871c8a4ca86c1ffeeb1be49dea31ef Mon Sep 17 00:00:00 2001 From: Dexoron Date: Mon, 3 Aug 2026 21:38:13 +0800 Subject: [PATCH 274/274] New translations changelog.mdx (Ukrainian) [ci skip] --- .../uk-UA/docs/changelog.mdx.mdx | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/docs-crowdin-export/uk-UA/docs/changelog.mdx.mdx b/docs-crowdin-export/uk-UA/docs/changelog.mdx.mdx index 8d2d94c..645cf7c 100644 --- a/docs-crowdin-export/uk-UA/docs/changelog.mdx.mdx +++ b/docs-crowdin-export/uk-UA/docs/changelog.mdx.mdx @@ -4,6 +4,28 @@ sidebar_label: Changelog # Changelog +## 0.8.3 (2026-08-03) + +### Added + +* **`dcr run -- \...`** — cargo-style argument forwarding after a bare `--`\ + (`dcr run --release -- --test_help`). Applies to direct binary runs and `[run].cmd`. +* **Tests** — host target section `ldflags` without CLI `--target`; run-arg forwarding; `split_double_dash` unit tests. + +### Changed + +* **Native builds resolve the host triple** — without `--target` / package `build.target`, host sections such as\ + `[build.x86_64-unknown-linux-gnu]` apply again (`cflags` / `ldflags` / toolchain).\ + Previously the target was empty and those sections were ignored while artifacts already used the host triple path. +* **Empty target** — no more `Unknown target ''` warning. +* **`dcr run --help` / man `dcr-run`** — document `--` forwarding. + +### Fixed + +* **Native artifact paths on Windows and macOS** — without an explicit `--target` / `build.target`, artifacts use `target/\`, so `dcr run` and flat-bin find the build output. +* Target-specific `ldflags` missing on native host builds (e.g. micro-lang + `libsct-elf`). +* Spurious empty-target warning. + ## 0.8.2 (2026-07-22) ### Added