Hello,
I have this error when compiling CXML on the Travis server: SET-DISPATCH-MACRO-CHARACTER would modify the standard readtable.
https://travis-ci.org/mmontone/cl-rest-server/jobs/33595857
Does anyone know why and how to fix it?
Thanks!
Mariano
Aha. I believe you need to update your asdf and/or cl-launch, and the bug should go away (which versions are you currently using?).
Here's the deal: your version of asdf and/or cl-launch is using uiop:with-safe-io-syntax in its restore-image hook, as an attempt to ascertain a standard environment at startup. Now, this macro is a tweak on top of with-standard-io-syntax, which among other things binds the *readtable* to the standard readtable, which on compliant implementations is a _read-only_ readtable implementing just the standard reader. Now, cxml and many other systems modify the current readtable with set-dispatch-macro-character and such, and fail in this setup. It's a bug in cxml and all these systems to modify the current readtable rather than cleanly define a new one with named-readtables. But it was also a bug for me in asdf and/or cl-launch to not backward-compatibly support these buggy systems until they are fixed — and I believe this bug was fixed after the situation was discussed earlier this year.
There is an ASDF branch being developed to offer a solution that is both reasonably safe and reasonably backward-compatible (by having a formal *shared-readtable* object emulating current behavior and binding the *readtable* to that around the build), but it hasn't been merged in yet.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org A patriot must always be ready to defend his country against his government. — Edward Abbey
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
On Tue, Aug 26, 2014 at 11:00 AM, Mariano Montone marianomontone@gmail.com wrote:
Hello,
I have this error when compiling CXML on the Travis server: SET-DISPATCH-MACRO-CHARACTER would modify the standard readtable.
https://travis-ci.org/mmontone/cl-rest-server/jobs/33595857
Does anyone know why and how to fix it?
Thanks!
Mariano
Cxml-devel mailing list Cxml-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/cxml-devel
Quoting Far? (fahree@gmail.com):
setup. It's a bug in cxml and all these systems to modify the current readtable rather than cleanly define a new one with named-readtables.
Yes, and a long-standing one at that...
But it was also a bug for me in asdf and/or cl-launch to not backward-compatibly support these buggy systems until they are fixed ???
Once time permits, I shall try to modernize closure-common and its dependencies in their read-table handling.
Thanks for the reports David
Faré <fahree <at> gmail.com> writes:
Aha. I believe you need to update your asdf and/or cl-launch, and the bug should go away (which versions are you currently using?).
ASDF is 3.0.2 and cl-launch is 4.0.3
Thanks for the quick and detailed answer. I will try to change ASDF and cl-launch versions and see if the problem goes away.
Updated to ASDF 3.1.3 and cl-launch 4.1 but it still doesn't work :S
On Tue, Aug 26, 2014 at 1:37 PM, Mariano Montone marianomontone@gmail.com wrote:
Faré <fahree <at> gmail.com> writes:
Aha. I believe you need to update your asdf and/or cl-launch, and the bug should go away (which versions are you currently using?).
ASDF is 3.0.2 and cl-launch is 4.0.3
Thanks for the quick and detailed answer. I will try to change ASDF and cl-launch versions and see if the problem goes away.
Cxml-devel mailing list Cxml-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/cxml-devel
On Tue, Aug 26, 2014 at 1:21 PM, Mariano Montone marianomontone@gmail.com wrote:
Updated to ASDF 3.1.3 and cl-launch 4.1 but it still doesn't work :S
Can you show the backtrace?
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org Documentation is worth it just to be able to answer all your mail with 'RTFM'. — Alan Cox
OK, I looked some more into it. The string of code being evaluated, in this case,
(ql:quickload :rest-server-tests)(rest-server-tests:debug-tests)
is evaluated by eval-input, which calls with-safe-io-syntax.
Your solution is to prepend to this string:
(setf *readtable* (copy-readtable nil))
Regards,
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org Every time you're caring for something you shouldn't care about, you're not caring about something you should.
On Tue, Aug 26, 2014 at 1:26 PM, Faré fahree@gmail.com wrote:
On Tue, Aug 26, 2014 at 1:21 PM, Mariano Montone marianomontone@gmail.com wrote:
Updated to ASDF 3.1.3 and cl-launch 4.1 but it still doesn't work :S
Can you show the backtrace?
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org Documentation is worth it just to be able to answer all your mail with 'RTFM'. — Alan Cox