Class Ek9CoreModules

java.lang.Object
org.ek9lang.compiler.support.Ek9CoreModules

public final class Ek9CoreModules extends Object
THE predicate for "is this EK9 core" - the modules only the compiler bootstrap may define. Use this; do not test a module name or fully qualified name against an "org.ek9." prefix.

The set is exact: org.ek9.lang (introspected from the Java-backed runtime) and org.ek9.math (reserved). SymbolDefinition refuses any non-bootstrap source that defines one of them, so membership here IS provenance. The org.ek9. namespace as a whole is deliberately NOT core: official libraries written in EK9 and published under it are ordinary code and get every quality check. Who may PUBLISH under org.ek9 is a supply-chain rule enforced by the secure repository, not by the compiler.

Consolidated 2026-09-25 (front-end audit FE13) from ~20 startsWith("org.ek9.") copies - one without the trailing dot - which exempted any module under the prefix, user code included, from E11065/E11066/E11067, cohesion, coupling, data-clump and capability checks. A new bootstrap module is added HERE.

  • Field Details

    • NAMES

      public static final Set<String> NAMES
      The exact names of the core modules.
  • Method Details

    • isCoreModule

      public static boolean isCoreModule(String moduleName)
      True when moduleName is one of the core modules.
    • isCoreFullyQualifiedName

      public static boolean isCoreFullyQualifiedName(String fullyQualifiedName)
      True when the module part of a fully qualified name (module::Name) is a core module.