On 05/07/2013 01:10 PM, Pádraig Brady wrote: > On 05/06/2013 07:54 PM, Cojocaru Alexandru wrote: >> On Mon, 29 Apr 2013 00:59:20 +0100 >> Pádraig Brady wrote: >> >>> So I reinstated the bit vector which was a little tricky >>> to do while maintaining performance, but it works very well. >> I think it works because we are avoiding a memory access >> inside `next_item' this way. >> >> With this patch I try to keep the CPU benefits for `--output-d' >> and when large ranges are specified, even without the bitarray. >> >> Because of the sentinel now the max line len supported will be >> `(size_t)-1 - 1' and no more `(size_t)-1'. Is this an issue? Not a practical one. We could bump the types/limits in the range pairs up to uintmax_t since we're now not allocating lot of corresponding memory. Note I added a specific check to make it explicit that -b$SIZE_MAX is not supported if specified. I'll do that in a subsequent patch, but it's not a practical issue for now, as we still allocate mem for the whole line. The new patch performs well! I'll apply the attached in a little while. thanks! Pádraig.