diff --git a/racket/src/cs/compile-file.ss b/racket/src/cs/compile-file.ss index c8d3bdd526..40f534ad1a 100644 --- a/racket/src/cs/compile-file.ss +++ b/racket/src/cs/compile-file.ss @@ -37,6 +37,7 @@ (check-defined 'enable-type-recovery) (check-defined 'make-wrapper-procedure) (check-defined 'make-phantom-bytevector) +(check-defined 'enable-arithmetic-left-associative) ;; ---------------------------------------- @@ -63,6 +64,7 @@ (generate-inspector-information #f) (generate-procedure-source-information #f) (compile-compressed #f) +(enable-arithmetic-left-associative #t) (define build-dir "") (define-values (src deps) diff --git a/racket/src/cs/linklet.sls b/racket/src/cs/linklet.sls index 27039a8d00..cda5881b67 100644 --- a/racket/src/cs/linklet.sls +++ b/racket/src/cs/linklet.sls @@ -1032,4 +1032,5 @@ (set-foreign-eval! eval/foreign) + (enable-arithmetic-left-associative #t) (expand-omit-library-invocations #t)) diff --git a/racket/src/cs/rumble/vector.ss b/racket/src/cs/rumble/vector.ss index d0269234e2..338b70ebb5 100644 --- a/racket/src/cs/rumble/vector.ss +++ b/racket/src/cs/rumble/vector.ss @@ -175,7 +175,7 @@ (#3%vector-ref vec idx) (pariah (impersonate-vector-ref vec idx)))) -(define (vector*-ref vec idx) +(define/who (vector*-ref vec idx) (#2%vector-ref vec idx)) (define (impersonate-vector-ref orig idx) @@ -183,7 +183,7 @@ (#%vector? (impersonator-val orig))) (let loop ([o orig]) (cond - [(#%vector? o) (#%vector-ref o idx)] + [(#%vector? o) (#2%vector-ref o idx)] [(vector-chaperone? o) (let* ([o-next (impersonator-next o)] [val (loop o-next)]