make -f ./Makefile.linux CONFIG= check make[1]: Entering directory `/home/mario/src/chicken-safer-scheduler' cd tests; sh runtests.sh copying required files to test-repository ... cp -r /home/mario/chicken-safer-scheduler/lib/chicken/5/setup-api.so test-repository cp -r /home/mario/chicken-safer-scheduler/lib/chicken/5/setup-api.import.so test-repository cp -r /home/mario/chicken-safer-scheduler/lib/chicken/5/setup-download.so test-repository cp -r /home/mario/chicken-safer-scheduler/lib/chicken/5/setup-download.import.so test-repository cp -r /home/mario/chicken-safer-scheduler/lib/chicken/5/chicken.import.so test-repository cp -r /home/mario/chicken-safer-scheduler/lib/chicken/5/lolevel.import.so test-repository cp -r /home/mario/chicken-safer-scheduler/lib/chicken/5/srfi-1.import.so test-repository cp -r /home/mario/chicken-safer-scheduler/lib/chicken/5/srfi-4.import.so test-repository cp -r /home/mario/chicken-safer-scheduler/lib/chicken/5/data-structures.import.so test-repository cp -r /home/mario/chicken-safer-scheduler/lib/chicken/5/ports.import.so test-repository cp -r /home/mario/chicken-safer-scheduler/lib/chicken/5/files.import.so test-repository cp -r /home/mario/chicken-safer-scheduler/lib/chicken/5/posix.import.so test-repository cp -r /home/mario/chicken-safer-scheduler/lib/chicken/5/srfi-13.import.so test-repository cp -r /home/mario/chicken-safer-scheduler/lib/chicken/5/srfi-69.import.so test-repository cp -r /home/mario/chicken-safer-scheduler/lib/chicken/5/extras.import.so test-repository cp -r /home/mario/chicken-safer-scheduler/lib/chicken/5/regex.import.so test-repository cp -r /home/mario/chicken-safer-scheduler/lib/chicken/5/srfi-14.import.so test-repository cp -r /home/mario/chicken-safer-scheduler/lib/chicken/5/tcp.import.so test-repository cp -r /home/mario/chicken-safer-scheduler/lib/chicken/5/foreign.import.so test-repository cp -r /home/mario/chicken-safer-scheduler/lib/chicken/5/scheme.import.so test-repository cp -r /home/mario/chicken-safer-scheduler/lib/chicken/5/srfi-18.import.so test-repository cp -r /home/mario/chicken-safer-scheduler/lib/chicken/5/utils.import.so test-repository cp -r /home/mario/chicken-safer-scheduler/lib/chicken/5/csi.import.so test-repository cp -r /home/mario/chicken-safer-scheduler/lib/chicken/5/irregex.import.so test-repository cp -r /home/mario/chicken-safer-scheduler/lib/chicken/5/types.db test-repository ======================================== compiler tests ... ../chicken compiler-tests.scm -output-file a.c -include-path .. gcc a.c -o a.o -c -fno-strict-aliasing -DHAVE_CHICKEN_CONFIG_H -DC_ENABLE_PTABLES -Os -fomit-frame-pointer -I.. -I"/home/mario/chicken-safer-scheduler/include" rm a.c gcc a.o -o a.out -L.. -L"/home/mario/chicken-safer-scheduler/lib" -Wl,-R"/home/mario/chicken-safer-scheduler/lib" -lchicken -lm -ldl rm a.o 12 12 12 12 12 1 2 3 1 2 3 :1:2:3 1 2 3 Good, unrepresentable C strings cause errors ======================================== compiler tests (lambda-lift) ... ../chicken compiler-tests-2.scm -output-file a.c -include-path .. -lambda-lift gcc a.c -o a.o -c -fno-strict-aliasing -DHAVE_CHICKEN_CONFIG_H -DC_ENABLE_PTABLES -Os -fomit-frame-pointer -I.. -I"/home/mario/chicken-safer-scheduler/include" rm a.c gcc a.o -o a.out -L.. -L"/home/mario/chicken-safer-scheduler/lib" -Wl,-R"/home/mario/chicken-safer-scheduler/lib" -lchicken -lm -ldl rm a.o ======================================== compiler tests (unboxing) ... ../chicken compiler-tests-3.scm -output-file a.c -include-path .. -unsafe -unboxing gcc a.c -o a.o -c -fno-strict-aliasing -DHAVE_CHICKEN_CONFIG_H -DC_ENABLE_PTABLES -Os -fomit-frame-pointer -I.. -I"/home/mario/chicken-safer-scheduler/include" rm a.c gcc a.o -o a.out -L.. -L"/home/mario/chicken-safer-scheduler/lib" -Wl,-R"/home/mario/chicken-safer-scheduler/lib" -lchicken -lm -ldl rm a.o ======================================== compiler inlining tests ... ../chicken inlining-tests.scm -output-file a.c -include-path .. -optimize-level 3 gcc a.c -o a.o -c -fno-strict-aliasing -DHAVE_CHICKEN_CONFIG_H -DC_ENABLE_PTABLES -Os -fomit-frame-pointer -I.. -I"/home/mario/chicken-safer-scheduler/include" rm a.c gcc a.o -o a.out -L.. -L"/home/mario/chicken-safer-scheduler/lib" -Wl,-R"/home/mario/chicken-safer-scheduler/lib" -lchicken -lm -ldl rm a.o ======================================== scrutiny tests ... ../chicken scrutiny-tests.scm -output-file a.c -include-path .. -scrutinize -analyze-only -ignore-repository -types ../types.db ======================================== callback tests ... ../chicken callback-tests.scm -output-file a.c -include-path .. gcc a.c -o a.o -c -fno-strict-aliasing -DHAVE_CHICKEN_CONFIG_H -DC_ENABLE_PTABLES -Os -fomit-frame-pointer -I.. -I"/home/mario/chicken-safer-scheduler/include" rm a.c gcc a.o -o a.out -L.. -L"/home/mario/chicken-safer-scheduler/lib" -Wl,-R"/home/mario/chicken-safer-scheduler/lib" -lchicken -lm -ldl rm a.o callbacks ... hi! callbacks ... hi! hi! [panic] callback returned twice - execution terminated callback-tests.scm:16: print ##sys#gc g1112 callback-tests.scm:7: call/cc callback-tests.scm:9: print callback-tests.scm:19: command-line-arguments callback-tests.scm:20: k1 callback-tests.scm:9: print <-- double-return from callback failed as it should. ======================================== 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 -DC_ENABLE_PTABLES -Os -fomit-frame-pointer -I.. -I"/home/mario/chicken-safer-scheduler/include" rm a.c gcc a.o -o a.out -L.. -L"/home/mario/chicken-safer-scheduler/lib" -Wl,-R"/home/mario/chicken-safer-scheduler/lib" -lchicken -lm -ldl rm a.o major gc ... >>>>> GC pre hook - mode=0, count=0 [GC] level 1 gcs(minor) 3 gcs(major) 1 [GC] stack 0xbfb39258 0xbfb553cc 0xbfb59258 [GC] from 0x4806f008 0x480835ec 0x480ac098 0x000145e4 [GC] to 0x48031008 0x48031008 0x4806e098 [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=0 alloc ... >>>>> GC pre hook - mode=0, count=0 [GC] level 1 gcs(minor) 1 gcs(major) 2 [GC] stack 0xbfb39258 0xbfb58788 0xbfb59258 [GC] from 0x48031008 0x480455ec 0x4806e098 0x000145e4 [GC] to 0x4806f008 0x4806f008 0x480ac098 [GC] 0 locatives (from 32) <<<<< GC post hook - mode=1, count=0, ms=4 >>>>> GC pre hook - mode=2, count=0 [GC] (old) fromspace: start=0x48031008, limit=0x4806e098 [GC] (old) tospace: start=0x4806f008, limit=0x480ac098 [GC] resized heap to 11000004 bytes [GC] (new) fromspace: start=0x480ad008, limit=0x485ebc6a [GC] (new) tospace: start=0x485ec008, limit=0x48b2ac6a <<<<< GC post hook - mode=2, count=0, ms=0 >>>>> GC pre hook - mode=2, count=0 [GC] (old) fromspace: start=0x480ad008, limit=0x485ebc6a [GC] (old) tospace: start=0x485ec008, limit=0x48b2ac6a [GC] resized heap to 32000012 bytes [GC] (new) fromspace: start=0x48b2b008, limit=0x49a6d40e [GC] (new) tospace: start=0x49a6e008, limit=0x4a9b040e <<<<< GC post hook - mode=2, count=0, ms=0 resize ... >>>>> GC pre hook - mode=2, count=0 [GC] (old) fromspace: start=0x48b2b008, limit=0x49a6d40e [GC] (old) tospace: start=0x49a6e008, limit=0x4a9b040e [GC] resized heap to 64000024 bytes [GC] (new) fromspace: start=0x4a9b1008, limit=0x4c835814 [GC] (new) tospace: start=0x48031008, limit=0x49eb5814 <<<<< 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 [GC] (old) fromspace: start=0x4a9b1008, limit=0x4c835814 [GC] (old) tospace: start=0x48031008, limit=0x49eb5814 [GC] resized heap to 32000012 bytes [GC] (new) fromspace: start=0x4c836008, limit=0x4d77840e [GC] (new) tospace: start=0x48031008, limit=0x48f7340e <<<<< GC post hook - mode=2, count=1, ms=0 [GC] level 1 gcs(minor) 0 gcs(major) 3 [GC] stack 0xbfb39258 0xbfb57dac 0xbfb59258 [GC] from 0x4c836008 0x4c84a5ec 0x4d77840e 0x000145e4 [GC] to 0x48031008 0x48031008 0x48f7340e [GC] 0 locatives (from 32) <<<<< GC post hook - mode=1, count=0, ms=8 minor gc ... >>>>> GC pre hook - mode=0, count=0 <<<<< GC post hook - mode=0, count=0, ms=0 >>>>> GC pre hook - mode=0, count=0 >>>>> GC pre hook - mode=2, count=1 [GC] (old) fromspace: start=0x4c836008, limit=0x4d77840e [GC] (old) tospace: start=0x48031008, limit=0x48f7340e [GC] resized heap to 16000006 bytes [GC] (new) fromspace: start=0x48f74008, limit=0x4971520b [GC] (new) tospace: start=0x48031008, limit=0x487d220b <<<<< GC post hook - mode=2, count=1, ms=0 [GC] level 1 gcs(minor) 1 gcs(major) 4 [GC] stack 0xbfb39258 0xbfb58df8 0xbfb59258 [GC] from 0x48f74008 0x48f88610 0x4971520b 0x00014608 [GC] to 0x48031008 0x48031008 0x487d220b [GC] 0 locatives (from 32) <<<<< GC post hook - mode=1, count=0, ms=12 ======================================== library tests ... ../chicken records-and-setters-test.scm -output-file a.c -include-path .. gcc a.c -o a.o -c -fno-strict-aliasing -DHAVE_CHICKEN_CONFIG_H -DC_ENABLE_PTABLES -Os -fomit-frame-pointer -I.. -I"/home/mario/chicken-safer-scheduler/include" rm a.c gcc a.o -o a.out -L.. -L"/home/mario/chicken-safer-scheduler/lib" -Wl,-R"/home/mario/chicken-safer-scheduler/lib" -lchicken -lm -ldl rm a.o ======================================== dynamic-wind tests ... ../chicken dwindtst.scm -output-file a.c -include-path .. gcc a.c -o a.o -c -fno-strict-aliasing -DHAVE_CHICKEN_CONFIG_H -DC_ENABLE_PTABLES -Os -fomit-frame-pointer -I.. -I"/home/mario/chicken-safer-scheduler/include" rm a.c gcc a.o -o a.out -L.. -L"/home/mario/chicken-safer-scheduler/lib" -Wl,-R"/home/mario/chicken-safer-scheduler/lib" -lchicken -lm -ldl rm a.o *** Skipping "feeley-dynwind" for now *** ======================================== 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 (99) 1 ======================================== syntax tests (compiled) ... ../chicken syntax-tests.scm -output-file a.c -include-path .. Warning: redefinition of extended binding: setter (M1: (m1 n)) gcc a.c -o a.o -c -fno-strict-aliasing -DHAVE_CHICKEN_CONFIG_H -DC_ENABLE_PTABLES -Os -fomit-frame-pointer -I.. -I"/home/mario/chicken-safer-scheduler/include" rm a.c gcc a.o -o a.out -L.. -L"/home/mario/chicken-safer-scheduler/lib" -Wl,-R"/home/mario/chicken-safer-scheduler/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 (99) 1 ======================================== 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 -DC_ENABLE_PTABLES -Os -fomit-frame-pointer -I.. -I"/home/mario/chicken-safer-scheduler/include" rm a.c gcc a.o -o a.out -L.. -L"/home/mario/chicken-safer-scheduler/lib" -Wl,-R"/home/mario/chicken-safer-scheduler/lib" -lchicken -lm -ldl rm a.o ======================================== reexport tests ... Warning: reference to possibly unbound identifier: values 7 "abc-def-ghi" ../chicken reexport-tests.scm -output-file a.c -include-path .. gcc a.c -o a.o -c -fno-strict-aliasing -DHAVE_CHICKEN_CONFIG_H -DC_ENABLE_PTABLES -Os -fomit-frame-pointer -I.. -I"/home/mario/chicken-safer-scheduler/include" rm a.c gcc a.o -o a.out -L.. -L"/home/mario/chicken-safer-scheduler/lib" -Wl,-R"/home/mario/chicken-safer-scheduler/lib" -lchicken -lm -ldl rm a.o 7 "abc-def-ghi" ../chicken reexport-m1.scm -output-file reexport-m1.c -dynamic -feature chicken-compile-shared -include-path .. -emit-all-import-libraries gcc reexport-m1.c -o reexport-m1.o -c -fno-strict-aliasing -DHAVE_CHICKEN_CONFIG_H -DC_ENABLE_PTABLES -Os -fomit-frame-pointer -fPIC -DPIC -DC_SHARED -I.. -I"/home/mario/chicken-safer-scheduler/include" rm reexport-m1.c gcc reexport-m1.o -o reexport-m1.so -shared -L.. -L"/home/mario/chicken-safer-scheduler/lib" -Wl,-R"/home/mario/chicken-safer-scheduler/lib" -lchicken -lm -ldl rm reexport-m1.o ../chicken reexport-m1.import.scm -output-file reexport-m1.import.c -dynamic -feature chicken-compile-shared -include-path .. gcc reexport-m1.import.c -o reexport-m1.import.o -c -fno-strict-aliasing -DHAVE_CHICKEN_CONFIG_H -DC_ENABLE_PTABLES -Os -fomit-frame-pointer -fPIC -DPIC -DC_SHARED -I.. -I"/home/mario/chicken-safer-scheduler/include" rm reexport-m1.import.c gcc reexport-m1.import.o -o reexport-m1.import.so -shared -L.. -L"/home/mario/chicken-safer-scheduler/lib" -Wl,-R"/home/mario/chicken-safer-scheduler/lib" -lchicken -lm -ldl rm reexport-m1.import.o (1 2 . 3) ../chicken reexport-m2.scm -output-file a.c -include-path .. gcc a.c -o a.o -c -fno-strict-aliasing -DHAVE_CHICKEN_CONFIG_H -DC_ENABLE_PTABLES -Os -fomit-frame-pointer -I.. -I"/home/mario/chicken-safer-scheduler/include" rm a.c gcc a.o -o a.out -L.. -L"/home/mario/chicken-safer-scheduler/lib" -Wl,-R"/home/mario/chicken-safer-scheduler/lib" -lchicken -lm -ldl rm a.o (1 2 . 3) ======================================== 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 -DC_ENABLE_PTABLES -Os -fomit-frame-pointer -I.. -I"/home/mario/chicken-safer-scheduler/include" rm a.c gcc a.o -o a.out -L.. -L"/home/mario/chicken-safer-scheduler/lib" -Wl,-R"/home/mario/chicken-safer-scheduler/lib" -lchicken -lm -ldl rm a.o 9 7 (cs-goo 2) zzz ======================================== import tests ... Warning: reference to possibly unbound identifier: s8vector? ======================================== 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 -DC_ENABLE_PTABLES -Os -fomit-frame-pointer -I.. -I"/home/mario/chicken-safer-scheduler/include" rm a.c gcc a.o -o a.out -L.. -L"/home/mario/chicken-safer-scheduler/lib" -Wl,-R"/home/mario/chicken-safer-scheduler/lib" -lchicken -lm -ldl rm a.o ../chicken foo.import.scm -output-file foo.import.c -dynamic -feature chicken-compile-shared -include-path .. gcc foo.import.c -o foo.import.o -c -fno-strict-aliasing -DHAVE_CHICKEN_CONFIG_H -DC_ENABLE_PTABLES -Os -fomit-frame-pointer -fPIC -DPIC -DC_SHARED -I.. -I"/home/mario/chicken-safer-scheduler/include" rm foo.import.c gcc foo.import.o -o foo.import.so -shared -L.. -L"/home/mario/chicken-safer-scheduler/lib" -Wl,-R"/home/mario/chicken-safer-scheduler/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 -DC_ENABLE_PTABLES -Os -fomit-frame-pointer -I.. -I"/home/mario/chicken-safer-scheduler/include" rm a.c gcc a.o -o a.out -L.. -L"/home/mario/chicken-safer-scheduler/lib" -Wl,-R"/home/mario/chicken-safer-scheduler/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 1.677 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 5.524 seconds 17 (100.00%) tests passed 0 (0.00%) tests failed ======================================== r4rstest ... (expect mult-float-print-test to fail) ======================================== syntax tests (r5rs_pitfalls) ... (expect two failures) 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 not call/cc safe, but probably tail recursive and efficient. ======================================== 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 # (PASS) function defined in module that is the result of an expansion (PASS) syntax defined in module that is the result of an expansion 19 tests completed in 0.523 seconds 19 (100.00%) tests passed 0 (0.00%) tests failed () f1 oinkoink======================================== 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 -DC_ENABLE_PTABLES -Os -fomit-frame-pointer -I.. -I"/home/mario/chicken-safer-scheduler/include" rm a.c gcc a.o -o a.out -L.. -L"/home/mario/chicken-safer-scheduler/lib" -Wl,-R"/home/mario/chicken-safer-scheduler/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 -DC_ENABLE_PTABLES -Os -fomit-frame-pointer -fPIC -DPIC -DC_SHARED -I.. -I"/home/mario/chicken-safer-scheduler/include" rm test-chained-modules.c gcc test-chained-modules.o -o test-chained-modules.so -shared -L.. -L"/home/mario/chicken-safer-scheduler/lib" -Wl,-R"/home/mario/chicken-safer-scheduler/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 -DC_ENABLE_PTABLES -Os -fomit-frame-pointer -fPIC -DPIC -DC_SHARED -I.. -I"/home/mario/chicken-safer-scheduler/include" rm m3.import.c gcc m3.import.o -o m3.import.so -shared -L.. -L"/home/mario/chicken-safer-scheduler/lib" -Wl,-R"/home/mario/chicken-safer-scheduler/lib" -lchicken -lm -ldl rm m3.import.o CHICKEN (c)2008-2010 The Chicken Team (c)2000-2007 Felix L. Winkelmann Version 4.6.1 (make-refactoring) linux-unix-gnu-ppc [ manyargs dload ptables ] compiled 2010-09-06 on mandolate (Linux) ; loading test-chained-modules.so ... ; loading /home/mario/chicken-safer-scheduler/lib/chicken/5/scheme.import.so ... ; loading /home/mario/chicken-safer-scheduler/lib/chicken/5/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 -DC_ENABLE_PTABLES -Os -fomit-frame-pointer -fPIC -DPIC -DC_SHARED -I.. -I"/home/mario/chicken-safer-scheduler/include" rm ec.c gcc ec.o -o ec.so -shared -L.. -L"/home/mario/chicken-safer-scheduler/lib" -Wl,-R"/home/mario/chicken-safer-scheduler/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 -DC_ENABLE_PTABLES -Os -fomit-frame-pointer -fPIC -DPIC -DC_SHARED -I.. -I"/home/mario/chicken-safer-scheduler/include" rm ec.import.c gcc ec.import.o -o ec.import.so -shared -L.. -L"/home/mario/chicken-safer-scheduler/lib" -Wl,-R"/home/mario/chicken-safer-scheduler/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 4.88s CPU time, 1.068s GC time (major), 258687 mutations, 22/4963 GCs (major/minor) HT - Stress Retrieve 100000 Fixnum Key Items 1.888s CPU time, 16 mutations, 0/3312 GCs (major/minor) ======================================== lolevel tests ... Error: assertion failed: (= -1 (pointer-s8-ref some-chunk)) Call history: (##core#if (##core#check (= -1 (pointer-s8-ref some-chunk))) (##core#undefined) (##sys#error "assert... (##core#check (= -1 (pointer-s8-ref some-chunk))) (= -1 (pointer-s8-ref some-chunk)) (pointer-s8-ref some-chunk) (##core#undefined) (##sys#error "assertion failed" (##core#quote (= -1 (pointer-s8-ref some-chunk)))) (##core#quote (= -1 (pointer-s8-ref some-chunk))) (= -1 (pointer-s8-ref some-chunk)) (pointer-s8-ref some-chunk) (##sys#error "assertion failed" (##core#quote (= -1 (pointer-s8-ref some-chunk)))) <-- make[1]: *** [check] Error 70 make[1]: Leaving directory `/home/mario/src/chicken-safer-scheduler' make: *** [check] Error 2