~ chicken-core (chicken-5) 92548940accf74d9d3350604c6988b6b5cdcf19d


commit 92548940accf74d9d3350604c6988b6b5cdcf19d
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Thu Sep 9 02:56:57 2010 -0400
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Thu Sep 9 02:56:57 2010 -0400

    -O2 enables unboxing, docd unsafe-specialized-arithmetic decl

diff --git a/chicken.scm b/chicken.scm
index a2aa4fa4..441bd072 100644
--- a/chicken.scm
+++ b/chicken.scm
@@ -85,7 +85,7 @@
 		    (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
diff --git a/manual/Declarations b/manual/Declarations
index cc172cde..8805f91f 100644
--- a/manual/Declarations
+++ b/manual/Declarations
@@ -380,6 +380,18 @@ expressions are evaluated before A's.  Furthermore, the used symbols
 are registered as features during compile-time, so {{cond-expand}}
 knows about them.
 
+
+=== unsafe-specialized-arithmetic
+
+ [declaration specifier] (unsafe-specialized-arithmetic)
+
+Assume specialized arithmetic operations like {{fp+}}, {{fpsin}}, etc. 
+are always called with arguments of correct type and perform
+unboxing of intermediate results if possible and if the {{-unboxing}}
+compiler-option has been enabled (done by default on optimization
+levels 2 and higher).
+
+
 ---
 Previous: [[Modules]]
 
diff --git a/manual/Using the compiler b/manual/Using the compiler
index 952cb7ec..8609467f 100644
--- a/manual/Using the compiler	
+++ b/manual/Using the compiler	
@@ -157,7 +157,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 -inline-global
+     -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 -lambda-lift -disable-interrupts -no-trace -no-lambda-info
Trap