At Fri, 24 Feb 2017 16:02:45 -0300, Gustavo Massaccesi wrote: > *** Chez may reorder expressions. > > (car (list (display 1) (display 2))) ;==> 21#<void> > > I think this is ok in RNRS and Chez, but it may cuase a problem for a > program translated directly from Racket. I think that all the reorders > are in the optimization phase, but I'm not sure.
Right --- The "schemify" pass at https://github.com/mflatt/not-a-box rewrites applications for fully expanded Racket programs. It uses nested `let`s as necessary to enforce left-to-right evaluation (and the optimizer surely preserves that ordering). A `let` form with multiple binding clauses similarly has to be rewritten to nested `let`s`. There's a subtlety related to variable allocation and potential continuation capture, but the rewrite pass addresses that. -- You received this message because you are subscribed to the Google Groups "Racket Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-dev/20170224201600.ECDD465008A%40mail-svr1.cs.utah.edu. For more options, visit https://groups.google.com/d/optout.
