Skip to content

Latest commit

 

History

History
105 lines (86 loc) · 6.89 KB

IMPLEMENTATION_STATUS.md

File metadata and controls

105 lines (86 loc) · 6.89 KB

ProScript implementation status

Informative snapshot — audited 2026-08-28. This document records observed compiler and standard-library evidence. It never overrides the P-/S-/STD- numbered specification. Both inspected implementation workspaces contain uncommitted work, so claims below distinguish committed baselines from current working-tree evidence.

Inspected implementations

Workspace Inspected identity Working-tree state Role
proscript-codex 526bb7c94dbc8b12c06da0b22cfb4cf0e2ea8eed branch main ahead of origin/main with extensive native/performance work in progress primary compiler, native backend/runtime, CLI, LSP, and integrated stdlib
proscript-codex-stdlib-impl 852ede574091daf234554ae4f52a897f60bdaff8 isolated codex/stdlib-implementation branch with one modified runtime file approved standard-library implementation and integration evidence

The specification audit did not modify either implementation workspace and did not rerun their full suites. Test counts below are evidence recorded by their accepted milestone and delivery documents, not a fresh test invocation.

Current architecture

The primary compiler implements this pipeline:

source
  -> lexer and lossless parser
  -> package resolution and constant evaluation
  -> semantic analysis and typed program
  -> independently verified native MIR
  -> authenticated native object/image or in-process native code
  -> native scheduler and runtime

The bytecode crates, verifier, and VM execution tier have been removed from the workspace. Native execution is the sole implementation path, matching P-374. Current macOS arm64 run and package support authenticated products. The inspected working tree contains active Linux final-image and production AOT work, but this snapshot does not claim that target complete.

The compiler's NB37 record accepts a concurrent non-moving collector as the sole native heap and reports 321/321 post-cutover native tests. NB38 accepts the sharded multi-worker scheduler, multi-mutator collection handshake, cross-worker task/channel/Shared/select behavior, resource/cycle cleanup, and failed-worker recovery; its recorded closure gates include 546/546 native library tests and 17/17 Loom models. Collector and scheduler structures are implementation choices except where they discharge observable language rules.

Language baseline coverage

Area Status at inspection Important evidence or boundary
P-000–P-367 / S-000–S-203 frontend and semantics Broadly verified The implementation conformance program records complete parser, resolver, type-checker, diagnostics, resource, concurrency, native-extension, CLI, and LSP passes. External acquisition and serialized dependency interfaces remain outside the decided v1 core.
P-368 collection representation Implemented in current native work Separately allocated stores, sticky sharing, mutation detachment, geometric growth, and hash-backed Map/Set are represented in native runtime work. Performance changes remain active and require retained semantic/value-independence gates.
P-369/P-370 and S-204 map iteration Implemented MapEntry is absent; native MIR/runtime use two-binding key/value iteration and do not promise insertion order. Canonical Debug and JSON retain separate deterministic ordering.
P-371/S-205 default Debug Implemented on the standard-library branch Derived Debug is default for eligible ordinary aggregates; exact Debug(redact)/Debug(skip) and declaring-package manual replacement are exercised. Resources remain excluded from automatic traversal.
P-372 closed numeric families Verified at committed primary HEAD Commit 526bb7c records primitive-only Integer, SignedInteger, UnsignedInteger, and Float bounds plus STD-109 wrapping_to; its conformance records report strict gates green. Serialized interface persistence remains future package-system work.
P-373 named log fields Implemented on the standard-library branch log.field eagerly renders one Debug value and retains only name plus rendered text; std.log accepts Array<log::Field>. Branch integration/review remains separate from specification acceptance.
P-374 native-only compilation Implemented architecture; target breadth incomplete VM/bytecode removed. Authenticated native execution and packaging are complete for the recorded current macOS host; Linux/cross-target final products remain implementation work and must fail closed until admitted.

Standard-library coverage

The isolated standard-library branch and the synchronized delivery matrix record implementation of the decided surface through STD-150, including:

  • fmt, Result companions, I/O, filesystem, paths, time, numerics, conversion, iteration, strings, Unicode 17, encoding, sorting, assertions, randomness, hashing/cryptography, logging, environment, and process management;
  • exact streaming filesystem error propagation and resource cleanup;
  • platform math with specified special cases and accuracy contracts rather than cross-platform final-bit identity;
  • unit-returning assertion panics under the test recovery boundary;
  • default structural Debug with field redaction/omission;
  • named, value-semantic logging fields; and
  • authenticated native bulk/scalar boundaries for operations ordinary source cannot efficiently or safely express.

The delivery matrix labels most entries verified in the isolated branch and pending review/merge into the primary checkout. A decided API is normative even before merge; conversely, branch code does not create an API absent a decided STD entry.

Known implementation boundaries

  • Registry acquisition, transitive external dependency source selection, and a serialized dependency-interface format remain unspecified or unfinished.
  • Current packaged-product evidence is host-specific; other targets must reject unsupported execution or packaging rather than fall back to a VM.
  • The public ps_ffi_v1 source contract is substantial, but final cross-target artifacts, third-party distribution, and broader platform admission remain release work.
  • Networking and HTTP are not in the decided STD-150 library surface even though they are primary future workload packages.
  • Unicode collation, reusable timers, calendar arithmetic, per-task unseeded randomness, and other explicit package omissions remain absent.
  • Active collection, optimizer, native product, Linux loader, and benchmark changes in proscript-codex were read as work in progress and are not treated as accepted language semantics.

Acceptance discipline

A conformance claim requires the evidence classes in FEATURE_MATRIX.md: positive, negative, boundary, cross-feature, and applicable cross-target cases. Historical VM differential tests remain useful migration evidence but are no longer a required v1 tier or semantic authority under P-374.