[Snow-users-list] Errors compiling Snow with Scheme48-1.4
feeley at iro.umontreal.ca
Thu Mar 8 16:55:53 EST 2007
-----BEGIN PGP SIGNED MESSAGE-----
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'.
> 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.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (Darwin)
-----END PGP SIGNATURE-----
More information about the Snow-users-list