workflow: scrub residual JOURNAL/journal refs missed in the first sweep
A re-grep found 15 live references (excluding docs/specs/ and
docs/plans/, which stay historical) the previous two commits
missed — all in source comments, doctests, bench helpers, and one
agent file.
Per-file:
- crates/ail/src/main.rs: typeclass-coherence diagnostic comment
pointed at "the JOURNAL queue's wording" — points at
design/contracts/typeclasses.md alone.
- crates/ailang-prose/src/lib.rs: `//!` header referred to
docs/JOURNAL.md "Pinned: human-readable prose surface" —
retargeted to design/contracts/authoring-surface.md.
- crates/ailang-check/src/lib.rs: bugfix tag + "see iter
method-dispatch-refactor journal" prose collapsed to a clean
rationale paragraph; the canonical shape is stated inline.
- crates/ailang-surface/tests/prelude_decouple_carve_out_pin.rs:
"(d) record the rationale in a per-iter journal" →
"(d) record the rationale in the commit body".
- crates/ailang-surface/tests/prelude_module_hash_pin.rs: header
collapsed (pd.2/pd.3 milestone narrative dropped — the test's
purpose is self-evident from its body); both "per-iter journal"
drift-instructions point at the commit body.
- runtime/rc.c: "bench numbers in JOURNAL 18f.2" →
"original profiling bench numbers".
- bench/run.sh: two "JOURNAL entry" comments → "commit body".
- bench/architect_sweeps.sh: header rewritten (cross-ref to the
design-md-consolidation milestone commits, not a JOURNAL entry).
Sweep-4 extended with two new anti-regrowth phrases
("see the per-iter journal", "in a per-iter journal") so journal
prose can't grow back into design/contracts/ silently.
- skills/audit/agents/ailang-architect.md: "unlike a journal it
lives on main" → "since it lives on main".
- ail-embed/src/bin/timeshard_runner.rs: "records it in the
close-out journal" → "prints it to stderr".
- ail-embed/tests/timeshard.rs: two "journal-only friction timing"
→ "stderr-only friction timing".
Verification (after the edit):
- `grep -rin '\bjournal\b'` against live tree returns exactly two
hits: the Sweep-4 regex itself (intentional — TABU phrases that
prevent regrowth) and the PHRASES array in design_index_pin.rs
(intentional — the same regrowth guard at test level). Both are
load-bearing negative assertions.
- `bash bench/architect_sweeps.sh` exits 0 ("All five sweeps
clean") — no design/-side regrowth.
- `cargo build --workspace` green; `cargo test --workspace` green.
This commit is contained in:
@@ -8,8 +8,8 @@
|
|||||||
//! one-ctx-per-thread — a shared-ctx design is `error[E0277]`).
|
//! one-ctx-per-thread — a shared-ctx design is `error[E0277]`).
|
||||||
//! Prints, in shard order, `RESULT <idx> <from> <to> <accbits:016x>
|
//! Prints, in shard order, `RESULT <idx> <from> <to> <accbits:016x>
|
||||||
//! <n>`, then one `TIMING total_ticks=<Σn> elapsed_ms=<wall>` line
|
//! <n>`, then one `TIMING total_ticks=<Σn> elapsed_ms=<wall>` line
|
||||||
//! (the friction-harvest observation; the test records it in the
|
//! (the friction-harvest observation; the test prints it to stderr,
|
||||||
//! close-out journal, it is not asserted).
|
//! it is not asserted).
|
||||||
|
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use std::time::Instant;
|
use std::time::Instant;
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
//! is host arithmetic, NOT a kernel property — asserting it
|
//! is host arithmetic, NOT a kernel property — asserting it
|
||||||
//! bit-exact would be WRONG, per the spec).
|
//! bit-exact would be WRONG, per the spec).
|
||||||
//! Plus the global leak-Σ (deterministic since dbd76e5) and a
|
//! Plus the global leak-Σ (deterministic since dbd76e5) and a
|
||||||
//! journal-only friction timing capture (NO bench gate).
|
//! stderr-only friction timing capture (NO bench gate).
|
||||||
//!
|
//!
|
||||||
//! Concrete pin: EURUSD, months 2017-03 / 2017-04 / 2017-05 (all
|
//! Concrete pin: EURUSD, months 2017-03 / 2017-04 / 2017-05 (all
|
||||||
//! present on /mnt, contiguous, no gaps — recon-verified). data-server
|
//! present on /mnt, contiguous, no gaps — recon-verified). data-server
|
||||||
@@ -217,7 +217,7 @@ fn timeshard_boundary_invisibility_and_leak_free() {
|
|||||||
"globally leak-free: Σallocs==Σfrees across {seen} stat line(s)"
|
"globally leak-free: Σallocs==Σfrees across {seen} stat line(s)"
|
||||||
);
|
);
|
||||||
|
|
||||||
// Friction harvest: journal-only observation, NO assertion (the
|
// Friction harvest: stderr-only observation, NO assertion (the
|
||||||
// value feeds the P2 batch-crossing decision; it is not a gate).
|
// value feeds the P2 batch-crossing decision; it is not a gate).
|
||||||
if let Some(tl) = stdout.lines().find(|l| l.starts_with("TIMING ")) {
|
if let Some(tl) = stdout.lines().find(|l| l.starts_with("TIMING ")) {
|
||||||
eprintln!("m5.3 friction-harvest: {tl} (Σn={sum_n})");
|
eprintln!("m5.3 friction-harvest: {tl} (Σn={sum_n})");
|
||||||
|
|||||||
@@ -11,15 +11,13 @@
|
|||||||
# Wunschdenken / post-mortem invariant.
|
# Wunschdenken / post-mortem invariant.
|
||||||
#
|
#
|
||||||
# Companion to skills/audit/agents/ailang-architect.md "What you check
|
# Companion to skills/audit/agents/ailang-architect.md "What you check
|
||||||
# / design/ history-anchor regrowth". See JOURNAL 2026-05-10
|
# / design/ history-anchor regrowth". The rationale of each sweep
|
||||||
# ("Milestone close: design-md-consolidation") for the rationale of
|
# regex (Sweeps 1–4: history anchors; Sweep 5: honesty / Wunschdenken)
|
||||||
# each sweep regex; the regexes here are copied verbatim from JOURNAL
|
# lives in the design-md-consolidation milestone commits (2026-05-10).
|
||||||
# entries 12487 (Sweep 1), 12619 (Sweep 2), 12718-12720 (Sweep 3),
|
|
||||||
# and 12840 (Sweep 4).
|
|
||||||
#
|
#
|
||||||
# A non-zero exit is advisory, not authoritative: the architect agent
|
# A non-zero exit is advisory, not authoritative: the architect agent
|
||||||
# reviews each match and decides whether it is a legitimate quote
|
# reviews each match and decides whether it is a legitimate quote
|
||||||
# (e.g. a JOURNAL citation inside a block-quote) or fresh drift.
|
# (e.g. a block-quote citation of a commit body) or fresh drift.
|
||||||
|
|
||||||
set -u
|
set -u
|
||||||
INDEX="design/INDEX.md"
|
INDEX="design/INDEX.md"
|
||||||
@@ -54,7 +52,7 @@ run_sweep "3 (schema SoT)" \
|
|||||||
'^\s*(struct |enum |pub (struct|enum|fn))|whenever the two disagree|ast\.rs is the source of truth'
|
'^\s*(struct |enum |pub (struct|enum|fn))|whenever the two disagree|ast\.rs is the source of truth'
|
||||||
|
|
||||||
run_sweep "4 (workflow + stale cross-references)" \
|
run_sweep "4 (workflow + stale cross-references)" \
|
||||||
'agents/README\.md|ailang-docwriter|Recently lifted|see the JOURNAL queue|later the same day|Sharpened later|closure conversion in JOURNAL'
|
'agents/README\.md|ailang-docwriter|Recently lifted|see the JOURNAL queue|later the same day|Sharpened later|closure conversion in JOURNAL|see the per-iter journal|in a per-iter journal'
|
||||||
|
|
||||||
run_sweep "5 (honesty: wunschdenken + non-citation post-mortem)" \
|
run_sweep "5 (honesty: wunschdenken + non-citation post-mortem)" \
|
||||||
'on the path to|may land in a future|ships in a future iter|[Ww]ill back `Show|[Ww]ill eventually (be|support|back)|[Ii]f/?when [a-z]+ (arrives|lands)|[Aa]n earlier draft of this|previously all diagnostics were|[Ww]hat did change in 20|were retired 20[0-9]{2}-|retired in iter [a-z]|originally listed|\bwas deferred\b|foundation for [a-z]'
|
'on the path to|may land in a future|ships in a future iter|[Ww]ill back `Show|[Ww]ill eventually (be|support|back)|[Ii]f/?when [a-z]+ (arrives|lands)|[Aa]n earlier draft of this|previously all diagnostics were|[Ww]hat did change in 20|were retired 20[0-9]{2}-|retired in iter [a-z]|originally listed|\bwas deferred\b|foundation for [a-z]'
|
||||||
|
|||||||
+3
-3
@@ -8,7 +8,7 @@
|
|||||||
# The bump number minus the gc number is the upper-bound cost of GC.
|
# The bump number minus the gc number is the upper-bound cost of GC.
|
||||||
#
|
#
|
||||||
# Output: a table with gc-median, bump-median, overhead %, and max RSS
|
# Output: a table with gc-median, bump-median, overhead %, and max RSS
|
||||||
# for both modes. Designed to be captured verbatim into a JOURNAL entry.
|
# for both modes. Designed to be captured verbatim into a commit body.
|
||||||
#
|
#
|
||||||
# Requirements: bash, /usr/bin/time -v (GNU coreutils), bc, sort, awk,
|
# Requirements: bash, /usr/bin/time -v (GNU coreutils), bc, sort, awk,
|
||||||
# a release-mode `ail` binary.
|
# a release-mode `ail` binary.
|
||||||
@@ -192,8 +192,8 @@ if [[ -x "$LAT_HARNESS" && -f "$LAT_IMPL_SRC" && -f "$LAT_EXPL_SRC" ]]; then
|
|||||||
"$AIL" build --opt=-O2 --alloc=rc "$LAT_IMPL_SRC" -o "$OUTDIR/bench_latency_implicit_rc" >/dev/null
|
"$AIL" build --opt=-O2 --alloc=rc "$LAT_IMPL_SRC" -o "$OUTDIR/bench_latency_implicit_rc" >/dev/null
|
||||||
|
|
||||||
# The harness prints a multi-line block per arm; we let it speak
|
# The harness prints a multi-line block per arm; we let it speak
|
||||||
# for itself. The orchestrator captures the verbatim output into a
|
# for itself. The orchestrator captures the verbatim output into
|
||||||
# JOURNAL entry like the throughput table above. `--runs 5` runs
|
# the commit body like the throughput table above. `--runs 5` runs
|
||||||
# each arm five times; the harness drops the slowest run and
|
# each arm five times; the harness drops the slowest run and
|
||||||
# reports median + range per cell, matching the throughput
|
# reports median + range per cell, matching the throughput
|
||||||
# table's drop-slowest convention.
|
# table's drop-slowest convention.
|
||||||
|
|||||||
@@ -1099,8 +1099,8 @@ fn workspace_error_to_diagnostic(
|
|||||||
})),
|
})),
|
||||||
),
|
),
|
||||||
// typeclass-coherence diagnostics emitted from
|
// typeclass-coherence diagnostics emitted from
|
||||||
// `workspace::build_registry`. The codes follow the JOURNAL
|
// `workspace::build_registry`. The codes follow the
|
||||||
// queue's wording and the diagnostic-categories section of
|
// diagnostic-categories section of
|
||||||
// `design/contracts/typeclasses.md`.
|
// `design/contracts/typeclasses.md`.
|
||||||
W::OrphanInstance {
|
W::OrphanInstance {
|
||||||
class,
|
class,
|
||||||
|
|||||||
@@ -1699,14 +1699,12 @@ fn check_def(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// bugfix-instance-body-unbound-var (2026-05-13): route each
|
/// Route each `InstanceMethod` body through `check_fn` by wrapping
|
||||||
/// `InstanceMethod` body through `check_fn` by wrapping it in a
|
/// it in a synthetic `FnDef`. The InstanceMethod body is by
|
||||||
/// synthetic `FnDef`. The InstanceMethod body is conventionally a
|
/// convention a `Term::Lam` carrying its own `paramTypes` / `retType`
|
||||||
/// `Term::Lam` (the post-canonical-class-form shape; see iter method-dispatch-refactor journal
|
/// (the canonical class-form shape); we extract its `param_tys` /
|
||||||
/// "instance-method body shape ... existing-convention is `Term::Lam`
|
/// `ret_ty` / `params` / `body` into an `FnDef` shape and reuse the
|
||||||
/// with paramTypes/retType"); we extract its `param_tys` / `ret_ty`
|
/// existing fn-body-check machinery.
|
||||||
/// / `params` / `body` into an `FnDef` shape and reuse the existing
|
|
||||||
/// fn-body-check machinery.
|
|
||||||
///
|
///
|
||||||
/// Class-method substitution: the on-disk Lam's `param_tys` / `ret_ty`
|
/// Class-method substitution: the on-disk Lam's `param_tys` / `ret_ty`
|
||||||
/// reference the class's type parameter directly (e.g. the prelude
|
/// reference the class's type parameter directly (e.g. the prelude
|
||||||
|
|||||||
@@ -15,9 +15,8 @@
|
|||||||
//! effects, `clone`, `reuse-as`, doc strings, type annotations on
|
//! effects, `clone`, `reuse-as`, doc strings, type annotations on
|
||||||
//! signatures and lambdas, the `tail` flag) stays visible.
|
//! signatures and lambdas, the `tail` flag) stays visible.
|
||||||
//!
|
//!
|
||||||
//! See `docs/JOURNAL.md` "Pinned: human-readable prose surface
|
//! See `design/contracts/authoring-surface.md` for the prose-surface
|
||||||
//! (Family 20 candidate)" for the design pinning, and "Iter 20a" for
|
//! invariants this crate must respect.
|
||||||
//! this iter's spec.
|
|
||||||
//!
|
//!
|
||||||
//! # Public API
|
//! # Public API
|
||||||
//!
|
//!
|
||||||
|
|||||||
@@ -24,6 +24,6 @@ fn prelude_ail_json_does_not_exist_on_disk() {
|
|||||||
(b) restore the §C4 (b) entry in carve_out_inventory.rs, \
|
(b) restore the §C4 (b) entry in carve_out_inventory.rs, \
|
||||||
(c) revert the §C4 (b) status marker in \
|
(c) revert the §C4 (b) status marker in \
|
||||||
docs/specs/2026-05-13-form-a-default-authoring.md, and \
|
docs/specs/2026-05-13-form-a-default-authoring.md, and \
|
||||||
(d) record the rationale in a per-iter journal."
|
(d) record the rationale in the commit body."
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +1,7 @@
|
|||||||
//! pd.2/pd.3 (`prelude-decouple` milestone): pin the canonical
|
//! Pin the canonical identity of the parsed prelude as a literal
|
||||||
//! identity of the parsed prelude as a literal hex hash. Updates
|
//! hex hash. Updates intentionally on prelude-content changes
|
||||||
//! intentionally on prelude-content changes (record the why in the
|
//! (record the why in the commit body); accidental drift trips
|
||||||
//! per-iter journal); accidental drift trips immediately.
|
//! immediately.
|
||||||
//!
|
|
||||||
//! pd.2 also carried a `prelude_ail_and_json_parse_to_identical_module`
|
|
||||||
//! cross-form-identity preflight that compared `parse(prelude.ail)`
|
|
||||||
//! against `serde_json::from_str(prelude.ail.json)`. The preflight
|
|
||||||
//! discharged its purpose at pd.2 close (PASSED at hash
|
|
||||||
//! `3abe0d3fa3c11c99`) and was retired in pd.3 alongside the
|
|
||||||
//! `prelude.ail.json` file.
|
|
||||||
|
|
||||||
use ailang_core::workspace::module_hash;
|
use ailang_core::workspace::module_hash;
|
||||||
use ailang_surface::parse_prelude;
|
use ailang_surface::parse_prelude;
|
||||||
@@ -17,12 +10,11 @@ use ailang_surface::parse_prelude;
|
|||||||
fn prelude_parse_yields_canonical_hash() {
|
fn prelude_parse_yields_canonical_hash() {
|
||||||
let m = parse_prelude();
|
let m = parse_prelude();
|
||||||
let h = module_hash(&m);
|
let h = module_hash(&m);
|
||||||
// The expected hex is captured at pd.2-iter close (Step 5 of this task).
|
// The expected hex updates intentionally on prelude-content
|
||||||
// It updates intentionally on prelude-content changes; record the why
|
// changes; record the why in the commit body.
|
||||||
// in the per-iter journal entry.
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
h, "3abe0d3fa3c11c99", // captured at pd.2 iter close
|
h, "3abe0d3fa3c11c99",
|
||||||
"prelude module hash drifted; if intentional, capture the new \
|
"prelude module hash drifted; if intentional, capture the new \
|
||||||
hex below + record the why in the per-iter journal."
|
hex below + record the why in the commit body."
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -89,8 +89,8 @@ static inline ailang_rc_header_t *header_of(void *payload) {
|
|||||||
* a relaxed atomic add on the global null-ctx fallback, a plain
|
* a relaxed atomic add on the global null-ctx fallback, a plain
|
||||||
* `++` on the per-ctx path — negligible relative to the libc
|
* `++` on the per-ctx path — negligible relative to the libc
|
||||||
* malloc/free already on each path,
|
* malloc/free already on each path,
|
||||||
* and the bench numbers in JOURNAL 18f.2 were taken with the counters
|
* and the original profiling bench numbers were taken with the
|
||||||
* compiled in but disabled, so the figures are still valid.
|
* counters compiled in but disabled, so the figures are still valid.
|
||||||
*
|
*
|
||||||
* Atomic (relaxed): a multi-threaded host can drive the null-ctx
|
* Atomic (relaxed): a multi-threaded host can drive the null-ctx
|
||||||
* fallback path concurrently, so these two counters use
|
* fallback path concurrently, so these two counters use
|
||||||
|
|||||||
@@ -75,8 +75,8 @@ If `milestone_scope` is empty, return a structural error and stop.
|
|||||||
warning channel.
|
warning channel.
|
||||||
- **Commit-body truthfulness.** Do the iter and audit commit bodies
|
- **Commit-body truthfulness.** Do the iter and audit commit bodies
|
||||||
in the milestone scope match the diff, or are they optimistic? An
|
in the milestone scope match the diff, or are they optimistic? An
|
||||||
over-claiming commit body is its own kind of drift — and unlike a
|
over-claiming commit body is its own kind of drift — and since it
|
||||||
journal it lives on main, so flagging matters more, not less.
|
lives on main, flagging matters more, not less.
|
||||||
- **design/ history-anchor regrowth.** Run
|
- **design/ history-anchor regrowth.** Run
|
||||||
`bash bench/architect_sweeps.sh` from the repo root. Exit 0 = clean.
|
`bash bench/architect_sweeps.sh` from the repo root. Exit 0 = clean.
|
||||||
Exit 1 = at least one of the five sweeps matched. Sweeps 1-4 are the
|
Exit 1 = at least one of the five sweeps matched. Sweeps 1-4 are the
|
||||||
|
|||||||
Reference in New Issue
Block a user