Repository navigation
perl: say which perl version is required, once, where it is required - #40
Merged
Merged
Conversation
On perl 5.34 loading this port reports
Can't locate builtin.pm in @inc (you may need to install the builtin
module) ... at lib/Voxgig/Plugin/Types.pm line 25.
and then unwinds through a BEGIN failure for every module on the way down —
eight of them when the library is loaded through a host SDK — naming each
file and never the requirement. `builtin` is core from 5.36 and does not
exist before it, so there is no module to install and the advice is a dead
end.
The README already states the minimum. Nothing in the CODE did, so the one
person who most needs to be told read the least useful message. A version
check now states it in one line, at the one file that depends on it:
`is_bool` is the only way perl can tell a true boolean from the number 1,
and `jsontype` is the whole of this port's answer to having no JSON types.
The runner carries the check too. `Corpus.pm` loads `builtin` BEFORE it
loads the library, so the suite would reach the cryptic error first and the
library's own message never.
A BEGIN block rather than `use v5.36`, which would also switch on that
release's feature bundle and change how the rest of each file compiles.
Verified on this machine's 5.34 — both files now die with the intended
sentence instead of the cascade — and the block itself parses clean. CI runs
this port on the image's perl 5.38, which is where the change proves it did
not break a supported interpreter.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01619YNVDt9KUSx25NZA6ADi
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
rjrodger
added a commit
to voxgig/sdkgen
that referenced
this pull request
Sep 11, 2026
A new shared tag across voxgig/struct, voxgig/omni, voxgig/plugin and
voxgig/sekreto, so "what version is this SDK vendoring" keeps one answer
instead of four. Every route re-read at the new tag with `make vendor`;
`make vendor-check` is clean at 70 routes.
TWO CONTENT CHANGES in 791 files. The rest is the provenance header, which
stamps the tag on every vendored file and therefore moves with it:
plugin/perl Voxgig::Plugin::Types states its perl 5.36 minimum in code.
Loading it on 5.34 reported `Can't locate builtin.pm` and
then unwound through a BEGIN failure for every module on the
way down — eight of them through a host SDK — naming each
file and never the requirement. `builtin` is core from 5.36,
so there was no module to install and the advice was a dead
end. Fixed upstream (voxgig/plugin#40), which is where the
file lives; a silent edit to the vendored copy is what the
manifest guard exists to catch.
struct 0.3.5 -> 0.3.6 and struct-js 0.1.5 -> 0.1.6, both of which
are the `// VERSION:` comment and nothing else.
The generated-SDK perl lane now sees the new sentence rather than the bare
`Can't locate`, so UNUSABLE matches both: an SDK generated before this tag
still reports the old one.
Golden manifest regenerated for the moved hashes. 1254 pass / 0 fail /
8 skipped.
Claude-Session: https://claude.ai/code/session_01619YNVDt9KUSx25NZA6ADi
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
On perl 5.34, loading this port reports
and then unwinds through a
BEGINfailure for every module on the way down — eight of them when the library is loaded through a host SDK — naming each file and never the requirement.builtinis core from 5.36 and does not exist before it, so there is no module to install and the advice is a dead end.perl/README.mdalready states the minimum. Nothing in the code did, so the one person who most needs to be told read the least useful message.A version check now states it in one line, at the one file that depends on it —
is_boolis the only way perl can tell a true boolean from the number 1, andjsontypeis the whole of this port's answer to having no JSON types:The runner carries the check too:
Corpus.pmloadsbuiltinbefore it loads the library, so the suite would reach the cryptic error first and the library's own message never.A
BEGINblock rather thanuse v5.36, which would also switch on that release's feature bundle and change how the rest of each file compiles.How this surfaced
This library is vendored into
@voxgig/sdkgen, whose generated-SDK lane runs the perl secrets suite. On a 5.34 developer machine that lane reported "perl secrets suite failed" — for a toolchain gap, not a defect. sdkgen now skips it visibly (sdkgen#136), and this is the half of the fix that belongs here.Verification
make scan-proseok. CI runs this port on the image's perl 5.38, which is where the change proves it did not break a supported interpreter.🤖 Generated with Claude Code
https://claude.ai/code/session_01619YNVDt9KUSx25NZA6ADi