~ 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