Skip to content

rust: re-bless macro calls against engine main (gitgalaxy#3643) - #157

Merged
squid-protocol merged 1 commit into
mainfrom
claude/rust-macro-calls-rebless
Sep 26, 2026
Merged

squid-protocol merged 1 commit into
mainfrom
claude/rust-macro-calls-rebless

Conversation

@squid-protocol

Copy link
Copy Markdown
Owner

Summary

This is the re-bless owed by squid-protocol/gitgalaxy#3726 (fixes squid-protocol/gitgalaxy#3643), which carried rosetta:rebless-owed. Under calls_out contract C3, a macro invocation is a call to its name. Engine main's new CALLS_OUT_RUST now captures name!(, so two Rust cells move:

file → function calls_out_to before after
a.rs → probe_test [] ["assert", "assert_eq"]
b.rs → probe_telemetry [] ["info", "error"]

These are exactly the calls docs/calls_out_truth.json listed as Rust's macros known gap. So calls_out_truth.json changes too:

  • The macros known gap is closed.
  • The four macro calls join periphery for probe_test and probe_telemetry. I read them from the source (a.rs:13-14, b.rs:13-14), not from engine output.
  • The gap entry's other sentence ("entry's a::probe_globals(...) is a real cross-file edge") isn't about macros, so it moves to note rather than being lost.

The manifest's notes gets a dated entry. No ledger entry changes.

Tool note: tools/rebless.py refused to write because its round-trip check expects ensure_ascii=False. data/rust/expected_signals.json, like most manifests, is written escaped, with —. I applied the same two cells by hand in the file's own format (indent=2, ensure_ascii=True, trailing newline), so the diff contains only the moved cells and the note. rebless.py's format check is out of step with the corpus for about 29 manifests. That's a separate fix.

Cross-repo

Verification (against engine main a285b90f)

$ python tools/verify_language.py rust --engine <gitgalaxy@main>   -- PASS rust: 92 assertions across 4 files
$ python tools/check_calls_out_truth.py rust                         -- PASS rust
$ python tools/check_calls_out_truth.py --all                        -- all PASS
$ python tools/ledger_orphan_check.py --ci                           -- no new orphan tokens

🤖 Generated with Claude Code

https://claude.ai/code/session_01GCpfMCUMpco98QGbsuv2sr


Generated by Claude Code

A macro invocation is a call to its name (calls_out contract C3). Engine
main's CALLS_OUT_RUST now sees `name!(`, so:
- a.rs probe_test: calls_out_to [] -> [assert, assert_eq]
- b.rs probe_telemetry: calls_out_to [] -> [info, error]

docs/calls_out_truth.json: the rust `macros` known gap is closed; the four
macro calls join `periphery` (read from a.rs:13-14, b.rs:13-14), and the
gap's other sentence (a::probe_globals is a real cross-file edge) moves to
`note`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GCpfMCUMpco98QGbsuv2sr
@squid-protocol
squid-protocol merged commit f7eee33 into main Sep 26, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

calls_out (rust): macros name!( and turbofish name::<T>( missed; match/let patterns counted as calls

2 participants