On Tue, Feb 26, 2013 at 2:18 AM, Attila Lendvai attila.lendvai@gmail.com wrote:
Or I could rely on SBCL being used a whole lot and indeed having immutable such default syntax tables with understandable messages to blame whoever tries to mutate those tables without rebinding them
this approach seems to be the most straightforward to me.
especially since we have that great cl-test-grid running on multiple lisps, one of which is sbcl which will catch the wrongdoers.
i'd also argue that it's also a potential time waster if asdf rebinds a copy and someone foolhardy tries to modify *readtable*, and will experience zero sideffects contrary to his expectations.
he will waste his own time only, so it's already much better, but still not ideal.
I wholly agree with you, and that's why I had started using with-standard-io-syntax indeed, and that's where I want to go eventually. However, until we've fixed all the packages that do bad stuff like that, it's not practical to commit that change now, especially since it's easy to (multiple-value-setq (*readtable* *print-pprint-dispatch*) (with-standard-io-syntax (values *readtable* *print-pprint-dispatch*))) and restore the safe behavior from the compatible behavior, but it's not easy to configure the other way around.
I suppose that's also an argument for disabling deferred-warnings by default, though in this case, it's slightly easier to disable than to reenable. (defparameter asdf::*warnings-file-type* nil) vs #+asdf3 (setf asdf:*warnings-file-type* (asdf/lisp-build:warnings-file-type)) But yes, if disabling them by default allows ASDF3 to make it to Quicklisp, I'll do it.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org One can be so anxious to put his "best foot forward" that he doesn't even notice that it isn't his own foot. — Harry Browne (HIFFIAUW)