From: Erik H. <eh...@gm...> - 2009-12-30 23:30:14
|
On Sun, Nov 15, 2009 at 6:26 PM, Dr. Thomas Sturm <st...@re...> wrote: > Hi, > > I am experimenting with bootstrapping the computer algebra system Reduce on ABCL. I now have encountered a problem, which might be a bug in the ABCL compiler. I give a simplified version of my situation. > > (compile-file "test") where test.lisp has the following content does not terminate: > > (defparameter single-character-symbols > '#.(let ((a (make-array 129))) > (dotimes (i 129) > (setf (svref a i) (make-string 1 :initial-element (code-char i)))) > a)) > > When replacing 129 by 128 everything is fine. The size that I actually would like to have there is 256. > > If this is really a bug, I would be grateful for any hint on a possible workaround. Well, I finally got around to checking this issue: you indeed identified a bug. Unfortunately it's not easy to work around, because it has to do with the fact that your output encoding doesn't seem to support the specific character (character 0x80, that is). The weird thing is that the strategy is to replace characters that can't be encoded, so there's a big question mark here as to why this error occurs. Anyway, we have a new interesting test case to add to the tests for our RandomAccessCharacterFile class. Locally, I patched ABCL to create UTF-8 output files, but that would require you to patch the Load part of ABCL to read UTF-8 input as well. Since I can't really do that as simple as that, I can't fix it right now. However, if you're fine using UTF-8 for input for LOAD, I could provide you with a patch. Bye, Erik. |