Skip to content

Remediate verified compiler review findings - #86

Merged
itsfuad merged 12 commits into
mainfrom
fix/review-remediation
Aug 23, 2026
Merged

Remediate verified compiler review findings#86
itsfuad merged 12 commits into
mainfrom
fix/review-remediation

Conversation

@itsfuad

@itsfuad itsfuad commented Aug 23, 2026

Copy link
Copy Markdown
Member

Summary

  • harden manifest, initialization, lockfile, and dependency-cache integrity
  • make callable linkage module-aware and validate executable entry/native-link contracts
  • enforce JSON-RPC framing, URI, rename, and synchronous/asynchronous output lifecycle rules
  • isolate diagnostic formatting and make semantic scope ownership concrete
  • remove state-free pipeline, ignored compiler parameters, duplicated IR source metadata, and write-only graph nodes
  • wake blocked LSP input when a debounced diagnostic write fails

Validation

  • GOCACHE=/tmp/peeper-go-cache CCACHE_DISABLE=1 go test -count=1 ./...
  • GOCACHE=/tmp/peeper-go-cache CCACHE_DISABLE=1 go vet ./...
  • GOCACHE=/tmp/peeper-go-cache CCACHE_DISABLE=1 go test -race -count=1 ./...
  • GOCACHE=/tmp/peeper-go-cache CCACHE_DISABLE=1 bash scripts/build.sh
  • PEEPER_BIN="$PWD/build/bin/peeper" GOCACHE=/tmp/peeper-go-cache CCACHE_DISABLE=1 go test -count=1 ./x_test
  • git diff --check

Architecture constraints

  • missing manifest alone permits standalone compilation; malformed or incompatible manifests remain errors
  • dependency cache publication stays staged, checksum-verified, and rollback-safe
  • raw extern names and entry main remain ABI exceptions to module-aware mangling
  • build/run native linking stays host-only; check/codegen keep supported cross-target behavior
  • LSP session input is closable so asynchronous output failure can interrupt blocked framing reads
  • graph callers continue supplying complete node ID sets, including isolated nodes

Closes #85

itsfuad added 12 commits August 23, 2026 15:05
Harden manifest discovery, init safety, lockfile migration, dependency content pinning, and module-aware callable names.\n\nCentralize atomic publishing, checksum framing, module identity, and callable mangling to preserve validation and ABI invariants without compatibility wrappers.\n\nValidation: go test ./...; bundled x_test; go vet ./...
Reject invalid build and run entrypoints with M0006 before backend artifacts or clang. Keep check mode library-friendly and centralize host-only native link policy for build and run.\n\nEntrypoint validator protects executable ABI and pipeline phase invariants. Native target validator centralizes one policy shared by both native commands.
Reject bodies above 16 MiB before allocation or body reads while accepting the exact limit. Represent successful nil responses explicitly as result null and keep error envelopes result-free.
Parse and emit standards-compliant escaped file URIs across Unix, Windows drive, localhost, and UNC forms. Reject malformed request URIs as invalid params and ignore malformed notification URIs before mutation.\n\nCentralize lexer identifier grammar for rename validation, preserve typed JSON-RPC handler errors, and reject invalid or keyword rename targets before compilation.
Make protocolWriter the serialized output owner so response and diagnostic write failures are retained across synchronous and debounced publication paths.

The writer boundary is required to protect the first-error and cancellation invariant across concurrent diagnostic publications.
Give each diagnostic emitter a dedicated color logger and route syntax highlighting and summaries through the same format owner.

Logger output methods centralize repeated render-and-write behavior across emitter, highlighter, and summary paths.
Make symbols.Scope the concrete owner used by project and compiler phases, remove runtime scope assertions, and delete the obsolete table package without an alias.
Expose pipeline.Run with explicit compiler context and convert receiver helpers to direct functions while preserving phase scheduling and validation behavior.
Drop unused collector type syntax, import source-module context, and runtime target metadata from canonical signatures and all callers.
@itsfuad itsfuad added this to the 0.2 Language Foundations milestone Aug 23, 2026
@itsfuad
itsfuad merged commit 7bbac32 into main Aug 23, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Remediate verified compiler review findings

1 participant