[racket-dev] syntax taints instead of syntax certificates

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Wed Jun 29 22:53:22 EDT 2011

At Wed, 29 Jun 2011 22:34:19 -0400, Sam Tobin-Hochstadt wrote:
> On Wed, Jun 29, 2011 at 9:19 PM, Matthew Flatt <mflatt at cs.utah.edu> wrote:
> >
> >  * If you write program-processing tools or languages that use
> >   `syntax-recertify', you'll need to change them to use
> >   `syntax-disarm' and possibly `syntax-rearm'.
> Does this change (more generally than the part I've quoted here) mean
> that code that uses `syntax-recertify' and related functions will no
> longer compile and/or work in new versions of Racket?

The old `syntax-recertify' and `syntax-local-ceritifier' functions are
still provided, but they're no-ops now.

Code that uses `syntax-local-certifier' should still work. Certificates
were sometimes needed to ensure access to bindings before, but nothing
special is needed anymore.

Code that uses `syntax-recertify' will tend to fail, since it will
usually end up with tainted syntax objects by the time it would like to

I tried for a while to make taints more compatible with certificates,
but I gave up. While `syntax-local-certifier' appears in many Planet
packages, `syntax-recertify' is rare.

Posted on the dev mailing list.