I found another limitation caused by the class file format: constant strings are limited to a size of 64k bytes. The compiler uses dump-form to externalize objects to FASLs, and this means that not only literal strings are limited to 64k, but every object that is dumped is limited by its printed representation. I found that out while trying to compile closure-html [1], which creates a big vector to hold generated parser states and stores it as a constant in the code [2]. So we need to split big dumped forms over multiple strings. I'll attempt a solution in the following days.
Bye, Alessio
[1] http://common-lisp.net/project/closure/closure-html [2] Incidentally, I also found out that dump-vector causes a stack overflow error for such a vector (probably because it contains other vectors that form circular references). What's the reason for dump-vector not to use the normal vector printing code?
armedbear-devel@common-lisp.net