prometeu-studio/docs/pbs/pull-requests/PR-05.0.5-synthetic-stdlib-fileid-via-filetable.md
2026-03-24 13:42:29 +00:00

1.7 KiB

PR-05.0.5 - Synthetic Stdlib FileId via FileTable

Briefing

InterfaceModuleLoader hoje aloca FileId sintetico por AtomicInteger.

Esta PR move a alocacao de arquivos sinteticos para o FileTable, mantendo uma unica autoridade de identidade de arquivo.

Motivation

Dor que esta PR resolve

  1. Risco de colisao/deriva de FileId fora da infraestrutura oficial.
  2. Arquivos sinteticos ficam fora da trilha normal de metadata de source.
  3. Diagnosticos e spans de stdlib perdem consistencia de origem no pipeline.

Target

Fazer todo FileId (incluindo sintetico) vir do FileTable.

Scope

  1. InterfaceModuleLoader.
  2. Contexto de carga de stdlib/interface para suportar registro no FileTable.
  3. Source handle sintetico minimo para parser/diagnostico.

Non-Goals

  1. Nao altera conteudo dos modulos stdlib.
  2. Nao altera parse mode de interface.

Method

O que deve ser feito explicitamente

  1. Criar SourceHandle sintetico para fontes carregadas da stdlib/interface.
  2. Registrar cada handle no FileTable e usar FileId retornado.
  3. Remover contador AtomicInteger de InterfaceModuleLoader.
  4. Preservar caminho lógico para mensagens (ex.: origem virtual stdlib).

Acceptance Criteria

  1. InterfaceModuleLoader nao usa mais new FileId(...).
  2. Todo FileId de stdlib/interface existe no FileTable.
  3. Diagnosticos em fontes sinteticas mantem atribuicao consistente.

Tests

  1. Teste de carga de interface garantindo que FileId sintetico foi registrado no FileTable.
  2. Teste de span/diagnostico para arquivo sintetico.

Affected Documents

  1. docs/pbs/specs/11. AST Specification.md
  2. docs/pbs/specs/13. Lowering IRBackend Specification.md

Open Questions

Sem bloqueios arquiteturais.