Hey all. I installed Snow with Scheme48-1.5, and quickly found it had problems with UTF-8. So I installed Scheme4-1.4 over the top, made /usr/local/bin/scheme48 point to the 1.4 version and tried to use snow. However, this leads to errors, which members of #scheme put down to 'A bug in Snow'.
http://paste.lisp.org/display/37887#1
I'm only a beginner, but it looks like someone left a #\n in the Snow source somewhere. I've grepped around, but I couldn't find it. Is this indeed a problem with Snow, or have I messed something up along the line somewhere?
If there's a quick fix (as in changing a #\n to a #\newline somewhere), I'd love to know about it.
Thanks in advance.
-- -David House, dmhouse@gmail.com
Afficher les réponses par date
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 8-Mar-07, at 3:43 PM, David House wrote:
Hey all. I installed Snow with Scheme48-1.5, and quickly found it had problems with UTF-8. So I installed Scheme4-1.4 over the top, made /usr/local/bin/scheme48 point to the 1.4 version and tried to use snow. However, this leads to errors, which members of #scheme put down to 'A bug in Snow'.
http://paste.lisp.org/display/37887#1
I'm only a beginner, but it looks like someone left a #\n in the Snow source somewhere. I've grepped around, but I couldn't find it. Is this indeed a problem with Snow, or have I messed something up along the line somewhere?
If there's a quick fix (as in changing a #\n to a #\newline somewhere), I'd love to know about it.
The Snow sources are pretty clean. They do not contain strings with embedded "\n" escape sequences.
But you have found an interesting portability problem. The package iu-match/v1 contains a package* form with a description: meta-data that has embedded newline characters. When the list of packages is requested from the snowfort by snowman, a list of the package* forms is returned. The snowfort is using Gambit and Gambit's "write" procedure uses the escape sequence "\n" to write strings with embedded newlines. But your snowman is using Scheme48 and Scheme48 does not allow that escape sequence in strings, so it gives an error when it reads the list of packages.
The solution? I could change Gambit's behavior. But that seems stupid given R6RS is going to standardize this escape sequence (so Scheme48 will probably implement it soon) and almost all other Scheme systems I tried use the "\n" escape to write embedded newlines (the exceptions are SCM and Guile which however accept "\n" when reading strings). I could run the snowfort using SCM, Guile or Scheme48, but that would be too slow for most operations.
The temporary solution is to remove the iu-match/v1 package (which currently is not working well anyway due to portability problems). This seems to have solved the problem you encountered with Scheme48.
Marc
snow-users-list@iro.umontreal.ca