Skip to content

compiler: gate capability-bearing module families - #3428

Closed
adilalperenciftci wants to merge 1 commit into
aether-lang-dev:mainfrom
adilalperenciftci:fix/emit-lib-capability-registry
Closed

adilalperenciftci wants to merge 1 commit into
aether-lang-dev:mainfrom
adilalperenciftci:fix/emit-lib-capability-registry

Conversation

@adilalperenciftci

Copy link
Copy Markdown
Contributor

Summary

I traced the capability-empty gap to two divergent exact-name classifiers. Alias modules, nested HTTP modules, UDP, dynamic loading, and foreign-language host modules were therefore treated as capability-free even though they expose the same authority as the gated roots.

This change:

  • centralizes module classification in one boundary-aware registry shared by --emit=lib and ae inspect;
  • classifies std.file and std.dir as fs;
  • classifies std.udp and nested std.http.* modules as net;
  • classifies std.dl as os;
  • classifies contrib.host.* as extern;
  • keeps exact opt-in behavior through --with=fs,net,os,extern and updates the embedding documentation.

Verification

  • BEFORE: six capability-bearing imports compiled without an opt-in; the negative foreign-host opt-in case also failed.
  • AFTER: emit_lib_banned: 12 passed, 0 failed.
  • AFTER: emit_lib_with_capability: 35 passed, 0 failed.
  • ae_inspect: passed.
  • make test: 634 passed, 0 failed on Ubuntu VM.
  • make check-docs: passed.
  • make check-changelog: passed.

The full VM language sweep reached 1931 passed, 11 failed, and 41 skipped. The failures were confined to the VM's unavailable TLS/compression backends, package-mirror fixtures, and the existing std.zip runtime failure; both changed integration targets passed in that sweep.

Signed-off-by: Adil Alperen Çiftci <adilalperenciftci@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 29, 2026 08:11

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

@paul-hammant

Copy link
Copy Markdown
Collaborator

Thanks, reviewed and folded into the batch #3456 with your authorship kept on the commit. This PR will be closed when #3456 merges.

🤖 Generated with Claude Code

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.

3 participants