Skip to content

Js/initial pipeline#1

Closed
olivier-aws wants to merge 12 commits into
mainfrom
js/initial_pipeline
Closed

Js/initial pipeline#1
olivier-aws wants to merge 12 commits into
mainfrom
js/initial_pipeline

Conversation

@olivier-aws
Copy link
Copy Markdown
Owner

No description provided.

andrewmwells-amazon and others added 12 commits February 26, 2026 14:41
Move tryReadTsSource before jsToLaurelCommand so both JS commands can
use it. Replace deprecated String.dropRight with String.dropEnd. Update
jsToLaurelCommand to resolve the .ts source path for metadata so the
Laurel Ion file contains the correct source file URI instead of the Ion
file path.
Create Strata/Languages/Laurel/Analysis.lean with shared infrastructure
for language-specific analysis commands:

- SourceFileInfo: structure for source file path + FileMap
- tryReadSourceFile: unified source file resolution (replaces
  tryReadPythonSource and tryReadTsSource implementations)
- resolveSourcePath: derive metadata path from source info
- formatVcResult/formatVcResults: shared verification result formatting
  with source location display (was duplicated ~25 lines per command)
- analyzeLaurelProgram: shared Laurel → Core → VCG → SMT pipeline
  (was duplicated ~30 lines per command)

Refactor pyAnalyzeLaurelCommand and jsAnalyzeLaurelCommand to use the
shared framework, reducing each from ~55-60 lines to ~15-20 lines.
node_modules is a build artifact generated by npm install. It should
not be committed — package.json and package-lock.json are sufficient
to reproduce it.
The JavaScript DDM dialect (dialects/JavaScript.dialect.st.ion) is
generated programmatically by genDialect() in src/jsast.ts, not
hand-written. Add scripts/gen_dialect.sh to regenerate and validate
it, following the same pattern as Tools/Python/scripts/gen_dialect.sh.

Update README.md to explain the architecture, dialect generation
workflow, and the relationship between the Ion file and the Lean
#load_dialect / #strata_gen commands.
gen_dashboard.py runs the test suite, parses TS_FEATURE_COVERAGE.md
and known_failures.txt, and generates a self-contained HTML page with:

- Summary stats (passing, known fail, needs test, unsupported)
- Feature tables grouped by category (Types, Expressions, Statements,
  Functions, Classes, Modules)
- Filter buttons to show only passing/failing/unsupported features
- Test names linked to status badges
- Known failure reasons displayed inline

Usage: cd StrataTest/Languages/JavaScript && python3 gen_dashboard.py
Then:  open coverage_dashboard.html
olivier-aws added a commit that referenced this pull request Mar 10, 2026
- Remove duplicate set_option directives before mutual block (bug #1)
- Add doc comment on AllocHeap.alloc noting bump-allocator invariant
  and implications for heap deallocation (design concern #1)
- Add TODO for heartbeat reduction via call-case helper lemma
  (design concern strata-org#2, recommendation strata-org#4)
- Remove unused catchExit_deterministic and evalPrimOp_deterministic
  (recommendation strata-org#3)
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.

2 participants