1.4 KiB
1.4 KiB
Changelog
All notable changes to cargoxx will be documented in this file.
[Unreleased]
Added
- M0 repo skeleton: hand-written
CMakeLists.txt, bootstrapflake.nix, empty C++23 module units for every component listed inTECH_SPEC.md§1 (util,exec,manifest,lockfile,layout,linkdb,resolver,codegen,cli), root modulecargoxx, and a stubmain.cppthat builds an emptycargoxxbinary. .clang-format(LLVM, 100-column) and.gitignore.SPEC.md,TECH_SPEC.md.- M1 foundation in
cargoxx.util:ErrorCode(numbers perTECH_SPEC.md§4),Error,Result<T> = std::expected<T, Error>, andformat(Error)renderingerror[Ennnn]: ...with optional--> path:line:colandhint:lines.formatlives insrc/util/error.cppas a module implementation unit. Catch2 v3wired throughflake.nix(libc++-built override) and registered in CMake;tests/util_error.cppcovers six format cases viacatch_discover_tests.cargoxx.manifestpublic types (Package,Dependency,BuildSettings,Edition,Manifest) andparse(path)returningResult<Manifest>, backed by toml++ vendored asthird_party/toml.hpp. Unknown keys in[package]/[build]and unknown top-level keys are rejected; reserved fields (description,repository,[dev-dependencies],[features],[workspace]) are accepted.tests/manifest_parse.cppcovers 17 cases.