Repository navigation
Conversation
added 11 commits
October 30, 2026 16:10
One island class in a widely imported module dragged every consumer's top level island-side (Decision A): the export table carried only lowered classes, so the cross-module import fenced at module level with 'not exported by this package'. The export table now carries island classes with the island flag, the way it carries island functions (Refs #641). A consumer binds the class across the boundary as an island-floor class: instantiation and class-as-value go through the namespaced seam (ps_island_mod_def_handle), a native subclass and an except clause naming the class fence their own definition instead of the module level. In split mode a module's own island floor also rides the namespaced seam: the single-namespace seed does not exist, so the calls and handles name the owning module. The per-module seeds run in the order CPython finishes the module bodies, so a seed that imports a sibling finds that sibling's namespace in sys.modules.
…orting one A package re-exports a class (`from ._utils import *`), so the module the import names is not the module that holds the class object. The cross-module island binding used the importing module's name, so the handle and the call looked in a namespace that does not exist. The export entry carries the owner, and the binding uses it. The island class instantiation also returns the class's own handle type, so an annotated destination agrees with the call site.
… native A Stage 2 seed re-executed every top-level import, so a fenced entry module whose import target lowered native died at startup with ModuleNotFoundError: the split seeds one namespace per fenced module and the native sibling has none. The seed now keeps an import only when its target rides the island too (or is not a program module at all). The import is not load-bearing: an island definition that used the native sibling's definition already refused at the island-to-compiled seam. The module-owns-its-floor test now exercises the seam with a real native-to-island call in the entry.
…ntime The bundle compile of a program now stages the runtime pack's CPython headers (--embed-headers), the runtime lock file and the pack's own stdlib zip, so the compiled binary can compile island programs at run time with no Python install, no runtime pack cache and no network. A bundle dependency root can be declared extern (--bundle-exclude), and a missing header directory names the remedy.
tests/test_selfbin.py (marked slow) builds the self-compiled pyscriptc through the cli and runs a hello world compile with no Python on PATH, and mise run selfbin wraps the same build. The runtime-pack reference documents the two-file bundle layout and the external tools the binary still needs.
…emedy The -m pyrefly fallback in a self-compiled binary launches the compiler itself, so the failure surfaced as an argparse usage error. The failure now names PYREFLY_BIN, pip install pyrefly or --skip-check, and the doubled Install one of: in PS0001 is deduplicated.
added 4 commits
November 2, 2026 05:48
Deploying pyscriptc with
|
| Latest commit: |
ded3ed0
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://16845011.pyscriptc.pages.dev |
| Branch Preview URL: | https://work-ytbench.pyscriptc.pages.dev |
added 10 commits
November 2, 2026 05:51
added 18 commits
November 2, 2026 07:27
…o the self-compiled bundle The self-compiled bundle keeps its own carried_modules helper (a pack whose stdlib travels as a zip carries the zip's names), so the merge keeps it and adds the runtime set on top: the check answers the runtime the bundle links, not the compiler host's build.
…he island seed import drop
…e yt-dlp composite lane Both sides repinned the self-host census, so the merge takes the sum: the composite runner and the island seed import drop plus the runtime-linked manifest check land at 3294 self-host fences.
The --bundle-exclude and --embed-headers flags landed without a docs regeneration, so the generated-docs seam reported the CLI reference as out of date.
…compiled bundle The runtime-linked stdlib manifest check adds 7 self-host fences in stdlibzip.py, so the bundle branch's census pin (3278) is stale on the merged tree. The merged tree measures 3285 fences and the same package sum; the pin moves with a comment that names both deltas.
…eed import drop The runtime-linked stdlib manifest check adds 7 self-host fences in stdlibzip.py, so the island-seed branch's census pin (3284) is stale on the merged tree. The merged tree measures 3291 fences and the same package sum; the pin moves with a comment that names both deltas.
…mposite lane The runtime-linked stdlib manifest check adds 7 self-host fences in stdlibzip.py, so the composite lane's census pin had to be recomputed against the merged tree. The merged tree measures 3294 fences and the same package sum; the pin moves with a comment that names every delta.
This branch has not been deployed
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.
yt-dlp composite benchmark, defined before measuring (
.agents/notes/2026-10-30-ytdlp-composite.md) and a runnable script (benchmarks/ytdlp_composite/run.py, docs in the same dir). Stacked onwork/planesplit.Result: FAIL. Geometric mean over 11 dimensions (lower is better, pass needs below 1.0 against both baselines and no dimension worse than 2x):
Min of 7 interleaved samples, VPS, 3.14.9:
--versions--list-extractorssOutput is byte-identical to CPython (timestamp fields masked) and the bundle runs in a clean
debian:trixie-slimcontainer with no Python. It beats B1 on files and disk and ties B2 on speed, but loses on RSS (3.3x B1) and startup (4x B1).Cause: the island seed carries all 1,044 module sources as one 10.6 MB blob that is compiled and executed at startup (about 0.96 s of the 1.0 s
--version). Levers tried: upstream's lazy extractors, minimal stdlib trim, deflated stdlib zip, strip. zstd and upx are excluded by the note since no baseline ships a compressed executable.Next lever: precompile the seed to bytecode and load modules lazily on first import instead of exec-ing everything at startup.