On Sep 7, Faré wrote: > Maybe it's better to keep the very same name as the safe operation, > and let whoever imports it choose a different prefix. The immediate > benefit is that switching from safe to unsafe becomes trivial, which > is great for developing and testing in safe mode but delivering and > running in unsafe mode.
That was one of the options to implementing this, but I think that it is a little less convenient. There is also an issue with some of the operators that have no safe edquivalents -- for example, there is no `fl*' function. In any case, there is the `filtered-in' form for requiring modules (from the `scheme/require' module) that can be used to achieve the same effect: Welcome to MzScheme v4.2.1.8 [3m], Copyright (c) 2004-2009 PLT Scheme Inc. > (require scheme/require (filtered-in (lambda (s) (let ([m (regexp-match #rx"^unsafe-(.*)$" s)]) (and m (cadr m)))) scheme/unsafe/ops)) > (car 3) SIGSEGV fault on 0xf zsh: abort mz And, of course, going from here to defining an unsafe language like you want is easy. -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! _________________________________________________ For list-related administrative tasks: http://list.cs.brown.edu/mailman/listinfo/plt-dev