Please sign in to comment.
handle presentations with substitute, not bquote
R's bquote doesn't handle nesting: bquote(bquote(.(x))) will evaluate x when evaluating the outer bequote, not (as in CL) the inner one. This means that the hilariously ugly strategy in `swank:listener-eval` to handle lookup of presented objects wreaks havok on any user code with backquotes in it. A solution which I think works, and which is in fact marginally less ugly, is to rewrite the read-eval calls into simple tokens, and substitute those tokens for the values before calling eval(). This actually has the right semantics, provided no user code has variables whose names are small positive integers. (We should work out how to namespace these identifiers somehow, maybe with a package, or some ersatz prefix/suffix.)
- Loading branch information...