copying required files to test-repository ... ======================================== compiler tests ... ../chicken compiler-tests.scm -output-file a.c -include-path .. Warning: global variable `foo#bar' is never used gcc a.c -o a.o -c -fno-strict-aliasing -DHAVE_CHICKEN_CONFIG_H -Os -fomit-frame-pointer -I.. -I/home/mario/chicken/include rm a.c gcc a.o -o a.out -L.. -L/home/mario/chicken/lib -Wl,-R/home/mario/chicken/lib -lchicken -lm -ldl rm a.o #t 12 12 12 12 12 ======================================== compiler tests (2) ... ../chicken compiler-tests.scm -output-file a.c -include-path .. -lambda-lift Warning: global variable `foo#bar' is never used gcc a.c -o a.o -c -fno-strict-aliasing -DHAVE_CHICKEN_CONFIG_H -Os -fomit-frame-pointer -I.. -I/home/mario/chicken/include rm a.c gcc a.o -o a.out -L.. -L/home/mario/chicken/lib -Wl,-R/home/mario/chicken/lib -lchicken -lm -ldl rm a.o #t 12 12 12 12 12 ======================================== scrutiny tests ... ../chicken scrutiny-tests.scm -output-file a.c -include-path .. -scrutinize -analyze-only -ignore-repository -types ../types.db ======================================== runtime tests ... many arguments supported. ../chicken test-gc-hooks.scm -output-file a.c -include-path .. gcc a.c -o a.o -c -fno-strict-aliasing -DHAVE_CHICKEN_CONFIG_H -Os -fomit-frame-pointer -I.. -I/home/mario/chicken/include rm a.c gcc a.o -o a.out -L.. -L/home/mario/chicken/lib -Wl,-R/home/mario/chicken/lib -lchicken -lm -ldl rm a.o major gc ... >>>>> GC pre hook - mode=0, count=0 [GC] level 1 gcs(minor) 1 gcs(major) 1 [GC] stack 0x7fffcfc1e370 0xffffffffcfc22350 0x7fffcfc5e370 [GC] from 0x7ffec7bce010 0x7ffec7bf91c8 0x7ffec7c0b0a0 0x2b1b8 [GC] to 0x7ffec7c0c010 0x7ffec7c0c010 0x7ffec7c490a0 [GC] 0 locatives (from 32) <<<<< GC post hook - mode=1, count=0, ms=0 minor gc ... >>>>> GC pre hook - mode=0, count=0 <<<<< GC post hook - mode=0, count=0, ms=140732249796904 alloc ... >>>>> GC pre hook - mode=0, count=0 [GC] level 1 gcs(minor) 1 gcs(major) 2 [GC] stack 0x7fffcfc1e370 0xffffffffcfc5d1e0 0x7fffcfc5e370 [GC] from 0x7ffec7c0c010 0x7ffec7c371c8 0x7ffec7c490a0 0x2b1b8 [GC] to 0x7ffec7bce010 0x7ffec7bce010 0x7ffec7c0b0a0 [GC] 0 locatives (from 32) <<<<< GC post hook - mode=1, count=0, ms=0 >>>>> GC pre hook - mode=2, count=0 (old) fromspace: start=7ffec7c0c010, limit=7ffec7c490a0 (old) tospace: start=7ffec7bce010, limit=7ffec7c0b0a0 [GC] resized heap to 11000008 bytes (new) fromspace: start=7ffec6694010, limit=7ffec6bd2c74 (new) tospace: start=7ffec6155010, limit=7ffec6693c74 <<<<< GC post hook - mode=2, count=0, ms=0 >>>>> GC pre hook - mode=2, count=0 (old) fromspace: start=7ffec6694010, limit=7ffec6bd2c74 (old) tospace: start=7ffec6155010, limit=7ffec6693c74 [GC] resized heap to 32000024 bytes (new) fromspace: start=7ffec5212010, limit=7ffec615441c (new) tospace: start=7ffec42cf010, limit=7ffec521141c <<<<< GC post hook - mode=2, count=0, ms=0 resize ... >>>>> GC pre hook - mode=2, count=0 (old) fromspace: start=7ffec5212010, limit=7ffec615441c (old) tospace: start=7ffec42cf010, limit=7ffec521141c [GC] resized heap to 64000048 bytes (new) fromspace: start=7ffec244a010, limit=7ffec42ce828 (new) tospace: start=7ffec4d4e010, limit=7ffec6bd2828 <<<<< GC post hook - mode=2, count=0, ms=0 major gc ... >>>>> GC pre hook - mode=0, count=0 >>>>> GC pre hook - mode=2, count=1 (old) fromspace: start=7ffec244a010, limit=7ffec42ce828 (old) tospace: start=7ffec4d4e010, limit=7ffec6bd2828 [GC] resized heap to 32000024 bytes (new) fromspace: start=00759220, limit=0169b62c (new) tospace: start=0169b640, limit=025dda4c <<<<< GC post hook - mode=2, count=1, ms=0 [GC] level 1 gcs(minor) 0 gcs(major) 3 [GC] stack 0x7fffcfc1e370 0xffffffffcfc5c040 0x7fffcfc5e370 [GC] from 0x759220 0x7843d8 0x169b62c 0x2b1b8 [GC] to 0x169b640 0x169b640 0x25dda4c [GC] 0 locatives (from 32) <<<<< GC post hook - mode=1, count=0, ms=4 minor gc ... >>>>> GC pre hook - mode=0, count=0 <<<<< GC post hook - mode=0, count=0, ms=140736679235744 >>>>> GC pre hook - mode=0, count=0 >>>>> GC pre hook - mode=2, count=1 (old) fromspace: start=00759220, limit=0169b62c (old) tospace: start=0169b640, limit=025dda4c [GC] resized heap to 16000012 bytes (new) fromspace: start=025dda60, limit=02d7ec66 (new) tospace: start=00759220, limit=00efa426 <<<<< GC post hook - mode=2, count=1, ms=0 [GC] level 1 gcs(minor) 1 gcs(major) 4 [GC] stack 0x7fffcfc1e370 0xffffffffcfc5dcd0 0x7fffcfc5e370 [GC] from 0x25dda60 0x2608c68 0x2d7ec66 0x2b208 [GC] to 0x759220 0x759220 0xefa426 [GC] 0 locatives (from 32) <<<<< GC post hook - mode=1, count=0, ms=0 ======================================== library tests ... ======================================== syntax tests ... 3 100 (M1: (m1 n)) 3628800 34 45 now outer 7 "baz" "no baz" "no baz" ok (3 4) (... 1 2 3) 3 (99) 7 (1 2 3) 10 9 8 7 6 5 4 3 2 1 10 9 8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 8 9 10 3 ok caught ======================================== syntax tests (compiled) ... ../chicken syntax-tests.scm -output-file a.c -include-path .. Warning: redefinition of extended binding `setter' Warning: local assignment to unused variable `prefixed-self-reference1#a' may be unintended Warning: local assignment to unused variable `prefixed-self-reference1#b' may be unintended Warning: local assignment to unused variable `prefixed-self-reference1#c' may be unintended Warning: local assignment to unused variable `prefixed-self-reference2#a' may be unintended Warning: global variable `prefixed-self-reference2#a' is never used Warning: local assignment to unused variable `prefixed-self-reference2#b' may be unintended Warning: global variable `prefixed-self-reference2#b' is never used Warning: local assignment to unused variable `prefixed-self-reference2#c' may be unintended Warning: global variable `prefixed-self-reference2#c' is never used (M1: (m1 n)) gcc a.c -o a.o -c -fno-strict-aliasing -DHAVE_CHICKEN_CONFIG_H -Os -fomit-frame-pointer -I.. -I/home/mario/chicken/include rm a.c gcc a.o -o a.out -L.. -L/home/mario/chicken/lib -Wl,-R/home/mario/chicken/lib -lchicken -lm -ldl rm a.o 3 100 3628800 34 45 now outer 7 "baz" "no baz" "no baz" ok (3 4) (... 1 2 3) 3 (99) 7 (1 2 3) 10 9 8 7 6 5 4 3 2 1 10 9 8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 8 9 10 3 ok caught ======================================== syntax tests (2, compiled) ... ../chicken syntax-tests-2.scm -output-file a.c -include-path .. gcc a.c -o a.o -c -fno-strict-aliasing -DHAVE_CHICKEN_CONFIG_H -Os -fomit-frame-pointer -I.. -I/home/mario/chicken/include rm a.c gcc a.o -o a.out -L.. -L/home/mario/chicken/lib -Wl,-R/home/mario/chicken/lib -lchicken -lm -ldl rm a.o ======================================== compiler syntax tests ... ../chicken compiler-syntax-tests.scm -output-file a.c -include-path .. gcc a.c -o a.o -c -fno-strict-aliasing -DHAVE_CHICKEN_CONFIG_H -Os -fomit-frame-pointer -I.. -I/home/mario/chicken/include rm a.c gcc a.o -o a.out -L.. -L/home/mario/chicken/lib -Wl,-R/home/mario/chicken/lib -lchicken -lm -ldl rm a.o 9 oink! 1 ======================================== import library tests ... ../chicken import-library-test1.scm -output-file a.c -include-path .. -emit-import-library foo gcc a.c -o a.o -c -fno-strict-aliasing -DHAVE_CHICKEN_CONFIG_H -Os -fomit-frame-pointer -I.. -I/home/mario/chicken/include rm a.c gcc a.o -o a.out -L.. -L/home/mario/chicken/lib -Wl,-R/home/mario/chicken/lib -lchicken -lm -ldl rm a.o ../chicken foo.import.scm -output-file foo.import.c -dynamic -feature chicken-compile-shared -feature chicken-compile-shared -include-path .. gcc foo.import.c -o foo.import.o -c -fno-strict-aliasing -DHAVE_CHICKEN_CONFIG_H -Os -fomit-frame-pointer -fPIC -DPIC -DC_SHARED -fPIC -DPIC -DC_SHARED -I.. -I/home/mario/chicken/include rm foo.import.c gcc foo.import.o -o foo.import.so -shared -shared -L.. -L/home/mario/chicken/lib -Wl,-R/home/mario/chicken/lib -lchicken -lm -ldl rm foo.import.o ../chicken import-library-test2.scm -output-file a.c -include-path .. gcc a.c -o a.o -c -fno-strict-aliasing -DHAVE_CHICKEN_CONFIG_H -Os -fomit-frame-pointer -I.. -I/home/mario/chicken/include rm a.c gcc a.o -o a.out -L.. -L/home/mario/chicken/lib -Wl,-R/home/mario/chicken/lib -lchicken -lm -ldl rm a.o ======================================== syntax tests (matchable) ... (PASS) any (PASS) symbol (PASS) number (PASS) string (PASS) literal symbol (PASS) null (PASS) pair (PASS) vector (PASS) any doubled (PASS) and empty (PASS) and single (PASS) and double (PASS) or empty (PASS) or single (PASS) or double (PASS) not (PASS) pred (PASS) named pred (PASS) duplicate symbols pass (PASS) duplicate symbols fail (PASS) duplicate symbols samth (PASS) ellipses (PASS) real ellipses (PASS) vector ellipses (PASS) pred ellipses (PASS) failure continuation (PASS) let (PASS) let* (PASS) getter car (PASS) getter cdr (PASS) getter vector (PASS) setter car (PASS) setter cdr (PASS) setter vector (PASS) single tail (PASS) single tail 2 (PASS) multiple tail (PASS) Riastradh quasiquote 38 tests completed in 0.134 seconds 38 (100.00%) tests passed 0 (0.00%) tests failed ======================================== syntax tests (loopy-loop) ... (PASS) stepping (PASS) basic in-list (PASS) in-list with result (PASS) in-list with collecting (PASS) uneven length in-list's (PASS) in-lists (PASS) flatten (recursion test) (PASS) in-string (PASS) in-string with start (PASS) in-string with start and end (PASS) in-string with start, end and step (PASS) in-string-reverse (PASS) in-vector (PASS) in-permutations (PASS) in-permutations with length (PASS) in-combinations (PASS) in-hash-table 17 tests completed in 0.299 seconds 17 (100.00%) tests passed 0 (0.00%) tests failed ======================================== syntax tests (r5rs_pitfalls) ... Failure: 1.1, expected '0', got '1'. Failure: 1.2, expected '#t', got '#f'. Passed: 1.3 Passed: 2.1 Passed: 3.1 Passed: 3.2 Passed: 3.3 Passed: 3.4 Passed: 4.1 Passed: 4.2 Passed: 4.3 Passed: 5.1 Passed: 5.2 Passed: 5.3 Passed: 6.1 Passed: 7.1 Passed: 7.2 Passed: 7.3 Passed: 7.4 Passed: 8.1 Passed: 8.2 Passed: 8.3 Map is call/cc safe, but probably not tail recursive or inefficient. ======================================== module tests ... (PASS) internal/variable (PASS) external/unimported variable (fail) (PASS) external/unimported syntax (fail) (PASS) external/imported variable (PASS) external/imported syntax (PASS) modified import (PASS) hidden import (PASS) prefixed import and reexport ok. (PASS) indirect imports f1 (PASS) chained indirect imports (PASS) literal compare and export (PASS) redefinition of indirect import (PASS) redefinition of indirect import (II) (PASS) value reexport (PASS) syntax reexport (PASS) primitive indirect value-binding reexport (PASS) extended lambda list uses expansion environment 17 tests completed in 0.052 seconds 17 (100.00%) tests passed 0 (0.00%) tests failed ======================================== module tests (compiled) ... ../chicken module-tests-compiled.scm -output-file a.c -include-path .. gcc a.c -o a.o -c -fno-strict-aliasing -DHAVE_CHICKEN_CONFIG_H -Os -fomit-frame-pointer -I.. -I/home/mario/chicken/include rm a.c gcc a.o -o a.out -L.. -L/home/mario/chicken/lib -Wl,-R/home/mario/chicken/lib -lchicken -lm -ldl rm a.o (PASS) inline in syntax (PASS) unmarked primitive exports 2 tests completed in 0.000 seconds 2 (100.00%) tests passed 0 (0.00%) tests failed ======================================== module tests (chained) ... f1 ../chicken test-chained-modules.scm -output-file test-chained-modules.c -dynamic -feature chicken-compile-shared -include-path .. -emit-import-library m3 gcc test-chained-modules.c -o test-chained-modules.o -c -fno-strict-aliasing -DHAVE_CHICKEN_CONFIG_H -Os -fomit-frame-pointer -fPIC -DPIC -DC_SHARED -I.. -I/home/mario/chicken/include rm test-chained-modules.c gcc test-chained-modules.o -o test-chained-modules.so -shared -L.. -L/home/mario/chicken/lib -Wl,-R/home/mario/chicken/lib -lchicken -lm -ldl rm test-chained-modules.o ../chicken m3.import.scm -output-file m3.import.c -dynamic -feature chicken-compile-shared -include-path .. gcc m3.import.c -o m3.import.o -c -fno-strict-aliasing -DHAVE_CHICKEN_CONFIG_H -Os -fomit-frame-pointer -fPIC -DPIC -DC_SHARED -I.. -I/home/mario/chicken/include rm m3.import.c gcc m3.import.o -o m3.import.so -shared -L.. -L/home/mario/chicken/lib -Wl,-R/home/mario/chicken/lib -lchicken -lm -ldl rm m3.import.o CHICKEN (c)2008-2009 The Chicken Team (c)2000-2007 Felix L. Winkelmann Version 4.1.0 - SVN rev. 15292 linux-unix-gnu-x86-64 [ 64bit manyargs dload ptables applyhook ] compiled 2009-08-03 on lab (Linux) ; loading test-chained-modules.so ... ; loading /home/mario/chicken/lib/chicken/4/scheme.import.so ... ; loading /home/mario/chicken/lib/chicken/4/chicken.import.so ... f1 f1 f1 ======================================== module tests (ec) ... (let ((x 0)) (do-ec (set! x (+ x 1))) x) => 1 ; correct (let ((x 0)) (do-ec (:range i 10) (set! x (+ x 1))) x) => 10 ; correct (let ((x 0)) (do-ec (:range n 10) (:range k n) (set! x (+ x 1))) x) => 45 ; correct (list-ec 1) => (1) ; correct (list-ec (:range i 4) i) => (0 1 2 3) ; correct (list-ec (:range n 3) (:range k (+ n 1)) (list n k)) => ((0 0) (1 0) (1 1) (2 0) (2 1) (2 2)) ; correct (list-ec (:range n 5) (if (even? n)) (:range k (+ n 1)) (list n k)) => ((0 0) (2 0) (2 1) (2 2) (4 0) (4 1) (4 2) (4 3) (4 4)) ; correct (list-ec (:range n 5) (not (even? n)) (:range k (+ n 1)) (list n k)) => ((1 0) (1 1) (3 0) (3 1) (3 2) (3 3)) ; correct (list-ec (:range n 5) (and (even? n) (> n 2)) (:range k (+ n 1)) (list n k)) => ((4 0) (4 1) (4 2) (4 3) (4 4)) ; correct (list-ec (:range n 5) (or (even? n) (> n 3)) (:range k (+ n 1)) (list n k)) => ((0 0) (2 0) (2 1) (2 2) (4 0) (4 1) (4 2) (4 3) (4 4)) ; correct (let ((x 0)) (list-ec (:range n 10) (begin (set! x (+ x 1))) n) x) => 10 ; correct (list-ec (nested (:range n 3) (:range k n)) k) => (0 0 1) ; correct (append-ec (quote (a b))) => (a b) ; correct (append-ec (:range i 0) (quote (a b))) => () ; correct (append-ec (:range i 1) (quote (a b))) => (a b) ; correct (append-ec (:range i 2) (quote (a b))) => (a b a b) ; correct (string-ec #\a) => "a" ; correct (string-ec (:range i 0) #\a) => "" ; correct (string-ec (:range i 1) #\a) => "a" ; correct (string-ec (:range i 2) #\a) => "aa" ; correct (string-append-ec "ab") => "ab" ; correct (string-append-ec (:range i 0) "ab") => "" ; correct (string-append-ec (:range i 1) "ab") => "ab" ; correct (string-append-ec (:range i 2) "ab") => "abab" ; correct (vector-ec 1) => #(1) ; correct (vector-ec (:range i 0) i) => #() ; correct (vector-ec (:range i 1) i) => #(0) ; correct (vector-ec (:range i 2) i) => #(0 1) ; correct (vector-of-length-ec 1 1) => #(1) ; correct (vector-of-length-ec 0 (:range i 0) i) => #() ; correct (vector-of-length-ec 1 (:range i 1) i) => #(0) ; correct (vector-of-length-ec 2 (:range i 2) i) => #(0 1) ; correct (sum-ec 1) => 1 ; correct (sum-ec (:range i 0) i) => 0 ; correct (sum-ec (:range i 1) i) => 0 ; correct (sum-ec (:range i 2) i) => 1 ; correct (sum-ec (:range i 3) i) => 3 ; correct (product-ec 1) => 1 ; correct (product-ec (:range i 1 0) i) => 1 ; correct (product-ec (:range i 1 1) i) => 1 ; correct (product-ec (:range i 1 2) i) => 1 ; correct (product-ec (:range i 1 3) i) => 2 ; correct (product-ec (:range i 1 4) i) => 6 ; correct (min-ec 1) => 1 ; correct (min-ec (:range i 1) i) => 0 ; correct (min-ec (:range i 2) i) => 0 ; correct (max-ec 1) => 1 ; correct (max-ec (:range i 1) i) => 0 ; correct (max-ec (:range i 2) i) => 1 ; correct (first-ec #f 1) => 1 ; correct (first-ec #f (:range i 0) i) => #f ; correct (first-ec #f (:range i 1) i) => 0 ; correct (first-ec #f (:range i 2) i) => 0 ; correct (let ((last-i -1)) (first-ec #f (:range i 10) (begin (set! last-i i)) i) last-i) => 0 ; correct (last-ec #f 1) => 1 ; correct (last-ec #f (:range i 0) i) => #f ; correct (last-ec #f (:range i 1) i) => 0 ; correct (last-ec #f (:range i 2) i) => 1 ; correct (any?-ec #f) => #f ; correct (any?-ec #t) => #t ; correct (any?-ec (:range i 2 2) (even? i)) => #f ; correct (any?-ec (:range i 2 3) (even? i)) => #t ; correct (every?-ec #f) => #f ; correct (every?-ec #t) => #t ; correct (every?-ec (:range i 2 2) (even? i)) => #t ; correct (every?-ec (:range i 2 3) (even? i)) => #t ; correct (every?-ec (:range i 2 4) (even? i)) => #f ; correct (let ((sum-sqr (lambda (x result) (+ result (* x x))))) (fold-ec 0 (:range i 10) i sum-sqr)) => 285 ; correct (let ((minus-1 (lambda (x) (- x 1))) (sum-sqr (lambda (x result) (+ result (* x x))))) (fold3-ec (error "wrong") (:range i 10) i minus-1 sum-sqr)) => 284 ; correct (fold3-ec (quote infinity) (:range i 0) i min min) => infinity ; correct (list-ec (:list x (quote ())) x) => () ; correct (list-ec (:list x (quote (1))) x) => (1) ; correct (list-ec (:list x (quote (1 2 3))) x) => (1 2 3) ; correct (list-ec (:list x (quote (1)) (quote (2))) x) => (1 2) ; correct (list-ec (:list x (quote (1)) (quote (2)) (quote (3))) x) => (1 2 3) ; correct (list-ec (:string c "") c) => () ; correct (list-ec (:string c "1") c) => (#\1) ; correct (list-ec (:string c "123") c) => (#\1 #\2 #\3) ; correct (list-ec (:string c "1" "2") c) => (#\1 #\2) ; correct (list-ec (:string c "1" "2" "3") c) => (#\1 #\2 #\3) ; correct (list-ec (:vector x (vector)) x) => () ; correct (list-ec (:vector x (vector 1)) x) => (1) ; correct (list-ec (:vector x (vector 1 2 3)) x) => (1 2 3) ; correct (list-ec (:vector x (vector 1) (vector 2)) x) => (1 2) ; correct (list-ec (:vector x (vector 1) (vector 2) (vector 3)) x) => (1 2 3) ; correct (list-ec (:range x -2) x) => () ; correct (list-ec (:range x -1) x) => () ; correct (list-ec (:range x 0) x) => () ; correct (list-ec (:range x 1) x) => (0) ; correct (list-ec (:range x 2) x) => (0 1) ; correct (list-ec (:range x 0 3) x) => (0 1 2) ; correct (list-ec (:range x 1 3) x) => (1 2) ; correct (list-ec (:range x -2 -1) x) => (-2) ; correct (list-ec (:range x -2 -2) x) => () ; correct (list-ec (:range x 1 5 2) x) => (1 3) ; correct (list-ec (:range x 1 6 2) x) => (1 3 5) ; correct (list-ec (:range x 5 1 -2) x) => (5 3) ; correct (list-ec (:range x 6 1 -2) x) => (6 4 2) ; correct (list-ec (:real-range x 0.0 3.0) x) => (0.0 1.0 2.0) ; correct (list-ec (:real-range x 0 3.0) x) => (0.0 1.0 2.0) ; correct (list-ec (:real-range x 0 3 1.0) x) => (0.0 1.0 2.0) ; correct (string-ec (:char-range c #\a #\z) c) => "abcdefghijklmnopqrstuvwxyz" ; correct (begin (let ((f (my-open-output-file "tmp1"))) (do-ec (:range n 10) (begin (write n f) (newline f))) (close-output-port f)) (my-call-with-input-file "tmp1" (lambda (port) (list-ec (:port x port read) x)))) => (0 1 2 3 4 5 6 7 8 9) ; correct (begin (let ((f (my-open-output-file "tmp1"))) (do-ec (:range n 10) (begin (write n f) (newline f))) (close-output-port f)) (my-call-with-input-file "tmp1" (lambda (port) (list-ec (:port x port) x)))) => (0 1 2 3 4 5 6 7 8 9) ; correct (list-ec (:do ((i 0)) (< i 4) ((+ i 1))) i) => (0 1 2 3) ; correct (list-ec (:do (let ((x (quote x)))) ((i 0)) (< i 4) (let ((j (- 10 i)))) #t ((+ i 1))) j) => (10 9 8 7) ; correct (list-ec (:let x 1) x) => (1) ; correct (list-ec (:let x 1) (:let y (+ x 1)) y) => (2) ; correct (list-ec (:let x 1) (:let x (+ x 1)) x) => (2) ; correct (list-ec (:parallel (:range i 1 10) (:list x (quote (a b c)))) (list i x)) => ((1 a) (2 b) (3 c)) ; correct (list-ec (:while (:range i 1 10) (< i 5)) i) => (1 2 3 4) ; correct (list-ec (:until (:range i 1 10) (>= i 5)) i) => (1 2 3 4 5) ; correct (list-ec (:while (:list i (quote (1 2 3 4 5 6 7 8 9))) (< i 5)) i) => (1 2 3 4) ; correct (list-ec (:until (:list i (quote (1 2 3 4 5 6 7 8 9))) (>= i 5)) i) => (1 2 3 4 5) ; correct (list-ec (:while (:vector x (index i) (quote #(1 2 3 4 5))) (< x 10)) x) => (1 2 3 4 5) ; correct (list-ec (:while (:parallel (:range i 1 10) (:list j (quote (1 2 3 4 5 6 7 8 9)))) (< i 5)) (list i j)) => ((1 1) (2 2) (3 3) (4 4)) ; correct (list-ec (:until (:parallel (:range i 1 10) (:list j (quote (1 2 3 4 5 6 7 8 9)))) (>= i 5)) (list i j)) => ((1 1) (2 2) (3 3) (4 4) (5 5)) ; correct (let ((n 0)) (do-ec (:while (:range i 1 10) (begin (set! n (+ n 1)) (< i 5))) (if #f #f)) n) => 5 ; correct (let ((n 0)) (do-ec (:until (:range i 1 10) (begin (set! n (+ n 1)) (>= i 5))) (if #f #f)) n) => 5 ; correct (let ((n 0)) (do-ec (:while (:parallel (:range i 1 10) (:do () (begin (set! n (+ n 1)) #t) ())) (< i 5)) (if #f #f)) n) => 5 ; correct (let ((n 0)) (do-ec (:until (:parallel (:range i 1 10) (:do () (begin (set! n (+ n 1)) #t) ())) (>= i 5)) (if #f #f)) n) => 5 ; correct (list-ec (: c (quote (a b))) c) => (a b) ; correct (list-ec (: c (quote (a b)) (quote (c d))) c) => (a b c d) ; correct (list-ec (: c "ab") c) => (#\a #\b) ; correct (list-ec (: c "ab" "cd") c) => (#\a #\b #\c #\d) ; correct (list-ec (: c (vector (quote a) (quote b))) c) => (a b) ; correct (list-ec (: c (vector (quote a) (quote b)) (vector (quote c))) c) => (a b c) ; correct (list-ec (: i 0) i) => () ; correct (list-ec (: i 1) i) => (0) ; correct (list-ec (: i 10) i) => (0 1 2 3 4 5 6 7 8 9) ; correct (list-ec (: i 1 2) i) => (1) ; correct (list-ec (: i 1 2 3) i) => (1) ; correct (list-ec (: i 1 9 3) i) => (1 4 7) ; correct (list-ec (: i 0.0 1.0 0.2) i) => (0.0 0.2 0.4 0.6 0.8) ; correct (list-ec (: c #\a #\c) c) => (#\a #\b #\c) ; correct (begin (let ((f (my-open-output-file "tmp1"))) (do-ec (:range n 10) (begin (write n f) (newline f))) (close-output-port f)) (my-call-with-input-file "tmp1" (lambda (port) (list-ec (: x port read) x)))) => (0 1 2 3 4 5 6 7 8 9) ; correct (begin (let ((f (my-open-output-file "tmp1"))) (do-ec (:range n 10) (begin (write n f) (newline f))) (close-output-port f)) (my-call-with-input-file "tmp1" (lambda (port) (list-ec (: x port) x)))) => (0 1 2 3 4 5 6 7 8 9) ; correct (list-ec (:list c (index i) (quote (a b))) (list c i)) => ((a 0) (b 1)) ; correct (list-ec (:string c (index i) "a") (list c i)) => ((#\a 0)) ; correct (list-ec (:vector c (index i) (vector (quote a))) (list c i)) => ((a 0)) ; correct (list-ec (:range i (index j) 0 -3 -1) (list i j)) => ((0 0) (-1 1) (-2 2)) ; correct (list-ec (:real-range i (index j) 0 1 0.2) (list i j)) => ((0.0 0) (0.2 1) (0.4 2) (0.6 3) (0.8 4)) ; correct (list-ec (:char-range c (index i) #\a #\c) (list c i)) => ((#\a 0) (#\b 1) (#\c 2)) ; correct (list-ec (: x (index i) (quote (a b c d))) (list x i)) => ((a 0) (b 1) (c 2) (d 3)) ; correct (begin (let ((f (my-open-output-file "tmp1"))) (do-ec (:range n 10) (begin (write n f) (newline f))) (close-output-port f)) (my-call-with-input-file "tmp1" (lambda (port) (list-ec (: x (index i) port) (list x i))))) => ((0 0) (1 1) (2 2) (3 3) (4 4) (5 5) (6 6) (7 7) (8 8) (9 9)) ; correct (list-ec (: i 5) (* i i)) => (0 1 4 9 16) ; correct (list-ec (: n 1 4) (: i n) (list n i)) => ((1 0) (2 0) (2 1) (3 0) (3 1) (3 2)) ; correct (list-ec (: x (index i) "abc") (list x i)) => ((#\a 0) (#\b 1) (#\c 2)) ; correct (list-ec (:string c (index i) "a" "b") (cons c i)) => ((#\a . 0) (#\b . 1)) ; correct (list-ec (:range x 5) (:range x x) x) => (0 0 1 0 1 2 0 1 2 3) ; correct (list-ec (:list x (quote (2 "23" (4)))) (: y x) y) => (0 1 #\2 #\3 4) ; correct (list-ec (:parallel (:integers x) (:do ((i 10)) (< x i) ((- i 1)))) (list x i)) => ((0 10) (1 9) (2 8) (3 7) (4 6)) ; correct (factorial 0) => 1 ; correct (factorial 1) => 1 ; correct (factorial 3) => 6 ; correct (factorial 5) => 120 ; correct (eratosthenes 50) => (2 3 5 7 11 13 17 19 23 29 31 37 41 43 47) ; correct (length (eratosthenes 100000)) => 9592 ; correct (pythagoras 15) => ((3 4 5) (5 12 13) (6 8 10) (9 12 15)) ; correct (length (pythagoras 200)) => 127 ; correct (qsort (quote (1 5 4 2 4 5 3 2 1 3))) => (1 1 2 2 3 3 4 4 5 5) ; correct (pi-BBP 5) => 3.14159265322809 ; correct (begin (let ((f (my-open-output-file "tmp1"))) (do-ec (:range n 10) (begin (write n f) (newline f))) (close-output-port f)) (read-lines "tmp1")) => ("0\n" "1\n" "2\n" "3\n" "4\n" "5\n" "6\n" "7\n" "8\n" "9\n") ; correct correct examples : 163 wrong examples : 0 ../chicken ec.scm -output-file ec.c -dynamic -feature chicken-compile-shared -include-path .. -emit-import-library ec gcc ec.c -o ec.o -c -fno-strict-aliasing -DHAVE_CHICKEN_CONFIG_H -Os -fomit-frame-pointer -fPIC -DPIC -DC_SHARED -I.. -I/home/mario/chicken/include rm ec.c gcc ec.o -o ec.so -shared -L.. -L/home/mario/chicken/lib -Wl,-R/home/mario/chicken/lib -lchicken -lm -ldl rm ec.o ../chicken ec.import.scm -output-file ec.import.c -dynamic -feature chicken-compile-shared -include-path .. gcc ec.import.c -o ec.import.o -c -fno-strict-aliasing -DHAVE_CHICKEN_CONFIG_H -Os -fomit-frame-pointer -fPIC -DPIC -DC_SHARED -I.. -I/home/mario/chicken/include rm ec.import.c gcc ec.import.o -o ec.import.so -shared -L.. -L/home/mario/chicken/lib -Wl,-R/home/mario/chicken/lib -lchicken -lm -ldl rm ec.import.o (let ((x 0)) (do-ec (set! x (+ x 1))) x) => 1 ; correct (let ((x 0)) (do-ec (:range i 10) (set! x (+ x 1))) x) => 10 ; correct (let ((x 0)) (do-ec (:range n 10) (:range k n) (set! x (+ x 1))) x) => 45 ; correct (list-ec 1) => (1) ; correct (list-ec (:range i 4) i) => (0 1 2 3) ; correct (list-ec (:range n 3) (:range k (+ n 1)) (list n k)) => ((0 0) (1 0) (1 1) (2 0) (2 1) (2 2)) ; correct (list-ec (:range n 5) (if (even? n)) (:range k (+ n 1)) (list n k)) => ((0 0) (2 0) (2 1) (2 2) (4 0) (4 1) (4 2) (4 3) (4 4)) ; correct (list-ec (:range n 5) (not (even? n)) (:range k (+ n 1)) (list n k)) => ((1 0) (1 1) (3 0) (3 1) (3 2) (3 3)) ; correct (list-ec (:range n 5) (and (even? n) (> n 2)) (:range k (+ n 1)) (list n k)) => ((4 0) (4 1) (4 2) (4 3) (4 4)) ; correct (list-ec (:range n 5) (or (even? n) (> n 3)) (:range k (+ n 1)) (list n k)) => ((0 0) (2 0) (2 1) (2 2) (4 0) (4 1) (4 2) (4 3) (4 4)) ; correct (let ((x 0)) (list-ec (:range n 10) (begin (set! x (+ x 1))) n) x) => 10 ; correct (list-ec (nested (:range n 3) (:range k n)) k) => (0 0 1) ; correct (append-ec (quote (a b))) => (a b) ; correct (append-ec (:range i 0) (quote (a b))) => () ; correct (append-ec (:range i 1) (quote (a b))) => (a b) ; correct (append-ec (:range i 2) (quote (a b))) => (a b a b) ; correct (string-ec #\a) => "a" ; correct (string-ec (:range i 0) #\a) => "" ; correct (string-ec (:range i 1) #\a) => "a" ; correct (string-ec (:range i 2) #\a) => "aa" ; correct (string-append-ec "ab") => "ab" ; correct (string-append-ec (:range i 0) "ab") => "" ; correct (string-append-ec (:range i 1) "ab") => "ab" ; correct (string-append-ec (:range i 2) "ab") => "abab" ; correct (vector-ec 1) => #(1) ; correct (vector-ec (:range i 0) i) => #() ; correct (vector-ec (:range i 1) i) => #(0) ; correct (vector-ec (:range i 2) i) => #(0 1) ; correct (vector-of-length-ec 1 1) => #(1) ; correct (vector-of-length-ec 0 (:range i 0) i) => #() ; correct (vector-of-length-ec 1 (:range i 1) i) => #(0) ; correct (vector-of-length-ec 2 (:range i 2) i) => #(0 1) ; correct (sum-ec 1) => 1 ; correct (sum-ec (:range i 0) i) => 0 ; correct (sum-ec (:range i 1) i) => 0 ; correct (sum-ec (:range i 2) i) => 1 ; correct (sum-ec (:range i 3) i) => 3 ; correct (product-ec 1) => 1 ; correct (product-ec (:range i 1 0) i) => 1 ; correct (product-ec (:range i 1 1) i) => 1 ; correct (product-ec (:range i 1 2) i) => 1 ; correct (product-ec (:range i 1 3) i) => 2 ; correct (product-ec (:range i 1 4) i) => 6 ; correct (min-ec 1) => 1 ; correct (min-ec (:range i 1) i) => 0 ; correct (min-ec (:range i 2) i) => 0 ; correct (max-ec 1) => 1 ; correct (max-ec (:range i 1) i) => 0 ; correct (max-ec (:range i 2) i) => 1 ; correct (first-ec #f 1) => 1 ; correct (first-ec #f (:range i 0) i) => #f ; correct (first-ec #f (:range i 1) i) => 0 ; correct (first-ec #f (:range i 2) i) => 0 ; correct (let ((last-i -1)) (first-ec #f (:range i 10) (begin (set! last-i i)) i) last-i) => 0 ; correct (last-ec #f 1) => 1 ; correct (last-ec #f (:range i 0) i) => #f ; correct (last-ec #f (:range i 1) i) => 0 ; correct (last-ec #f (:range i 2) i) => 1 ; correct (any?-ec #f) => #f ; correct (any?-ec #t) => #t ; correct (any?-ec (:range i 2 2) (even? i)) => #f ; correct (any?-ec (:range i 2 3) (even? i)) => #t ; correct (every?-ec #f) => #f ; correct (every?-ec #t) => #t ; correct (every?-ec (:range i 2 2) (even? i)) => #t ; correct (every?-ec (:range i 2 3) (even? i)) => #t ; correct (every?-ec (:range i 2 4) (even? i)) => #f ; correct (let ((sum-sqr (lambda (x result) (+ result (* x x))))) (fold-ec 0 (:range i 10) i sum-sqr)) => 285 ; correct (let ((minus-1 (lambda (x) (- x 1))) (sum-sqr (lambda (x result) (+ result (* x x))))) (fold3-ec (error "wrong") (:range i 10) i minus-1 sum-sqr)) => 284 ; correct (fold3-ec (quote infinity) (:range i 0) i min min) => infinity ; correct (list-ec (:list x (quote ())) x) => () ; correct (list-ec (:list x (quote (1))) x) => (1) ; correct (list-ec (:list x (quote (1 2 3))) x) => (1 2 3) ; correct (list-ec (:list x (quote (1)) (quote (2))) x) => (1 2) ; correct (list-ec (:list x (quote (1)) (quote (2)) (quote (3))) x) => (1 2 3) ; correct (list-ec (:string c "") c) => () ; correct (list-ec (:string c "1") c) => (#\1) ; correct (list-ec (:string c "123") c) => (#\1 #\2 #\3) ; correct (list-ec (:string c "1" "2") c) => (#\1 #\2) ; correct (list-ec (:string c "1" "2" "3") c) => (#\1 #\2 #\3) ; correct (list-ec (:vector x (vector)) x) => () ; correct (list-ec (:vector x (vector 1)) x) => (1) ; correct (list-ec (:vector x (vector 1 2 3)) x) => (1 2 3) ; correct (list-ec (:vector x (vector 1) (vector 2)) x) => (1 2) ; correct (list-ec (:vector x (vector 1) (vector 2) (vector 3)) x) => (1 2 3) ; correct (list-ec (:range x -2) x) => () ; correct (list-ec (:range x -1) x) => () ; correct (list-ec (:range x 0) x) => () ; correct (list-ec (:range x 1) x) => (0) ; correct (list-ec (:range x 2) x) => (0 1) ; correct (list-ec (:range x 0 3) x) => (0 1 2) ; correct (list-ec (:range x 1 3) x) => (1 2) ; correct (list-ec (:range x -2 -1) x) => (-2) ; correct (list-ec (:range x -2 -2) x) => () ; correct (list-ec (:range x 1 5 2) x) => (1 3) ; correct (list-ec (:range x 1 6 2) x) => (1 3 5) ; correct (list-ec (:range x 5 1 -2) x) => (5 3) ; correct (list-ec (:range x 6 1 -2) x) => (6 4 2) ; correct (list-ec (:real-range x 0.0 3.0) x) => (0.0 1.0 2.0) ; correct (list-ec (:real-range x 0 3.0) x) => (0.0 1.0 2.0) ; correct (list-ec (:real-range x 0 3 1.0) x) => (0.0 1.0 2.0) ; correct (string-ec (:char-range c #\a #\z) c) => "abcdefghijklmnopqrstuvwxyz" ; correct (begin (let ((f (my-open-output-file "tmp1"))) (do-ec (:range n 10) (begin (write n f) (newline f))) (close-output-port f)) (my-call-with-input-file "tmp1" (lambda (port) (list-ec (:port x port read) x)))) => (0 1 2 3 4 5 6 7 8 9) ; correct (begin (let ((f (my-open-output-file "tmp1"))) (do-ec (:range n 10) (begin (write n f) (newline f))) (close-output-port f)) (my-call-with-input-file "tmp1" (lambda (port) (list-ec (:port x port) x)))) => (0 1 2 3 4 5 6 7 8 9) ; correct (list-ec (:do ((i 0)) (< i 4) ((+ i 1))) i) => (0 1 2 3) ; correct (list-ec (:do (let ((x (quote x)))) ((i 0)) (< i 4) (let ((j (- 10 i)))) #t ((+ i 1))) j) => (10 9 8 7) ; correct (list-ec (:let x 1) x) => (1) ; correct (list-ec (:let x 1) (:let y (+ x 1)) y) => (2) ; correct (list-ec (:let x 1) (:let x (+ x 1)) x) => (2) ; correct (list-ec (:parallel (:range i 1 10) (:list x (quote (a b c)))) (list i x)) => ((1 a) (2 b) (3 c)) ; correct (list-ec (:while (:range i 1 10) (< i 5)) i) => (1 2 3 4) ; correct (list-ec (:until (:range i 1 10) (>= i 5)) i) => (1 2 3 4 5) ; correct (list-ec (:while (:list i (quote (1 2 3 4 5 6 7 8 9))) (< i 5)) i) => (1 2 3 4) ; correct (list-ec (:until (:list i (quote (1 2 3 4 5 6 7 8 9))) (>= i 5)) i) => (1 2 3 4 5) ; correct (list-ec (:while (:vector x (index i) (quote #(1 2 3 4 5))) (< x 10)) x) => (1 2 3 4 5) ; correct (list-ec (:while (:parallel (:range i 1 10) (:list j (quote (1 2 3 4 5 6 7 8 9)))) (< i 5)) (list i j)) => ((1 1) (2 2) (3 3) (4 4)) ; correct (list-ec (:until (:parallel (:range i 1 10) (:list j (quote (1 2 3 4 5 6 7 8 9)))) (>= i 5)) (list i j)) => ((1 1) (2 2) (3 3) (4 4) (5 5)) ; correct (let ((n 0)) (do-ec (:while (:range i 1 10) (begin (set! n (+ n 1)) (< i 5))) (if #f #f)) n) => 5 ; correct (let ((n 0)) (do-ec (:until (:range i 1 10) (begin (set! n (+ n 1)) (>= i 5))) (if #f #f)) n) => 5 ; correct (let ((n 0)) (do-ec (:while (:parallel (:range i 1 10) (:do () (begin (set! n (+ n 1)) #t) ())) (< i 5)) (if #f #f)) n) => 5 ; correct (let ((n 0)) (do-ec (:until (:parallel (:range i 1 10) (:do () (begin (set! n (+ n 1)) #t) ())) (>= i 5)) (if #f #f)) n) => 5 ; correct (list-ec (: c (quote (a b))) c) => (a b) ; correct (list-ec (: c (quote (a b)) (quote (c d))) c) => (a b c d) ; correct (list-ec (: c "ab") c) => (#\a #\b) ; correct (list-ec (: c "ab" "cd") c) => (#\a #\b #\c #\d) ; correct (list-ec (: c (vector (quote a) (quote b))) c) => (a b) ; correct (list-ec (: c (vector (quote a) (quote b)) (vector (quote c))) c) => (a b c) ; correct (list-ec (: i 0) i) => () ; correct (list-ec (: i 1) i) => (0) ; correct (list-ec (: i 10) i) => (0 1 2 3 4 5 6 7 8 9) ; correct (list-ec (: i 1 2) i) => (1) ; correct (list-ec (: i 1 2 3) i) => (1) ; correct (list-ec (: i 1 9 3) i) => (1 4 7) ; correct (list-ec (: i 0.0 1.0 0.2) i) => (0.0 0.2 0.4 0.6 0.8) ; correct (list-ec (: c #\a #\c) c) => (#\a #\b #\c) ; correct (begin (let ((f (my-open-output-file "tmp1"))) (do-ec (:range n 10) (begin (write n f) (newline f))) (close-output-port f)) (my-call-with-input-file "tmp1" (lambda (port) (list-ec (: x port read) x)))) => (0 1 2 3 4 5 6 7 8 9) ; correct (begin (let ((f (my-open-output-file "tmp1"))) (do-ec (:range n 10) (begin (write n f) (newline f))) (close-output-port f)) (my-call-with-input-file "tmp1" (lambda (port) (list-ec (: x port) x)))) => (0 1 2 3 4 5 6 7 8 9) ; correct (list-ec (:list c (index i) (quote (a b))) (list c i)) => ((a 0) (b 1)) ; correct (list-ec (:string c (index i) "a") (list c i)) => ((#\a 0)) ; correct (list-ec (:vector c (index i) (vector (quote a))) (list c i)) => ((a 0)) ; correct (list-ec (:range i (index j) 0 -3 -1) (list i j)) => ((0 0) (-1 1) (-2 2)) ; correct (list-ec (:real-range i (index j) 0 1 0.2) (list i j)) => ((0.0 0) (0.2 1) (0.4 2) (0.6 3) (0.8 4)) ; correct (list-ec (:char-range c (index i) #\a #\c) (list c i)) => ((#\a 0) (#\b 1) (#\c 2)) ; correct (list-ec (: x (index i) (quote (a b c d))) (list x i)) => ((a 0) (b 1) (c 2) (d 3)) ; correct (begin (let ((f (my-open-output-file "tmp1"))) (do-ec (:range n 10) (begin (write n f) (newline f))) (close-output-port f)) (my-call-with-input-file "tmp1" (lambda (port) (list-ec (: x (index i) port) (list x i))))) => ((0 0) (1 1) (2 2) (3 3) (4 4) (5 5) (6 6) (7 7) (8 8) (9 9)) ; correct (list-ec (: i 5) (* i i)) => (0 1 4 9 16) ; correct (list-ec (: n 1 4) (: i n) (list n i)) => ((1 0) (2 0) (2 1) (3 0) (3 1) (3 2)) ; correct (list-ec (: x (index i) "abc") (list x i)) => ((#\a 0) (#\b 1) (#\c 2)) ; correct (list-ec (:string c (index i) "a" "b") (cons c i)) => ((#\a . 0) (#\b . 1)) ; correct (list-ec (:range x 5) (:range x x) x) => (0 0 1 0 1 2 0 1 2 3) ; correct (list-ec (:list x (quote (2 "23" (4)))) (: y x) y) => (0 1 #\2 #\3 4) ; correct (list-ec (:parallel (:integers x) (:do ((i 10)) (< x i) ((- i 1)))) (list x i)) => ((0 10) (1 9) (2 8) (3 7) (4 6)) ; correct (factorial 0) => 1 ; correct (factorial 1) => 1 ; correct (factorial 3) => 6 ; correct (factorial 5) => 120 ; correct (eratosthenes 50) => (2 3 5 7 11 13 17 19 23 29 31 37 41 43 47) ; correct (length (eratosthenes 100000)) => 9592 ; correct (pythagoras 15) => ((3 4 5) (5 12 13) (6 8 10) (9 12 15)) ; correct (length (pythagoras 200)) => 127 ; correct (qsort (quote (1 5 4 2 4 5 3 2 1 3))) => (1 1 2 2 3 3 4 4 5 5) ; correct (pi-BBP 5) => 3.14159265322809 ; correct (begin (let ((f (my-open-output-file "tmp1"))) (do-ec (:range n 10) (begin (write n f) (newline f))) (close-output-port f)) (read-lines "tmp1")) => ("0\n" "1\n" "2\n" "3\n" "4\n" "5\n" "6\n" "7\n" "8\n" "9\n") ; correct correct examples : 163 wrong examples : 0 ======================================== hash-table tests ... SRFI 69 procedures HT - No Parameters HT - Test Parameter HT - Number Test Parameter HT - All Optional Parameters HT - All Parameters HT - Insert with setter HT - Insert with update! HT - A-List HT - set! overwrites HT - Delete HT - Remove HT - Make from A-List HT - Merge! HT - Merge HT - Map HT - Fold HT - Stress Insert 100000 Fixnum Key Items 0.412 seconds elapsed 0.152 seconds in (major) GC 258687 mutations 1608 minor GCs 15 major GCs HT - Stress Retrieve 100000 Fixnum Key Items 0.104 seconds elapsed 0 seconds in (major) GC 16 mutations 4413 minor GCs 0 major GCs ======================================== lolevel tests ... ======================================== port tests ... ======================================== fixnum tests ... ../chicken fixnum-tests.scm -output-file a.c -include-path .. gcc a.c -o a.o -c -fno-strict-aliasing -DHAVE_CHICKEN_CONFIG_H -Os -fomit-frame-pointer -I.. -I/home/mario/chicken/include rm a.c gcc a.o -o a.out -L.. -L/home/mario/chicken/lib -Wl,-R/home/mario/chicken/lib -lchicken -lm -ldl rm a.o ======================================== srfi-18 tests ... ======================================== path tests ... ======================================== regular expression tests ... irregex - (small): (PASS) abc abc y (PASS) abc xbc n (PASS) abc axc n (PASS) abc abx n (PASS) abc xabcy y (PASS) abc ababc y (PASS) ab*c abc y (PASS) ab*bc abc y (PASS) ab*bc abbc y (PASS) ab*bc abbbbc y (PASS) ab+bc abbc y (PASS) ab+bc abc n (PASS) ab+bc abq n (PASS) ab+bc abbbbc y (PASS) ab?bc abbc y (PASS) ab?bc abc y (PASS) ab?bc abbbbc n (PASS) ab?c abc y (PASS) ^abc$ abc y (PASS) ^abc$ abcc n (PASS) ^abc abcc y (PASS) ^abc$ aabc n (PASS) abc$ aabc y (PASS) ^ abc y (PASS) $ abc y (PASS) a.c abc y (PASS) a.c axc y (PASS) a.*c axyzc y (PASS) a.*c axyzd n (PASS) a[bc]d abc n (PASS) a[bc]d abd y (PASS) a[b-d]e abd n (PASS) a[b-d]e ace y (PASS) a[b-d] aac y (PASS) a[-b] a- y (PASS) a[b-] a- y (PASS) [k] ab n (PASS) a[b-a] - c (PASS) a[]b - c (PASS) a[ - c (PASS) a] a] y (PASS) a[]]b a]b y (PASS) a[^bc]d aed y (PASS) a[^bc]d abd n (PASS) a[^-b]c adc y (PASS) a[^-b]c a-c n (PASS) a[^]b]c a]c n (PASS) a[^]b]c adc y (PASS) ab|cd abc y (PASS) ab|cd abcd y (PASS) ()ef def y (PASS) ()* - c (PASS) *a - c (PASS) ^* - c (PASS) $* - c (PASS) (*)b - c (PASS) $b b n (PASS) a\ - c (PASS) a\(b a(b y (PASS) a\(*b ab y (PASS) a\(*b a((b y (PASS) a\\b a\b y (PASS) abc) - c (PASS) (abc - c (PASS) ((a)) abc y (PASS) (a)b(c) abc y (PASS) a+b+c aabbabc y (PASS) a** - c (PASS) (a*)* - c (PASS) (a*)+ - c (PASS) (a|)* - c (PASS) (a*|b)* - c (PASS) (a+|b)* ab y (PASS) (a+|b)+ ab y (PASS) (a+|b)? ab y (PASS) [^ab]* cde y (PASS) (^)* - c (PASS) (ab|)* - c (PASS) )( - c (PASS) abc y (PASS) abc n (PASS) a* y (PASS) abcd abcd y (PASS) a(bc)d abcd y (PASS) ([abc])*d abbbcd y (PASS) ([abc])*bcd abcd y (PASS) a|b|c|d|e e y (PASS) (a|b|c|d|e)f ef y (PASS) ((a*|b))* - c (PASS) abcd*efg abcdefg y (PASS) ab* xabyabbbz y (PASS) ab* xayabbbz y (PASS) (ab|cd)e abcde y (PASS) [abhgefdc]ij hij y (PASS) ^(ab|cd)e abcde n (PASS) (abc|)ef abcdef y (PASS) (a|b)c*d abcd y (PASS) (ab|ab*)bc abc y (PASS) a([bc]*)c* abc y (PASS) a([bc]*)(c*d) abcd y (PASS) a([bc]+)(c*d) abcd y (PASS) a([bc]*)(c+d) abcd y (PASS) a[bcd]*dcdcde adcdcde y (PASS) a[bcd]+dcdcde adcdcde n (PASS) (ab|a)b*c abc y (PASS) ((a)(b)c)(d) abcd y (PASS) [ -~]* abc y (PASS) [ -~ -~]* abc y (PASS) [ -~ -~ -~]* abc y (PASS) [ -~ -~ -~ -~]* abc y (PASS) [ -~ -~ -~ -~ -~]* abc y (PASS) [ -~ -~ -~ -~ -~ -~]* abc y (PASS) [ -~ -~ -~ -~ -~ -~ -~]* abc y (PASS) [a-zA-Z_][a-zA-Z0-9_]* alpha y (PASS) ^a(bc+|b[eh])g|.h$ abh y (PASS) (bc+d$|ef*g.|h?i(j|k)) effgz y (PASS) (bc+d$|ef*g.|h?i(j|k)) ij y (PASS) (bc+d$|ef*g.|h?i(j|k)) effg n (PASS) (bc+d$|ef*g.|h?i(j|k)) bcdd n (PASS) (bc+d$|ef*g.|h?i(j|k)) reffgz y (PASS) (((((((((a))))))))) a y (PASS) multiple words of text uh-uh n (PASS) multiple words multiple words, yeah y (PASS) (.*)c(.*) abcde y (PASS) \((.*), (.*)\) (a, b) y irregex - (fast): (PASS) abc abc y (PASS) abc xbc n (PASS) abc axc n (PASS) abc abx n (PASS) abc xabcy y (PASS) abc ababc y (PASS) ab*c abc y (PASS) ab*bc abc y (PASS) ab*bc abbc y (PASS) ab*bc abbbbc y (PASS) ab+bc abbc y (PASS) ab+bc abc n (PASS) ab+bc abq n (PASS) ab+bc abbbbc y (PASS) ab?bc abbc y (PASS) ab?bc abc y (PASS) ab?bc abbbbc n (PASS) ab?c abc y (PASS) ^abc$ abc y (PASS) ^abc$ abcc n (PASS) ^abc abcc y (PASS) ^abc$ aabc n (PASS) abc$ aabc y (PASS) ^ abc y (PASS) $ abc y (PASS) a.c abc y (PASS) a.c axc y (PASS) a.*c axyzc y (PASS) a.*c axyzd n (PASS) a[bc]d abc n (PASS) a[bc]d abd y (PASS) a[b-d]e abd n (PASS) a[b-d]e ace y (PASS) a[b-d] aac y (PASS) a[-b] a- y (PASS) a[b-] a- y (PASS) [k] ab n (PASS) a[b-a] - c (PASS) a[]b - c (PASS) a[ - c (PASS) a] a] y (PASS) a[]]b a]b y (PASS) a[^bc]d aed y (PASS) a[^bc]d abd n (PASS) a[^-b]c adc y (PASS) a[^-b]c a-c n (PASS) a[^]b]c a]c n (PASS) a[^]b]c adc y (PASS) ab|cd abc y (PASS) ab|cd abcd y (PASS) ()ef def y (PASS) ()* - c (PASS) *a - c (PASS) ^* - c (PASS) $* - c (PASS) (*)b - c (PASS) $b b n (PASS) a\ - c (PASS) a\(b a(b y (PASS) a\(*b ab y (PASS) a\(*b a((b y (PASS) a\\b a\b y (PASS) abc) - c (PASS) (abc - c (PASS) ((a)) abc y (PASS) (a)b(c) abc y (PASS) a+b+c aabbabc y (PASS) a** - c (PASS) (a*)* - c (PASS) (a*)+ - c (PASS) (a|)* - c (PASS) (a*|b)* - c (PASS) (a+|b)* ab y (PASS) (a+|b)+ ab y (PASS) (a+|b)? ab y (PASS) [^ab]* cde y (PASS) (^)* - c (PASS) (ab|)* - c (PASS) )( - c (PASS) abc y (PASS) abc n (PASS) a* y (PASS) abcd abcd y (PASS) a(bc)d abcd y (PASS) ([abc])*d abbbcd y (PASS) ([abc])*bcd abcd y (PASS) a|b|c|d|e e y (PASS) (a|b|c|d|e)f ef y (PASS) ((a*|b))* - c (PASS) abcd*efg abcdefg y (PASS) ab* xabyabbbz y (PASS) ab* xayabbbz y (PASS) (ab|cd)e abcde y (PASS) [abhgefdc]ij hij y (PASS) ^(ab|cd)e abcde n (PASS) (abc|)ef abcdef y (PASS) (a|b)c*d abcd y (PASS) (ab|ab*)bc abc y (PASS) a([bc]*)c* abc y (PASS) a([bc]*)(c*d) abcd y (PASS) a([bc]+)(c*d) abcd y (PASS) a([bc]*)(c+d) abcd y (PASS) a[bcd]*dcdcde adcdcde y (PASS) a[bcd]+dcdcde adcdcde n (PASS) (ab|a)b*c abc y (PASS) ((a)(b)c)(d) abcd y (PASS) [ -~]* abc y (PASS) [ -~ -~]* abc y (PASS) [ -~ -~ -~]* abc y (PASS) [ -~ -~ -~ -~]* abc y (PASS) [ -~ -~ -~ -~ -~]* abc y (PASS) [ -~ -~ -~ -~ -~ -~]* abc y (PASS) [ -~ -~ -~ -~ -~ -~ -~]* abc y (PASS) [a-zA-Z_][a-zA-Z0-9_]* alpha y (PASS) ^a(bc+|b[eh])g|.h$ abh y (PASS) (bc+d$|ef*g.|h?i(j|k)) effgz y (PASS) (bc+d$|ef*g.|h?i(j|k)) ij y (PASS) (bc+d$|ef*g.|h?i(j|k)) effg n (PASS) (bc+d$|ef*g.|h?i(j|k)) bcdd n (PASS) (bc+d$|ef*g.|h?i(j|k)) reffgz y (PASS) (((((((((a))))))))) a y (PASS) multiple words of text uh-uh n (PASS) multiple words multiple words, yeah y (PASS) (.*)c(.*) abcde y (PASS) \((.*), (.*)\) (a, b) y regex: (PASS) abc abc y (PASS) abc xbc n (PASS) abc axc n (PASS) abc abx n (PASS) abc xabcy y (PASS) abc ababc y (PASS) ab*c abc y (PASS) ab*bc abc y (PASS) ab*bc abbc y (PASS) ab*bc abbbbc y (PASS) ab+bc abbc y (PASS) ab+bc abc n (PASS) ab+bc abq n (PASS) ab+bc abbbbc y (PASS) ab?bc abbc y (PASS) ab?bc abc y (PASS) ab?bc abbbbc n (PASS) ab?c abc y (PASS) ^abc$ abc y (PASS) ^abc$ abcc n (PASS) ^abc abcc y (PASS) ^abc$ aabc n (PASS) abc$ aabc y (PASS) ^ abc y (PASS) $ abc y (PASS) a.c abc y (PASS) a.c axc y (PASS) a.*c axyzc y (PASS) a.*c axyzd n (PASS) a[bc]d abc n (PASS) a[bc]d abd y (PASS) a[b-d]e abd n (PASS) a[b-d]e ace y (PASS) a[b-d] aac y (PASS) a[-b] a- y (PASS) a[b-] a- y (PASS) [k] ab n (PASS) a[b-a] - c (PASS) a[]b - c (PASS) a[ - c (PASS) a] a] y (PASS) a[]]b a]b y (PASS) a[^bc]d aed y (PASS) a[^bc]d abd n (PASS) a[^-b]c adc y (PASS) a[^-b]c a-c n (PASS) a[^]b]c a]c n (PASS) a[^]b]c adc y (PASS) ab|cd abc y (PASS) ab|cd abcd y (PASS) ()ef def y (PASS) ()* - c (PASS) *a - c (PASS) ^* - c (PASS) $* - c (PASS) (*)b - c (PASS) $b b n (PASS) a\ - c (PASS) a\(b a(b y (PASS) a\(*b ab y (PASS) a\(*b a((b y (PASS) a\\b a\b y (PASS) abc) - c (PASS) (abc - c (PASS) ((a)) abc y (PASS) (a)b(c) abc y (PASS) a+b+c aabbabc y (PASS) a** - c (PASS) (a*)* - c (PASS) (a*)+ - c (PASS) (a|)* - c (PASS) (a*|b)* - c (PASS) (a+|b)* ab y (PASS) (a+|b)+ ab y (PASS) (a+|b)? ab y (PASS) [^ab]* cde y (PASS) (^)* - c (PASS) (ab|)* - c (PASS) )( - c (PASS) abc y (PASS) abc n (PASS) a* y (PASS) abcd abcd y (PASS) a(bc)d abcd y (PASS) ([abc])*d abbbcd y (PASS) ([abc])*bcd abcd y (PASS) a|b|c|d|e e y (PASS) (a|b|c|d|e)f ef y (PASS) ((a*|b))* - c (PASS) abcd*efg abcdefg y (PASS) ab* xabyabbbz y (PASS) ab* xayabbbz y (PASS) (ab|cd)e abcde y (PASS) [abhgefdc]ij hij y (PASS) ^(ab|cd)e abcde n (PASS) (abc|)ef abcdef y (PASS) (a|b)c*d abcd y (PASS) (ab|ab*)bc abc y (PASS) a([bc]*)c* abc y (PASS) a([bc]*)(c*d) abcd y (PASS) a([bc]+)(c*d) abcd y (PASS) a([bc]*)(c+d) abcd y (PASS) a[bcd]*dcdcde adcdcde y (PASS) a[bcd]+dcdcde adcdcde n (PASS) (ab|a)b*c abc y (PASS) ((a)(b)c)(d) abcd y (PASS) [ -~]* abc y (PASS) [ -~ -~]* abc y (PASS) [ -~ -~ -~]* abc y (PASS) [ -~ -~ -~ -~]* abc y (PASS) [ -~ -~ -~ -~ -~]* abc y (PASS) [ -~ -~ -~ -~ -~ -~]* abc y (PASS) [ -~ -~ -~ -~ -~ -~ -~]* abc y (PASS) [a-zA-Z_][a-zA-Z0-9_]* alpha y (PASS) ^a(bc+|b[eh])g|.h$ abh y (PASS) (bc+d$|ef*g.|h?i(j|k)) effgz y (PASS) (bc+d$|ef*g.|h?i(j|k)) ij y (PASS) (bc+d$|ef*g.|h?i(j|k)) effg n (PASS) (bc+d$|ef*g.|h?i(j|k)) bcdd n (PASS) (bc+d$|ef*g.|h?i(j|k)) reffgz y (PASS) (((((((((a))))))))) a y (PASS) multiple words of text uh-uh n (PASS) multiple words multiple words, yeah y (PASS) (.*)c(.*) abcde y (PASS) \((.*), (.*)\) (a, b) y utils: (PASS) replace (PASS) replace/all 377 tests completed in 0.130 seconds 377 (100.00%) tests passed 0 (0.00%) tests failed ======================================== r4rstest ... ======================================== compiler/nursery stress test ... 100000 120000 200000 250000 300000 350000 400000 450000 500000 ======================================== finalizer tests ... ======================================== finalizer tests (2) ... ../chicken test-finalizers-2.scm -output-file a.c -include-path .. gcc a.c -o a.o -c -fno-strict-aliasing -DHAVE_CHICKEN_CONFIG_H -Os -fomit-frame-pointer -I.. -I/home/mario/chicken/include rm a.c gcc a.o -o a.out -L.. -L/home/mario/chicken/lib -Wl,-R/home/mario/chicken/lib -lchicken -lm -ldl rm a.o creating gc roots forcing finalizers dropping data forcing finalizables 500 releasing non-finalizable gc roots forcing remaining ======================================== locative stress test ... ../chicken locative-stress-test.scm -output-file a.c -include-path .. gcc a.c -o a.o -c -fno-strict-aliasing -DHAVE_CHICKEN_CONFIG_H -Os -fomit-frame-pointer -I.. -I/home/mario/chicken/include rm a.c gcc a.o -o a.out -L.. -L/home/mario/chicken/lib -Wl,-R/home/mario/chicken/lib -lchicken -lm -ldl rm a.o ======================================== embedding (1) ... gcc embedded1.c -o embedded1.o -c -fno-strict-aliasing -DHAVE_CHICKEN_CONFIG_H -Os -fomit-frame-pointer -I.. -I/home/mario/chicken/include gcc embedded1.o -o a.out -L.. -L/home/mario/chicken/lib -Wl,-R/home/mario/chicken/lib -lchicken -lm -ldl rm embedded1.o ======================================== embedding (2) ... ../chicken embedded2.scm -output-file a.c -include-path .. gcc a.c -o a.o -c -fno-strict-aliasing -DHAVE_CHICKEN_CONFIG_H -Os -fomit-frame-pointer -DC_EMBEDDED -I.. -I/home/mario/chicken/include rm a.c gcc a.o -o a.out -L.. -L/home/mario/chicken/lib -Wl,-R/home/mario/chicken/lib -lchicken -lm -ldl rm a.o starting... #(ok ok ok ok ok ok ok ok ok ok) --> 10 ======================================== benchmarks ... 0.scm 0 seconds elapsed 0 seconds in (major) GC 0 mutations 0 minor GCs 0 major GCs binarytrees.scm stretch tree of depth 11 check: -1 2048 trees of depth 4 check: -2048 512 trees of depth 6 check: -512 128 trees of depth 8 check: -128 32 trees of depth 10 check: -32 long lived tree of depth 10 check: -1 0.124 seconds elapsed 0.072 seconds in (major) GC 0 mutations 4 minor GCs 55 major GCs boyer.scm 0.116 seconds elapsed 0.064 seconds in (major) GC 48272 mutations 11 minor GCs 22 major GCs browse.scm 0.092 seconds elapsed 0 seconds in (major) GC 62395 mutations 39 minor GCs 19 major GCs conform.scm 0.08 seconds elapsed 0.032 seconds in (major) GC 59666 mutations 0 minor GCs 23 major GCs cpstak.scm 0.292 seconds elapsed 0.024 seconds in (major) GC 0 mutations 74 minor GCs 46 major GCs ctak.scm 0.148 seconds elapsed 0.016 seconds in (major) GC 0 mutations 27 minor GCs 32 major GCs dderiv.scm 0.092 seconds elapsed 0.004 seconds in (major) GC 0 mutations 78 minor GCs 17 major GCs deriv.scm 0.08 seconds elapsed 0.008 seconds in (major) GC 0 mutations 62 minor GCs 14 major GCs destructive.scm 0.06 seconds elapsed 0.008 seconds in (major) GC 0 mutations 18 minor GCs 11 major GCs div-iter.scm 0.024 seconds elapsed 0.004 seconds in (major) GC 0 mutations 23 minor GCs 4 major GCs div-rec.scm 0.056 seconds elapsed 0.016 seconds in (major) GC 0 mutations 18 minor GCs 21 major GCs dynamic.scm Warning: local assignment to unused variable `tag-ops' may be unintended Warning: local assignment to unused variable `no-ops' may be unintended 0.16 seconds elapsed 0.08 seconds in (major) GC 57216 mutations 18 minor GCs 14 major GCs earley.scm 0.048 seconds elapsed 0.036 seconds in (major) GC 150 mutations 34 minor GCs 13 major GCs fft.scm 0.08 seconds elapsed 0.056 seconds in (major) GC 337760 mutations 1 minor GCs 86 major GCs fibc.scm Warning: redefinition of extended binding `add1' Warning: redefinition of extended binding `sub1' 1.008 seconds elapsed 0.172 seconds in (major) GC 0 mutations 400 minor GCs 168 major GCs fib.scm 832040 0.148 seconds elapsed 0.012 seconds in (major) GC 0 mutations 17 minor GCs 11 major GCs fprint.scm 0.136 seconds elapsed 0 seconds in (major) GC 3 mutations 2313 minor GCs 0 major GCs fread.scm 0.8 seconds elapsed 0.232 seconds in (major) GC 218474 mutations 1272 minor GCs 38 major GCs hanoi.scm 0.364 seconds elapsed 0.028 seconds in (major) GC 0 mutations 175 minor GCs 36 major GCs lattice.scm 5.38 seconds elapsed 0.788 seconds in (major) GC 1213264 mutations 27 minor GCs 1371 major GCs maze.scm 0.132 seconds elapsed 0.044 seconds in (major) GC 275600 mutations 57 minor GCs 60 major GCs nbody.scm -0.169075164 -0.169079859 1.82 seconds elapsed 0.196 seconds in (major) GC 7500003 mutations 27 minor GCs 387 major GCs nqueens.scm 0.04 seconds elapsed 0.008 seconds in (major) GC 0 mutations 40 minor GCs 8 major GCs puzzle.scm Success in 2005 trials. 0.04 seconds elapsed 0 seconds in (major) GC 0 mutations 158 minor GCs 1 major GCs scheme.scm 0.016 seconds elapsed 0.004 seconds in (major) GC 500 mutations 13 minor GCs 7 major GCs takl.scm 0.168 seconds elapsed 0.008 seconds in (major) GC 0 mutations 19 minor GCs 10 major GCs takr.scm 0.652 seconds elapsed 0.048 seconds in (major) GC 0 mutations 145 minor GCs 39 major GCs tak.scm 0.236 seconds elapsed 0.012 seconds in (major) GC 0 mutations 163 minor GCs 35 major GCs traverse.scm 0.144 seconds elapsed 0.004 seconds in (major) GC 0 mutations 407 minor GCs 1 major GCs travinit.scm 0.064 seconds elapsed 0.024 seconds in (major) GC 73688 mutations 24 minor GCs 7 major GCs triangl.scm 0.688 seconds elapsed 0.1 seconds in (major) GC 775 mutations 58 minor GCs 102 major GCs ======================================== done.