CFT: BSD-licensed grep [Fwd: cvs commit: ports/textproc/bsdgrep Makefile distinfo]

Gábor Kövesdán gabor at FreeBSD.org
Tue Jul 8 14:04:28 UTC 2008


>> Well, it seems you have missed the first nits of the discussion. GNU 
>> grep has some regression test, which doesn't pass completely itself 
>> either. :) I've mentioned here that I used those tests to find out 
>> what incompatible options are there. Unfortunately, I have to say 
>> that BSD grep won't pass all of those, because GNU allows some 
>> non-standard regexes, which are rejected by our libc-regex library, 
>> like for example (a|) is not standard because it has an empty 
>> subexpression. First, I tried to pre-edit such expression in the 
>> code. It was ugly enough but I thought: "Ok, this code is pretty 
>> ugly, but compatibility is important, maybe we can later revise 
>> and/or change our regexp library and get rid of these snippets." 
>> Later, when Andrey pointed it out, I realized that my workarounds 
>> adressed those incompatibilities but didn't work completely, they 
>> broke compatibility at other places, thus I just removed them, 
>> because it was not that easy to fix. The version that I sent you for 
>> the portbuild test, doesn't have those workarounds. The regression 
>> test helped though to fix other compatibility issues, like return 
>> values. All of these trivial things are supposed to be compatible 
>> now, the only exceptions are the non-standard regexes. That's why I'm 
>> so curious about the results. If they are inacceptable, we can try to 
>> build BSD grep with the GNU regexp lib (it's in the tree, as Pedro F. 
>> Giffuni pointed it out). It doesn't work by just linking with that 
>> library, so it will need more work and investigation then, not 
>> speaking about that GNU regex should go one day...
>
> OK, yes I did miss the start of the thread, but I was trying to 
> suggest that grep doesn't seem to be functional enough yet and this is 
> a way to work on identifying what needs to be fixed.
Could you please send me some logs of ports which build with GNU grep 
but not with BSD grep? That would help me to identify the problems and 
find out if those problems come from non-standard regexes or what's 
happening here? I've looked at our regex library and it is written by 
Henry Spencer. He has a slightly newer version, but he seems to be 
consequent and the implementation choices are the same, those 
non-standard regexes are still rejected by his library. I've also looked 
at PCRE, which was mentioned in this list. In fact, PCRE actually has a 
POSIX-compliant interface, but it's just the interface, the interpreted 
regexes are still Perl-like.

-- 
Gabor Kovesdan

EMAIL: gabor at FreeBSD.org
WWW:   http://www.kovesdan.org



More information about the freebsd-hackers mailing list