Description
As it says in the title.
Furthermore, the code generated (with optimisations on) is actually relatively small (~30k x 40) compared to other programs (Towers of Hanoi ~130k x 40).
I've also built in an IR interpreter and that seems to be working fine with the Mandelbrot code (after optimisations are completed). So the optimisations are sound. Some other plausible causes for failure -
- The code uses underflow/overflow somewhere and those semantics aren't being matched: We could check for underflow/overflow by putting this check in our own Brainfuck interpreter.
- Triggering some edge case in the linear painting logic: Seems unlikely (because larger programs work). This can be checked if we get the Mondrian painting style working and running its output under
fpiet.
- Triggering some edge case in
camlimages: Seems unlikely, it is a fairly well-tested library.
- Triggering some edge case in both fpiet and npiet - this seems very unlikely.
Version
44112a2
Compilation details
Minimum stack size needed = 308.
Mandebrot source: Mandelbrot.bf
Notes
It might also be worth trying to improve the code generator in the test cases and use a larger time-to-fail (and possibly leave the test suite running overnight) to find a smaller, easier-to-handle counterexample. So far, the tests seem to pass every time.
Description
As it says in the title.
Furthermore, the code generated (with optimisations on) is actually relatively small (~30k x 40) compared to other programs (Towers of Hanoi ~130k x 40).
I've also built in an IR interpreter and that seems to be working fine with the Mandelbrot code (after optimisations are completed). So the optimisations are sound. Some other plausible causes for failure -
fpiet.camlimages: Seems unlikely, it is a fairly well-tested library.Version
44112a2
Compilation details
Minimum stack size needed = 308.
Mandebrot source: Mandelbrot.bf
Notes
It might also be worth trying to improve the code generator in the test cases and use a larger time-to-fail (and possibly leave the test suite running overnight) to find a smaller, easier-to-handle counterexample. So far, the tests seem to pass every time.