~ chicken-core (chicken-5) 98d24ac8173c30cf7f7fa9dcb5925d897e66db97
commit 98d24ac8173c30cf7f7fa9dcb5925d897e66db97
Merge: 7ae936da 7d63669f
Author: felix <felix@call-with-current-continuation.org>
AuthorDate: Sat Jul 2 23:14:22 2011 +0200
Commit: felix <felix@call-with-current-continuation.org>
CommitDate: Sat Jul 2 23:14:22 2011 +0200
resolved conflicts
diff --cc c-platform.scm
index 3aba549e,6c76d94a..e9e1aeaa
--- a/c-platform.scm
+++ b/c-platform.scm
@@@ -149,8 -146,8 +149,9 @@@
block-ref block-set! number-of-slots substring-index substring-index-ci
hash-table-ref any? read-string substring=? substring-ci=?
first second third fourth make-record-instance
+ foldl foldr
- u8vector-length s8vector-length u16vector-length s16vector-length u32vector-length s32vector-length
+ u8vector-length s8vector-length u16vector-length s16vector-length u32vector-length
+ s32vector-length
f32vector-length f64vector-length setter
u8vector-ref s8vector-ref u16vector-ref s16vector-ref u32vector-ref s32vector-ref
f32vector-ref f64vector-ref f32vector-set! f64vector-set!
diff --cc manual/faq
index 8acaa705,b471871b..6f178cb5
--- a/manual/faq
+++ b/manual/faq
@@@ -510,162 -417,63 +510,164 @@@ and compiler settings
The following extended bindings are handled specially:
-{{bitwise-and}} {{bitwise-ior}} {{bitwise-xor}} {{bitwise-not}}
-{{bit-set?}} {{add1}} {{sub1}}
-{{fx+}} {{fx-}} {{fx*}} {{fx/}}
-{{fx+?}} {{fx-?}} {{fx*?}} {{fx/?}}
-{{fxmod}}
-{{fx=}} {{fx>}} {{fx>=}} {{fixnum?}} {{fxneg}} {{fxmax}} {{fxmin}}
-{{fxodd?}} {{fxeven?}}
-{{fxand}} {{fxior}} {{fxxor}} {{fxnot}} {{fxshl}} {{fxshr}}
-{{finite?}} {{fp=}} {{fp>}} {{fp<}} {{fp>=}} {{fp<=}} {{fpinteger?}}
-{{flonum?}} {{fp+}}
-{{fp-}} {{fp*}} {{fp/}} {{atom?}}
-{{fp=}} {{fp>}} {{fp>=}} {{fpneg}} {{fpmax}} {{fpmin}}
-{{fpfloor}} {{fpceiling}} {{fpround}} {{fptruncate}} {{fpsqrt}} {{fpabs}}
-{{fplog}} {{fpexp}} {{fpexpt}} {{fpsin}} {{fpcos}} {{fptan}} {{fpasin}}
-{{fpacos}} {{fpatan}} {{fpatan2}}
-{{arithmetic-shift}} {{signum}} {{flush-output}} {{thread-specific}} {{thread-specific-set!}}
-{{not-pair?}} {{null-list?}} {{print}} {{print*}} {{u8vector->blob/shared}}
-{{s8vector->blob/shared}} {{u16vector->blob/shared}} {{s16vector->blob/shared}}
-{{u32vector->blob/shared}}
-{{s32vector->blob/shared}} {{f32vector->blob/shared}} {{f64vector->blob/shared}} {{block-ref}}
+{{add1}}
+{{alist-cons}}
+{{any?}}
+{{arithmetic-shift}}
+{{atom?}}
+{{bit-set?}}
+{{bitwise-and}}
+{{bitwise-ior}}
+{{bitwise-not}}
+{{bitwise-xor}}
{{blob-size}}
-{{u8vector-length}}
-{{s8vector-length}}
-{{u16vector-length}}
-{{s16vector-length}}
-{{u32vector-length}}
-{{s32vector-length}}
+{{block-ref}}
+{{block-set!}}
+{{call/cc}}
+{{current-error-port}}
+{{current-thread}}
+{{error}}
+{{f32vector->blob/shared}}
{{f32vector-length}}
+{{f32vector-ref}}
+{{f64vector->blob/shared}}
{{f64vector-length}}
-{{u8vector-ref}}
-{{s8vector-ref}}
-{{u16vector-ref}}
+{{f64vector-ref}}
+{{finite?}}
+{{first}}
+{{fixnum?}}
+{{flonum?}}
+{{flush-output}}
++{{foldl}}
++{{foldr}}
+{{format}}
+{{fourth}}
+{{fp*}}
+{{fp+}}
+{{fp-}}
+{{fp/}}
+{{fp<=}}
+{{fp<}}
+{{fp=}}
+{{fp=}}
+{{fp>=}}
+{{fp>=}}
+{{fp>}}
+{{fp>}}
+{{fpabs}}
+{{fpacos}}
+{{fpasin}}
+{{fpatan2}}
+{{fpatan}}
+{{fpceiling}}
+{{fpcos}}
+{{fpexpt}}
+{{fpexp}}
+{{fpfloor}}
+{{fpinteger?}}
+{{fplog}}
+{{fpmax}}
+{{fpmin}}
+{{fpneg}}
+{{fprintf}}
+{{fpround}}
+{{fpsin}}
+{{fpsqrt}}
+{{fptan}}
+{{fptruncate}}
+{{fx*?}}
+{{fx*}}
+{{fx+?}}
+{{fx+}}
+{{fx-?}}
+{{fx-}}
+{{fx/?}}
+{{fx/}}
+{{fx=}}
+{{fx>=}}
+{{fx>}}
+{{fxand}}
+{{fxeven?}}
+{{fxior}}
+{{fxmax}}
+{{fxmin}}
+{{fxmod}}
+{{fxneg}}
+{{fxnot}}
+{{fxodd?}}
+{{fxshl}}
+{{fxshr}}
+{{fxxor}}
+{{hash-table-ref}}
+{{identity}}
+{{locative->object}}
+{{locative-ref}}
+{{locative-set!}}
+{{locative?}}
+{{make-record-instance}}
+{{not-pair?}}
+{{null-list?}}
+{{null-pointer?}}
+{{number-of-slots}}
+{{o}}
+{{pointer+}}
+{{pointer->object}}
+{{pointer-f32-ref}}
+{{pointer-f32-set!}}
+{{pointer-f64-ref}}
+{{pointer-f64-set!}}
+{{pointer-s16-ref}}
+{{pointer-s16-set!}}
+{{pointer-s32-ref}}
+{{pointer-s32-set!}}
+{{pointer-s8-ref}}
+{{pointer-s8-set!}}
+{{pointer-u16-ref}}
+{{pointer-u16-set!}}
+{{pointer-u32-ref}}
+{{pointer-u32-set!}}
+{{pointer-u8-ref}}
+{{pointer-u8-set!}}
+{{pointer=?}}
+{{print*}}
+{{printf}}
+{{print}}
+{{s16vector->blob/shared}}
+{{s16vector-length}}
{{s16vector-ref}}
-{{u32vector-ref}}
+{{s16vector-set!}}
+{{s32vector->blob/shared}}
+{{s32vector-length}}
{{s32vector-ref}}
-{{f32vector-ref}}
-{{f64vector-ref}}
-{{u8vector-set!}}
+{{s32vector-set!}}
+{{s8vector->blob/shared}}
+{{s8vector-length}}
+{{s8vector-ref}}
{{s8vector-set!}}
+{{second}}
+{{signum}}
+{{sprintf}}
+{{sub1}}
+{{substring-ci=?}}
+{{substring-index-ci}}
+{{substring-index}}
+{{substring=?}}
+{{third}}
+{{thread-specific-set!}}
+{{thread-specific}}
+{{u16vector->blob/shared}}
+{{u16vector-length}}
+{{u16vector-ref}}
{{u16vector-set!}}
-{{s16vector-set!}}
+{{u32vector->blob/shared}}
+{{u32vector-length}}
+{{u32vector-ref}}
{{u32vector-set!}}
-{{s32vector-set!}}
-{{hash-table-ref}}
-{{block-set!}} {{number-of-slots}}
-{{first}} {{second}} {{third}} {{fourth}} {{null-pointer?}} {{pointer->object}}
-{{pointer+}} {{pointer=?}}
-{{pointer-u8-ref}} {{pointer-s8-ref}} {{pointer-u16-ref}} {{pointer-s16-ref}}
-{{pointer-u32-ref}} {{pointer-s32-ref}} {{pointer-f32-ref}} {{pointer-f64-ref}}
-{{pointer-u8-set!}} {{pointer-s8-set!}} {{pointer-u16-set!}} {{pointer-s16-set!}}
-{{pointer-u32-set!}} {{pointer-s32-set!}} {{pointer-f32-set!}} {{pointer-f64-set!}}
-{{make-record-instance}}
-{{locative-ref}} {{locative-set!}} {{locative?}} {{locative->object}} {{identity}}
-{{cpu-time}} {{error}} {{call/cc}} {{any?}}
-{{substring=?}} {{substring-ci=?}} {{substring-index}} {{substring-index-ci}}
-{{printf}} {{sprintf}} {{fprintf}} {{format}} {{o}}
-{{foldl}} {{foldr}}
+{{u8vector->blob/shared}}
+{{u8vector-length}}
+{{u8vector-ref}}
+{{u8vector-set!}}
+{{xcons}}
==== What's the difference betweem "block" and "local" mode?
diff --cc types.db
index 7c6d1179,de0d3a0b..10103abc
--- a/types.db
+++ b/types.db
@@@ -609,102 -289,42 +609,106 @@@
(flonum-minimum-decimal-exponent fixnum)
(flonum-minimum-exponent fixnum)
(flonum-precision fixnum)
-(flonum-print-precision (procedure (#!optional fixnum) fixnum))
+(flonum-print-precision (procedure! (#!optional fixnum) fixnum))
(flonum-radix fixnum)
-(flonum? (procedure flonum? (*) boolean))
-(flush-output (procedure flush-output (#!optional port) undefined))
-(foldl (procedure foldl ((procedure (* *) *) * list) *))
-(foldr (procedure foldr ((procedure (* *) *) * list) *))
+
+(flonum? (procedure? float flonum? (*) boolean))
+
+(flush-output (procedure! flush-output (#!optional port) undefined))
++
++(foldl (procedure! foldl ((procedure (* *) *) * list) *))
++(foldr (procedure! foldr ((procedure (* *) *) * list) *))
++
(force-finalizers (procedure force-finalizers () undefined))
-(fp- (procedure fp- (float float) float))
-(fp* (procedure fp* (float float) float))
-(fp/ (procedure fp/ (float float) float))
-(fp+ (procedure fp+ (float float) float))
-(fp< (procedure fp< (float float) boolean))
-(fp<= (procedure fp<= (float float) boolean))
-(fp= (procedure fp= (float float) boolean))
-(fp> (procedure fp> (float float) boolean))
-(fp>= (procedure fp>= (float float) boolean))
-(fpabs (procedure fpabs (float) float))
-(fpacos (procedure fpacos (float) float))
-(fpasin (procedure fpasin (float) float))
-(fpatan (procedure fpatan (float) float))
-(fpatan2 (procedure fpatan2 (float float) float))
-(fpceiling (procedure fpceiling (float) float))
-(fpcos (procedure fpcos (float) float))
-(fpexp (procedure fpexp (float) float))
-(fpexpt (procedure fpexpt (float float) float))
-(fpfloor (procedure fpfloor (float) float))
-(fpinteger? (procedure fpinteger? (float) boolean))
-(fplog (procedure fplog (float) float))
-(fpmax (procedure fpmax (float float) float))
-(fpmin (procedure fpmin (float float) float))
-(fpneg (procedure fpneg (float) float))
-(fpround (procedure fpround (float) float))
-(fpsin (procedure fpsin (float) float))
-(fpsqrt (procedure fpsqrt (float) float))
-(fptan (procedure fptan (float) float))
-(fptruncate (procedure fptruncate (float) float))
+
+(fp- (procedure! fp- (float float) float)
+ ((float float) (##core#inline_allocate ("C_a_i_flonum_difference" 4) #(1) #(2)) ))
+
+(fp* (procedure! fp* (float float) float)
+ ((float float) (##core#inline_allocate ("C_a_i_flonum_times" 4) #(1) #(2)) ))
+
+(fp/ (procedure! fp/ (float float) float)
+ ((float float) (##core#inline_allocate ("C_a_i_flonum_quotient" 4) #(1) #(2)) ))
+
+(fp+ (procedure! fp+ (float float) float)
+ ((float float) (##core#inline_allocate ("C_a_i_flonum_plus" 4) #(1) #(2)) ))
+
+(fp< (procedure! fp< (float float) boolean)
+ ((float float) (##core#inline "C_flonum_lessp" #(1) #(2)) ))
+
+(fp<= (procedure! fp<= (float float) boolean)
+ ((float float) (##core#inline "C_flonum_less_or_equal_p" #(1) #(2)) ))
+
+(fp= (procedure! fp= (float float) boolean)
+ ((float float) (##core#inline "C_flonum_equalp" #(1) #(2)) ))
+
+(fp> (procedure! fp> (float float) boolean)
+ ((float float) (##core#inline "C_flonum_greaterp" #(1) #(2)) ))
+
+(fp>= (procedure! fp>= (float float) boolean)
+ ((float float) (##core#inline "C_flonum_greater_or_equal_p" #(1) #(2)) ))
+
+(fpabs (procedure! fpabs (float) float)
+ ((float) (##core#inline_allocate ("C_a_i_flonum_abs" 4) #(1) )))
+
+(fpacos (procedure! fpacos (float) float)
+ ((float) (##core#inline_allocate ("C_a_i_flonum_acos" 4) #(1) )))
+
+(fpasin (procedure! fpasin (float) float)
+ ((float) (##core#inline_allocate ("C_a_i_flonum_asin" 4) #(1) )))
+
+(fpatan (procedure! fpatan (float) float)
+ ((float) (##core#inline_allocate ("C_a_i_flonum_atan" 4) #(1) )))
+
+(fpatan2 (procedure! fpatan2 (float float) float)
+ ((float float) (##core#inline_allocate ("C_a_i_flonum_atan2" 4)
+ #(1) #(2))))
+(fpceiling (procedure! fpceiling (float) float)
+ ((float) (##core#inline_allocate ("C_a_i_flonum_ceiling" 4) #(1) )))
+
+(fpcos (procedure! fpcos (float) float)
+ ((float) (##core#inline_allocate ("C_a_i_flonum_cos" 4) #(1) )))
+
+(fpexp (procedure! fpexp (float) float)
+ ((float) (##core#inline_allocate ("C_a_i_flonum_exp" 4) #(1) )))
+
+(fpexpt (procedure! fpexpt (float float) float)
+ ((float float) (##core#inline_allocate ("C_a_i_flonum_expt" 4)
+ #(1) #(2))))
+
+(fpfloor (procedure! fpfloor (float) float)
+ ((float) (##core#inline_allocate ("C_a_i_flonum_floor" 4) #(1) )))
+
+(fpinteger? (procedure! fpinteger? (float) boolean)
+ ((float) (##core#inline "C_u_i_flonum_intergerp" #(1) )))
+
+(fplog (procedure! fplog (float) float)
+ ((float) (##core#inline_allocate ("C_a_i_flonum_log" 4) #(1) )))
+
+(fpmax (procedure! fpmax (float float) float)
+ ((float float) (##core#inline "C_i_flonum_max" #(1) #(2))))
+
+(fpmin (procedure! fpmin (float float) float)
+ ((float float) (##core#inline "C_i_flonum_min" #(1) #(2))))
+
+(fpneg (procedure! fpneg (float) float)
+ ((float) (##core#inline_allocate ("C_a_i_flonum_negate" 4) #(1) )))
+
+(fpround (procedure! fpround (float) float)
+ ((float) (##core#inline_allocate ("C_a_i_flonum_round" 4) #(1) )))
+
+(fpsin (procedure! fpsin (float) float)
+ ((float) (##core#inline_allocate ("C_a_i_flonum_sin" 4) #(1) )))
+
+(fpsqrt (procedure! fpsqrt (float) float)
+ ((float) (##core#inline_allocate ("C_a_i_flonum_sqrt" 4) #(1) )))
+
+(fptan (procedure! fptan (float) float)
+ ((float) (##core#inline_allocate ("C_a_i_flonum_tan" 4) #(1) )))
+
+(fptruncate (procedure! fptruncate (float) float)
+ ((float) (##core#inline_allocate ("C_a_i_flonum_truncate" 4) #(1) )))
+
(fx- (procedure fx- (fixnum fixnum) fixnum))
(fx* (procedure fx* (fixnum fixnum) fixnum))
(fx/ (procedure fx/ (fixnum fixnum) fixnum))
Trap