Skip to content

fix(docs): the my-bindings fixture reads buffers inside a no-GC scope - #12112

Draft
steinybot wants to merge 1 commit into
PerryTS:mainfrom
steinybot:steiny/ci2-doc-fixture
Draft

steinybot wants to merge 1 commit into
PerryTS:mainfrom
steinybot:steiny/ci2-doc-fixture

Conversation

@steinybot

@steinybot steinybot commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

Merge in this order:

  1. fix(docs): the my-bindings fixture reads buffers inside a no-GC scope #12112 (this PR)
  2. fix(ext): ext-crate tests root values through RuntimeHandleScope #12113
  3. fix(runtime): audit the new raw stores and classify addresses with addr_class #12114
  4. ci: register the dark GC witnesses and isolate the new test counters #12115
  5. refactor: split five files back under the 2000-line cap #12116
  6. fix(runtime): root raw handles across calls and correct the handle ratchets #12117
  7. fix(runtime): instanceof never mints a class object for a builtin id #12118
  8. fix(gc_effects): exempt aHash's random-source init from the indirect-call taint #12119
  9. docs: regenerate the API reference #12120
  10. fix(runtime): clear the gates that #12109 left red #12121
  11. fix(runtime): match node on the gap-suite regressions #12149

Problem

CI on main is red again after #12025. Commits since then broke check, warnings, cargo-test, gc-call-effects, self-test-checkers, gap-suite and fourteen lint steps, so no PR can show a green build. Each later failure in a job was hidden behind an earlier one.

Solution

Fix each breakage in its own PR. Each PR targets main and holds every fix above it in the order list, so the last PR is the one that can run fully green. Merge in order: each diff then shrinks to its own fix.

In this PR

Fixes the compile error that stops check and warnings. read_buffer_bytes takes a NoGc scope since #12103, and the docs fixture still called it with one argument.

Changes

  1. Read the buffer inside no_gc (diff). The fixture only needs the length, so it reads it inside the scope.

    let len =
    perry_ffi::bytes::no_gc(|scope| read_buffer_bytes(buf_ptr, scope).map_or(0, <[u8]>::len));
    let summary = format!("stub: {len} bytes");

  2. Link the runtime for the fixture's tests (diff). Its tests call runtime-backed perry-ffi functions. They take perry-ffi with runtime-link as a dev-dependency, as the ext crates do.

    [dev-dependencies]
    perry-ffi = { workspace = true, features = ["runtime-link"] }

🤖 Generated with Claude Code

https://claude.ai/code/session_01V5MSmMLJm6sMdSS5r64ds7

read_buffer_bytes takes a NoGc scope since PerryTS#12103, so the fixture no
longer compiled, and the warnings and check jobs stopped there. The
fixture's tests also call runtime-backed perry-ffi functions, so they
take perry-ffi with runtime-link as a dev-dependency, like the ext
crates.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V5MSmMLJm6sMdSS5r64ds7
@coderabbitai

coderabbitai Bot commented Oct 6, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

This branch has not been deployed

No deployments
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.

1 participant