
Am 05.03.2018 um 14:47 schrieb Ben Franksen:
Am 04.03.2018 um 22:48 schrieb Ben Gamari:
Ben Franksen
writes: Anyway. Would you perchance have any idea what could possibly make a program work fine with the first version of linesPS and crash with the second one? I find this pretty scary and would like to understand it. Indeed that is quite scary. The cause is not at all obvious. Do you have an isolated reproducer that you could share?
Sharing is no problem, this happened with darcs, which notably has its own share of dark and dangerous corners. I have considered trying to cook this down to some small example but my hopes of succeeding with this are almost nil. As I said, I have no evidence whatsoever that the problem has even anything to do with that-what-must-not-be-named, it's been purely a guess.
FWIW, I re-checked that the behavior is reproducible. I have uploaded a clone of darcs-screened with my patch applied on top to https://hub.darcs.net/bf/darcs-screened To reproduce the crash, cabal configure with --enable-tests, then do ./dist...whatever...darcs-test --shell=no Unpull the last patch and everything works.
I have managed to track the whole thing down to the interaction with another utility function for ByteStrings (betweenLinesPS) that works with the internal representation. The small test program is attached. Cheers Ben