On 6/17/07, Marc Feeley feeley@iro.umontreal.ca wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 17-Jun-07, at 7:37 AM, Gabriel Kronberger wrote:
debian:/home/user/Desktop/gambc-4.0b22# gsi Gambit Version 4.0 beta 22
(load "~~/syntax-case")
"/usr/local/Gambit-C/4.0b22/syntax-case.scm"
syntax-rules
*** ERROR IN (console)@2.1 -- Unbound variable: syntax-rules 1> define-syntax *** ERROR IN (console)@3.1 -- Unbound variable: define-syntax 2> (define-syntax unless (syntax-rules () ((unless test body ...) (if test #f (begin body ...))))) *** ERROR IN (console)@5.19 -- Ill-formed expression 2>
It seems even though I can load syntax-case.scm, syntax-rules and define-syntax are still not defined. I must be missing something really obvious!
I know that I can use define-macro. I use it in my code now. However I would also like to play around with syntax-rules and according to the documentation it should work the way I tried to use it. So either I'm missing something obvious or the documentation is outdated or syntax-case.scm doesn't work on my debian system.
Any more hints I could try to make syntax-rules work? Thanks, Gabriel
I've done exactly the same thing on my MacBook Pro and get this (correct) behavior:
% gsi Gambit Version 4.0 beta 22
(load "~~/syntax-case")
"/usr/local/Gambit-C/4.0b22/syntax-case.scm"
syntax-rules
*** ERROR -- invalid syntax syntax-rules
define-syntax
*** ERROR -- invalid syntax define-syntax
(define-syntax unless
(syntax-rules () ((unless test body ...) (if test #f (begin body ...)))))
(unless #f (display "hello\n"))
hello
Something really strange is happening with your installation! Are you sure you are using the official distribution of beta 22?
http://www.iro.umontreal.ca/~gambit/download/gambit/4.0/source/ gambc-4.0b22.tar.gz
Also, could you check the top of the file /usr/local/Gambit-C/4.0b22/ syntax-case.scm ? It should read:
;=======================================================================
; File: "syntax-case.scm", Time-stamp: <2007-04-04 10:13:27 feeley>
; Copyright (c) 1998-2007 by Marc Feeley, All Rights Reserved.
; This is version 3.2 .
; This version includes a patch which avoids quoting self-evaluating ; constants. This makes it possible to use some Gambit specific forms ; such as declare, namespace and define-macro.
Also, make sure no "gambcext" and "gambcini" files are being loaded. To avoid loading the gambcini file do
% gsi -f
Marc
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.3 (Darwin)
iD8DBQFGdSsF//V9Zc2T/v4RAqedAJoD3Vx9ZU7HQeqqSEbMY71kTydxRwCZARFu bYxdY7qjfWok0F/mMZpt3Rc= =SkFr -----END PGP SIGNATURE-----
Hi Marc,
It works like a charm now! Unfortunately I don't have a good explanation for the problems. I guess what happened was that I installed a version from an unclean build with some files still lying around from an unsuccessful --enable-gcc-opts building attempt (not enough RAM).
I checked the syntax-case file of the old installation and it matched your version. Then I redownloaded gambc-4.0b22.tar.gz and configured, built and installed it. Now I can load syntax-case and there are no apparent problems with syntax-rules.
Thanks for the help, Gabriel