Welcome to the CHICKEN Scheme pasting service

safe fx ops benchmark pasted by megane on Mon Aug 19 15:51:45 2019

diff --git a/c-platform.scm b/c-platform.scm
index bf034ff1..98d9440f 100644
--- a/c-platform.scm
+++ b/c-platform.scm
@@ -990,15 +990,27 @@
 		      '("C_i_setslot") ) )
 		callargs) ) ) ) ) )
 
-(rewrite 'chicken.fixnum#fx+ 17 2 "C_fixnum_plus" "C_u_fixnum_plus")
-(rewrite 'chicken.fixnum#fx- 17 2 "C_fixnum_difference" "C_u_fixnum_difference")
-(rewrite 'chicken.fixnum#fxshl 17 2 "C_fixnum_shift_left")
-(rewrite 'chicken.fixnum#fxshr 17 2 "C_fixnum_shift_right")
-(rewrite 'chicken.fixnum#fxneg 17 1 "C_fixnum_negate" "C_u_fixnum_negate")
-(rewrite 'chicken.fixnum#fxxor 17 2 "C_fixnum_xor" "C_fixnum_xor")
-(rewrite 'chicken.fixnum#fxand 17 2 "C_fixnum_and" "C_u_fixnum_and")
-(rewrite 'chicken.fixnum#fxior 17 2 "C_fixnum_or" "C_u_fixnum_or")
-(rewrite 'chicken.fixnum#fx/ 17 2 "C_fixnum_divide" "C_u_fixnum_divide")
+(rewrite 'chicken.fixnum#fx= 17 2 "C_i_s_fixnum_equalp" "C_eqp")
+(rewrite 'chicken.fixnum#fx+ 17 2 "C_i_s_fixnum_plus" "C_u_fixnum_plus")
+(rewrite 'chicken.fixnum#fx- 17 2 "C_i_s_fixnum_difference" "C_u_fixnum_difference")
+(rewrite 'chicken.fixnum#fx* 17 2 "C_i_s_fixnum_times" "C_fixnum_times")
+(rewrite 'chicken.fixnum#fx/ 17 2 "C_i_s_fixnum_divide" "C_u_fixnum_divide")
+(rewrite 'chicken.fixnum#fxand 17 2 "C_i_s_fixnum_and" "C_u_fixnum_and")
+(rewrite 'chicken.fixnum#fxior 17 2 "C_i_s_fixnum_or" "C_u_fixnum_or")
+(rewrite 'chicken.fixnum#fxxor 17 2 "C_i_s_fixnum_xor" "C_fixnum_xor")
+(rewrite 'chicken.fixnum#fxnot 17 1 "C_i_s_fixnum_not" "C_fixnum_not")
+(rewrite 'chicken.fixnum#fxshr 17 2 "C_i_s_fixnum_shift_right" "C_fixnum_shift_right")
+(rewrite 'chicken.fixnum#fxshl 17 2 "C_i_s_fixnum_shift_left" "C_fixnum_shift_left")
+(rewrite 'chicken.fixnum#fxmax 17 2 "C_i_s_fixnum_max" "C_i_fixnum_max")
+(rewrite 'chicken.fixnum#fxmin 17 2 "C_i_s_fixnum_min" "C_i_fixnum_min")
+(rewrite 'chicken.fixnum#fxmod 17 2 "C_i_s_fixnum_modulo" "C_u_fixnum_modulo")
+(rewrite 'chicken.fixnum#fxneg 17 1 "C_i_s_fixnum_negate" "C_u_fixnum_negate")
+(rewrite 'chicken.fixnum#fxodd? 17 1 "C_i_s_fixnum_oddp" "C_i_fixnumoddp")
+(rewrite 'chicken.fixnum#fxeven? 17 1 "C_i_s_fixnum_evenp" "C_i_fixnumevenp")
+(rewrite 'chicken.fixnum#fx< 17 2 "C_i_s_fixnum_lessp" "C_fixnum_lessp")
+(rewrite 'chicken.fixnum#fx> 17 2 "C_i_s_fixnum_greaterp" "C_fixnum_greaterp")
+(rewrite 'chicken.fixnum#fx<= 17 2 "C_i_s_fixnum_less_or_equal_p" "C_fixnum_less_or_equal_p")
+(rewrite 'chicken.fixnum#fx>= 17 2 "C_i_s_fixnum_greater_or_equal_p" "C_fixnum_greater_or_equal_p")
 (rewrite 'chicken.fixnum#fxmod 17 2 "C_fixnum_modulo" "C_u_fixnum_modulo")
 (rewrite 'chicken.fixnum#fxrem 17 2 "C_i_fixnum_remainder_checked")
 
diff --git a/chicken.h b/chicken.h
index 72d5d397..d19a0378 100644
--- a/chicken.h
+++ b/chicken.h
@@ -2003,6 +2003,7 @@ C_fctexport C_word C_fcall C_i_length(C_word lst) C_regparm;
 C_fctexport C_word C_fcall C_u_i_length(C_word lst) C_regparm;
 C_fctexport C_word C_fcall C_i_check_closure_2(C_word x, C_word loc) C_regparm;
 C_fctexport C_word C_fcall C_i_check_fixnum_2(C_word x, C_word loc) C_regparm;
+C_fctexport C_word C_fcall C_i_check_fixnum_2_c(C_word x, char *loc) C_regparm;
 C_fctexport C_word C_fcall C_i_check_exact_2(C_word x, C_word loc) C_regparm; /* DEPRECATED */
 C_fctexport C_word C_fcall C_i_check_inexact_2(C_word x, C_word loc) C_regparm;
 C_fctexport C_word C_fcall C_i_check_number_2(C_word x, C_word loc) C_regparm;
@@ -2913,6 +2914,152 @@ inline static C_word C_fixnum_modulo(C_word x, C_word y)
   }
 }
 
+inline static C_word C_i_s_fixnum_equalp(C_word n1, C_word n2)
+{
+    C_i_check_fixnum_2_c(n1, C_text("fx="));
+    C_i_check_fixnum_2_c(n2, C_text("fx="));
+    return C_eqp(n1, n2);
+}
+
+inline static C_word C_i_s_fixnum_plus(C_word n1, C_word n2)
+{
+    C_i_check_fixnum_2_c(n1, C_text("fx+"));
+    C_i_check_fixnum_2_c(n2, C_text("fx+"));
+    return C_u_fixnum_plus(n1, n2);
+}
+
+inline static C_word C_i_s_fixnum_difference(C_word n1, C_word n2)
+{
+    C_i_check_fixnum_2_c(n1, C_text("fx-"));
+    C_i_check_fixnum_2_c(n2, C_text("fx-"));
+    return C_u_fixnum_difference(n1, n2);
+}
+
+inline static C_word C_i_s_fixnum_times(C_word n1, C_word n2)
+{
+    C_i_check_fixnum_2_c(n1, C_text("fx*"));
+    C_i_check_fixnum_2_c(n2, C_text("fx*"));
+    return C_fixnum_times(n1, n2);
+}
+
+inline static C_word C_i_s_fixnum_divide(C_word n1, C_word n2)
+{
+    C_i_check_fixnum_2_c(n1, C_text("fx/"));
+    C_i_check_fixnum_2_c(n2, C_text("fx/"));
+    if(n2 == C_fix(0)) C_div_by_zero_error(C_text("fx/"));
+    return C_u_fixnum_divide(n1, n2);
+}
+
+inline static C_word C_i_s_fixnum_and(C_word n1, C_word n2)
+{
+    C_i_check_fixnum_2_c(n1, C_text("fxand"));
+    C_i_check_fixnum_2_c(n2, C_text("fxand"));
+    return C_u_fixnum_and(n1, n2);
+}
+
+inline static C_word C_i_s_fixnum_or(C_word n1, C_word n2)
+{
+    C_i_check_fixnum_2_c(n1, C_text("fxior"));
+    C_i_check_fixnum_2_c(n2, C_text("fxior"));
+    return C_u_fixnum_or(n1, n2);
+}
+
+inline static C_word C_i_s_fixnum_xor(C_word n1, C_word n2)
+{
+    C_i_check_fixnum_2_c(n1, C_text("fxxor"));
+    C_i_check_fixnum_2_c(n2, C_text("fxxor"));
+    return C_fixnum_xor(n1, n2);
+}
+
+inline static C_word C_i_s_fixnum_not(C_word n1)
+{
+    C_i_check_fixnum_2_c(n1, C_text("fxnot"));
+    return C_fixnum_not(n1);
+}
+
+inline static C_word C_i_s_fixnum_shift_right(C_word n1, C_word n2)
+{
+    C_i_check_fixnum_2_c(n1, C_text("fxshr"));
+    C_i_check_fixnum_2_c(n2, C_text("fxshr"));
+    return C_fixnum_shift_right(n1, n2);
+}
+
+inline static C_word C_i_s_fixnum_shift_left(C_word n1, C_word n2)
+{
+    C_i_check_fixnum_2_c(n1, C_text("fxshl"));
+    C_i_check_fixnum_2_c(n2, C_text("fxshl"));
+    return C_fixnum_shift_left(n1, n2);
+}
+
+inline static C_word C_i_s_fixnum_max(C_word n1, C_word n2)
+{
+    C_i_check_fixnum_2_c(n1, C_text("fxmax"));
+    C_i_check_fixnum_2_c(n2, C_text("fxmax"));
+    return C_i_fixnum_max(n1, n2);
+}
+
+inline static C_word C_i_s_fixnum_min(C_word n1, C_word n2)
+{
+    C_i_check_fixnum_2_c(n1, C_text("fxmin"));
+    C_i_check_fixnum_2_c(n2, C_text("fxmin"));
+    return C_i_fixnum_min(n1, n2);
+}
+
+inline static C_word C_i_s_fixnum_modulo(C_word n1, C_word n2)
+{
+    C_i_check_fixnum_2_c(n1, C_text("fxmod"));
+    C_i_check_fixnum_2_c(n2, C_text("fxmod"));
+    if(n2 == C_fix(0)) C_div_by_zero_error(C_text("fxmod"));
+    return C_u_fixnum_modulo(n1, n2);
+}
+
+inline static C_word C_i_s_fixnum_negate(C_word n1)
+{
+    C_i_check_fixnum_2_c(n1, C_text("fxneg"));
+    return C_u_fixnum_negate(n1);
+}
+
+inline static C_word C_i_s_fixnum_oddp(C_word n1)
+{
+    C_i_check_fixnum_2_c(n1, C_text("fxodd?"));
+    return C_i_fixnumoddp(n1);
+}
+
+inline static C_word C_i_s_fixnum_evenp(C_word n1)
+{
+    C_i_check_fixnum_2_c(n1, C_text("fxeven?"));
+    return C_i_fixnumevenp(n1);
+}
+
+inline static C_word C_i_s_fixnum_lessp(C_word n1, C_word n2)
+{
+    C_i_check_fixnum_2_c(n1, C_text("fx<"));
+    C_i_check_fixnum_2_c(n2, C_text("fx<"));
+    return C_fixnum_lessp(n1, n2);
+}
+
+inline static C_word C_i_s_fixnum_greaterp(C_word n1, C_word n2)
+{
+    C_i_check_fixnum_2_c(n1, C_text("fx>"));
+    C_i_check_fixnum_2_c(n2, C_text("fx>"));
+    return C_fixnum_greaterp(n1, n2);
+}
+
+inline static C_word C_i_s_fixnum_less_or_equal_p(C_word n1, C_word n2)
+{
+    C_i_check_fixnum_2_c(n1, C_text("fx<="));
+    C_i_check_fixnum_2_c(n2, C_text("fx<="));
+    return C_fixnum_less_or_equal_p(n1, n2);
+}
+
+inline static C_word C_i_s_fixnum_greater_or_equal_p(C_word n1, C_word n2)
+{
+    C_i_check_fixnum_2_c(n1, C_text("fx>="));
+    C_i_check_fixnum_2_c(n2, C_text("fx>="));
+    return C_fixnum_greater_or_equal_p(n1, n2);
+}
+
+
 /* XXX: Naming convention is inconsistent!  There's C_fixnum_divide()
  * but also C_a_i_flonum_quotient_checked()
  */
diff --git a/library.scm b/library.scm
index bc0ef42c..2a301ab7 100644
--- a/library.scm
+++ b/library.scm
@@ -969,29 +969,29 @@ EOF
 (define fixnum-bits (foreign-value "(C_WORD_SIZE - 1)" int))
 (define fixnum-precision (foreign-value "(C_WORD_SIZE - (1 + 1))" int))
 
-(define (fx+ x y) (##core#inline "C_fixnum_plus" x y))
-(define (fx- x y) (##core#inline "C_fixnum_difference" x y))
-(define (fx* x y) (##core#inline "C_fixnum_times" x y))
-(define (fx= x y) (eq? x y))
-(define (fx> x y) (##core#inline "C_fixnum_greaterp" x y))
-(define (fx< x y) (##core#inline "C_fixnum_lessp" x y))
-(define (fx>= x y) (##core#inline "C_fixnum_greater_or_equal_p" x y))
-(define (fx<= x y) (##core#inline "C_fixnum_less_or_equal_p" x y))
-(define (fxmin x y) (##core#inline "C_i_fixnum_min" x y))
-(define (fxmax x y) (##core#inline "C_i_fixnum_max" x y))
-(define (fxneg x) (##core#inline "C_fixnum_negate" x))
-(define (fxand x y) (##core#inline "C_fixnum_and" x y))
-(define (fxior x y) (##core#inline "C_fixnum_or" x y))
-(define (fxxor x y) (##core#inline "C_fixnum_xor" x y))
-(define (fxnot x) (##core#inline "C_fixnum_not" x))
-(define (fxshl x y) (##core#inline "C_fixnum_shift_left" x y))
-(define (fxshr x y) (##core#inline "C_fixnum_shift_right" x y))
-(define (fxodd? x) (##core#inline "C_i_fixnumoddp" x))
-(define (fxeven? x) (##core#inline "C_i_fixnumevenp" x))
+(define (fx= x y) (##core#inline C_i_s_fixnum_equalp x y))
+(define (fx+ x y) (##core#inline C_i_s_fixnum_plus x y))
+(define (fx- x y) (##core#inline C_i_s_fixnum_difference x y))
+(define (fx* x y) (##core#inline C_i_s_fixnum_times x y))
+(define (fx/ x y) (##core#inline C_i_s_fixnum_divide x y))
+(define (fxand x y) (##core#inline C_i_s_fixnum_and x y))
+(define (fxior x y) (##core#inline C_i_s_fixnum_or x y))
+(define (fxxor x y) (##core#inline C_i_s_fixnum_xor x y))
+(define (fxnot x) (##core#inline C_i_s_fixnum_not x))
+(define (fxshr x y) (##core#inline C_i_s_fixnum_shift_right x y))
+(define (fxshl x y) (##core#inline C_i_s_fixnum_shift_left x y))
+(define (fxmax x y) (##core#inline C_i_s_fixnum_max x y))
+(define (fxmin x y) (##core#inline C_i_s_fixnum_min x y))
+(define (fxmod x y) (##core#inline C_i_s_fixnum_modulo x y))
+(define (fxneg x) (##core#inline C_i_s_fixnum_negate x))
+(define (fxodd? x) (##core#inline C_i_s_fixnum_oddp x))
+(define (fxeven? x) (##core#inline C_i_s_fixnum_evenp x))
+(define (fx< x y) (##core#inline C_i_s_fixnum_lessp x y))
+(define (fx> x y) (##core#inline C_i_s_fixnum_greaterp x y))
+(define (fx<= x y) (##core#inline C_i_s_fixnum_less_or_equal_p x y))
+(define (fx>= x y) (##core#inline C_i_s_fixnum_greater_or_equal_p x y))
 (define (fxlen x) (##core#inline "C_i_fixnum_length" x))
-(define (fx/ x y) (##core#inline "C_fixnum_divide" x y) )
 (define (fxgcd x y) (##core#inline "C_i_fixnum_gcd" x y))
-(define (fxmod x y) (##core#inline "C_fixnum_modulo" x y) )
 (define (fxrem x y) (##core#inline "C_i_fixnum_remainder_checked" x y) )
 
 ;; Overflow-detecting versions of some of the above
diff --git a/runtime.c b/runtime.c
index 5e1bb9f1..a96c1232 100644
--- a/runtime.c
+++ b/runtime.c
@@ -7292,6 +7292,14 @@ C_regparm C_word C_fcall C_i_check_fixnum_2(C_word x, C_word loc)
   return C_SCHEME_UNDEFINED;
 }
 
+C_regparm C_word C_fcall C_i_check_fixnum_2_c(C_word x, char *loc)
+{
+  if(C_unlikely(!(x & C_FIXNUM_BIT))) {
+    error_location = loc;
+    barf(C_BAD_ARGUMENT_TYPE_NO_FIXNUM_ERROR, NULL, x);
+  }
+}
+
 /* DEPRECATED */
 C_regparm C_word C_fcall C_i_check_exact_2(C_word x, C_word loc)
 {
diff --git a/types.db b/types.db
index 06514b28..ad0ef145 100644
--- a/types.db
+++ b/types.db
@@ -1270,29 +1270,72 @@
 (chicken.fixnum#fixnum-precision fixnum)
 
 ;;XXX These aren't enforcing, and aren't foldable due to 32/64-bit issues
-(chicken.fixnum#fx- (#(procedure #:clean) chicken.fixnum#fx- (fixnum fixnum) fixnum))
-(chicken.fixnum#fx* (#(procedure #:clean) chicken.fixnum#fx* (fixnum fixnum) fixnum))
-(chicken.fixnum#fx/ (#(procedure #:clean) chicken.fixnum#fx/ (fixnum fixnum) fixnum))
+(chicken.fixnum#fx=
+  (#(procedure #:pure #:enforce) chicken.fixnum#fx= (fixnum fixnum) boolean)
+  ((fixnum fixnum) (##core#inline "C_eqp" #(1) #(2))))
+(chicken.fixnum#fx+
+  (#(procedure #:pure #:enforce) chicken.fixnum#fx+ (fixnum fixnum) fixnum)
+  ((fixnum fixnum) (##core#inline "C_u_fixnum_plus" #(1) #(2))))
+(chicken.fixnum#fx-
+  (#(procedure #:pure #:enforce) chicken.fixnum#fx- (fixnum fixnum) fixnum)
+  ((fixnum fixnum) (##core#inline "C_u_fixnum_difference" #(1) #(2))))
+(chicken.fixnum#fx*
+  (#(procedure #:pure #:enforce) chicken.fixnum#fx* (fixnum fixnum) fixnum)
+  ((fixnum fixnum) (##core#inline "C_fixnum_times" #(1) #(2))))
+(chicken.fixnum#fx/
+  (#(procedure #:pure #:enforce) chicken.fixnum#fx/ (fixnum fixnum) fixnum)
+  ((fixnum fixnum) (##core#inline "C_u_fixnum_divide" #(1) #(2))))
+(chicken.fixnum#fxand
+  (#(procedure #:pure #:enforce) chicken.fixnum#fxand (fixnum fixnum) fixnum)
+  ((fixnum fixnum) (##core#inline "C_u_fixnum_and" #(1) #(2))))
+(chicken.fixnum#fxior
+  (#(procedure #:pure #:enforce) chicken.fixnum#fxior (fixnum fixnum) fixnum)
+  ((fixnum fixnum) (##core#inline "C_u_fixnum_or" #(1) #(2))))
+(chicken.fixnum#fxxor
+  (#(procedure #:pure #:enforce) chicken.fixnum#fxxor (fixnum fixnum) fixnum)
+  ((fixnum fixnum) (##core#inline "C_fixnum_xor" #(1) #(2))))
+(chicken.fixnum#fxnot
+  (#(procedure #:pure #:enforce) chicken.fixnum#fxnot (fixnum) fixnum)
+  ((fixnum) (##core#inline "C_fixnum_not" #(1))))
+(chicken.fixnum#fxshr
+  (#(procedure #:pure #:enforce) chicken.fixnum#fxshr (fixnum fixnum) fixnum)
+  ((fixnum fixnum) (##core#inline "C_fixnum_shift_right" #(1) #(2))))
+(chicken.fixnum#fxshl
+  (#(procedure #:pure #:enforce) chicken.fixnum#fxshl (fixnum fixnum) fixnum)
+  ((fixnum fixnum) (##core#inline "C_fixnum_shift_left" #(1) #(2))))
+(chicken.fixnum#fxmax
+  (#(procedure #:pure #:enforce) chicken.fixnum#fxmax (fixnum fixnum) fixnum)
+  ((fixnum fixnum) (##core#inline "C_i_fixnum_max" #(1) #(2))))
+(chicken.fixnum#fxmin
+  (#(procedure #:pure #:enforce) chicken.fixnum#fxmin (fixnum fixnum) fixnum)
+  ((fixnum fixnum) (##core#inline "C_i_fixnum_min" #(1) #(2))))
+(chicken.fixnum#fxmod
+  (#(procedure #:pure #:enforce) chicken.fixnum#fxmod (fixnum fixnum) fixnum)
+  ((fixnum fixnum) (##core#inline "C_u_fixnum_modulo" #(1) #(2))))
+(chicken.fixnum#fxneg
+  (#(procedure #:pure #:enforce) chicken.fixnum#fxneg (fixnum) fixnum)
+  ((fixnum) (##core#inline "C_u_fixnum_negate" #(1))))
+(chicken.fixnum#fxodd?
+  (#(procedure #:pure #:enforce) chicken.fixnum#fxodd? (fixnum) boolean)
+  ((fixnum) (##core#inline "C_i_fixnumoddp" #(1))))
+(chicken.fixnum#fxeven?
+  (#(procedure #:pure #:enforce) chicken.fixnum#fxeven? (fixnum) boolean)
+  ((fixnum) (##core#inline "C_i_fixnumevenp" #(1))))
+(chicken.fixnum#fx<
+  (#(procedure #:pure #:enforce) chicken.fixnum#fx< (fixnum fixnum) boolean)
+  ((fixnum fixnum) (##core#inline "C_fixnum_lessp" #(1) #(2))))
+(chicken.fixnum#fx>
+  (#(procedure #:pure #:enforce) chicken.fixnum#fx> (fixnum fixnum) boolean)
+  ((fixnum fixnum) (##core#inline "C_fixnum_greaterp" #(1) #(2))))
+(chicken.fixnum#fx<=
+  (#(procedure #:pure #:enforce) chicken.fixnum#fx<= (fixnum fixnum) boolean)
+  ((fixnum fixnum) (##core#inline "C_fixnum_less_or_equal_p" #(1) #(2))))
+(chicken.fixnum#fx>=
+  (#(procedure #:pure #:enforce) chicken.fixnum#fx>= (fixnum fixnum) boolean)
+  ((fixnum fixnum) (##core#inline "C_fixnum_greater_or_equal_p" #(1) #(2))))
+
 (chicken.fixnum#fxgcd (#(procedure #:clean) chicken.fixnum#fxgcd (fixnum fixnum) fixnum))
-(chicken.fixnum#fx+ (#(procedure #:clean) chicken.fixnum#fx+ (fixnum fixnum) fixnum))
-(chicken.fixnum#fx< (#(procedure #:clean) chicken.fixnum#fx< (fixnum fixnum) boolean))
-(chicken.fixnum#fx<= (#(procedure #:clean) chicken.fixnum#fx<= (fixnum fixnum) boolean))
-(chicken.fixnum#fx= (#(procedure #:clean) chicken.fixnum#fx= (fixnum fixnum) boolean))
-(chicken.fixnum#fx> (#(procedure #:clean) chicken.fixnum#fx> (fixnum fixnum) boolean))
-(chicken.fixnum#fx>= (#(procedure #:clean) chicken.fixnum#fx>= (fixnum fixnum) boolean))
-(chicken.fixnum#fxand (#(procedure #:clean) chicken.fixnum#fxand (fixnum fixnum) fixnum))
-(chicken.fixnum#fxeven? (#(procedure #:clean) chicken.fixnum#fxeven? (fixnum) boolean))
-(chicken.fixnum#fxior (#(procedure #:clean) chicken.fixnum#fxior (fixnum fixnum) fixnum))
-(chicken.fixnum#fxmax (#(procedure #:clean) chicken.fixnum#fxmax (fixnum fixnum) fixnum))
-(chicken.fixnum#fxmin (#(procedure #:clean) chicken.fixnum#fxmin (fixnum fixnum) fixnum))
-(chicken.fixnum#fxmod (#(procedure #:clean) chicken.fixnum#fxmod (fixnum fixnum) fixnum))
 (chicken.fixnum#fxrem (#(procedure #:clean) chicken.fixnum#fxrem (fixnum fixnum) fixnum))
-(chicken.fixnum#fxneg (#(procedure #:clean) chicken.fixnum#fxneg (fixnum) fixnum))
-(chicken.fixnum#fxnot (#(procedure #:clean) chicken.fixnum#fxnot (fixnum) fixnum))
-(chicken.fixnum#fxodd? (#(procedure #:clean) chicken.fixnum#fxodd? (fixnum) boolean))
-(chicken.fixnum#fxshl (#(procedure #:clean) chicken.fixnum#fxshl (fixnum fixnum) fixnum))
-(chicken.fixnum#fxshr (#(procedure #:clean) chicken.fixnum#fxshr (fixnum fixnum) fixnum))
-(chicken.fixnum#fxxor (#(procedure #:clean) chicken.fixnum#fxxor (fixnum fixnum) fixnum))
 (chicken.fixnum#fxlen (#(procedure #:clean) chicken.fixnum#fxlen (fixnum) fixnum))
 
 (chicken.fixnum#fx+? (#(procedure #:pure) chicken.fixnum#fx+? ((or fixnum false) (or fixnum false)) (or fixnum false)))

no title pasted by megane on Mon Aug 19 15:52:07 2019

+---[1]:
|-> installation-prefix: /home/nabe/programs/chicken-5-safe-fx
|-> csc-options: -O3
|-> runtime-options: 
|-> repetitions: 10

+---[2]:
|-> installation-prefix: /home/nabe/programs/chicken-5-core
|-> csc-options: -O3
|-> runtime-options: 
|-> repetitions: 10

Displaying normalized results (larger numbers indicate better results)

===
=== cpu-time
===

Programs                   [1]       [2]
========================================
0_________________________1.00______1.00
binarytrees_______________1.00______1.00
boyer_____________________1.00______1.00
browse____________________1.00______1.00
conform___________________1.00______1.01
cpstak____________________1.03______1.00
ctak______________________1.02______1.00
dderiv____________________1.01______1.00
deriv_____________________1.00______1.00
destructive_______________1.19______1.00
dfa_______________________1.00______1.03
div-iter__________________1.00______1.00
div-rec___________________1.02______1.00
dynamic___________________1.00______1.00
earley____________________1.00______1.00
fannkuch__________________1.01______1.00
fft_______________________1.00______1.00
fib_______________________1.02______1.00
fibc______________________1.00______1.00
fibfp_____________________1.04______1.00
fprint____________________1.06______1.00
fread_____________________1.00______1.02
gcbench___________________1.00______1.01
gold______________________1.00______1.00
gold2_____________________1.00______1.00
graphs____________________1.00______1.01
hanoi_____________________1.01______1.00
integ_____________________1.00______1.01
integ2____________________1.00______1.00
integ3____________________1.01______1.00
kanren____________________1.00______1.00
kernwyk-ackermann_________1.00______1.00
kernwyk-array_____________1.00______1.00
kernwyk-cat_______________1.02______1.00
kernwyk-string____________1.00______1.00
kernwyk-sum_______________1.00______1.00
kernwyk-tail______________1.03______1.00
kernwyk-wc________________1.00______1.04
knucleotide_______________1.01______1.00
lattice___________________1.00______1.00
matrix____________________1.01______1.00
maze______________________1.00______1.00
mazefun___________________1.02______1.00
mbrot_____________________1.05______1.00
nbody_____________________1.00______1.00
nboyer____________________1.00______1.00
nestedloop________________1.02______1.00
nfa_______________________1.01______1.00
nqueens___________________1.00______1.00
ntakl_____________________1.02______1.00
nucleic2__________________1.00______1.03
paraffins_________________1.00______1.00
parsing___________________1.00______1.00
pnpoly____________________1.05______1.00
primes____________________1.00______1.02
psyntax___________________1.00______1.00
puzzle____________________1.00______1.03
ray_______________________1.00______1.05
ray2______________________1.00______1.00
sboyer____________________1.01______1.00
scheme____________________1.00______1.00
sieves-eratosthenes_______1.00______1.01
simplex___________________1.00______1.00
slatex____________________1.02______1.00
sort1_____________________1.00______1.00
tak_______________________1.00______1.02
takl______________________1.01______1.00
takr______________________1.00______1.00
traverse__________________1.00______1.00
travinit__________________1.00______1.02
triangl___________________1.00______1.00


===
=== major-gcs
===

Programs                   [1]       [2]
========================================
0_________________________1.00______1.00
binarytrees_______________1.00______1.00
boyer_____________________1.00______1.00
browse____________________1.00______1.00
conform___________________1.00______1.00
cpstak____________________1.00______1.00
ctak______________________1.00______1.00
dderiv____________________1.00______1.00
deriv_____________________1.00______1.00
destructive_______________1.00______1.00
dfa_______________________1.00______1.00
div-iter__________________1.00______1.00
div-rec___________________1.00______1.00
dynamic___________________1.00______1.00
earley____________________1.00______1.00
fannkuch__________________1.00______1.00
fft_______________________1.00______1.00
fib_______________________1.00______1.00
fibc______________________1.00______1.00
fibfp_____________________1.00______1.00
fprint____________________1.00______1.00
fread_____________________1.00______1.00
gcbench___________________1.00______1.00
gold______________________1.00______1.00
gold2_____________________1.00______1.00
graphs____________________1.00______1.00
hanoi_____________________1.00______1.00
integ_____________________1.00______1.00
integ2____________________1.00______1.00
integ3____________________1.00______1.00
kanren____________________1.00______1.00
kernwyk-ackermann_________1.00______1.00
kernwyk-array_____________1.00______1.00
kernwyk-cat_______________1.00______1.00
kernwyk-string____________1.00______1.00
kernwyk-sum_______________1.08______1.00
kernwyk-tail______________1.25______1.00
kernwyk-wc________________1.00______1.00
knucleotide_______________1.02______1.00
lattice___________________1.00______1.00
matrix____________________1.00______1.00
maze______________________1.00______1.00
mazefun___________________1.00______1.00
mbrot_____________________1.00______1.00
nbody_____________________1.00______1.00
nboyer____________________1.00______1.00
nestedloop________________1.00______1.00
nfa_______________________1.00______1.00
nqueens___________________1.00______1.00
ntakl_____________________1.00______1.00
nucleic2__________________1.00______1.00
paraffins_________________1.00______1.00
parsing___________________1.00______1.13
pnpoly____________________1.00______1.00
primes____________________1.00______1.00
psyntax___________________1.12______1.00
puzzle____________________1.00______1.00
ray_______________________1.00______1.00
ray2______________________1.00______1.00
sboyer____________________1.00______1.00
scheme____________________1.00______1.00
sieves-eratosthenes_______1.00______1.00
simplex___________________1.00______1.00
slatex____________________1.33______1.00
sort1_____________________1.00______1.00
tak_______________________1.00______1.00
takl______________________1.00______1.00
takr______________________1.00______1.00
traverse__________________1.00______1.00
travinit__________________1.00______1.00
triangl___________________1.00______1.00


===
=== minor-gcs
===

Programs                   [1]       [2]
========================================
0_________________________1.00______1.00
binarytrees_______________1.00______1.00
boyer_____________________1.00______1.00
browse____________________1.00______1.00
conform___________________1.00______1.00
cpstak____________________1.00______1.00
ctak______________________1.00______1.00
dderiv____________________1.00______1.00
deriv_____________________1.00______1.00
destructive_______________1.00______1.00
dfa_______________________1.00______1.00
div-iter__________________1.00______1.00
div-rec___________________1.00______1.00
dynamic___________________1.00______1.00
earley____________________1.00______1.00
fannkuch__________________1.00______1.00
fft_______________________1.00______1.00
fib_______________________1.00______1.00
fibc______________________1.00______1.00
fibfp_____________________1.00______1.00
fprint____________________1.00______1.00
fread_____________________1.00______1.00
gcbench___________________1.00______1.00
gold______________________1.00______1.00
gold2_____________________1.00______1.00
graphs____________________1.00______1.00
hanoi_____________________1.00______1.00
integ_____________________1.00______1.00
integ2____________________1.00______1.00
integ3____________________1.00______1.00
kanren____________________1.00______1.00
kernwyk-ackermann_________1.00______1.00
kernwyk-array_____________1.00______1.00
kernwyk-cat_______________1.00______1.00
kernwyk-string____________1.00______1.00
kernwyk-sum_______________1.00______1.00
kernwyk-tail______________1.00______1.00
kernwyk-wc________________1.00______1.00
knucleotide_______________1.00______1.00
lattice___________________1.00______1.00
matrix____________________1.00______1.00
maze______________________1.00______1.00
mazefun___________________1.00______1.00
mbrot_____________________1.00______1.00
nbody_____________________1.00______1.00
nboyer____________________1.00______1.00
nestedloop________________1.00______1.00
nfa_______________________1.00______1.00
nqueens___________________1.00______1.00
ntakl_____________________1.00______1.00
nucleic2__________________1.00______1.00
paraffins_________________1.00______1.00
parsing___________________1.00______1.00
pnpoly____________________1.00______1.00
primes____________________1.00______1.00
psyntax___________________1.00______1.00
puzzle____________________1.00______1.00
ray_______________________1.00______1.00
ray2______________________1.00______1.00
sboyer____________________1.00______1.00
scheme____________________1.00______1.00
sieves-eratosthenes_______1.00______1.00
simplex___________________1.00______1.00
slatex____________________1.00______1.00
sort1_____________________1.00______1.00
tak_______________________1.00______1.00
takl______________________1.00______1.00
takr______________________1.00______1.00
traverse__________________1.00______1.00
travinit__________________1.00______1.00
triangl___________________1.00______1.00


===
=== major-gcs-time
===

Programs                   [1]       [2]
========================================
0_________________________1.00______1.00
binarytrees_______________1.00______1.07
boyer_____________________1.00______1.00
browse____________________1.00______1.04
conform___________________1.05______1.00
cpstak____________________1.00______1.06
ctak______________________1.00______1.40
dderiv____________________1.20______1.00
deriv_____________________1.71______1.00
destructive______________17.00______1.00
dfa_______________________1.00______1.10
div-iter__________________1.00______1.00
div-rec___________________1.00______1.00
dynamic___________________1.00______1.02
earley____________________1.00______1.02
fannkuch__________________1.02______1.00
fft_______________________1.00______1.04
fib_______________________1.00______1.55
fibc______________________1.00______1.11
fibfp_____________________1.00______1.06
fprint____________________1.00______1.00
fread_____________________1.00______1.00
gcbench___________________1.00______1.01
gold______________________1.00______1.01
gold2_____________________1.01______1.00
graphs____________________1.01______1.00
hanoi_____________________1.00______1.09
integ_____________________1.00______1.02
integ2____________________1.00______1.04
integ3____________________1.03______1.00
kanren____________________1.00______1.01
kernwyk-ackermann_________1.00______1.04
kernwyk-array_____________1.00______1.00
kernwyk-cat_______________1.00______1.00
kernwyk-string____________1.00______1.02
kernwyk-sum_______________1.09______1.00
kernwyk-tail______________1.05______1.00
kernwyk-wc________________1.00______1.00
knucleotide_______________1.00______1.00
lattice___________________1.01______1.00
matrix____________________1.00______1.00
maze______________________1.00______1.03
mazefun___________________1.00______1.03
mbrot_____________________1.00______1.00
nbody_____________________1.00______1.06
nboyer____________________1.00______1.01
nestedloop________________1.13______1.00
nfa_______________________1.06______1.00
nqueens___________________1.00______1.00
ntakl_____________________1.00______1.00
nucleic2__________________1.00______1.02
paraffins_________________1.01______1.00
parsing___________________1.00______1.18
pnpoly____________________1.00______1.03
primes____________________1.25______1.00
psyntax___________________1.00______1.00
puzzle____________________1.00______1.80
ray_______________________1.00______1.12
ray2______________________1.00______1.01
sboyer____________________1.00______1.01
scheme____________________1.00______1.00
sieves-eratosthenes_______1.00______1.04
simplex___________________1.01______1.00
slatex____________________1.40______1.00
sort1_____________________1.00______1.01
tak_______________________1.03______1.00
takl______________________1.00______1.00
takr______________________1.17______1.00
traverse__________________1.00______1.11
travinit__________________1.19______1.00
triangl___________________1.03______1.00


===
=== cpu-time
===

Programs                   [1]       [2]
========================================
0___________________________1_________1
binarytrees_________________2_________1
boyer_______________________1_________2
browse______________________1_________2
conform_____________________2_________1
cpstak______________________1_________2
ctak________________________1_________2
dderiv______________________1_________2
deriv_______________________2_________1
destructive_________________1_________2
dfa_________________________2_________1
div-iter____________________1_________1
div-rec_____________________1_________2
dynamic_____________________2_________1
earley______________________2_________1
fannkuch____________________1_________2
fft_________________________1_________2
fib_________________________1_________2
fibc________________________1_________2
fibfp_______________________1_________2
fprint______________________1_________2
fread_______________________2_________1
gcbench_____________________2_________1
gold________________________2_________1
gold2_______________________2_________1
graphs______________________2_________1
hanoi_______________________1_________2
integ_______________________2_________1
integ2______________________1_________2
integ3______________________1_________2
kanren______________________2_________1
kernwyk-ackermann___________1_________2
kernwyk-array_______________2_________1
kernwyk-cat_________________1_________2
kernwyk-string______________2_________1
kernwyk-sum_________________2_________1
kernwyk-tail________________1_________2
kernwyk-wc__________________2_________1
knucleotide_________________1_________2
lattice_____________________2_________1
matrix______________________1_________2
maze________________________2_________1
mazefun_____________________1_________2
mbrot_______________________1_________2
nbody_______________________1_________2
nboyer______________________1_________2
nestedloop__________________1_________2
nfa_________________________1_________2
nqueens_____________________2_________1
ntakl_______________________1_________2
nucleic2____________________2_________1
paraffins___________________2_________1
parsing_____________________2_________1
pnpoly______________________1_________2
primes______________________2_________1
psyntax_____________________2_________1
puzzle______________________2_________1
ray_________________________2_________1
ray2________________________2_________1
sboyer______________________1_________2
scheme______________________1_________1
sieves-eratosthenes_________2_________1
simplex_____________________2_________1
slatex______________________1_________2
sort1_______________________1_________2
tak_________________________2_________1
takl________________________1_________2
takr________________________1_________2
traverse____________________2_________1
travinit____________________2_________1
triangl_____________________2_________1

[1]:  1111111111111111111111111111111111__________________________________
[2]:  1111111111111111111111111111111111__________________________________
(Last place is marked as '_')


===
=== major-gcs
===

Programs                   [1]       [2]
========================================
0___________________________1_________1
binarytrees_________________1_________1
boyer_______________________1_________1
browse______________________1_________1
conform_____________________1_________1
cpstak______________________1_________1
ctak________________________1_________1
dderiv______________________1_________1
deriv_______________________1_________1
destructive_________________1_________1
dfa_________________________1_________1
div-iter____________________1_________1
div-rec_____________________1_________1
dynamic_____________________1_________1
earley______________________1_________1
fannkuch____________________1_________1
fft_________________________1_________1
fib_________________________1_________1
fibc________________________1_________1
fibfp_______________________1_________1
fprint______________________1_________1
fread_______________________1_________1
gcbench_____________________1_________1
gold________________________1_________1
gold2_______________________1_________1
graphs______________________1_________1
hanoi_______________________1_________1
integ_______________________1_________1
integ2______________________1_________1
integ3______________________1_________1
kanren______________________1_________1
kernwyk-ackermann___________1_________1
kernwyk-array_______________1_________1
kernwyk-cat_________________1_________1
kernwyk-string______________1_________1
kernwyk-sum_________________1_________2
kernwyk-tail________________1_________2
kernwyk-wc__________________1_________1
knucleotide_________________1_________2
lattice_____________________1_________1
matrix______________________1_________1
maze________________________1_________1
mazefun_____________________1_________1
mbrot_______________________1_________1
nbody_______________________1_________1
nboyer______________________1_________1
nestedloop__________________1_________1
nfa_________________________1_________1
nqueens_____________________1_________1
ntakl_______________________1_________1
nucleic2____________________1_________1
paraffins___________________1_________1
parsing_____________________2_________1
pnpoly______________________1_________1
primes______________________1_________1
psyntax_____________________1_________2
puzzle______________________1_________1
ray_________________________1_________1
ray2________________________1_________1
sboyer______________________1_________1
scheme______________________1_________1
sieves-eratosthenes_________1_________1
simplex_____________________1_________1
slatex______________________1_________2
sort1_______________________1_________1
tak_________________________1_________1
takl________________________1_________1
takr________________________1_________1
traverse____________________1_________1
travinit____________________1_________1
triangl_____________________1_________1

[1]:  11111_
[2]:  1_____
(Last place is marked as '_')


===
=== minor-gcs
===

Programs                   [1]       [2]
========================================
0___________________________1_________1
binarytrees_________________1_________1
boyer_______________________1_________1
browse______________________1_________1
conform_____________________1_________1
cpstak______________________1_________1
ctak________________________1_________1
dderiv______________________1_________1
deriv_______________________1_________1
destructive_________________1_________1
dfa_________________________2_________1
div-iter____________________1_________1
div-rec_____________________1_________1
dynamic_____________________1_________1
earley______________________1_________1
fannkuch____________________1_________1
fft_________________________1_________1
fib_________________________1_________1
fibc________________________1_________1
fibfp_______________________1_________1
fprint______________________1_________1
fread_______________________1_________1
gcbench_____________________1_________1
gold________________________1_________1
gold2_______________________1_________1
graphs______________________1_________1
hanoi_______________________1_________1
integ_______________________1_________1
integ2______________________1_________1
integ3______________________1_________1
kanren______________________1_________1
kernwyk-ackermann___________1_________1
kernwyk-array_______________1_________1
kernwyk-cat_________________1_________1
kernwyk-string______________1_________1
kernwyk-sum_________________2_________1
kernwyk-tail________________2_________1
kernwyk-wc__________________1_________1
knucleotide_________________2_________1
lattice_____________________1_________1
matrix______________________1_________1
maze________________________1_________1
mazefun_____________________1_________1
mbrot_______________________1_________1
nbody_______________________1_________1
nboyer______________________1_________1
nestedloop__________________1_________1
nfa_________________________1_________1
nqueens_____________________1_________1
ntakl_______________________1_________1
nucleic2____________________1_________1
paraffins___________________1_________1
parsing_____________________1_________2
pnpoly______________________1_________1
primes______________________1_________1
psyntax_____________________2_________1
puzzle______________________1_________1
ray_________________________1_________1
ray2________________________1_________1
sboyer______________________1_________1
scheme______________________1_________1
sieves-eratosthenes_________1_________1
simplex_____________________1_________1
slatex______________________2_________1
sort1_______________________1_________1
tak_________________________1_________1
takl________________________1_________1
takr________________________1_________1
traverse____________________1_________1
travinit____________________1_________1
triangl_____________________1_________1

[2]:  111111_
[1]:  1______
(Last place is marked as '_')


===
=== major-gcs-time
===

Programs                   [1]       [2]
========================================
0___________________________1_________1
binarytrees_________________2_________1
boyer_______________________2_________1
browse______________________2_________1
conform_____________________1_________2
cpstak______________________2_________1
ctak________________________2_________1
dderiv______________________1_________2
deriv_______________________1_________2
destructive_________________1_________2
dfa_________________________2_________1
div-iter____________________1_________1
div-rec_____________________2_________1
dynamic_____________________2_________1
earley______________________2_________1
fannkuch____________________1_________2
fft_________________________2_________1
fib_________________________2_________1
fibc________________________2_________1
fibfp_______________________2_________1
fprint______________________1_________1
fread_______________________1_________2
gcbench_____________________2_________1
gold________________________2_________1
gold2_______________________1_________2
graphs______________________1_________2
hanoi_______________________2_________1
integ_______________________2_________1
integ2______________________2_________1
integ3______________________1_________2
kanren______________________2_________1
kernwyk-ackermann___________2_________1
kernwyk-array_______________2_________1
kernwyk-cat_________________1_________1
kernwyk-string______________2_________1
kernwyk-sum_________________1_________2
kernwyk-tail________________1_________2
kernwyk-wc__________________1_________1
knucleotide_________________2_________1
lattice_____________________1_________2
matrix______________________1_________2
maze________________________2_________1
mazefun_____________________2_________1
mbrot_______________________1_________1
nbody_______________________2_________1
nboyer______________________2_________1
nestedloop__________________1_________2
nfa_________________________1_________2
nqueens_____________________1_________2
ntakl_______________________1_________1
nucleic2____________________2_________1
paraffins___________________1_________2
parsing_____________________2_________1
pnpoly______________________2_________1
primes______________________1_________2
psyntax_____________________1_________2
puzzle______________________2_________1
ray_________________________2_________1
ray2________________________2_________1
sboyer______________________2_________1
scheme______________________1_________1
sieves-eratosthenes_________2_________1
simplex_____________________1_________2
slatex______________________1_________2
sort1_______________________2_________1
tak_________________________1_________2
takl________________________1_________1
takr________________________1_________2
traverse____________________2_________1
travinit____________________1_________2
triangl_____________________1_________2

[2]:  1111111111111111111111111111111111111_________________________
[1]:  1111111111111111111111111_____________________________________
(Last place is marked as '_')


no title pasted by megane on Mon Aug 19 15:52:38 2019

+---[1]:
|-> installation-prefix: /home/nabe/programs/chicken-5-core
|-> csc-options: -O3
|-> runtime-options: 
|-> repetitions: 10

+---[2]:
|-> installation-prefix: /home/nabe/programs/chicken-5-safe-fx
|-> csc-options: -O3
|-> runtime-options: 
|-> repetitions: 10

Displaying normalized results (larger numbers indicate better results)

===
=== cpu-time
===

Programs                   [1]       [2]
========================================
0_________________________1.00______1.00
binarytrees_______________1.00______1.00
boyer_____________________1.00______1.00
browse____________________1.00______1.00
conform___________________1.00______1.00
cpstak____________________1.00______1.00
ctak______________________1.00______1.03
dderiv____________________1.00______1.03
deriv_____________________1.00______1.01
destructive_______________1.00______1.18
dfa_______________________1.03______1.00
div-iter__________________1.00______1.03
div-rec___________________1.00______1.00
dynamic___________________1.00______1.00
earley____________________1.00______1.00
fannkuch__________________1.00______1.02
fft_______________________1.00______1.00
fib_______________________1.00______1.01
fibc______________________1.01______1.00
fibfp_____________________1.00______1.04
fprint____________________1.00______1.05
fread_____________________1.03______1.00
gcbench___________________1.00______1.00
gold______________________1.01______1.00
gold2_____________________1.05______1.00
graphs____________________1.00______1.00
hanoi_____________________1.00______1.00
integ_____________________1.01______1.00
integ2____________________1.00______1.00
integ3____________________1.00______1.01
kanren____________________1.00______1.00
kernwyk-ackermann_________1.00______1.00
kernwyk-array_____________1.00______1.04
kernwyk-cat_______________1.00______1.03
kernwyk-string____________1.00______1.00
kernwyk-sum_______________1.00______1.00
kernwyk-tail______________1.00______1.04
kernwyk-wc________________1.02______1.00
knucleotide_______________1.00______1.01
lattice___________________1.00______1.00
matrix____________________1.00______1.00
maze______________________1.00______1.00
mazefun___________________1.00______1.02
mbrot_____________________1.00______1.04
nbody_____________________1.00______1.00
nboyer____________________1.00______1.00
nestedloop________________1.00______1.04
nfa_______________________1.00______1.01
nqueens___________________1.00______1.00
ntakl_____________________1.00______1.00
nucleic2__________________1.00______1.00
paraffins_________________1.00______1.00
parsing___________________1.00______1.00
pnpoly____________________1.00______1.03
primes____________________1.01______1.00
psyntax___________________1.00______1.00
puzzle____________________1.03______1.00
ray_______________________1.06______1.00
ray2______________________1.00______1.00
sboyer____________________1.00______1.00
scheme____________________1.00______1.00
sieves-eratosthenes_______1.01______1.00
simplex___________________1.00______1.00
slatex____________________1.00______1.00
sort1_____________________1.00______1.00
tak_______________________1.01______1.00
takl______________________1.00______1.00
takr______________________1.00______1.00
traverse__________________1.00______1.00
travinit__________________1.02______1.00
triangl___________________1.04______1.00


===
=== major-gcs
===

Programs                   [1]       [2]
========================================
0_________________________1.00______1.00
binarytrees_______________1.00______1.00
boyer_____________________1.00______1.00
browse____________________1.00______1.00
conform___________________1.00______1.00
cpstak____________________1.00______1.00
ctak______________________1.00______1.00
dderiv____________________1.00______1.00
deriv_____________________1.00______1.00
destructive_______________1.00______1.00
dfa_______________________1.00______1.00
div-iter__________________1.00______1.00
div-rec___________________1.00______1.00
dynamic___________________1.00______1.00
earley____________________1.00______1.00
fannkuch__________________1.00______1.00
fft_______________________1.00______1.00
fib_______________________1.00______1.00
fibc______________________1.00______1.00
fibfp_____________________1.00______1.00
fprint____________________1.00______1.00
fread_____________________1.00______1.00
gcbench___________________1.00______1.00
gold______________________1.00______1.00
gold2_____________________1.00______1.00
graphs____________________1.00______1.00
hanoi_____________________1.00______1.00
integ_____________________1.00______1.00
integ2____________________1.00______1.00
integ3____________________1.00______1.00
kanren____________________1.00______1.00
kernwyk-ackermann_________1.00______1.00
kernwyk-array_____________1.00______1.00
kernwyk-cat_______________1.00______1.00
kernwyk-string____________1.00______1.00
kernwyk-sum_______________1.00______1.08
kernwyk-tail______________1.00______1.33
kernwyk-wc________________1.00______1.00
knucleotide_______________1.03______1.00
lattice___________________1.00______1.00
matrix____________________1.00______1.00
maze______________________1.00______1.00
mazefun___________________1.00______1.00
mbrot_____________________1.00______1.00
nbody_____________________1.00______1.00
nboyer____________________1.00______1.00
nestedloop________________1.00______1.00
nfa_______________________1.00______1.00
nqueens___________________1.00______1.00
ntakl_____________________1.00______1.00
nucleic2__________________1.00______1.00
paraffins_________________1.00______1.00
parsing___________________1.13______1.00
pnpoly____________________1.00______1.00
primes____________________1.00______1.00
psyntax___________________1.00______1.12
puzzle____________________1.00______1.00
ray_______________________1.00______1.00
ray2______________________1.00______1.00
sboyer____________________1.00______1.00
scheme____________________1.00______1.00
sieves-eratosthenes_______1.00______1.00
simplex___________________1.00______1.00
slatex____________________1.00______1.11
sort1_____________________1.00______1.00
tak_______________________1.00______1.00
takl______________________1.00______1.00
takr______________________1.00______1.00
traverse__________________1.00______1.00
travinit__________________1.00______1.00
triangl___________________1.00______1.00


===
=== minor-gcs
===

Programs                   [1]       [2]
========================================
0_________________________1.00______1.00
binarytrees_______________1.00______1.00
boyer_____________________1.00______1.00
browse____________________1.00______1.00
conform___________________1.00______1.00
cpstak____________________1.00______1.00
ctak______________________1.00______1.00
dderiv____________________1.00______1.00
deriv_____________________1.00______1.00
destructive_______________1.00______1.00
dfa_______________________1.00______1.00
div-iter__________________1.00______1.00
div-rec___________________1.00______1.00
dynamic___________________1.00______1.00
earley____________________1.00______1.00
fannkuch__________________1.00______1.00
fft_______________________1.00______1.00
fib_______________________1.00______1.00
fibc______________________1.00______1.00
fibfp_____________________1.00______1.00
fprint____________________1.00______1.00
fread_____________________1.00______1.00
gcbench___________________1.00______1.00
gold______________________1.00______1.00
gold2_____________________1.00______1.00
graphs____________________1.00______1.00
hanoi_____________________1.00______1.00
integ_____________________1.00______1.00
integ2____________________1.00______1.00
integ3____________________1.00______1.00
kanren____________________1.00______1.00
kernwyk-ackermann_________1.00______1.00
kernwyk-array_____________1.00______1.00
kernwyk-cat_______________1.00______1.00
kernwyk-string____________1.00______1.00
kernwyk-sum_______________1.00______1.00
kernwyk-tail______________1.00______1.00
kernwyk-wc________________1.00______1.00
knucleotide_______________1.00______1.00
lattice___________________1.00______1.00
matrix____________________1.00______1.00
maze______________________1.00______1.00
mazefun___________________1.00______1.00
mbrot_____________________1.00______1.00
nbody_____________________1.00______1.00
nboyer____________________1.00______1.00
nestedloop________________1.00______1.00
nfa_______________________1.00______1.00
nqueens___________________1.00______1.00
ntakl_____________________1.00______1.00
nucleic2__________________1.00______1.00
paraffins_________________1.00______1.00
parsing___________________1.00______1.00
pnpoly____________________1.00______1.00
primes____________________1.00______1.00
psyntax___________________1.00______1.00
puzzle____________________1.00______1.00
ray_______________________1.00______1.00
ray2______________________1.00______1.00
sboyer____________________1.00______1.00
scheme____________________1.00______1.00
sieves-eratosthenes_______1.00______1.00
simplex___________________1.00______1.00
slatex____________________1.00______1.00
sort1_____________________1.00______1.00
tak_______________________1.00______1.00
takl______________________1.00______1.00
takr______________________1.00______1.00
traverse__________________1.00______1.00
travinit__________________1.00______1.00
triangl___________________1.00______1.00


===
=== major-gcs-time
===

Programs                   [1]       [2]
========================================
0_________________________1.00______1.00
binarytrees_______________1.00______1.01
boyer_____________________1.00______1.00
browse____________________1.00______1.00
conform___________________1.15______1.00
cpstak____________________1.07______1.00
ctak______________________1.00______1.07
dderiv____________________1.57______1.00
deriv_____________________1.00______1.40
destructive_______________1.00______1.12
dfa_______________________1.14______1.00
div-iter__________________1.00______1.00
div-rec___________________1.00______8.00
dynamic___________________1.00______1.00
earley____________________1.00______1.00
fannkuch__________________1.12______1.00
fft_______________________1.05______1.00
fib_______________________1.66______1.00
fibc______________________1.00______1.00
fibfp_____________________1.27______1.00
fprint____________________1.00______1.00
fread_____________________1.01______1.00
gcbench___________________1.00______1.00
gold______________________1.13______1.00
gold2_____________________1.00______1.03
graphs____________________1.02______1.00
hanoi_____________________1.00______1.03
integ_____________________1.05______1.00
integ2____________________1.04______1.00
integ3____________________1.00______1.02
kanren____________________1.01______1.00
kernwyk-ackermann_________1.01______1.00
kernwyk-array_____________1.00______1.00
kernwyk-cat_______________1.00______1.00
kernwyk-string____________1.00______1.00
kernwyk-sum_______________1.00______1.07
kernwyk-tail______________1.00______1.12
kernwyk-wc________________1.00______1.00
knucleotide_______________1.00______1.01
lattice___________________1.07______1.00
matrix____________________1.00______1.00
maze______________________1.01______1.00
mazefun___________________1.02______1.00
mbrot_____________________1.00______1.00
nbody_____________________1.17______1.00
nboyer____________________1.01______1.00
nestedloop________________1.07______1.00
nfa_______________________1.00______1.06
nqueens___________________1.00______1.00
ntakl_____________________1.00______1.00
nucleic2__________________1.01______1.00
paraffins_________________1.00______1.01
parsing___________________1.15______1.00
pnpoly____________________1.00______1.02
primes____________________1.00______1.04
psyntax___________________1.00______1.01
puzzle____________________9.00______1.00
ray_______________________1.04______1.00
ray2______________________1.01______1.00
sboyer____________________1.01______1.00
scheme____________________1.00______1.00
sieves-eratosthenes_______1.03______1.00
simplex___________________1.06______1.00
slatex____________________1.00______1.11
sort1_____________________1.02______1.00
tak_______________________1.08______1.00
takl______________________1.00______1.00
takr______________________1.00______1.17
traverse__________________1.07______1.00
travinit__________________1.00______1.04
triangl___________________1.00______1.03


===
=== cpu-time
===

Programs                   [1]       [2]
========================================
0___________________________1_________1
binarytrees_________________2_________1
boyer_______________________1_________2
browse______________________1_________2
conform_____________________2_________1
cpstak______________________1_________2
ctak________________________2_________1
dderiv______________________2_________1
deriv_______________________2_________1
destructive_________________2_________1
dfa_________________________1_________2
div-iter____________________2_________1
div-rec_____________________2_________1
dynamic_____________________1_________2
earley______________________1_________2
fannkuch____________________2_________1
fft_________________________2_________1
fib_________________________2_________1
fibc________________________1_________2
fibfp_______________________2_________1
fprint______________________2_________1
fread_______________________1_________2
gcbench_____________________2_________1
gold________________________1_________2
gold2_______________________1_________2
graphs______________________1_________2
hanoi_______________________2_________1
integ_______________________1_________2
integ2______________________2_________1
integ3______________________2_________1
kanren______________________1_________2
kernwyk-ackermann___________2_________1
kernwyk-array_______________2_________1
kernwyk-cat_________________2_________1
kernwyk-string______________1_________2
kernwyk-sum_________________1_________2
kernwyk-tail________________2_________1
kernwyk-wc__________________1_________2
knucleotide_________________2_________1
lattice_____________________1_________2
matrix______________________2_________1
maze________________________1_________2
mazefun_____________________2_________1
mbrot_______________________2_________1
nbody_______________________2_________1
nboyer______________________1_________2
nestedloop__________________2_________1
nfa_________________________2_________1
nqueens_____________________2_________1
ntakl_______________________2_________1
nucleic2____________________1_________2
paraffins___________________1_________2
parsing_____________________2_________1
pnpoly______________________2_________1
primes______________________1_________2
psyntax_____________________1_________2
puzzle______________________1_________2
ray_________________________1_________2
ray2________________________1_________2
sboyer______________________2_________1
scheme______________________2_________1
sieves-eratosthenes_________1_________2
simplex_____________________1_________2
slatex______________________2_________1
sort1_______________________1_________2
tak_________________________1_________2
takl________________________2_________1
takr________________________2_________1
traverse____________________1_________2
travinit____________________1_________2
triangl_____________________1_________2

[2]:  1111111111111111111111111111111111111_________________________________
[1]:  111111111111111111111111111111111_____________________________________
(Last place is marked as '_')


===
=== major-gcs
===

Programs                   [1]       [2]
========================================
0___________________________1_________1
binarytrees_________________1_________1
boyer_______________________1_________1
browse______________________1_________1
conform_____________________1_________1
cpstak______________________1_________1
ctak________________________1_________1
dderiv______________________1_________1
deriv_______________________1_________1
destructive_________________1_________1
dfa_________________________1_________1
div-iter____________________1_________1
div-rec_____________________1_________1
dynamic_____________________1_________1
earley______________________1_________1
fannkuch____________________1_________1
fft_________________________1_________1
fib_________________________1_________1
fibc________________________1_________1
fibfp_______________________1_________1
fprint______________________1_________1
fread_______________________1_________1
gcbench_____________________1_________1
gold________________________1_________1
gold2_______________________1_________1
graphs______________________1_________1
hanoi_______________________1_________1
integ_______________________1_________1
integ2______________________1_________1
integ3______________________1_________1
kanren______________________1_________1
kernwyk-ackermann___________1_________1
kernwyk-array_______________1_________1
kernwyk-cat_________________1_________1
kernwyk-string______________1_________1
kernwyk-sum_________________2_________1
kernwyk-tail________________2_________1
kernwyk-wc__________________1_________1
knucleotide_________________1_________2
lattice_____________________1_________1
matrix______________________1_________1
maze________________________1_________1
mazefun_____________________1_________1
mbrot_______________________1_________1
nbody_______________________1_________1
nboyer______________________1_________1
nestedloop__________________1_________1
nfa_________________________1_________1
nqueens_____________________1_________1
ntakl_______________________1_________1
nucleic2____________________1_________1
paraffins___________________1_________1
parsing_____________________1_________2
pnpoly______________________1_________1
primes______________________1_________1
psyntax_____________________2_________1
puzzle______________________1_________1
ray_________________________1_________1
ray2________________________1_________1
sboyer______________________1_________1
scheme______________________1_________1
sieves-eratosthenes_________1_________1
simplex_____________________1_________1
slatex______________________2_________1
sort1_______________________1_________1
tak_________________________1_________1
takl________________________1_________1
takr________________________1_________1
traverse____________________1_________1
travinit____________________1_________1
triangl_____________________1_________1

[2]:  1111__
[1]:  11____
(Last place is marked as '_')


===
=== minor-gcs
===

Programs                   [1]       [2]
========================================
0___________________________1_________1
binarytrees_________________1_________1
boyer_______________________1_________1
browse______________________1_________1
conform_____________________1_________1
cpstak______________________1_________1
ctak________________________1_________1
dderiv______________________1_________1
deriv_______________________1_________1
destructive_________________1_________1
dfa_________________________1_________2
div-iter____________________1_________1
div-rec_____________________1_________1
dynamic_____________________1_________1
earley______________________1_________1
fannkuch____________________1_________1
fft_________________________1_________1
fib_________________________1_________1
fibc________________________1_________1
fibfp_______________________1_________1
fprint______________________1_________1
fread_______________________1_________1
gcbench_____________________1_________1
gold________________________1_________1
gold2_______________________1_________1
graphs______________________1_________1
hanoi_______________________1_________1
integ_______________________1_________1
integ2______________________1_________1
integ3______________________1_________1
kanren______________________1_________1
kernwyk-ackermann___________1_________1
kernwyk-array_______________1_________1
kernwyk-cat_________________1_________1
kernwyk-string______________1_________1
kernwyk-sum_________________1_________2
kernwyk-tail________________1_________2
kernwyk-wc__________________1_________1
knucleotide_________________2_________1
lattice_____________________1_________1
matrix______________________1_________1
maze________________________1_________1
mazefun_____________________1_________1
mbrot_______________________1_________1
nbody_______________________1_________1
nboyer______________________1_________1
nestedloop__________________1_________1
nfa_________________________1_________1
nqueens_____________________1_________1
ntakl_______________________1_________1
nucleic2____________________1_________1
paraffins___________________1_________1
parsing_____________________2_________1
pnpoly______________________1_________1
primes______________________1_________1
psyntax_____________________1_________2
puzzle______________________1_________1
ray_________________________1_________1
ray2________________________1_________1
sboyer______________________1_________1
scheme______________________1_________1
sieves-eratosthenes_________1_________1
simplex_____________________1_________1
slatex______________________1_________2
sort1_______________________1_________1
tak_________________________1_________1
takl________________________1_________1
takr________________________1_________1
traverse____________________1_________1
travinit____________________1_________1
triangl_____________________1_________1

[1]:  11111__
[2]:  11_____
(Last place is marked as '_')


===
=== major-gcs-time
===

Programs                   [1]       [2]
========================================
0___________________________1_________1
binarytrees_________________2_________1
boyer_______________________2_________1
browse______________________2_________1
conform_____________________1_________2
cpstak______________________1_________2
ctak________________________2_________1
dderiv______________________1_________2
deriv_______________________2_________1
destructive_________________2_________1
dfa_________________________1_________2
div-iter____________________1_________1
div-rec_____________________2_________1
dynamic_____________________2_________1
earley______________________2_________1
fannkuch____________________1_________2
fft_________________________1_________2
fib_________________________1_________2
fibc________________________1_________2
fibfp_______________________1_________2
fprint______________________1_________1
fread_______________________1_________2
gcbench_____________________1_________2
gold________________________1_________2
gold2_______________________2_________1
graphs______________________1_________2
hanoi_______________________2_________1
integ_______________________1_________2
integ2______________________1_________2
integ3______________________2_________1
kanren______________________1_________2
kernwyk-ackermann___________1_________2
kernwyk-array_______________1_________2
kernwyk-cat_________________1_________1
kernwyk-string______________2_________1
kernwyk-sum_________________2_________1
kernwyk-tail________________2_________1
kernwyk-wc__________________1_________1
knucleotide_________________2_________1
lattice_____________________1_________2
matrix______________________1_________2
maze________________________1_________2
mazefun_____________________1_________2
mbrot_______________________1_________1
nbody_______________________1_________2
nboyer______________________1_________2
nestedloop__________________1_________2
nfa_________________________2_________1
nqueens_____________________1_________1
ntakl_______________________1_________1
nucleic2____________________1_________2
paraffins___________________2_________1
parsing_____________________1_________2
pnpoly______________________2_________1
primes______________________2_________1
psyntax_____________________2_________1
puzzle______________________1_________2
ray_________________________1_________2
ray2________________________1_________2
sboyer______________________1_________2
scheme______________________1_________1
sieves-eratosthenes_________1_________2
simplex_____________________1_________2
slatex______________________2_________1
sort1_______________________1_________2
tak_________________________1_________2
takl________________________1_________1
takr________________________2_________1
traverse____________________1_________2
travinit____________________2_________1
triangl_____________________2_________1

[1]:  111111111111111111111111111111111111_________________________
[2]:  1111111111111111111111111____________________________________
(Last place is marked as '_')


fib fx benchmark added by megane on Mon Aug 19 17:18:55 2019

::::::::::::::
test-fx.sh
::::::::::::::
#!/usr/bin/env bash
set -euo pipefail

D="$HOME/programs"
reps=10

function doit () {
    f="$1"
    opt="$2"
    echo "################################################## $f $opt"
    "$D/chicken-5-core/bin/csc" $opt  "$f" -o fib-fx-core
    "$D/chicken-5-safe-fx/bin/csc"  $opt "$f" -o fib-fx-safe-fx

    echo "#################### vanilla"
    perf stat -r $reps ./fib-fx-core 36
    echo "#################### safe-fx"
    perf stat -r $reps ./fib-fx-safe-fx 36
}

more test-fx.sh fib-fx1.scm fib-fx.scm | cat

doit "fib-fx1.scm" "-O1"
doit "fib-fx.scm" "-O1"
doit "fib-fx1.scm" "-O3"
doit "fib-fx.scm" "-O3"
doit "fib-fx1.scm" "-O4"
doit "fib-fx.scm" "-O4"
::::::::::::::
fib-fx1.scm
::::::::::::::
(import (chicken fixnum)
        (chicken process-context))

(define (fib n)
  (if (or (eq? n 0) (eq? n 1))
      n
      (fx+ (fib (fx- n 1)) (fib (fx- n 2)))))

(let ([l (string->number (car (command-line-arguments)))])
  (let loop ((n 0))
    (when (< n l)
      (fib n)
      (loop (+ n 1)))))
::::::::::::::
fib-fx.scm
::::::::::::::
(import (chicken fixnum)
        (chicken process-context))

(define (fib n)
  (if (or (fx= n 0) (fx= n 1))         ; <- this is different
      n
      (fx+ (fib (fx- n 1)) (fib (fx- n 2)))))

(let ([l (string->number (car (command-line-arguments)))])
  (let loop ((n 0))
    (when (< n l)
      (fib n)
      (loop (+ n 1)))))
################################################## fib-fx1.scm -O1
#################### vanilla

 Performance counter stats for './fib-fx-core 36' (10 runs):

       1935.991241      task-clock (msec)         #    0.997 CPUs utilized            ( +-  0.17% )
               318      context-switches          #    0.164 K/sec                    ( +- 31.63% )
                 0      cpu-migrations            #    0.000 K/sec                    ( +-100.00% )
               715      page-faults               #    0.370 K/sec                    ( +-  0.06% )
     5,793,135,159      cycles                    #    2.992 GHz                      ( +-  0.17% )
     2,561,777,103      stalled-cycles-frontend   #   44.22% frontend cycles idle     ( +-  0.38% )
    10,417,900,595      instructions              #    1.80  insn per cycle         
                                                  #    0.25  stalled cycles per insn  ( +-  0.01% )
     1,566,097,814      branches                  #  808.938 M/sec                    ( +-  0.01% )
        32,342,317      branch-misses             #    2.07% of all branches          ( +-  0.09% )

       1.941413298 seconds time elapsed                                          ( +-  0.16% )

#################### safe-fx

 Performance counter stats for './fib-fx-safe-fx 36' (10 runs):

       2414.382300      task-clock (msec)         #    0.999 CPUs utilized            ( +-  0.24% )
               229      context-switches          #    0.095 K/sec                    ( +- 39.22% )
                 0      cpu-migrations            #    0.000 K/sec                    ( +-100.00% )
               715      page-faults               #    0.296 K/sec                    ( +-  0.07% )
     7,225,548,922      cycles                    #    2.993 GHz                      ( +-  0.24% )
     2,430,424,842      stalled-cycles-frontend   #   33.64% frontend cycles idle     ( +-  0.92% )
    12,204,969,776      instructions              #    1.69  insn per cycle         
                                                  #    0.20  stalled cycles per insn  ( +-  0.00% )
     2,500,947,812      branches                  # 1035.854 M/sec                    ( +-  0.00% )
        80,279,543      branch-misses             #    3.21% of all branches          ( +-  1.13% )

       2.417536785 seconds time elapsed                                          ( +-  0.23% )

################################################## fib-fx.scm -O1
#################### vanilla

 Performance counter stats for './fib-fx-core 36' (10 runs):

       1932.742966      task-clock (msec)         #    0.998 CPUs utilized            ( +-  0.08% )
               276      context-switches          #    0.143 K/sec                    ( +- 35.31% )
                 0      cpu-migrations            #    0.000 K/sec                    ( +- 66.67% )
               715      page-faults               #    0.370 K/sec                    ( +-  0.04% )
     5,783,676,896      cycles                    #    2.992 GHz                      ( +-  0.09% )
     2,553,242,844      stalled-cycles-frontend   #   44.15% frontend cycles idle     ( +-  0.15% )
    10,417,744,475      instructions              #    1.80  insn per cycle         
                                                  #    0.25  stalled cycles per insn  ( +-  0.01% )
     1,566,053,371      branches                  #  810.275 M/sec                    ( +-  0.01% )
        32,329,260      branch-misses             #    2.06% of all branches          ( +-  0.08% )

       1.936866315 seconds time elapsed                                          ( +-  0.07% )

#################### safe-fx

 Performance counter stats for './fib-fx-safe-fx 36' (10 runs):

       2411.102410      task-clock (msec)         #    0.999 CPUs utilized            ( +-  0.12% )
                78      context-switches          #    0.032 K/sec                    ( +- 89.85% )
                 0      cpu-migrations            #    0.000 K/sec                    ( +- 66.67% )
               716      page-faults               #    0.297 K/sec                    ( +-  0.06% )
     7,216,470,610      cycles                    #    2.993 GHz                      ( +-  0.12% )
     2,424,310,089      stalled-cycles-frontend   #   33.59% frontend cycles idle     ( +-  0.42% )
    12,204,477,279      instructions              #    1.69  insn per cycle         
                                                  #    0.20  stalled cycles per insn  ( +-  0.00% )
     2,500,847,725      branches                  # 1037.222 M/sec                    ( +-  0.00% )
        79,331,545      branch-misses             #    3.17% of all branches          ( +-  0.09% )

       2.412798036 seconds time elapsed                                          ( +-  0.12% )

################################################## fib-fx1.scm -O3
#################### vanilla

 Performance counter stats for './fib-fx-core 36' (10 runs):

       1698.120891      task-clock (msec)         #    0.999 CPUs utilized            ( +-  0.20% )
               151      context-switches          #    0.089 K/sec                    ( +- 49.87% )
                 0      cpu-migrations            #    0.000 K/sec                    ( +- 50.92% )
               715      page-faults               #    0.421 K/sec                    ( +-  0.05% )
     5,082,008,041      cycles                    #    2.993 GHz                      ( +-  0.20% )
     2,231,481,324      stalled-cycles-frontend   #   43.91% frontend cycles idle     ( +-  0.44% )
     8,890,002,633      instructions              #    1.75  insn per cycle         
                                                  #    0.25  stalled cycles per insn  ( +-  0.01% )
     1,234,673,201      branches                  #  727.082 M/sec                    ( +-  0.01% )
        34,976,983      branch-misses             #    2.83% of all branches          ( +-  0.07% )

       1.700624777 seconds time elapsed                                          ( +-  0.18% )

#################### safe-fx

 Performance counter stats for './fib-fx-safe-fx 36' (10 runs):

       1813.473111      task-clock (msec)         #    0.999 CPUs utilized            ( +-  0.16% )
               161      context-switches          #    0.089 K/sec                    ( +- 52.27% )
                 0      cpu-migrations            #    0.000 K/sec                  
               716      page-faults               #    0.395 K/sec                    ( +-  0.06% )
     5,427,251,115      cycles                    #    2.993 GHz                      ( +-  0.16% )
     1,970,262,064      stalled-cycles-frontend   #   36.30% frontend cycles idle     ( +-  0.40% )
     9,981,767,270      instructions              #    1.84  insn per cycle         
                                                  #    0.20  stalled cycles per insn  ( +-  0.01% )
     1,859,141,839      branches                  # 1025.183 M/sec                    ( +-  0.01% )
        27,096,839      branch-misses             #    1.46% of all branches          ( +-  0.03% )

       1.815859468 seconds time elapsed                                          ( +-  0.14% )

################################################## fib-fx.scm -O3
#################### vanilla

 Performance counter stats for './fib-fx-core 36' (10 runs):

       1699.129310      task-clock (msec)         #    0.998 CPUs utilized            ( +-  0.18% )
               219      context-switches          #    0.129 K/sec                    ( +- 39.27% )
                 0      cpu-migrations            #    0.000 K/sec                    ( +-100.00% )
               716      page-faults               #    0.421 K/sec                    ( +-  0.08% )
     5,084,675,888      cycles                    #    2.993 GHz                      ( +-  0.18% )
     2,234,788,662      stalled-cycles-frontend   #   43.95% frontend cycles idle     ( +-  0.36% )
     8,889,495,782      instructions              #    1.75  insn per cycle         
                                                  #    0.25  stalled cycles per insn  ( +-  0.00% )
     1,234,592,347      branches                  #  726.603 M/sec                    ( +-  0.00% )
        35,025,948      branch-misses             #    2.84% of all branches          ( +-  0.10% )

       1.702840968 seconds time elapsed                                          ( +-  0.21% )

#################### safe-fx

 Performance counter stats for './fib-fx-safe-fx 36' (10 runs):

       1700.764298      task-clock (msec)         #    0.998 CPUs utilized            ( +-  1.30% )
               239      context-switches          #    0.140 K/sec                    ( +- 35.06% )
                 0      cpu-migrations            #    0.000 K/sec                    ( +- 66.67% )
               715      page-faults               #    0.421 K/sec                    ( +-  0.07% )
     5,089,496,258      cycles                    #    2.992 GHz                      ( +-  1.30% )
     1,964,902,486      stalled-cycles-frontend   #   38.61% frontend cycles idle     ( +-  0.93% )
     9,433,045,886      instructions              #    1.85  insn per cycle         
                                                  #    0.21  stalled cycles per insn  ( +-  0.00% )
     1,546,200,236      branches                  #  909.121 M/sec                    ( +-  0.00% )
        34,708,955      branch-misses             #    2.24% of all branches          ( +- 15.84% )

       1.704831741 seconds time elapsed                                          ( +-  1.28% )

################################################## fib-fx1.scm -O4
#################### vanilla

 Performance counter stats for './fib-fx-core 36' (10 runs):

       1715.282087      task-clock (msec)         #    0.998 CPUs utilized            ( +-  0.15% )
               298      context-switches          #    0.173 K/sec                    ( +- 33.13% )
                 0      cpu-migrations            #    0.000 K/sec                  
               716      page-faults               #    0.417 K/sec                    ( +-  0.08% )
     5,132,687,289      cycles                    #    2.992 GHz                      ( +-  0.16% )
     2,143,224,133      stalled-cycles-frontend   #   41.76% frontend cycles idle     ( +-  0.39% )
     9,046,145,038      instructions              #    1.76  insn per cycle         
                                                  #    0.24  stalled cycles per insn  ( +-  0.00% )
     1,234,625,556      branches                  #  719.780 M/sec                    ( +-  0.01% )
        32,981,217      branch-misses             #    2.67% of all branches          ( +-  0.13% )

       1.719543647 seconds time elapsed                                          ( +-  0.10% )

#################### safe-fx

 Performance counter stats for './fib-fx-safe-fx 36' (10 runs):

       1705.130718      task-clock (msec)         #    0.999 CPUs utilized            ( +-  0.16% )
               122      context-switches          #    0.072 K/sec                    ( +- 52.84% )
                 0      cpu-migrations            #    0.000 K/sec                  
               716      page-faults               #    0.420 K/sec                    ( +-  0.08% )
     5,103,127,699      cycles                    #    2.993 GHz                      ( +-  0.16% )
     2,117,807,787      stalled-cycles-frontend   #   41.50% frontend cycles idle     ( +-  0.36% )
     9,047,732,319      instructions              #    1.77  insn per cycle         
                                                  #    0.23  stalled cycles per insn  ( +-  0.01% )
     1,234,880,772      branches                  #  724.215 M/sec                    ( +-  0.01% )
        33,016,911      branch-misses             #    2.67% of all branches          ( +-  0.16% )

       1.707016915 seconds time elapsed                                          ( +-  0.14% )

################################################## fib-fx.scm -O4
#################### vanilla

 Performance counter stats for './fib-fx-core 36' (10 runs):

       1712.733998      task-clock (msec)         #    0.998 CPUs utilized            ( +-  0.11% )
               138      context-switches          #    0.081 K/sec                    ( +- 55.21% )
                 0      cpu-migrations            #    0.000 K/sec                    ( +- 66.67% )
               716      page-faults               #    0.418 K/sec                    ( +-  0.07% )
     5,125,795,745      cycles                    #    2.993 GHz                      ( +-  0.11% )
     2,137,129,186      stalled-cycles-frontend   #   41.69% frontend cycles idle     ( +-  0.28% )
     9,045,656,591      instructions              #    1.76  insn per cycle         
                                                  #    0.24  stalled cycles per insn  ( +-  0.00% )
     1,234,528,012      branches                  #  720.794 M/sec                    ( +-  0.00% )
        32,990,800      branch-misses             #    2.67% of all branches          ( +-  0.08% )

       1.715652729 seconds time elapsed                                          ( +-  0.13% )

#################### safe-fx

 Performance counter stats for './fib-fx-safe-fx 36' (10 runs):

       1701.165999      task-clock (msec)         #    0.999 CPUs utilized            ( +-  0.08% )
               123      context-switches          #    0.072 K/sec                    ( +- 63.52% )
                 0      cpu-migrations            #    0.000 K/sec                  
               716      page-faults               #    0.421 K/sec                    ( +-  0.05% )
     5,091,280,944      cycles                    #    2.993 GHz                      ( +-  0.08% )
     2,108,054,217      stalled-cycles-frontend   #   41.41% frontend cycles idle     ( +-  0.18% )
     9,045,481,736      instructions              #    1.78  insn per cycle         
                                                  #    0.23  stalled cycles per insn  ( +-  0.00% )
     1,234,495,976      branches                  #  725.676 M/sec                    ( +-  0.00% )
        33,039,643      branch-misses             #    2.68% of all branches          ( +-  0.08% )

       1.703338879 seconds time elapsed                                          ( +-  0.10% )

Your annotation:

Enter a new annotation:

Your nick:
The title of your paste:
Your paste (mandatory) :
Which procedure can be used to check whether its argument is a symbol?
Visually impaired? Let me spell it for you (wav file) download WAV