The bug is a mismatch between the optimizer and validator, where the
optimizer can see that `string-append` is applied to a string and will
definitely succeed, while the validator can't infer that behavior. The
fact by itself isn't the problem, but it allows a further inference in
the optimizer that's relevant to the validator.

The optimizer should use a specific flag internally at a specific point
to keep it consistent with the validator. I'll push that repair after
testing.

At Wed, 18 Jan 2017 15:58:15 -0500, Leif Andersen wrote:
> Hey all,
> 
> I noticed that the following program fails to run, but only after its been
> compiled (on 6.7, 6.6 and earlier don't seem to have this issue):
> 
> https://gist.github.com/LeifAndersen/dfad9a8f55ef671e4f3aa41b321ef7bf
> 
> #lang racket/base ;; ill-formed.rkt
> (define ill
>   (let ((base (string-append "a")))
>     (λ () base)))
> (ill)
> 
> To get the error, run:
> 
> $ raco make ill-formed.rkt
> $ racket ill-formed.rkt
> ?? 0
> compiled/ill-formed_rkt.zo::369: read (compiled): ill-formed code
> [../../../racket/gc2/../src/validate.c:1426]
>   context...:
>    standard-module-name-resolver
> 
> This error doesn't seem to happen if `string-append` is replaced with
> various other functions that create strings (or just string literals), and
> it seems to go away if the function is inlined.
> 
> I'm not entirely sure what's causing this bug yet, but it appears to either
> be a bug in the versifier, or a new optimization. Has anyone else seen
> something like this recently? (If not I'll update the list once I get a
> sense as to what is going on.)
> 
> ~Leif Andersen
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.

-- 
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/587feea0.4c4c620a.c0501.a9c1SMTPIN_ADDED_MISSING%40gmr-mx.google.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to