Changes between Version 4 and Version 5 of Keywords


Ignore:
Timestamp:
05/05/11 12:32:07 (6 years ago)
Author:
alaric
Comment:

Noted that the keywords-as-bindings issue only applies where keywords and arbitrary expressions may collide

Legend:

Unmodified
Added
Removed
Modified
  • Keywords

    v4 v5  
    2929...we'll get an error, not 1, as we've rebound `else`; that arm of the `cond` will evaluate `else` and get `#f`, so no arm of the `cond` matches. 
    3030 
    31 However, it has another issue. Andy Wingo, I believe, gave an example of a module that exposes both `compile` (a procedure) and `eval-when` (a macro that uses `compile` as a keyword). It's then impossible to expose `eval-when` into a sandbox, still able to use the `compile` keyword, without then also giving them the `compile` procedure. 
     31However, it has another issue. Andy Wingo, I believe, gave an example of a module that exposes both `compile` (a procedure) and `eval-when` (a macro that uses `compile` as a keyword). It's then impossible to expose `eval-when` into a sandbox, still able to use the `compile` keyword, without then also giving them the `compile` procedure. In this situation you can use keywords-as-symbols, as arbitrary expressions can never appear there; but in a case like `cond`, it would be impossible to export `cond` and all its functions without also exporting a procedure that happened to also be called `else` or `=>`. 
    3232 
    3333== Any others? ==