Add inference gate (jolt.passes.types)
The corpus/unit gates compile through run-passes' const-fold-only branch, so the type-inference walk runs only under jolt build --opt — buildsmoke hit one trivial app and checked stdout. run-infer.ss drives the pass directly: analyze a source string, then call check-form / infer-body / the set-*! registries and assert diagnostic counts and collected calls/escapes. Wired into make ci. Gives the inference pass real behavior coverage so refactoring its internal state is gate-validatable. jolt-ogib.10 groundwork.
This commit is contained in:
parent
e434356590
commit
9c5e46e91b
2 changed files with 100 additions and 2 deletions
10
Makefile
10
Makefile
|
|
@ -4,7 +4,7 @@
|
|||
# build step. `make test` is the full gate. `make remint` rebuilds the seed after a
|
||||
# source change.
|
||||
|
||||
.PHONY: test ci values corpus unit smoke buildsmoke selfhost sci certify ffi transient remint
|
||||
.PHONY: test ci values corpus unit smoke buildsmoke selfhost sci certify ffi transient infer remint
|
||||
|
||||
# Full gate (dev machine). Includes the self-host byte-fixpoint, which only holds
|
||||
# on the same Chez that minted the seed.
|
||||
|
|
@ -15,7 +15,7 @@ test: selfhost ci
|
|||
# lockfile) — it RUNS correctly on any Chez, but `selfhost` rebuilds it and a
|
||||
# different Chez version may emit byte-different (gensym/order) output, so the
|
||||
# byte-fixpoint is a dev-machine check, not a CI one (jolt-8479).
|
||||
ci: values corpus unit smoke buildsmoke sci ffi transient certify
|
||||
ci: values corpus unit smoke buildsmoke sci ffi transient infer certify
|
||||
@echo "OK: CI gates passed"
|
||||
|
||||
# Self-host fixpoint: bootstrap.ss rebuild == checked-in seed.
|
||||
|
|
@ -55,6 +55,12 @@ ffi:
|
|||
transient:
|
||||
@chez --script test/chez/transient-test.ss
|
||||
|
||||
# Inference / success-type checking: drive jolt.passes.types directly and assert
|
||||
# diagnostic counts + collected calls/escapes (the optimization pass the other
|
||||
# gates don't exercise).
|
||||
infer:
|
||||
@chez --script host/chez/run-infer.ss
|
||||
|
||||
# JVM oracle: certify the corpus against reference Clojure. Skips if clojure absent.
|
||||
certify:
|
||||
@if command -v clojure >/dev/null 2>&1; then \
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue