~ chicken-core (chicken-5) 27781ff69c3a5946bc65afba4e773280debffd23


commit 27781ff69c3a5946bc65afba4e773280debffd23
Author:     Peter Bex <peter.bex@xs4all.nl>
AuthorDate: Thu Feb 17 20:33:31 2011 +0100
Commit:     Peter Bex <peter.bex@xs4all.nl>
CommitDate: Thu Feb 17 20:33:31 2011 +0100

    Change compiler macros and 'declare' statements so they explicitly look up symbols in the syntax env instead of stripping their syntax; in effect, this does the same thing

diff --git a/compiler.scm b/compiler.scm
index af6b673b..ec03085d 100644
--- a/compiler.scm
+++ b/compiler.scm
@@ -735,7 +735,7 @@
 		       ((##core#define-compiler-syntax)
 			(let* ((var (cadr x))
 			       (body (caddr x))
-			       (name (##sys#strip-syntax var se #f)))
+			       (name (lookup var se)))
 			  (when body
 			    (set! compiler-syntax
 			      (alist-cons
@@ -763,7 +763,7 @@
 			(let ((bs (map
 				   (lambda (b)
 				     (##sys#check-syntax 'let-compiler-syntax b '(symbol . #(_ 0 1)))
-				     (let ((name (##sys#strip-syntax (car b) se #f)))
+				     (let ((name (lookup (car b) se)))
 				       (list 
 					name 
 					(and (pair? (cdr b))
@@ -1259,9 +1259,9 @@
       (if (or (< n minlen) (> n (optional maxlen 99999)))
 	  (syntax-error "invalid declaration" spec) ) ) )  
   (define (stripa x)			; global aliasing
-    (##sys#strip-syntax x se #t))
+    (globalize x))
   (define (strip x)			; raw symbol
-    (##sys#strip-syntax x se))
+    (##sys#strip-syntax x))
   (define stripu ##sys#strip-syntax)
   (define (globalize sym)
     (if (symbol? sym)
Trap