chore: bump the pinned Perry to 23a211383 (lands #8948 — Linux throw/catch across modules) - #22
Conversation
…catch across modules) perry-main.lock: 504013308 -> 23a211383 (2026-08-28). Version string still 0.5.1519. In the range: - #8942: module-unique names for promoted string constants (the ELF `multiple definition of .str.N` collision between split modules, and a latent ld64 merge of different modules' strings on macOS) and -lm/-lpthread /-ldl on Perry's own Linux dylib link. - #8948: the compact stack-map rewrite kept the `.hidden`/`.weak` directives for `DW.ref.perry_eh_personality`; without them GNU ld dropped every object's personality reference but the first and any caught `throw` in a multi-module Linux program called a junk personality pointer. With this pin the Next fixture compiles, links, loads and serves on Linux; the three-app in_process table reads 200/200/200 on both platforms. Claude-Session: https://claude.ai/code/session_01UZJbhb2FTuakurTHPAKQgd
|
Important Review skippedReview was skipped due to path filters ⛔ Files ignored due to path filters (1)
CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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. Comment |
Why
Two Linux-only Perry defects sat behind #8546 once the class-registry fix landed; both are on Perry
mainnow:.str.Nper module → strongGLOBALduplicates across split modules under GNU ld (on macOS ld64 silently merged different modules' strings — a latent miscompile); Perry's Linux dylib link lacked-lmgc_map.rs's compact stack-map rewrite swallowed.hidden/.weakonDW.ref.perry_eh_personality; GNU ld kept one COMDAT group and dropped the other objects' references → 59/60 CIEs with junk personality pointers → every caughtthrowin a multi-module Linux program faulted in_Unwind_RaiseExceptionperry-main.lock:504013308→23a211383. Toolchain parity (nightly-2026-08-20) andrusqlite0.39 unchanged.Verification — Linux (Ubuntu 24.04, 16 cores, Perry built from
23a211383, production link flags, clean object cache)Fixture compile 263 s. Harness as in #18/#19 (
COOP_BENCH_REQUEST_PATH=/api/benchmark COOP_BENCH_EXPECT_BODY=checksum COOP_BENCH_EXECUTION_MODE=in_process):preload_concurrency=1preload_concurrency=4PERRY_GC_SCHEDULE_SEED=12345 PERRY_GC_SCHEDULE_RATE=0.5 PERRY_GC_PROTECT_FROMSPACE=1Every body:
{"runtime":"next","iterations":100,"checksum":3726872593}. This is the first time the Next fixture has served on Linux at all.Verification — macOS
Same pin, providers rebuilt with the ext-wrapper step, fixture compile 557 s (M1, host shared with other work):
preload_concurrency=1preload_concurrency=4Both platforms now agree, which closes perry#8546 end to end.
https://claude.ai/code/session_01UZJbhb2FTuakurTHPAKQgd