Skip to content

ci: add TypeScript feature matrix radar#4396

Draft
andrewtdiz wants to merge 4 commits into
PerryTS:mainfrom
andrewtdiz:codex/node-compat-feature-matrix
Draft

ci: add TypeScript feature matrix radar#4396
andrewtdiz wants to merge 4 commits into
PerryTS:mainfrom
andrewtdiz:codex/node-compat-feature-matrix

Conversation

@andrewtdiz
Copy link
Copy Markdown
Contributor

@andrewtdiz andrewtdiz commented Jun 4, 2026

Summary

  • add a test-features probe matrix for TypeScript and modern JavaScript compatibility checks
  • add scripts/gen_feature_matrix.py to compare Node 26 stripped-TypeScript output against Perry-compiled output and generate markdown/JSON artifacts
  • wire an advisory scheduled/manual/PR workflow that checks the committed matrix for drift

Fixes #801.

Matrix

  • 22 probes across 14 categories
  • Current baseline: 19 pass / 3 diff
  • Recorded diffs: private static field state, Proxy construct trap mutation, typed-array value reads

Validation

  • env CARGO_BUILD_JOBS=1 RUSTC_WRAPPER= CARGO_PROFILE_RELEASE_LTO=false CARGO_PROFILE_RELEASE_CODEGEN_UNITS=1 cargo build --release -p perry-runtime -p perry
  • python3 scripts/gen_feature_matrix.py --check --node-bin /root/.npm/_npx/bac97da9607b7ef2/node_modules/node/bin/node --perry-bin target/release/perry --report .feature-matrix/feature_matrix.json --generated-output .feature-matrix/feature_matrix.md
  • python3 -m py_compile scripts/gen_feature_matrix.py
  • python3 -c "import pathlib, yaml; yaml.safe_load(pathlib.Path(".github/workflows/feature-matrix.yml").read_text())"
  • git diff --check origin/main..HEAD
  • git diff --check
  • ./scripts/check_file_size.sh

Note: cargo emits existing unused/dead-code warnings in the current tree. The workflow build is scoped to the Perry compiler/runtime targets used by these probes.

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.

compat: auto-generated TypeScript feature matrix

2 participants