~ chicken-core (chicken-5) 106b4b7406682c703581fa0d0dc8dfd0a2d3bc4b


commit 106b4b7406682c703581fa0d0dc8dfd0a2d3bc4b
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Wed Dec 23 15:01:10 2009 +0100
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Wed Dec 23 15:01:10 2009 +0100

    trivial compiler things

diff --git a/batch-driver.scm b/batch-driver.scm
index d90d8eef..4fc08f2f 100644
--- a/batch-driver.scm
+++ b/batch-driver.scm
@@ -117,7 +117,11 @@
 
     (define (print-expr mode dbgmode xs)
       (when (print-header mode dbgmode)
-	(for-each pretty-print xs) ) )
+	(for-each 
+	 (lambda (x) 
+	   (pretty-print x)
+	   (newline))
+	 xs) ) )
 
     (define (infohook class data val)
       (let ([data2 ((or ##sys#default-read-info-hook (lambda (a b c) b)) class data val)])
diff --git a/compiler.scm b/compiler.scm
index 0b13ba37..5a938965 100644
--- a/compiler.scm
+++ b/compiler.scm
@@ -1744,9 +1744,9 @@
 		     (walk val env localenv here #f) 
 		     (loop (cdr vars) (cdr vals)) ) ) ) ) )
 
-	  ((lambda)
-	   (grow 1)
-	   (decompose-lambda-list
+	  ((lambda)			; why do we have 2 cases for lambda?
+	   (grow 1)			; the reason for this should be tracked down
+	   (decompose-lambda-list	; and this case removed
 	    (first params)
 	    (lambda (vars argc rest)
 	      (for-each 
diff --git a/manual/Non-standard macros and special forms b/manual/Non-standard macros and special forms
index 6529beb8..1e87523a 100644
--- a/manual/Non-standard macros and special forms	
+++ b/manual/Non-standard macros and special forms	
@@ -299,7 +299,7 @@ for example.
 <macro>(define-compiler-syntax NAME TRANSFORMER)</macro><br>
 <macro>(define-compiler-syntax (NAME VAR ...) BODY ...)</macro>
 
-Defines what is usually called a ''compiler macro'': {{NAME}} should be the
+Defines what is usually called a ''compiler macro'' in Lisp: {{NAME}} should be the
 name of a globally or locally bound procedure. Any direct call to this procedure
 will be transformed before compilation, which allows arbitrary rewritings
 of function calls. 
@@ -313,6 +313,9 @@ In the interpreter this form does nothing and returns an unspecified value.
 Compiler-syntax is always local to the current compilation unit and can not be
 exported.
 
+{{define-compiler-syntax}} should only be used at top-level. Local compiler-syntax
+can be defined with {{let-compiler-syntax}}.
+
 <scheme>
 (define-compiler-syntax +
   (syntax-rules ()
diff --git a/manual/Using the compiler b/manual/Using the compiler
index 248f66a9..d29cf70b 100644
--- a/manual/Using the compiler	
+++ b/manual/Using the compiler	
@@ -167,8 +167,8 @@ Possible options are:
      -optimize-level 1          is equivalent to -optimize-leaf-routines
      -optimize-level 2          is equivalent to -optimize-leaf-routines -inline
      -optimize-level 3          is equivalent to -optimize-leaf-routines -local -inline
-     -optimize-level 4          is equivalent to -optimize-leaf-routines -local -inline -unsafe
-     -optimize-level 5          is equivalent to -optimize-leaf-routines -block -inline -unsafe -lambda-lift -disable-interrupts -no-trace -no-lambda-info
+     -optimize-level 4          is equivalent to -optimize-leaf-routines -local -inline -unsafe -unboxing
+     -optimize-level 5          is equivalent to -optimize-leaf-routines -block -inline -unsafe -unboxing -lambda-lift -disable-interrupts -no-trace -no-lambda-info
 
 ; -output-file FILENAME : Specifies the pathname of the generated C file. Default is {{FILENAME.c}}.
 
Trap