[racket-dev] When is it safe to not rename a runtime value in a macro?

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Sat Aug 25 19:40:46 EDT 2012

On Aug 25, 2012, at 3:56 PM, Ryan Culpepper wrote:

> In other words, a macro's subexpressions should be used linearly (as in "linear types"). Putting an expression in the macro's result in an expression context counts as a use. (But putting it in the result in a quoted context doesn't.) Calling 'local-expand' or 'syntax-local-expand-expression' on it also counts as a use, but it gives back another linearly-restricted expression. (The same applies to definitions; I should really say all "forms" should be used linearly.)

Are you going to write up a tool and/or a macro-linear-type system that checks such things? ICFP is waiting -- Matthias

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4373 bytes
Desc: not available
URL: <http://lists.racket-lang.org/dev/archive/attachments/20120825/43bd3887/attachment.p7s>

Posted on the dev mailing list.