[racket-dev] Triggered a macro system internal error

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Thu Jun 27 10:31:04 EDT 2013

I mean "taints", not "traits".

At Thu, 27 Jun 2013 06:32:20 -0700, Matthew Flatt wrote:
> The problem was in the way that traits are managed for submodule
> expansion plus a problem with Typed Racket's trait arming of a module
> body (which was also my fault). I've pushed a repair.
> 
> At Tue, 25 Jun 2013 10:05:28 -0400, Asumu Takikawa wrote:
> > Hi all,
> > 
> > I accidentally triggered what appears to be an internal error message
> > from the macro expander (to do with syntax taints).
> > 
> > Unfortunately, I have no idea how to come up with a narrow test case
> > since it happens due to changing Typed Racket's `struct:` expansion.
> > I've attached a short patch below that shows what's needed to trigger it
> > though.
> > 
> > Here's the interaction I get with the patch applied:
> >   $ racket -I typed/racket
> >   Welcome to Racket v5.3.900.1.
> >   -> (struct: Foo ([x : Integer]))
> >   ; internal error: cannot copy taint armings from tainted source [,bt for
> >   ;   context]
> > 
> > Any ideas on how I can get a better test case?
> > 
> > Cheers,
> > Asumu
> 
> _________________________
>   Racket Developers list:
>   http://lists.racket-lang.org/dev

Posted on the dev mailing list.