prometeu-studio/docs/pbs/pull-requests/PR-023-pbs-stdlib-environment-resolver-and-loader.md
2026-03-24 13:42:22 +00:00

1.9 KiB

PR-023 - PBS Stdlib Environment Resolver and Interface Loader

Briefing

Para suportar interface modules reais, o frontend precisa resolver project spaces reservados (@core:*, @sdk:*) fora da trilha de dependencias ordinarias.

Esta PR introduz o loader/resolver de stdlib environment com fronteiras explicitas.

Motivation

As specs definem que stdlib e import ordinario possuem resolucoes distintas e sem fallback cruzado. Sem essa separacao, interface modules nao podem ser montados de forma normativa.

Target

  • Abstracoes de stdlib no frontend/compiler pipeline.
  • Fluxo de import para project spaces reservados.

Scope

  • Introduzir StdlibEnvironment, StdlibModuleResolver, StdlibModuleSource, InterfaceModuleLoader.
  • Integrar roteamento no PBSFrontendPhaseService para imports reservados.
  • Manter resolucao ordinaria inalterada para @project:* nao reservado.

Method

  • Implementar resolucao por linha de stdlib selecionada no root manifest.
  • Carregar modulo reservado como fonte PBS real (nao tabela hardcoded).
  • Emitir erro deterministico quando modulo reservado nao for encontrado/carregado.

Acceptance Criteria

  • Imports reservados nao passam por resolver ordinario.
  • Imports ordinarios nao passam por stdlib resolver.
  • Falha de resolucao reservada gera diagnostico deterministico e atribuivel.

Tests

  • Fixture: import reservado resolvido via stdlib resolver.
  • Fixture: modulo reservado inexistente com erro deterministico.
  • Fixture: tentativa de resolver reservado via trilha ordinaria rejeitada.

Non-Goals

  • Validacao semantica de forms reservadas dentro do modulo carregado.
  • Extracao de metadata de builtins/host para lowering.

Affected Documents

  • docs/pbs/specs/5. Manifest, Stdlib, and SDK Resolution Specification.md
  • docs/pbs/specs/8. Stdlib Environment Packaging and Loading Specification.md
  • docs/pbs/specs/12. Diagnostics Specification.md