|
From: Joe R. J. <jj...@cl...> - 2001-11-30 08:33:57
|
On Thu, 29 Nov 2001, Gilles Detillieux wrote:
> Date: Thu, 29 Nov 2001 11:55:08 -0600 (CST)
> From: Gilles Detillieux <gr...@sc...>
> To: Joe R. Jah <jj...@cl...>
> Cc: Geoff Hutchison <ghu...@ws...>,
"ht://Dig developers list" <htd...@li...>
> Subject: Re: [htdig-dev] to-do list for 3.1.6
>
> Wait a minute. I'm almost positive that the problem on BSDi was not the
> use of the system's regex.h, but rather the use of the regex code that's
> bundled with htdig! Can you do me a favour and have a look at what the
> value of HAVE_BROKEN_REGEX is in include/htconfig.h? If it's #define'd,
> please try to #undef it and recompile/reinstall htdig, and let us know
> how that impacts digging time. The selection of the regex code has to
> be an all or nothing thing. If you use the bundled code, all source
> files that use regex.h should use the bundled one, but if you use the C
> library regex code, then all source files should use the system's regex.h.
> If you mix and match the two, you're likely to run into problems.
>
> I think we need to fix htfuzzy/EndingsDB.cc to check the setting
> of HAVE_BROKEN_REGEX and use the appropriate header file. Come to
> think of it, I think there's a problem with how HAVE_BROKEN_REGEX is
> handled in htlib/HtRegex.h too, because simply using #include <regex.h>
> doesn't guarantee that the compiler won't use the bundled one instead,
> as the Makefile.config file puts a -I../htlib in the compiler flags.
> I think to make this all work, we need to rename the bundled regex.h to
> something like htregex.h to avoid conflicts, as well as put some hooks
> in the bundled regex.c code to disable it all if you need to use the
> C library code instead. What do you think, Geoff?
>
> However, Joe, if you did remove both htlib/regex.c and htlib/regex.h
> as you said you did, then you should be safely using all the C library
> code, and not the bundled code, so it should be good.
>
> I also had a look at the HAVE_BROKEN_REGEX on my Red Hat 4.2 system,
> and surprisingly it was defined. I say surprisingly because previously
> I had tried to manually force it to use the C library regex, as Joe
> does by removing the bundled code and removing the reference to regex.o
> in htlib/Makefile, and that had caused htfuzzy and htsearch to crash.
> That was on 3.1.4 or 2.1.5, I think. Anyway, 3.1.6 isn't crashing on this
> system, so I'd see this as further evidence that the HAVE_BROKEN_REGEX
> handling is not working. So, we need to fix the usage of the flag.
> We also need to fix the test for this situation, because it should not
> be defining this flag on my RH 4.2 system. Finally, I think we need a
> better name for it, as it implies that the C library regex is broken,
> when in fact the problem on BSDi systems is that the bundled regex code
> conflicts with the libraries in some way.
>
> In the end, it might make sense to have a configure option to override
> the automatic test for this, because I'm not convinced it will work in
> all cases. (However, to the best of my recollection, it is only BSDi
> systems that have a problem with the bundled regex code.)
Here is some statistics that may address your questions;)
___________________ 112501 + parsedate.0 + ssl.6 ___________________
Without any change.
htdig: Start digging: Thu Nov 29 23:27:58 PST 2001
htmerge: Start merging: Thu Nov 29 23:33:35 PST 2001 337 seconds
htmerge: Total word count: 13160
htmerge: Total documents: 163
htmerge: Total size of documents (in K): 1904
____________________________________________________________________
___________________ 112501 + parsedate.0 + ssl.6 ___________________
remove reference to regex.o in htlib/Makefile
htdig: Start digging: Thu Nov 29 23:42:15 PST 2001
htmerge: Start merging: Thu Nov 29 23:44:38 PST 2001 143 seconds
htmerge: Total word count: 13160
htmerge: Total documents: 163
htmerge: Total size of documents (in K): 1904
____________________________________________________________________
___________________ 112501 + parsedate.0 + ssl.6 ___________________
rm htlib/regex.*
remove reference to regex.o in htlib/Makefile
#undef HAVE_BROKEN_REGEX in include/htconfig.h
htdig: Start digging: Thu Nov 29 22:22:32 PST 2001
htmerge: Start merging: Thu Nov 29 22:24:14 PST 2001 104 seconds
htmerge: Total word count: 13160
htmerge: Total documents: 163
htmerge: Total size of documents (in K): 1904
____________________________________________________________________
___________________ 112501 + parsedate.0 + ssl.6 ___________________
rm htlib/regex.*
remove reference to regex.o in htlib/Makefile
#define HAVE_BROKEN_REGEX in include/htconfig.h
htdig: Start digging: Thu Nov 29 22:25:33 PST 2001
htmerge: Start merging: Thu Nov 29 22:27:12 PST 2001 99 seconds
htmerge: Total word count: 13160
htmerge: Total documents: 163
htmerge: Total size of documents (in K): 1904
____________________________________________________________________
____________________ 092301 + Armstrong + ssl.4 ____________________
htdig: Start digging: Fri Nov 30 00:18:06 PST 2001
htmerge: Start merging: Fri Nov 30 00:18:44 PST 2001 38 seconds
htmerge: Total word count: 13160
htmerge: Total documents: 163
htmerge: Total doc db size (in K): 1904
____________________________________________________________________
Regards,
Joe
--
_/ _/_/_/ _/ ____________ __o
_/ _/ _/ _/ ______________ _-\<,_
_/ _/ _/_/_/ _/ _/ ......(_)/ (_)
_/_/ oe _/ _/. _/_/ ah jj...@cl...
|