Skip to content
Merged
Show file tree
Hide file tree
Changes from 10 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 0 additions & 6 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -1,9 +1,3 @@
[unstable]
codegen-backend = true

[profile.dev]
codegen-backend = "cranelift"

[target.x86_64-unknown-linux-gnu]
linker = "clang"
rustflags = ["-C", "link-arg=-fuse-ld=mold"]
7 changes: 7 additions & 0 deletions .rustfmt.toml
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
# Canonical rustfmt configuration for the estate. In a consuming
# repository this file lives at the root as `.rustfmt.toml`; keep it
# there, aligned with canon (the rust-rustfmt-baseline rule FMT-001
# compares the parsed keys).
#
# `unstable_features = true` means rustfmt must run on the nightly channel;
# the rust-rustfmt-baseline rule (FMT-002) checks for that evidence.
unstable_features = true
comment_width = 100
format_code_in_doc_comments = true
Expand Down
23 changes: 23 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -372,3 +372,26 @@ The following tooling is available in this environment:

These practices help maintain a high-quality codebase and facilitate
collaboration.

## Fast development builds

`make dev-build` and `make dev-test` compile with the opt-in Cranelift
backend and the mold linker configured in `tools/dev-fast/config.toml`.
They require a nightly toolchain and, on Linux, a `mold` binary on the
`PATH`. The fragment is passed explicitly with `--config`, so release,
coverage, and verification builds are unaffected; never copy its contents
into `.cargo/config.toml`, which Cargo applies to every build.

## Standard development path

The dev-fast profile is the standard development path, not a side path:
`make build`, `make test`, `make lint`, and `make typecheck` all pass
`--config tools/dev-fast/config.toml` to Cargo. An agent or human calling
`cargo build`, `cargo test`, `cargo clippy`, `cargo check`, or `cargo doc`
directly for a development build, test, lint, or typecheck run must pass
that same `--config` flag, or the run will use a different codegen
backend and linker than `make` does. The fragment must never be applied
to coverage, release, or verification builds. Mixing direct-cargo and
`make` invocations without the flag thrashes the incremental build
cache, because Cargo fingerprints the codegen backend and the two runs
produce different fingerprints for what looks like the same build.
299 changes: 299 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 14 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,10 @@ allow_attributes = "deny"
allow_attributes_without_reason = "deny"
blanket_clippy_restriction_lints = "deny"
cognitive_complexity = "deny"
disallowed_methods = "deny"
needless_pass_by_value = "deny"
implicit_hasher = "deny"
missing_assert_message = "deny"

# 2. debugging leftovers
dbg_macro = "deny"
Expand Down Expand Up @@ -83,7 +85,19 @@ error_impl_error = "deny"
result_large_err = "deny"

[lints.rust]
unknown_lints = "deny"
renamed_and_removed_lints = "deny"
unsafe_code = "forbid"
missing_docs = "deny"

[lints.rustdoc]
missing_crate_level_docs = "deny"
broken_intra_doc_links = "deny"
private_intra_doc_links = "deny"
bare_urls = "deny"
invalid_html_tags = "deny"
invalid_codeblock_attributes = "deny"
unescaped_backticks = "deny"

[dev-dependencies]
rstest = "0.26.1"
Loading
Loading