[racket-dev] [plt] Push #25216: master branch updated
> 0452bd7 Matthew Flatt <mflatt at racket-lang.org> 2012-08-16 12:46
> :
> | bytecode optimizer improvement
> |
> | Treat unsafe functional operations (which never raise an
> | exception) as omitable, which means that simple `let-values'
> | combinations can be split into `let' bindings, etc.
> :
> M collects/ffi/unsafe/com.rkt | 1 +
> M collects/racket/private/for.rkt | 2 +-
> M collects/tests/racket/optimize.rktl | 12 ++++++++++++
> M src/racket/src/optimize.c | 8 ++++----
Suppose I'm writing in Typed Racket, and x1, x2, y1, y2, z1, z2 : Float.
Does this optimization mean that this:
(let-values ([(x y z) (values (+ x1 x2) (+ y1 y2) (+ z1 z2))])
...)
is equivalent to the following?
(let ([x (+ x1 x2)]
[y (+ y1 y2)]
[z (+ z1 z2)])
...)
If so, I think that will speed up the ray tracer.
Neil ⊥