~ chicken-core (chicken-5) a395ffc2b16a82184343509b5b248672271148da
commit a395ffc2b16a82184343509b5b248672271148da
Author: felix <felix@call-with-current-continuation.org>
AuthorDate: Thu Jun 3 20:10:03 2010 +0200
Commit: felix <felix@call-with-current-continuation.org>
CommitDate: Thu Jun 3 20:10:03 2010 +0200
emit global inlines only if interrupts are enabled; fixed incorrectly listed hidden procs in export-unsafe-check
diff --git a/batch-driver.scm b/batch-driver.scm
index 0d09320f..d603eaca 100644
--- a/batch-driver.scm
+++ b/batch-driver.scm
@@ -583,7 +583,9 @@
(else
(print-node "optimized" '|7| node2)
- (when inline-output-file
+ ;; inlining into a file with interrupts enabled would
+ ;; change semantics
+ (when (and inline-output-file insert-timer-checks)
(let ((f inline-output-file))
(dribble "Generating global inline file `~a' ..." f)
(emit-global-inline-file f db) ) )
diff --git a/compiler.scm b/compiler.scm
index 51ee03be..c90eb40b 100644
--- a/compiler.scm
+++ b/compiler.scm
@@ -2078,6 +2078,7 @@
(when (and ##sys#notices-enabled
(get db name 'global)
(get db name 'assigned)
+ (variable-visible? name)
(or no-global-procedure-checks
(variable-mark name '##compiler#always-bound-to-procedure))
(not unsafe))
diff --git a/manual/Using the compiler b/manual/Using the compiler
index a618c56a..8f56a35c 100644
--- a/manual/Using the compiler
+++ b/manual/Using the compiler
@@ -154,7 +154,7 @@ the source text should be read from standard input.
-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
- -optimize-level 3 is equivalent to -optimize-leaf-routines -local -inline
+ -optimize-level 3 is equivalent to -optimize-leaf-routines -local -inline -inline-global
-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
Trap