The bug
The mark and sweep DSW algorithm does not work, as it does not passes its own benchmarks
Steps to reproduce
clone the repository via git clone https://github.com/udem-dlteam/ribbit
once in ribbit/src, run the benchmarks
HOST=c TEST_TAGS=bench TEST_FEATURES='-f+ c/gc/mark-sweep-dsw' make check
Expected results
The benchmarks run successfully, indicating all tests passed
Actual result
make[1]: Entering directory '/tmp/ribbit/src/host/c'
Running tests with these options:
- Host: c
- Ribbit Compiler: ./rsc-gsc.exe
- Host Compiler:
- Tags: bench
- Options:
1. (no option)
2. '-f+ c/gc/mark-sweep-dsw'
Printed numbers are related to the current option being tested from the list above. Tests themselves can be run with different libraries causing numbers to appear multiple times.
-------------------- tests/05-benchmarks/ack.scm : \c
1\c
2\c
❌
>>>>>> [run: '-l define-macro -l r4rs' features: '-f+ c/gc/mark-sweep-dsw' input: '' argv: '']
>>>>>> Error during test execution (see .tests/ack.scm.0.err)
>>>>>> Compile with : './rsc-gsc.exe -t c -l define-macro -l r4rs -f+ c/gc/mark-sweep-dsw -o .tests/ack.scm.c tests/05-benchmarks/ack.scm'
>>>>>> See error below.
-------------------- tests/05-benchmarks/array1.scm : \c
1\c
2\c
❌
>>>>>> [run: '-l define-macro -l r4rs' features: '-f+ c/gc/mark-sweep-dsw' input: '' argv: '']
>>>>>> Error during test execution (see .tests/array1.scm.0.err)
>>>>>> Compile with : './rsc-gsc.exe -t c -l define-macro -l r4rs -f+ c/gc/mark-sweep-dsw -o .tests/array1.scm.c tests/05-benchmarks/array1.scm'
>>>>>> See error below.
-------------------- tests/05-benchmarks/boyer.scm : \c
1\c
2\c
❌
>>>>>> [run: '-l define-macro -l r4rs' features: '-f+ c/gc/mark-sweep-dsw' input: '' argv: '']
>>>>>> Error during test execution (see .tests/boyer.scm.0.err)
>>>>>> Compile with : './rsc-gsc.exe -t c -l define-macro -l r4rs -f+ c/gc/mark-sweep-dsw -o .tests/boyer.scm.c tests/05-benchmarks/boyer.scm'
>>>>>> See error below.
-------------------- tests/05-benchmarks/browse.scm : \c
1\c
2\c
❌
>>>>>> [run: '-l define-macro -l r4rs' features: '-f+ c/gc/mark-sweep-dsw' input: '' argv: '']
>>>>>> Error during test execution (see .tests/browse.scm.0.err)
>>>>>> Compile with : './rsc-gsc.exe -t c -l define-macro -l r4rs -f+ c/gc/mark-sweep-dsw -o .tests/browse.scm.c tests/05-benchmarks/browse.scm'
>>>>>> See error below.
./run_test.sh: line 11: 58649 Segmentation fault (core dumped) ./$file.exe $argv > $out_file
-------------------- tests/05-benchmarks/cpstak.scm : \c
1\c
2\c
❌
>>>>>> [run: '-l define-macro -l r4rs' features: '-f+ c/gc/mark-sweep-dsw' input: '' argv: '']
>>>>>> Error during test execution (see .tests/cpstak.scm.0.err)
>>>>>> Compile with : './rsc-gsc.exe -t c -l define-macro -l r4rs -f+ c/gc/mark-sweep-dsw -o .tests/cpstak.scm.c tests/05-benchmarks/cpstak.scm'
>>>>>> See error below.
-------------------- tests/05-benchmarks/ctak.scm : \c
1\c
2\c
❌
>>>>>> [run: '-l define-macro -l r4rs' features: '-f+ c/gc/mark-sweep-dsw' input: '' argv: '']
>>>>>> Error during test execution (see .tests/ctak.scm.0.err)
>>>>>> Compile with : './rsc-gsc.exe -t c -l define-macro -l r4rs -f+ c/gc/mark-sweep-dsw -o .tests/ctak.scm.c tests/05-benchmarks/ctak.scm'
>>>>>> See error below.
-------------------- tests/05-benchmarks/deriv.scm : \c
1\c
2\c
✅
-------------------- tests/05-benchmarks/destruc.scm : \c
1\c
2\c
❌
>>>>>> [run: '-l define-macro -l r4rs' features: '-f+ c/gc/mark-sweep-dsw' input: '' argv: '']
>>>>>> Error during test execution (see .tests/destruc.scm.0.err)
>>>>>> Compile with : './rsc-gsc.exe -t c -l define-macro -l r4rs -f+ c/gc/mark-sweep-dsw -o .tests/destruc.scm.c tests/05-benchmarks/destruc.scm'
>>>>>> See error below.
./run_test.sh: line 11: 59067 Segmentation fault (core dumped) ./$file.exe $argv > $out_file
-------------------- tests/05-benchmarks/diviter.scm : \c
1\c
2\c
✅
-------------------- tests/05-benchmarks/divrec.scm : \c
1\c
2\c
✅
-------------------- tests/05-benchmarks/earley.scm : \c
1\c
2\c
❌
>>>>>> [run: '-l define-macro -l r4rs' features: '-f+ c/gc/mark-sweep-dsw' input: '' argv: '']
>>>>>> Error during test execution (see .tests/earley.scm.0.err)
>>>>>> Compile with : './rsc-gsc.exe -t c -l define-macro -l r4rs -f+ c/gc/mark-sweep-dsw -o .tests/earley.scm.c tests/05-benchmarks/earley.scm'
>>>>>> See error below.
-------------------- tests/05-benchmarks/equal.scm : \c
1\c
2\c
❌
>>>>>> [run: '-l define-macro -l r4rs' features: '-f+ c/gc/mark-sweep-dsw' input: '' argv: '']
>>>>>> Error during test execution (see .tests/equal.scm.0.err)
>>>>>> Compile with : './rsc-gsc.exe -t c -l define-macro -l r4rs -f+ c/gc/mark-sweep-dsw -o .tests/equal.scm.c tests/05-benchmarks/equal.scm'
>>>>>> See error below.
-------------------- tests/05-benchmarks/fibc.scm : \c
1\c
2\c
❌
>>>>>> [run: '-l define-macro -l r4rs' features: '-f+ c/gc/mark-sweep-dsw' input: '' argv: '']
>>>>>> Error during test execution (see .tests/fibc.scm.0.err)
>>>>>> Compile with : './rsc-gsc.exe -t c -l define-macro -l r4rs -f+ c/gc/mark-sweep-dsw -o .tests/fibc.scm.c tests/05-benchmarks/fibc.scm'
>>>>>> See error below.
./run_test.sh: line 11: 59588 Segmentation fault (core dumped) ./$file.exe $argv > $out_file
-------------------- tests/05-benchmarks/fib.scm : \c
1\c
2\c
✅
-------------------- tests/05-benchmarks/gcbench.scm : \c
1\c
2\c
❌
>>>>>> [run: '-l define-macro -l r4rs' features: '-f+ c/gc/mark-sweep-dsw' input: '' argv: '']
>>>>>> Error during test execution (see .tests/gcbench.scm.0.err)
>>>>>> Compile with : './rsc-gsc.exe -t c -l define-macro -l r4rs -f+ c/gc/mark-sweep-dsw -o .tests/gcbench.scm.c tests/05-benchmarks/gcbench.scm'
>>>>>> See error below.
-------------------- tests/05-benchmarks/graphs.scm : \c
1\c
2\c
✅
-------------------- tests/05-benchmarks/lattice.scm : \c
1\c
2\c
✅
-------------------- tests/05-benchmarks/matrix.scm : \c
1\c
2\c
❌
>>>>>> [run: '-l define-macro -l r4rs' features: '-f+ c/gc/mark-sweep-dsw' input: '' argv: '']
>>>>>> Error during test execution (see .tests/matrix.scm.0.err)
>>>>>> Compile with : './rsc-gsc.exe -t c -l define-macro -l r4rs -f+ c/gc/mark-sweep-dsw -o .tests/matrix.scm.c tests/05-benchmarks/matrix.scm'
>>>>>> See error below.
-------------------- tests/05-benchmarks/mazefun.scm : \c
1\c
Note that results were truncated for the sake of brevity
The bug
The mark and sweep DSW algorithm does not work, as it does not passes its own benchmarks
Steps to reproduce
clone the repository via
git clone https://github.com/udem-dlteam/ribbitonce in
ribbit/src, run the benchmarksHOST=c TEST_TAGS=bench TEST_FEATURES='-f+ c/gc/mark-sweep-dsw' make checkExpected results
The benchmarks run successfully, indicating all tests passed
Actual result
Note that results were truncated for the sake of brevity