~ chicken-core (chicken-5) 17f79a6647636b0ddfe5bc3302af2cb844f34792


commit 17f79a6647636b0ddfe5bc3302af2cb844f34792
Merge: dc683fc0 ad16d1de
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Wed Mar 23 07:09:54 2011 -0400
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Wed Mar 23 07:09:54 2011 -0400

    resolved conflicts§

diff --cc batch-driver.scm
index ba0280bf,0946f4ce..8ad64d8d
--- a/batch-driver.scm
+++ b/batch-driver.scm
@@@ -540,42 -535,13 +541,15 @@@
  		   (set! first-analysis #f)
  		   (set! db (analyze 'scrutiny node0))
  		   (print-db "analysis" '|0| db 0)
 -		   (end-time "pre-analysis")
 +		   (end-time "pre-analysis (scrutiny)")
  		   (begin-time)
  		   (debugging 'p "performing scrutiny")
 -		   (scrutinize node0 db)
 +		   (scrutinize node0 db do-scrutinize do-specialize)
  		   (end-time "scrutiny")
 +		   (when do-specialize
 +		     (print-node "specialization" '|P| node0))
  		   (set! first-analysis #t) ) )
  
- 	       (when do-lambda-lifting
- 		 (begin-time)
- 		 (unless do-scrutinize ; no need to do analysis if already done
- 		   (set! first-analysis #f) ; (and not specialized)
- 		   (set! db (analyze 'lift node0))
- 		   (print-db "analysis" '|0| db 0)
- 		   (end-time "pre-analysis (lambda-lift)"))
- 		 (begin-time)
- 		 (perform-lambda-lifting! node0 db)
- 		 (end-time "lambda lifting")
- 		 (print-node "lambda lifted" '|L| node0) 
- 		 (set! first-analysis #t) )
- 	       
- 	       ;; lambda-lifting
- 	       (when do-lambda-lifting
- 		 (begin-time)
- 		 (unless do-scrutinize	; no need to do analysis if already done above
- 		   (set! first-analysis #f)
- 		   (set! db (analyze 'lift node0))
- 		   (print-db "analysis" '|0| db 0)
- 		   (end-time "pre-analysis (lambda-lift)"))
- 		 (begin-time)
- 		 (perform-lambda-lifting! node0 db)
- 		 (end-time "lambda lifting")
- 		 (print-node "lambda lifted" '|L| node0) 
- 		 (set! first-analysis #t) )
- 	       
  	       (set! ##sys#line-number-database #f)
  	       (set! constant-table #f)
  	       (set! inline-table #f)
diff --cc c-platform.scm
index 12e86254,cc1e8f48..b3546c49
--- a/c-platform.scm
+++ b/c-platform.scm
@@@ -84,8 -84,8 +84,8 @@@
      check-syntax to-stdout no-usual-integrations case-insensitive no-lambda-info 
      profile inline keep-shadowed-macros ignore-repository
      fixnum-arithmetic disable-interrupts optimize-leaf-routines
-     lambda-lift compile-syntax tag-pointers accumulate-profile
+     compile-syntax tag-pointers accumulate-profile
 -    disable-stack-overflow-checks raw 
 +    disable-stack-overflow-checks raw specialize
      emit-external-prototypes-first release local inline-global
      analyze-only dynamic scrutinize no-argc-checks no-procedure-checks
      no-procedure-checks-for-toplevel-bindings module
diff --cc chicken.scm
index 8b35e7cc,fa65cbea..72c17a99
--- a/chicken.scm
+++ b/chicken.scm
@@@ -85,29 -85,23 +85,42 @@@
  		    (set! options (cons 'optimize-leaf-routines options)) )
  		   ((2)
  		    (set! options 
--		      (cons* 'optimize-leaf-routines 'inline 'unboxing
++		      (cons* 'optimize-leaf-routines
++			     'inline
++			     'unboxing
  			     options)) ) 
  		   ((3)
  		    (set! options
- 		      (cons* 'optimize-leaf-routines 'inline 'inline-global
 -		      (cons* 'optimize-leaf-routines 'inline 'inline-global 'unboxing 'local
++		      (cons* 'optimize-leaf-routines
++			     'inline
++			     'inline-global
 +			     'unboxing 'local
 +			     'specialize
  			     options) ) )
  		   ((4)
  		    (set! options
- 		      (cons* 'optimize-leaf-routines 'inline 'inline-global
 -		      (cons* 'optimize-leaf-routines 'inline 'inline-global 'unboxing 
++		      (cons* 'optimize-leaf-routines
++			     'inline 
++			     'inline-global
 +			     'unboxing 
 +			     'specialize
  			     'local 'unsafe
  			     options) ) )
  		   (else
  		    (when (>= level 5)
  		      (set! options 
--			(cons* 'disable-interrupts 'no-trace 'unsafe 'block
- 			       'optimize-leaf-routines 'lambda-lift 
 -			       'optimize-leaf-routines 'no-lambda-info
 -			       'inline 'inline-global 'unboxing
++			(cons* 'disable-interrupts 
++			       'no-trace
++			       'unsafe
++			       'block
++			       'optimize-leaf-routines
 +			       'no-lambda-info
 +			       'specialize
- 			       'inline 'inline-global 'unboxing
++			       'optimize-leaf-routines 
++			       'no-lambda-info
++			       'inline
++			       'inline-global
++			       'unboxing
  			       options) ) ) ) )
  		 (loop (cdr rest)) ) )
  	      ((eq? 'debug-level o)
diff --cc compiler-namespace.scm
index 6246570f,b158a2dd..de3869ad
--- a/compiler-namespace.scm
+++ b/compiler-namespace.scm
@@@ -97,7 -97,7 +97,11 @@@
   display-analysis-database
   display-line-number-database
   display-real-name-table
++<<<<<<< HEAD
 + do-lambda-lifting
++=======
+  do-scrutinize
++>>>>>>> experimental
   dump-defined-globals
   dump-global-refs
   dump-nodes
diff --cc manual/Using the compiler
index c42e25be,00d8c079..ea782275
--- a/manual/Using the compiler
+++ b/manual/Using the compiler
@@@ -50,11 -49,8 +49,9 @@@ the source text should be read from sta
       x          display information about experimental features
       D          when printing nodes, use node-tree output
       N          show the real-name mapping table
-      0          show database before lambda-lifting pass
       S          show applications of compiler syntax
       T          show expressions after converting to node tree
 +     P          show expressions after specialization
-      L          show expressions after lambda-lifting
       U          show expressions after unboxing
       M          show syntax-/runtime-requirements
       1          show source expressions
@@@ -161,9 -155,9 +156,9 @@@
       -optimize-level 0          is equivalent to -no-usual-integrations -no-compiler-syntax
       -optimize-level 1          is equivalent to -optimize-leaf-routines
       -optimize-level 2          is equivalent to -optimize-leaf-routines -inline -unboxing
 -     -optimize-level 3          is equivalent to -optimize-leaf-routines -local -inline -inline-global -unboxing
 -     -optimize-level 4          is equivalent to -optimize-leaf-routines -local -inline -inline-global -unboxing -unsafe
 -     -optimize-level 5          is equivalent to -optimize-leaf-routines -block -inline -inline-global -unsafe -unboxing -disable-interrupts -no-trace -no-lambda-info
 +     -optimize-level 3          is equivalent to -optimize-leaf-routines -local -inline -inline-global -unboxing -specialize
 +     -optimize-level 4          is equivalent to -optimize-leaf-routines -local -inline -inline-global -unboxing -specialize -unsafe
-      -optimize-level 5          is equivalent to -optimize-leaf-routines -block -inline -inline-global -unboxing -specialize -unsafe -lambda-lift -disable-interrupts -no-trace -no-lambda-info
++     -optimize-level 5          is equivalent to -optimize-leaf-routines -block -inline -inline-global -unboxing -specialize -unsafe -disable-interrupts -no-trace -no-lambda-info
  
  ; -output-file FILENAME : Specifies the pathname of the generated C file. Default is {{FILENAME.c}}.
  
Trap