[racket-dev] syntax taints instead of syntax certificates

From: Sam Tobin-Hochstadt (samth at ccs.neu.edu)
Date: Wed Jun 29 23:02:42 EDT 2011

On Wed, Jun 29, 2011 at 10:53 PM, Matthew Flatt <mflatt at cs.utah.edu> wrote:
> 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
> recertify.
> 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.

Great, that's pretty much exactly what I was hoping for.
sam th
samth at ccs.neu.edu

Posted on the dev mailing list.