So just replacing "e" with an "Ê" changed "compares in time with 300.000 early_abort_tests" to "doesn't compare in time and makes only 449 early_abort_tests in that time". The only difference to ljell's test file is that with mine, there doesn't seem to be a big gap between the last early_abort_test returning false and the one returning true. > Btw, there's another problem with compareseq, see bug#42931. I guess > we need to add another criterion for early_abort, based on depth of > recursion? Ouch, I can also reproduce that. But as said by Philipp Stephani in that report, I'd consider protecting against too deep recursion a job of compareseq, not of its callers. And I think the issue in that report would also vanish if compareseq would somehow ensure that its EARLY_ABORT expression would be evaluated regularly, i.e., there were no long periods without check. That's the thing I also observe with the 18 MB file from bug#42931: gazillions of early_abort_tests early on, then a long phase with no test, and eventually the segfault. (Of course it's possible that other files would result in a quick segfault due to unbounded recursion where that wouldn't help either...) Bye, Tassilo