jolt build: --opt mode turns on the inference passes (Phase 4 stage 4a)
Wire the optimization gate to build mode. inline-enabled? (which gates the inference + flatten-lets + scalar-replace passes in jolt.passes/run-passes) was hardwired off, so those passes had never run on Chez at all. host-contract now exposes a settable hc-optimize? flag; `jolt build --opt` flips it on during app emission. Kept off for the default release build for now: the passes are sound by design (RFC 0005/0006) but unexercised on Chez, so release stays on the proven var-deref codegen until they're validated against the corpus. --opt is the opt-in fast path. buildsmoke checks both modes produce the same result. This does not yet deliver direct call binding — the backend has no direct-link emission path (every :var call still routes through jolt-invoke/var-deref) and the inline-ir host stash is still a stub. Those are the remaining stage-4 levers.
This commit is contained in:
parent
43778eafd7
commit
f66925d3a8
3 changed files with 26 additions and 5 deletions
|
|
@ -280,7 +280,12 @@
|
|||
(define (hc-record-type? ctx name) #f)
|
||||
(define (hc-record-ctor-key ctx name) jolt-nil)
|
||||
(define (hc-record-shapes ctx) (jolt-hash-map))
|
||||
(define (hc-inline-enabled? ctx) #f)
|
||||
;; Optimization gate. Off for ordinary runs (open world, redefinition); `jolt
|
||||
;; build` flips it on during app emission for release/optimized modes (closed
|
||||
;; world), turning on the inference + flatten + scalar-replace passes.
|
||||
(define hc-optimize? #f)
|
||||
(define (set-optimize! on) (set! hc-optimize? on))
|
||||
(define (hc-inline-enabled? ctx) hc-optimize?)
|
||||
(define (hc-inline-ir ctx ns-name nm) jolt-nil)
|
||||
|
||||
;; --- declare the hot clojure.core primitives so resolve-global sees them ------
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue