From 5c69a02973a0222a52b7a7231249de8a075e6c20 Mon Sep 17 00:00:00 2001 From: bQUARKz Date: Mon, 9 Mar 2026 16:09:50 +0000 Subject: [PATCH] implements PR-09.2: migrate PBS frontend lowering to ModuleId-only --- .../compiler/pbs/PbsFrontendCompiler.java | 40 +------------------ .../services/PBSFrontendPhaseService.java | 13 +----- 2 files changed, 3 insertions(+), 50 deletions(-) diff --git a/prometeu-compiler/frontends/prometeu-frontend-pbs/src/main/java/p/studio/compiler/pbs/PbsFrontendCompiler.java b/prometeu-compiler/frontends/prometeu-frontend-pbs/src/main/java/p/studio/compiler/pbs/PbsFrontendCompiler.java index 3286f13d..e5b71635 100644 --- a/prometeu-compiler/frontends/prometeu-frontend-pbs/src/main/java/p/studio/compiler/pbs/PbsFrontendCompiler.java +++ b/prometeu-compiler/frontends/prometeu-frontend-pbs/src/main/java/p/studio/compiler/pbs/PbsFrontendCompiler.java @@ -79,7 +79,6 @@ public final class PbsFrontendCompiler { diagnostics, sourceKind, ModuleId.none(), - "", ReadOnlyList.empty(), hostAdmissionContext, nameTable); @@ -93,7 +92,7 @@ public final class PbsFrontendCompiler { final FileId fileId, final PbsAst.File ast, final DiagnosticSink diagnostics) { - return compileParsedFile(fileId, ast, diagnostics, SourceKind.PROJECT, "", HostAdmissionContext.permissiveDefault()); + return compileParsedFile(fileId, ast, diagnostics, SourceKind.PROJECT, HostAdmissionContext.permissiveDefault()); } public IRBackendFile compileParsedFile( @@ -101,7 +100,7 @@ public final class PbsFrontendCompiler { final PbsAst.File ast, final DiagnosticSink diagnostics, final SourceKind sourceKind) { - return compileParsedFile(fileId, ast, diagnostics, sourceKind, "", HostAdmissionContext.permissiveDefault()); + return compileParsedFile(fileId, ast, diagnostics, sourceKind, HostAdmissionContext.permissiveDefault()); } public IRBackendFile compileParsedFile( @@ -116,26 +115,6 @@ public final class PbsFrontendCompiler { diagnostics, sourceKind, ModuleId.none(), - "", - ReadOnlyList.empty(), - hostAdmissionContext, - new NameTable()); - } - - public IRBackendFile compileParsedFile( - final FileId fileId, - final PbsAst.File ast, - final DiagnosticSink diagnostics, - final SourceKind sourceKind, - final String moduleKey, - final HostAdmissionContext hostAdmissionContext) { - return compileParsedFile( - fileId, - ast, - diagnostics, - sourceKind, - ModuleId.none(), - moduleKey, ReadOnlyList.empty(), hostAdmissionContext, new NameTable()); @@ -147,7 +126,6 @@ public final class PbsFrontendCompiler { final DiagnosticSink diagnostics, final SourceKind sourceKind, final ModuleId moduleId, - final String moduleKey, final ReadOnlyList modulePool, final HostAdmissionContext hostAdmissionContext, final NameTable nameTable) { @@ -157,7 +135,6 @@ public final class PbsFrontendCompiler { diagnostics, sourceKind, moduleId, - moduleKey, modulePool, hostAdmissionContext, nameTable, @@ -172,7 +149,6 @@ public final class PbsFrontendCompiler { final DiagnosticSink diagnostics, final SourceKind sourceKind, final ModuleId moduleId, - final String moduleKey, final ReadOnlyList modulePool, final HostAdmissionContext hostAdmissionContext, final NameTable nameTable, @@ -225,7 +201,6 @@ public final class PbsFrontendCompiler { ast, effectiveSupplementalTopDecls, effectiveModuleId, - moduleKey, effectiveReservedMetadata, effectiveNameTable, diagnostics, @@ -261,12 +236,10 @@ public final class PbsFrontendCompiler { final PbsAst.File ast, final ReadOnlyList supplementalTopDecls, final ModuleId moduleId, - final String moduleKey, final IRReservedMetadata reservedMetadata, final NameTable nameTable, final DiagnosticSink diagnostics, final ReadOnlyList importedCallables) { - final var normalizedModuleKey = moduleKey == null ? "" : moduleKey; final var normalizedModuleId = moduleId == null ? ModuleId.none() : moduleId; final var hostByMethodName = new HashMap>(); for (final var hostBinding : reservedMetadata.hostMethodBindings()) { @@ -405,7 +378,6 @@ public final class PbsFrontendCompiler { } final var loweringContext = new ExecutableLoweringContext( normalizedModuleId, - normalizedModuleKey, diagnostics, nameTable, hostByMethodName, @@ -1341,7 +1313,6 @@ public final class PbsFrontendCompiler { private static final class ExecutableLoweringContext { private final ModuleId moduleId; - private final String moduleKey; private final DiagnosticSink diagnostics; private final NameTable nameTable; private final Map> hostByMethodName; @@ -1359,7 +1330,6 @@ public final class PbsFrontendCompiler { private ExecutableLoweringContext( final ModuleId moduleId, - final String moduleKey, final DiagnosticSink diagnostics, final NameTable nameTable, final Map> hostByMethodName, @@ -1372,7 +1342,6 @@ public final class PbsFrontendCompiler { final IntrinsicTable intrinsicIdTable, final Map localSlotByNameId) { this.moduleId = moduleId == null ? ModuleId.none() : moduleId; - this.moduleKey = moduleKey; this.diagnostics = diagnostics; this.nameTable = nameTable; this.hostByMethodName = hostByMethodName; @@ -1390,10 +1359,6 @@ public final class PbsFrontendCompiler { return moduleId; } - private String moduleKey() { - return moduleKey; - } - private DiagnosticSink diagnostics() { return diagnostics; } @@ -1503,7 +1468,6 @@ public final class PbsFrontendCompiler { public record ImportedCallableSurface( ModuleId moduleId, - String moduleKey, String callableName, int arity, int returnSlots, diff --git a/prometeu-compiler/frontends/prometeu-frontend-pbs/src/main/java/p/studio/compiler/services/PBSFrontendPhaseService.java b/prometeu-compiler/frontends/prometeu-frontend-pbs/src/main/java/p/studio/compiler/services/PBSFrontendPhaseService.java index 9714bd60..360e4505 100644 --- a/prometeu-compiler/frontends/prometeu-frontend-pbs/src/main/java/p/studio/compiler/services/PBSFrontendPhaseService.java +++ b/prometeu-compiler/frontends/prometeu-frontend-pbs/src/main/java/p/studio/compiler/services/PBSFrontendPhaseService.java @@ -178,7 +178,6 @@ public class PBSFrontendPhaseService implements FrontendPhaseService { diagnostics, parsedSource.sourceKind(), parsedSource.moduleId(), - renderModuleKey(moduleTable, parsedSource.moduleId()), canonicalModulePool, ctx.hostAdmissionContext(), nameTable, @@ -430,7 +429,6 @@ public class PBSFrontendPhaseService implements FrontendPhaseService { if (importedTopDeclsByName == null) { continue; } - final var importedModuleKey = renderModuleKey(moduleTable, importedModuleId); importedReservedMetadata = mergeReservedMetadata( importedReservedMetadata, reservedMetadataByModule.getOrDefault(importedModuleId, IRReservedMetadata.empty())); @@ -449,7 +447,6 @@ public class PBSFrontendPhaseService implements FrontendPhaseService { importedCallableKeys, new PbsFrontendCompiler.ImportedCallableSurface( importedModuleId, - importedModuleKey, localName + "." + method.name(), method.parameters().size(), returnSlotsFor(method), @@ -463,7 +460,6 @@ public class PBSFrontendPhaseService implements FrontendPhaseService { importedCallableKeys, new PbsFrontendCompiler.ImportedCallableSurface( importedModuleId, - importedModuleKey, localName, functionDecl.parameters().size(), returnSlotsFor(functionDecl), @@ -672,7 +668,7 @@ public class PBSFrontendPhaseService implements FrontendPhaseService { final ArrayList importedCallables, final Set importedCallableKeys, final PbsFrontendCompiler.ImportedCallableSurface importedCallableSurface) { - final var callableKey = importedCallableSurface.moduleKey() + final var callableKey = importedCallableSurface.moduleId().getIndex() + "#" + importedCallableSurface.callableName() + "#" @@ -805,13 +801,6 @@ public class PBSFrontendPhaseService implements FrontendPhaseService { return moduleTable.register(new ModuleReference(project, pathSegments)); } - private String renderModuleKey( - final ModuleTable moduleTable, - final ModuleId moduleId) { - final var moduleReference = moduleTable.get(moduleId); - return moduleReference.project() + ":" + String.join("/", moduleReference.pathSegments().asList()); - } - private ReadOnlyList emitModulePool(final ModuleTable moduleTable) { final var pool = new ArrayList(moduleTable.size()); for (final var moduleId : moduleTable.identifiers()) {