[Snow-users-list] Errors compiling Snow with Scheme48-1.4

Marc Feeley feeley at iro.umontreal.ca
Thu Mar 8 16:55:53 EST 2007


-----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

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (Darwin)

iD8DBQFF8IZp//V9Zc2T/v4RAgLWAKCt+KVWcuSP7+TPiE7UMGmGFmi4+QCeL+5U
9If6j3v9vow2BYlHw/nfNHo=
=2OZ+
-----END PGP SIGNATURE-----


More information about the Snow-users-list mailing list