frostney / frostney/GocciaScript

Make bytecode imports load bundled bytecode modules natively in the VM

Open
#155 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

new feature
Dominant language
Pascal
Stars
20
Forks
3
Avg merge
3d 4h
Merged PRs (30d)
45

Description

Goal

Make VM bytecode imports load bundled bytecode modules natively instead of routing through interpreter disk/source loading.

Scope

  • Add a VM-side module registry/loader for TGocciaBytecodeModule instances stored in .gcbundle.
  • Preserve existing source-backed import behavior outside bundle mode.
  • Keep circular import behavior aligned with current module semantics.

Acceptance Criteria

  • Bytecode modules inside a bundle import each other without touching the filesystem.
  • Circular imports remain stable and deterministic.
  • Existing non-bundle bytecode execution continues to work.
  • Tests cover bundled import, re-export, and circular import behavior.

Stand-alone Value

Improves the bytecode architecture even if no packager CLI is shipped.

Dependencies

Depends on #152, #153, and #154.

Tracking

Tracked by #161.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the VM-side loader and the TGocciaBytecodeModule instances stored in .gcbundle; no specific source files or tests are named. Verify bundled bytecode imports avoid the filesystem, preserve re-exports and circular-import behavior, and leave non-bundle bytecode execution working.

Written by the indexing model from the issue text.

Assessment

Domain
compilers
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.