If there are no comments, I will probably commit this wednesday or thursday. I'm fairly confident about it.
On Sat 01 Nov 2003 15:11, "H.Merijn Brand" <[EMAIL PROTECTED]> wrote: > As announced in my plans somewhere back in september 2002, I finally found > time to check and change. > > The plan was to make the call-back's safe and call them allways, even if the > option for which the call-back was cretead is unset. > > To do so, two criteria should be met: > > 1. All currently created call-back should have code to check that they will > only do what they are supposed to do when the option *is* set. > 2. Configure should allways call them, but still be safe in how to deal with > what it currently does. > > Both are pure for backward compatibility, and shouldn't alter the current > behaviour, but open up for expansions in the call-back units to do things in > case the option is *not* set. > > I was amazed to find that point 1 is already met. This means that the setting > of the variable currently is done twice, once in Configure, and when it's set > end the cbu is called, it's checked again. I expected to have a lot of work in > this area, but I have no work here at all :) > > Below are the proposed patches. > > a. The patch to hints/README.hints, explaining that the cbu's should take care > of item 1. > b. The complete patch to Configure, This will have to be broken up to the > metaunits > c. A small patch to solaris_2.sh, which I think simplifies reading > > Remarks most welcome. (Currently unably to *read* mail, because I'm awaiting > ADSL, which is to arrive any day now). Monday I read my mail at work > > --- hints/README.hints 2002-09-10 18:58:01.000000000 +0200 > +++ hints/README.hints 2003-11-01 15:57:57.000000000 +0100 > @@ -303,6 +303,13 @@ > hints/solaris_2.sh of checking to see if uselongdouble is defined is a good > idea. > > +=item Call status > + > +Call-backs are only called always, even if the value for the call-back is > +uset: UU/usethreads.cbu is called when Configure is about to deal with > +threads. All created call-backs from hints should thus check the status > +of the variable, and act upon it. > + > =item Future status > > I hope this "call-back" scheme is simple enough to use but powerful > --- Configure 2003-09-18 08:13:46.000000000 +0200 > +++ Configure 2003-11-01 15:39:42.000000000 +0100 > @@ -3673,22 +3673,22 @@ > eval $setvar > > > -case "$usethreads" in > -"$define"|true|[yY]*) > : Look for a hint-file generated 'call-back-unit'. If the > : user has specified that a threading perl is to be built, > : we may need to set or change some other defaults. > if $test -f usethreads.cbu; then > - echo "Your platform has some specific hints for threaded builds, using > them..." > + echo "Your platform has some specific hints regarding threaded builds, using > them..." > . ./usethreads.cbu > else > + case "$usethreads" in > + "$define"|true|[yY]*) > $cat <<EOM > -(Your platform doesn't have any specific hints for threaded builds. > + (Your platform does not have any specific hints for threaded builds. > Assuming POSIX threads, then.) > EOM > - fi > ;; > esac > + fi > > cat <<EOM > > @@ -4546,21 +4546,21 @@ > true|[yY]*) uselongdouble="$define" ;; > esac > > -case "$uselongdouble" in > -$define) > : Look for a hint-file generated 'call-back-unit'. If the > : user has specified that long doubles should be used, > : we may need to set or change some other defaults. > if $test -f uselongdouble.cbu; then > - echo "Your platform has some specific hints for long doubles, using > them..." > + echo "Your platform has some specific hints regarding long doubles, using > them..." > . ./uselongdouble.cbu > else > + case "$uselongdouble" in > + $define) > $cat <<EOM > -(Your platform doesn't have any specific hints for long doubles.) > + (Your platform does not have any specific hints for long doubles.) > EOM > - fi > ;; > esac > + fi > > : Looking for optional libraries > echo " " > @@ -5447,8 +5447,6 @@ > ;; > esac > > -case "$use64bitint" in > -"$define"|true|[yY]*) > : Look for a hint-file generated 'call-back-unit'. If the > : user has specified that a 64-bit perl is to be built, > : we may need to set or change some other defaults. > @@ -5456,6 +5454,8 @@ > echo "Your platform has some specific hints for 64-bit integers, using > them..." > . ./use64bitint.cbu > fi > +case "$use64bitint" in > + "$define"|true|[yY]*) > case "$longsize" in > 4) case "$archname64" in > '') archname64=64int ;; > @@ -5465,15 +5465,15 @@ > ;; > esac > > -case "$use64bitall" in > -"$define"|true|[yY]*) > : Look for a hint-file generated 'call-back-unit'. If the > : user has specified that a maximally 64-bit perl is to be built, > : we may need to set or change some other defaults. > if $test -f use64bitall.cbu; then > - echo "Your platform has some specific hints for 64-bit builds, using > them..." > + echo "Your platform has some specific hints regarding 64-bit builds, using > them..." > . ./use64bitall.cbu > fi > +case "$use64bitall" in > + "$define"|true|[yY]*) > case "$longsize" in > 4) case "$archname64" in > ''|64int) archname64=64all ;; > @@ -8852,14 +8852,16 @@ > esac > set uselargefiles > eval $setvar > -case "$uselargefiles" in > -"$define") > : Look for a hint-file generated 'call-back-unit'. If the > : user has specified that a large files perl is to be built, > : we may need to set or change some other defaults. > if $test -f uselargefiles.cbu; then > - echo "Your platform has some specific hints for large file builds, > using them..." > + echo "Your platform has some specific hints regarding large file builds, using > them..." > . ./uselargefiles.cbu > + fi > +case "$uselargefiles" in > + "$define") > + if $test -f uselargefiles.cbu; then > echo " " > echo "Rechecking to see how big your file offsets are..." >&4 > $cat >try.c <<EOCP > --- hints/solaris_2.sh 2003-10-27 18:28:33.000000000 +0100 > +++ hints/solaris_2.sh 2003-11-01 15:21:43.000000000 +0100 > @@ -448,15 +448,12 @@ > exit 1 > ;; > esac > - ;; > -esac > + > # gcc-2.8.1 on Solaris 8 with -Duse64bitint fails op/pat.t test 822 > # if we compile regexec.c with -O. Turn off optimization for that one > # file. See hints/README.hints , especially > # =head2 Propagating variables to config.sh, method 3. > # A. Dougherty May 24, 2002 > -case "$use64bitint" in > -"$define") > case "${gccversion}-${optimize}" in > 2.8*-O*) > # Honor a command-line override (rather unlikely) > End-of-patch > > -- > H.Merijn Brand Amsterdam Perl Mongers (http://amsterdam.pm.org/) > using perl-5.6.1, 5.8.0 & 633 on HP-UX 10.20 & 11.00, AIX 4.2, AIX 4.3, > WinNT 4, Win2K pro & WinCE 2.11. Smoking perl CORE: [EMAIL PROTECTED] > http://archives.develooper.com/[EMAIL PROTECTED]/ [EMAIL PROTECTED] > send smoke reports to: [EMAIL PROTECTED], QA: http://qa.perl.org -- H.Merijn Brand Amsterdam Perl Mongers (http://amsterdam.pm.org/) using perl-5.6.1, 5.8.0, & 5.9.x, and 806 on HP-UX 10.20 & 11.00, 11i, AIX 4.3, SuSE 8.2, and Win2k. http://www.cmve.net/~merijn/ http://archives.develooper.com/[EMAIL PROTECTED]/ [EMAIL PROTECTED] send smoke reports to: [EMAIL PROTECTED], QA: http://qa.perl.org