diff -ruN perl-5.8.3/BuildInfo.h AP809_source/BuildInfo.h --- perl-5.8.3/BuildInfo.h Wed Dec 31 16:00:00 1969 +++ AP809_source/BuildInfo.h Tue Feb 3 17:21:53 2004 @@ -0,0 +1,26 @@ +/* BuildInfo.h + * + * Copyright (c) 1998-2004 ActiveState Corp. All rights reserved. + * + */ + +#ifndef ___BuildInfo__h___ +#define ___BuildInfo__h___ + +#define PRODUCT_BUILD_NUMBER "809" +#define PERLFILEVERSION "5,8,3,809\0" +#define PERLRC_VERSION 5,8,3,809 +#define ACTIVEPERL_CHANGELIST "" +#define PERLPRODUCTVERSION "Build " PRODUCT_BUILD_NUMBER ACTIVEPERL_CHANGELIST "\0" +#define PERLPRODUCTNAME "ActivePerl\0" + +#define PERL_VENDORLIB_NAME "ActiveState" + +#define ACTIVEPERL_VERSION "Built " __DATE__ " " __TIME__ +#define ACTIVEPERL_LOCAL_PATCHES_ENTRY "ActivePerl Build " PRODUCT_BUILD_NUMBER ACTIVEPERL_CHANGELIST +#define BINARY_BUILD_NOTICE PerlIO_printf(PerlIO_stdout(), "\n\ +Binary build " PRODUCT_BUILD_NUMBER ACTIVEPERL_CHANGELIST " provided by ActiveState Corp. http://www.ActiveState.com\n\ +ActiveState is a division of Sophos.\n\ +" ACTIVEPERL_VERSION "\n"); + +#endif /* ___BuildInfo__h___ */ diff -ruN perl-5.8.3/Changes AP809_source/Changes --- perl-5.8.3/Changes Wed Jan 14 10:13:24 2004 +++ AP809_source/Changes Tue Feb 3 17:21:53 2004 @@ -24,6 +24,64 @@ to the perl5-porters mailing list. You can retrieve the messages for example from http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/ +-------------------- +ActivePerl build 809 Additional core patches in ActivePerl build 809 +-------------------- +____________________________________________________________________________ +[ 22218] By: rgs on 2004/01/25 23:35:45 + Log: Remove the caveat about detached threads crashing on Windows + (fixed by #22201). Bump up the version of threads.pm. + Branch: perl + ! ext/threads/threads.pm +____________________________________________________________________________ +[ 22201] By: davem on 2004/01/23 22:26:47 + Log: Subject: Re: threads::shared::queue; + From: Jan Dubois + Date: Thu, 22 Jan 2004 19:18:46 -0800 + Message-Id: + + Avoid threads+win32 crash by freeing Perl interpreter slightly later + Branch: perl + ! ext/threads/threads.xs +____________________________________________________________________________ +[ 22169] By: davem on 2004/01/17 18:02:31 + Log: Subject: Perl core dumps when running out of memory [PATCH] + From: Gisle Aas + Date: 17 Jan 2004 06:18:13 -0800 + Message-Id: + + Display 'out of memeory' errors using low-level I/O to avoid + recursive failure and so coredumps. + Branch: perl + ! util.c +____________________________________________________________________________ +[ 22159] By: rgs on 2004/01/15 22:19:25 + Log: Upgrade to Time::Hires 1.55 + Branch: perl + ! ext/Time/HiRes/Changes ext/Time/HiRes/HiRes.pm + ! ext/Time/HiRes/HiRes.xs +____________________________________________________________________________ +[ 22120] By: merijn on 2004/01/12 13:04:42 + Log: Subject: [PATCH] Make 'Configure -Dcf_by=...' work + From: Gisle Aas + Date: 12 Jan 2004 02:35:27 -0800 + Message-ID: + Branch: perl + ! Configure +____________________________________________________________________________ +[ 22051] By: rgs on 2004/01/03 19:51:02 + Log: Upgrade to Time::HiRes 1.54 + Branch: perl + + ext/Time/HiRes/hints/solaris.pl + ! MANIFEST ext/Time/HiRes/Changes ext/Time/HiRes/HiRes.pm + ! ext/Time/HiRes/HiRes.xs +____________________________________________________________________________ +[ 21540] By: rgs on 2003/10/26 14:59:53 + Log: Fix backward-compatibility issues in if.pm. + Branch: perl + ! lib/if.pm +____________________________________________________________________________ + -------------- Version v5.8.3 Maintenance release working toward v5.8.3 -------------- diff -ruN perl-5.8.3/Configure AP809_source/Configure --- perl-5.8.3/Configure Fri Dec 5 03:57:56 2003 +++ AP809_source/Configure Tue Feb 3 17:21:55 2004 @@ -20,7 +20,7 @@ # $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $ # -# Generated on Fri Dec 5 12:57:38 MET 2003 [metaconfig 3.0 PL70] +# Generated on Mon Jan 12 14:18:05 MET 2004 [metaconfig 3.0 PL70] # (with additional metaconfig patches by perlbug@perl.org) cat >c1$$ <&1` -cf_by=`(logname) 2>/dev/null` case "$cf_by" in "") - cf_by=`(whoami) 2>/dev/null` + cf_by=`(logname) 2>/dev/null` case "$cf_by" in - "") cf_by=unknown ;; + "") + cf_by=`(whoami) 2>/dev/null` + case "$cf_by" in + "") cf_by=unknown ;; + esac ;; esac ;; esac @@ -9809,6 +9812,8 @@ eval $inlibc : Look for GNU-cc style attribute checking +case "$d_attribut" in +'') echo " " echo "Checking whether your compiler can handle __attribute__ ..." >&4 $cat >attrib.c <<'EOCP' @@ -9827,6 +9832,9 @@ echo "Your C compiler doesn't seem to understand __attribute__ at all." val="$undef" fi +;; +*) val="$d_attribut" ;; +esac set d_attribut eval $setvar $rm -f attrib* diff -ruN perl-5.8.3/MANIFEST AP809_source/MANIFEST --- perl-5.8.3/MANIFEST Mon Jan 5 16:33:02 2004 +++ AP809_source/MANIFEST Tue Feb 3 17:21:55 2004 @@ -750,6 +750,7 @@ ext/Time/HiRes/hints/dynixptx.pl Hint for Time::HiRes for named architecture ext/Time/HiRes/hints/irix.pl Hint for Time::HiRes for named architecture ext/Time/HiRes/hints/sco.pl Hints for Time::HiRes for named architecture +ext/Time/HiRes/hints/solaris.pl Hints for Time::HiRes for named architecture ext/Time/HiRes/hints/svr4.pl Hints for Time::HiRes for named architecture ext/Time/HiRes/HiRes.pm Time::HiRes extension ext/Time/HiRes/HiRes.xs Time::HiRes extension @@ -2815,6 +2816,7 @@ t/op/re_tests Regular expressions for regexp.t t/op/reverse.t See if reverse operator works t/op/runlevel.t See if die() works from perl_call_*() +t/op/sig.t See if signals work t/op/sleep.t See if sleep works t/op/sort.t See if sort works t/op/splice.t See if splice works diff -ruN perl-5.8.3/ext/Time/HiRes/Changes AP809_source/ext/Time/HiRes/Changes --- perl-5.8.3/ext/Time/HiRes/Changes Tue Oct 28 02:03:57 2003 +++ AP809_source/ext/Time/HiRes/Changes Tue Feb 3 17:22:03 2004 @@ -1,5 +1,19 @@ Revision history for Perl extension Time::HiRes. +1.55 + - Windows: ming32 patch from Mike Pomraning (use Perl's Const64() + instead of VC-specific i64 suffix) + +1.54 + - Solaris: like Tru64 (dec_osf) also Solaris need -lrt for nanosleep + +1.53 + - Windows: higher resolution time() by using the Windows + performance counter API, from Jan Dubois and Anton Shcherbinin. + The exact new higher resolution depends on the hardware, + but it should be quite a bit better than using the basic + Windows timers. + 1.52 - In AIX (v?) with perl 5.6.1 the HiRes.t can hang after the subtest 18. No known analysis nor fix, but added diff -ruN perl-5.8.3/ext/Time/HiRes/HiRes.pm AP809_source/ext/Time/HiRes/HiRes.pm --- perl-5.8.3/ext/Time/HiRes/HiRes.pm Tue Oct 28 02:03:57 2003 +++ AP809_source/ext/Time/HiRes/HiRes.pm Tue Feb 3 17:22:03 2004 @@ -15,7 +15,7 @@ d_usleep d_ualarm d_gettimeofday d_getitimer d_setitimer d_nanosleep); -$VERSION = '1.52'; +$VERSION = '1.55'; $XS_VERSION = $VERSION; $VERSION = eval $VERSION; @@ -343,7 +343,7 @@ Copyright (c) 1996-2002 Douglas E. Wegscheid. All rights reserved. -Copyright (c) 2002,2003 Jarkko Hietaniemi. All rights reserved. +Copyright (c) 2002,2003,2004 Jarkko Hietaniemi. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. diff -ruN perl-5.8.3/ext/Time/HiRes/HiRes.xs AP809_source/ext/Time/HiRes/HiRes.xs --- perl-5.8.3/ext/Time/HiRes/HiRes.xs Mon Jun 30 23:44:05 2003 +++ AP809_source/ext/Time/HiRes/HiRes.xs Tue Feb 3 17:22:03 2004 @@ -1,6 +1,7 @@ #ifdef __cplusplus extern "C" { #endif +#define PERL_NO_GET_CONTEXT #include "EXTERN.h" #include "perl.h" #include "XSUB.h" @@ -18,10 +19,34 @@ } #endif +#ifndef NOOP +# define NOOP (void)0 +#endif +#ifndef dNOOP +# define dNOOP extern int Perl___notused +#endif + #ifndef aTHX_ # define aTHX_ # define pTHX_ -#endif +# define dTHX dNOOP +#endif + +#ifdef START_MY_CXT +# ifndef MY_CXT_CLONE +# define MY_CXT_CLONE \ + dMY_CXT_SV; \ + my_cxt_t *my_cxtp = (my_cxt_t*)SvPVX(newSV(sizeof(my_cxt_t)-1));\ + Copy(INT2PTR(my_cxt_t*, SvUV(my_cxt_sv)), my_cxtp, 1, my_cxt_t); \ + sv_setuv(my_cxt_sv, PTR2UV(my_cxtp)) +# endif +#else +# define START_MY_CXT static my_cxt_t my_cxt; +# define dMY_CXT dNOOP +# define MY_CXT_INIT NOOP +# define MY_CXT_CLONE NOOP +# define MY_CXT my_cxt +#endif #ifndef NVTYPE # if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE) @@ -110,8 +135,11 @@ #include "const-c.inc" -#if !defined(HAS_GETTIMEOFDAY) && defined(WIN32) -#define HAS_GETTIMEOFDAY +#ifdef WIN32 + +#ifndef HAS_GETTIMEOFDAY +# define HAS_GETTIMEOFDAY +#endif /* shows up in winsock.h? struct timeval { @@ -125,6 +153,17 @@ FILETIME ft_val; } FT_t; +#define MY_CXT_KEY "Time::HiRes_" XS_VERSION + +typedef struct { + unsigned long run_count; + unsigned __int64 base_ticks; + unsigned __int64 tick_frequency; + FT_t base_systime_as_filetime; +} my_cxt_t; + +START_MY_CXT + /* Number of 100 nanosecond units from 1/1/1601 to 1/1/1970 */ #ifdef __GNUC__ #define Const64(x) x##LL @@ -135,13 +174,34 @@ /* NOTE: This does not compute the timezone info (doing so can be expensive, * and appears to be unsupported even by glibc) */ -int -gettimeofday (struct timeval *tp, void *not_used) + +/* dMY_CXT needs a Perl context and we don't want to call PERL_GET_CONTEXT + for performance reasons */ + +#undef gettimeofday +#define gettimeofday(tp, not_used) _gettimeofday(aTHX_ tp, not_used) + +static int +_gettimeofday(pTHX_ struct timeval *tp, void *not_used) { + dMY_CXT; + + unsigned __int64 ticks; FT_t ft; - /* this returns time in 100-nanosecond units (i.e. tens of usecs) */ - GetSystemTimeAsFileTime(&ft.ft_val); + if (MY_CXT.run_count++) { + QueryPerformanceCounter((LARGE_INTEGER*)&ticks); + ticks -= MY_CXT.base_ticks; + ft.ft_i64 = MY_CXT.base_systime_as_filetime.ft_i64 + + Const64(10000000) * (ticks / MY_CXT.tick_frequency) + +(Const64(10000000) * (ticks % MY_CXT.tick_frequency)) / MY_CXT.tick_frequency; + } + else { + QueryPerformanceFrequency((LARGE_INTEGER*)&MY_CXT.tick_frequency); + QueryPerformanceCounter((LARGE_INTEGER*)&MY_CXT.base_ticks); + GetSystemTimeAsFileTime(&MY_CXT.base_systime_as_filetime.ft_val); + ft.ft_i64 = MY_CXT.base_systime_as_filetime.ft_i64; + } /* seconds since epoch */ tp->tv_sec = (long)((ft.ft_i64 - EPOCH_BIAS) / Const64(10000000)); @@ -153,6 +213,15 @@ } #endif +#if defined(WIN32) && !defined(ATLEASTFIVEOHOHFIVE) +static unsigned int +sleep(unsigned int t) +{ + Sleep(t*1000); + return 0; +} +#endif + #if !defined(HAS_GETTIMEOFDAY) && defined(VMS) #define HAS_GETTIMEOFDAY @@ -605,7 +674,7 @@ #ifdef HAS_GETTIMEOFDAY static int -myU2time(UV *ret) +myU2time(pTHX_ UV *ret) { struct timeval Tp; int status; @@ -618,6 +687,9 @@ static NV myNVtime() { +#ifdef WIN32 + dTHX; +#endif struct timeval Tp; int status; status = gettimeofday (&Tp, NULL); @@ -631,15 +703,29 @@ PROTOTYPES: ENABLE BOOT: +{ +#ifdef MY_CXT_KEY + MY_CXT_INIT; +#endif #ifdef ATLEASTFIVEOHOHFIVE #ifdef HAS_GETTIMEOFDAY -{ - UV auv[2]; - hv_store(PL_modglobal, "Time::NVtime", 12, newSViv(PTR2IV(myNVtime)), 0); - if (myU2time(auv) == 0) - hv_store(PL_modglobal, "Time::U2time", 12, newSViv((IV) auv[0]), 0); -} + { + UV auv[2]; + hv_store(PL_modglobal, "Time::NVtime", 12, newSViv(PTR2IV(myNVtime)), 0); + if (myU2time(aTHX_ auv) == 0) + hv_store(PL_modglobal, "Time::U2time", 12, newSViv((IV) auv[0]), 0); + } +#endif #endif +} + +#if defined(USE_ITHREADS) && defined(MY_CXT_KEY) + +void +CLONE(...) + CODE: + MY_CXT_CLONE; + #endif INCLUDE: const-xs.inc diff -ruN perl-5.8.3/ext/Time/HiRes/hints/solaris.pl AP809_source/ext/Time/HiRes/hints/solaris.pl --- perl-5.8.3/ext/Time/HiRes/hints/solaris.pl Wed Dec 31 16:00:00 1969 +++ AP809_source/ext/Time/HiRes/hints/solaris.pl Tue Feb 3 17:22:03 2004 @@ -0,0 +1,3 @@ +# needs to explicitly link against librt to pull in nanosleep +$self->{LIBS} = ['-lrt']; + diff -ruN perl-5.8.3/ext/threads/threads.pm AP809_source/ext/threads/threads.pm --- perl-5.8.3/ext/threads/threads.pm Fri Jan 2 08:37:52 2004 +++ AP809_source/ext/threads/threads.pm Tue Feb 3 17:22:04 2004 @@ -50,7 +50,7 @@ our @EXPORT = qw( async ); -our $VERSION = '1.01'; +our $VERSION = '1.02'; # || 0 to ensure compatibility with previous versions @@ -264,11 +264,6 @@ If your Perl has been built with PERL_OLD_SIGNALS (one has to explicitly add that symbol to ccflags, see C), signal handling is not threadsafe. - -=item Detached threads on Windows - -These aren't yet supported (as of perl 5.8.3), as they may lead to -memory access violation problems. =back diff -ruN perl-5.8.3/ext/threads/threads.xs AP809_source/ext/threads/threads.xs --- perl-5.8.3/ext/threads/threads.xs Wed Aug 6 07:59:06 2003 +++ AP809_source/ext/threads/threads.xs Tue Feb 3 17:22:04 2004 @@ -93,6 +93,7 @@ void Perl_ithread_destruct (pTHX_ ithread* thread, const char *why) { + PerlInterpreter *freeperl = NULL; MUTEX_LOCK(&thread->mutex); if (!thread->next) { Perl_croak(aTHX_ "panic: destruct destroyed thread %p (%s)",thread, why); @@ -144,12 +145,14 @@ thread->params = Nullsv; perl_destruct(thread->interp); - perl_free(thread->interp); + freeperl = thread->interp; thread->interp = NULL; } MUTEX_UNLOCK(&thread->mutex); MUTEX_DESTROY(&thread->mutex); PerlMemShared_free(thread); + if (freeperl) + perl_free(freeperl); PERL_SET_CONTEXT(aTHX); } diff -ruN perl-5.8.3/ext/util/make_ext AP809_source/ext/util/make_ext --- perl-5.8.3/ext/util/make_ext Thu May 2 16:32:21 2002 +++ AP809_source/ext/util/make_ext Tue Feb 3 17:22:04 2004 @@ -92,7 +92,12 @@ dynamic) makeargs="LINKTYPE=dynamic"; target=all ;; -static) makeargs="LINKTYPE=static CCCDLFLAGS=" +static) case "$mname" in + # For Apache, DynaLoader needs the CCCDLFLAGS variable + # (+z/+Z/-fpic/-fPIC) to stick around + *DynaLoader*) makeargs="LINKTYPE=static" ;; + *) makeargs="LINKTYPE=static CCCDLFLAGS=" ;; + esac target=all ;; static_pic) makeargs="LINKTYPE=static" diff -ruN perl-5.8.3/hints/aix.sh AP809_source/hints/aix.sh --- perl-5.8.3/hints/aix.sh Wed Oct 15 13:20:48 2003 +++ AP809_source/hints/aix.sh Tue Feb 3 17:22:04 2004 @@ -213,6 +213,28 @@ # the required -bE:$installarchlib/CORE/perl.exp is added by # libperl.U (Configure) later. +case "$cc" in +*gcc*) ;; +cc*|xlc*) # cc should've been set by line 116 or so if empty. + if test ! -x /usr/bin/$cc -a -x /usr/vac/bin/$cc; then + case ":$PATH:" in + *:/usr/vac/bin:*) ;; + *) cat <&1 | grep gcc`" = X; then # Cify libswanted. - set `echo X "$libswanted "| sed -e 's/ c / C c /'` + set `echo X "$libswanted "| sed -e 's/ c / C c /'` shift libswanted="$*" # Cify lddlflags. - set `echo X "$lddlflags "| sed -e 's/ -lc / -lC -lc /'` + set `echo X "$lddlflags "| sed -e 's/ -lc / -lC -lc /'` shift lddlflags="$*" fi diff -ruN perl-5.8.3/hints/hpux.sh AP809_source/hints/hpux.sh --- perl-5.8.3/hints/hpux.sh Mon Aug 12 05:24:29 2002 +++ AP809_source/hints/hpux.sh Tue Feb 3 17:22:05 2004 @@ -5,6 +5,7 @@ # Determine the architecture type of this system. # Keep leading tab below -- Configure Black Magic -- RAM, 03/02/97 xxOsRevMajor=`uname -r | sed -e 's/^[^0-9]*//' | cut -d. -f1`; +if [ "X$archname" = "X" ]; then if [ "$xxOsRevMajor" -ge 10 ]; then # This system is running >= 10.x @@ -30,14 +31,15 @@ archname=`getcontext | tr ' ' '\012' | grep -v '[a-z]' | grep -v MC688 | sed -e 's/HP-//' -e 1q`; selecttype='int *' - fi +fi +fi # For some strange reason, the u32align test from Configure hangs in # HP-UX 10.20 since the December 2001 patches. So hint it to avoid # the test. if [ "$xxOsRevMajor" -le 10 ]; then d_u32align=$define - fi +fi echo "Archname is $archname" @@ -97,7 +99,7 @@ PA-RISC*) case "$ccflags" in *-mpa-risc*) ;; - *) ccflags="$ccflags -mpa-risc-2-0" ;; +# *) ccflags="$ccflags -mpa-risc-2-0" ;; esac ;; esac @@ -151,7 +153,11 @@ esac # When HP-UX runs a script with "#!", it sets argv[0] to the script name. +case "$toke_cflags" in +'') toke_cflags='ccflags="$ccflags -DARG_ZERO_IS_SCRIPT"' + ;; +esac ### 64 BITNESS @@ -257,7 +263,12 @@ ;; *) ccflags="$ccflags +DD64" - ldflags="$ldflags +DD64" + + case "$archname" in + PA-RISC*) + ldflags="$ldflags +DD64" + ;; + esac ;; esac @@ -265,7 +276,7 @@ # are the right type # (NOTE: on IA64, this doesn't work with .a files.) libscheck='case "`/usr/bin/file $xxx`" in - *ELF-64*|*LP64*|*PA-RISC2.0*) ;; + *ELF-64*|*LP64*|*PA-RISC2.0*|*pa20_64*) ;; *) xxx=/no/64-bit$xxx ;; esac' @@ -278,7 +289,10 @@ libc='/lib/libc.sl' ;; IA64*) loclibpth="$loclibpth /usr/lib/hpux32" - libc='/usr/lib/hpux32/libc.so' ;; + libc='/usr/lib/hpux32/libc.so' + # no odbm libs + i_dbm=$undef + ;; esac ;; esac @@ -338,14 +352,17 @@ $define|true|[Yy]) case "$optimize" in - "") optimize="-g -O" ;; + "") optimize="-O" ;; *O[3456789]*) optimize=`echo "$optimize" | sed -e 's/O[3-9]/O2/'` ;; esac - #ld="$cc" - ld=/usr/bin/ld + ld="$cc" + #ld=/usr/bin/ld cccdlflags='-fPIC' - #lddlflags='-shared' - lddlflags='-b' + lddlflags='-shared -static-libgcc -fPIC' + case "$ccflags" in + *-mlp64*) lddlflags="$lddlflags -mlp64" ;; + esac + #lddlflags='-b' case "$optimize" in *-g*-O*|*-O*-g*) # gcc without gas will not accept -g @@ -396,6 +413,35 @@ ;; esac +# -lc should be at the end, if present (cc wrappers always add it). +# If $ld is the same as $cc, we remove libc from $libswanted, as cc +# will normally add it to the end of the libs list. If that isn't +# the case, we need to move libc to the end of $libswanted. +case "$ld" in +"$cc") + set `echo " $libswanted " | sed -e 's@ c @ @'` + libswanted="$*" + ;; +*) + case " $libswanted " in + *" c "*) + set `echo " $libswanted " | sed -e 's@ c @ @'` + libswanted="$* c " + ;; + esac + ;; +esac + +# Link with libcres.a, a performance library, on PA-RISC when using HP C +case "$archname" in + PA-RISC*) + case "$ccisgcc" in + '') + libswanted="cres $libswanted" + ;; + esac + esac + ## LARGEFILES #case "$uselargefiles-$ccisgcc" in @@ -595,9 +641,17 @@ else # 12 may want upping the _POSIX_C_SOURCE datestamp... ccflags=" -D_POSIX_C_SOURCE=199506L -D_REENTRANT $ccflags" - set `echo X "$libswanted "| sed -e 's/ c / pthread c /'` - shift - libswanted="$*" + case "$libswanted " in + *" pthread "*) ;; + *" c "*) + set `echo X "$libswanted "| sed -e 's/ c / pthread c /'` + shift + libswanted="$*" + ;; + *) + libswanted="$libswanted pthread " + ;; + esac fi ;; @@ -607,7 +661,7 @@ # The mysterious io_xs memory corruption in 11.00 32bit seems to get # fixed by not using Perl's malloc. Flip side is performance loss. # So we want mymalloc for all situations possible -usemymalloc='y' +usemymalloc='n' case "$usethreads" in $define|true|[yY]*) usemymalloc='n' ;; *) case "$ccisgcc" in @@ -627,7 +681,7 @@ usemymalloc='n' case "$useperlio" in - $undef|false|[nN]*) usemymalloc='y' ;; + $undef|false|[nN]*) usemymalloc='n' ;; esac # fpclassify() is a macro, the library call is Fpclassify diff -ruN perl-5.8.3/hints/solaris_2.sh AP809_source/hints/solaris_2.sh --- perl-5.8.3/hints/solaris_2.sh Sun Nov 23 15:17:06 2003 +++ AP809_source/hints/solaris_2.sh Tue Feb 3 17:22:05 2004 @@ -343,7 +343,9 @@ # after it has prompted the user for whether to use threads. case "$usethreads" in $define|true|[yY]*) - ccflags="-D_REENTRANT $ccflags" + # -D_POSIX_C_SOURCE=199506L doesn't compile with gcc 2.95.2 :-( + #ccflags="-D_POSIX_C_SOURCE=199506L -D_REENTRANT $ccflags" + ccflags="-D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT $ccflags" sched_yield='yield' set `echo X "$libswanted "| sed -e "s/ c / pthread c /"` diff -ruN perl-5.8.3/intrpvar.h AP809_source/intrpvar.h --- perl-5.8.3/intrpvar.h Mon Nov 3 00:04:24 2003 +++ AP809_source/intrpvar.h Tue Feb 3 17:22:05 2004 @@ -527,11 +527,14 @@ PERLVAR(Isort_RealCmp, SVCOMPARE_t) +/* Iin_load_module moved here because it was already in build 806 */ +PERLVARI(Iin_load_module, int, 0) /* to prevent recursions in PerlIO_find_layer */ + PERLVARI(Icheckav_save, AV*, Nullav) /* save CHECK{}s when compiling */ PERLVARI(Iclocktick, long, 0) /* this many times() ticks in a second */ -PERLVARI(Iin_load_module, int, 0) /* to prevent recursions in PerlIO_find_layer */ +/* PERLVARI(Iin_load_module, int, 0) */ /* to prevent recursions in PerlIO_find_layer */ PERLVAR(Iunicode, U32) /* Unicode features: $ENV{PERL_UNICODE} or -C */ @@ -570,4 +573,3 @@ * XSUB.h provides wrapper functions via perlapi.h that make this * irrelevant, but not all code may be expected to #include XSUB.h. */ - diff -ruN perl-5.8.3/lib/CGI/Carp.pm AP809_source/lib/CGI/Carp.pm --- perl-5.8.3/lib/CGI/Carp.pm Fri Dec 19 00:30:07 2003 +++ AP809_source/lib/CGI/Carp.pm Tue Feb 3 17:22:05 2004 @@ -368,12 +368,16 @@ # The mod_perl package Apache::Registry loads CGI programs by calling -# eval. These evals don't count when looking at the stack backtrace. +# eval, as does PerlEx. These evals don't count when looking at the +# stack backtrace. sub _longmess { my $message = Carp::longmess(); - $message =~ s,eval[^\n]+(ModPerl|Apache)/Registry\w*\.pm.*,,s - if exists $ENV{MOD_PERL}; - return $message; + my $mod_perl = exists $ENV{MOD_PERL}; + my $plex = exists($ENV{'GATEWAY_INTERFACE'}) + && $ENV{'GATEWAY_INTERFACE'} =~ /^CGI-PerlEx/; + $message =~ s,eval[^\n]+((ModPerl|Apache)/Registry\w*\.pm|\s*PerlEx::Precompiler).*,,s + if $mod_perl or $plex; + return $message; } sub ineval { @@ -440,15 +444,17 @@ For help, please send mail to $wm, giving this error message and the time and date of the error. END - ; - my $mod_perl = exists $ENV{MOD_PERL}; + ; + my $mod_perl = exists $ENV{MOD_PERL}; + my $plex = exists($ENV{'GATEWAY_INTERFACE'}) + && $ENV{'GATEWAY_INTERFACE'} =~ /^CGI-PerlEx/; warningsToBrowser(1); # emit warnings before dying if ($CUSTOM_MSG) { if (ref($CUSTOM_MSG) eq 'CODE') { print STDOUT "Content-type: text/html\n\n" - unless $mod_perl; + unless $mod_perl || $plex; &$CUSTOM_MSG($msg); # nicer to perl 5.003 users return; } else { diff -ruN perl-5.8.3/lib/ExtUtils/Install.pm AP809_source/lib/ExtUtils/Install.pm --- perl-5.8.3/lib/ExtUtils/Install.pm Mon Jan 5 14:34:59 2004 +++ AP809_source/lib/ExtUtils/Install.pm Tue Feb 3 17:22:06 2004 @@ -205,7 +205,7 @@ if ($pack{'write'}) { $dir = install_rooted_dir(dirname($pack{'write'})); mkpath($dir,0,0755) unless $nonono; - print "Writing $pack{'write'}\n"; + print "Writing $pack{'write'}\n" if $verbose; $packlist->write(install_rooted_file($pack{'write'})) unless $nonono; } } @@ -370,7 +370,7 @@ } # if not verbose, we just say nothing } else { - print "Unlinking $targetfile (shadowing?)\n"; + print "Unlinking $targetfile (shadowing?)\n" if $verbose; forceunlink($targetfile); } } diff -ruN perl-5.8.3/lib/ExtUtils/MM_Unix.pm AP809_source/lib/ExtUtils/MM_Unix.pm --- perl-5.8.3/lib/ExtUtils/MM_Unix.pm Mon Jan 5 14:34:59 2004 +++ AP809_source/lib/ExtUtils/MM_Unix.pm Tue Feb 3 17:22:06 2004 @@ -1612,7 +1612,7 @@ my($ispod)=0; if (open(FH,"<$name")) { while () { - if (/^=head1\s+\w+/) { + if (/^=\w/) { $ispod=1; last; } @@ -3357,7 +3357,14 @@ } - $ppd_xml .= sprintf <<'PPD_OUT', $Config{archname}; + + my $archname = $Config{archname}; + if ($^V ge v5.8) { +# archname did not change from 5.6 to 5.8, but those versions may not be not binary compatible +# so now we append the part of the version that changes when binary compatibility may change + $archname .= "-". substr($Config{version},0,3); + } + $ppd_xml .= sprintf <<'PPD_OUT', $archname; PPD_OUT diff -ruN perl-5.8.3/lib/ExtUtils/t/basic.t AP809_source/lib/ExtUtils/t/basic.t --- perl-5.8.3/lib/ExtUtils/t/basic.t Mon Jan 5 14:34:59 2004 +++ AP809_source/lib/ExtUtils/t/basic.t Tue Feb 3 17:22:06 2004 @@ -96,7 +96,13 @@ ' ' ); like( $ppd_html, qr{^\s*}m, ' ' ); -like( $ppd_html, qr{^\s*}m, +my $archname = $Config{archname}; +if ($^V ge v5.8) { +# archname did not change from 5.6 to 5.8, but those versions may not be not binary compatible +# so now we append the part of the version that changes when binary compatibility may change + $archname .= "-". substr($Config{version},0,3); +} +like( $ppd_html, qr{^\s*}m, ' '); like( $ppd_html, qr{^\s*}m, ' '); like( $ppd_html, qr{^\s*}m, ' '); @@ -118,7 +124,7 @@ diag $test_out; -my $install_out = run("$make install"); +my $install_out = run("$make install VERBINST=1"); is( $?, 0, 'install' ) || diag $install_out; like( $install_out, qr/^Installing /m ); like( $install_out, qr/^Writing /m ); @@ -138,7 +144,7 @@ SKIP: { skip "VMS install targets do not preserve $(PREFIX)", 8 if $Is_VMS; - $install_out = run("$make install PREFIX=elsewhere"); + $install_out = run("$make install VERBINST=1 PREFIX=elsewhere"); is( $?, 0, 'install with PREFIX override' ) || diag $install_out; like( $install_out, qr/^Installing /m ); like( $install_out, qr/^Writing /m ); @@ -157,7 +163,7 @@ SKIP: { skip "VMS install targets do not preserve $(DESTDIR)", 10 if $Is_VMS; - $install_out = run("$make install PREFIX= DESTDIR=other"); + $install_out = run("$make install VERBINST=1 PREFIX= DESTDIR=other"); is( $?, 0, 'install with DESTDIR' ) || diag $install_out; like( $install_out, qr/^Installing /m ); @@ -197,7 +203,7 @@ SKIP: { skip "VMS install targets do not preserve $(PREFIX)", 9 if $Is_VMS; - $install_out = run("$make install PREFIX=elsewhere DESTDIR=other/"); + $install_out = run("$make install VERBINST=1 PREFIX=elsewhere DESTDIR=other/"); is( $?, 0, 'install with PREFIX override and DESTDIR' ) || diag $install_out; like( $install_out, qr/^Installing /m ); diff -ruN perl-5.8.3/lib/Pod/Find.pm AP809_source/lib/Pod/Find.pm --- perl-5.8.3/lib/Pod/Find.pm Mon Nov 24 07:28:38 2003 +++ AP809_source/lib/Pod/Find.pm Tue Feb 3 17:22:08 2004 @@ -193,7 +193,7 @@ my $name; if(-f $try) { if($name = _check_and_extract_name($try, $opts{-verbose})) { - _check_for_duplicates($try, $name, \%names, \%pods); + _check_for_duplicates($try, $name, \%names, \%pods, $opts{-verbose}); } next; } @@ -218,7 +218,7 @@ return; } if($name = _check_and_extract_name($item, $opts{-verbose}, $root_rx)) { - _check_for_duplicates($item, $name, \%names, \%pods); + _check_for_duplicates($item, $name, \%names, \%pods, $opts{-verbose}); } }, $try); # end of File::Find::find } @@ -227,11 +227,12 @@ } sub _check_for_duplicates { - my ($file, $name, $names_ref, $pods_ref) = @_; - if($$names_ref{$name}) { - warn "Duplicate POD found (shadowing?): $name ($file)\n"; - warn " Already seen in ", - join(' ', grep($$pods_ref{$_} eq $name, keys %$pods_ref)),"\n"; + my ($file, $name, $names_ref, $pods_ref, $verbose) = @_; + if ($$names_ref{$name}) { + warn "Duplicate POD found (shadowing?): $name ($file)\n", + " Already seen in ", + join(' ', grep($$pods_ref{$_} eq $name, keys %$pods_ref)),"\n" + if $verbose; } else { $$names_ref{$name} = 1; @@ -244,7 +245,7 @@ # check extension or executable flag # this involves testing the .bat extension on Win32! - unless(-f $file && -T _ && ($file =~ /\.(pod|pm|plx?)\z/i || -x _ )) { + unless(-f $file && -T _ && ($file =~ /\.(pod|pm|plx?)\z/i || -x $file )) { return undef; } diff -ruN perl-5.8.3/lib/Pod/Html.pm AP809_source/lib/Pod/Html.pm --- perl-5.8.3/lib/Pod/Html.pm Fri Dec 12 16:30:54 2003 +++ AP809_source/lib/Pod/Html.pm Tue Feb 3 17:22:08 2004 @@ -161,7 +161,7 @@ --quiet --noquiet -Don't display I warning messages. These messages +Don't display warning messages. These messages will be displayed by default. But this is not the same as C mode. @@ -530,7 +530,7 @@ } else { /^=(\S*)\s*/; warn "$0: $Podfile: unknown pod directive '$1' in " - . "paragraph $Paragraph. ignoring.\n"; + . "paragraph $Paragraph. ignoring.\n" unless $Quiet; } } $Top = 0; @@ -889,7 +889,7 @@ scan_items( \%Items, "$pod", @poddata); } else { - warn "$0: shouldn't be here (line ".__LINE__."\n"; + warn "$0: shouldn't be here (line ".__LINE__."\n" unless $Quiet; } } @poddata = (); # clean-up a bit @@ -1065,7 +1065,7 @@ my $level = $1; if( $Listlevel ){ - warn "$0: $Podfile: unterminated list at =head in paragraph $Paragraph. ignoring.\n"; + warn "$0: $Podfile: unterminated list at =head in paragraph $Paragraph. ignoring.\n" unless $Quiet; while( $Listlevel ){ process_back(); } @@ -1133,7 +1133,7 @@ # bad! but, the proper thing to do seems to be to just assume # they did do an =over. so warn them once and then continue. if( $Listlevel == 0 ){ - warn "$0: $Podfile: unexpected =item directive in paragraph $Paragraph. ignoring.\n"; + warn "$0: $Podfile: unexpected =item directive in paragraph $Paragraph. ignoring.\n" unless $Quiet; process_over(); } @@ -1192,7 +1192,7 @@ # sub process_back { if( $Listlevel == 0 ){ - warn "$0: $Podfile: unexpected =back directive in paragraph $Paragraph. ignoring.\n"; + warn "$0: $Podfile: unexpected =back directive in paragraph $Paragraph. ignoring.\n" unless $Quiet; return; } @@ -1621,7 +1621,7 @@ # warning; show some text. $linktext = $opar unless defined $linktext; - warn "$0: $Podfile: cannot resolve L<$opar> in paragraph $Paragraph.\n"; + warn "$0: $Podfile: cannot resolve L<$opar> in paragraph $Paragraph.\n" unless $Quiet; } # now we have a URL or just plain code @@ -1644,7 +1644,7 @@ } elsif( $func eq 'Z' ){ # Z<> - empty warn "$0: $Podfile: invalid X<> in paragraph $Paragraph.\n" - unless $$rstr =~ s/^>//; + unless $$rstr =~ s/^>// or $Quiet; } else { my $term = pattern $closing; @@ -1662,7 +1662,7 @@ if( $lev == 1 ){ $res .= pure_text( $$rstr ); } else { - warn "$0: $Podfile: undelimited $func<> in paragraph $Paragraph.\n"; + warn "$0: $Podfile: undelimited $func<> in paragraph $Paragraph.\n" unless $Quiet; } } return $res; @@ -1686,7 +1686,7 @@ } $res .= $2; } - warn "$0: $Podfile: undelimited $func<> in paragraph $Paragraph.\n"; + warn "$0: $Podfile: undelimited $func<> in paragraph $Paragraph.\n" unless $Quiet; return $res; } @@ -2069,7 +2069,7 @@ # honour the perlfunc manpage: func [PAR[,[ ]PAR]...] # and some funnies with ... Module ... - return $1 if $text =~ m{^([a-z\d]+)(\s+[A-Z\d,/& ]+)?$}; + return $1 if $text =~ m{^([a-z\d_]+)(\s+[A-Z\d,/& ]+)?$}; return $1 if $text =~ m{^([a-z\d]+)\s+Module(\s+[A-Z\d,/& ]+)?$}; # text? normalize! diff -ruN perl-5.8.3/lib/Win32.pod AP809_source/lib/Win32.pod --- perl-5.8.3/lib/Win32.pod Wed Jul 30 00:27:36 2003 +++ AP809_source/lib/Win32.pod Tue Feb 3 17:22:10 2004 @@ -264,7 +264,7 @@ [EXT] In scalar context returns the name of the Win32 operating system being used. In list context returns a two element list of the OS name and whatever edition information is known about the particular build -(for Win9x boxes) and whatever service packs have been installed. +(for Win9X boxes) and whatever service packs have been installed. The latter is roughly equivalent to the first item returned by GetOSVersion() in list context. @@ -312,6 +312,14 @@ closing of all documents without prompting the user if FORCECLOSE is true, and reboots the machine if REBOOT is true. This function works only on WinNT. + +=item Win32::IsAdminUser() + +[EXT] Returns non zero if the account in whose security context the +current process/thread is running belongs to the local group of +Administrators in the built-in system domain; returns 0 if not. +Returns the undefined value and prints a warning if an error occurred. +This function always returns 1 on Win9X. =item Win32::IsWinNT() diff -ruN perl-5.8.3/lib/if.pm AP809_source/lib/if.pm --- perl-5.8.3/lib/if.pm Sun Feb 9 18:48:55 2003 +++ AP809_source/lib/if.pm Tue Feb 3 17:22:10 2004 @@ -1,6 +1,6 @@ package if; -our $VERSION = '0.03'; +$VERSION = '0.04'; sub work { my $method = shift() ? 'import' : 'unimport'; @@ -8,7 +8,7 @@ my $p = $_[0]; # PACKAGE (my $file = "$p.pm") =~ s!::!/!g; - require $file or die; + require $file; my $m = $p->can($method); goto &$m if $m; diff -ruN perl-5.8.3/makedef.pl AP809_source/makedef.pl --- perl-5.8.3/makedef.pl Thu Jan 1 13:50:12 2004 +++ AP809_source/makedef.pl Tue Feb 3 17:22:12 2004 @@ -365,6 +365,9 @@ PL_statusvalue_vms PL_sys_intern )]); + emit_symbols([qw( + boot_DynaLoader + )]); } elsif ($PLATFORM eq 'os2') { emit_symbols([qw( diff -ruN perl-5.8.3/patchlevel.h AP809_source/patchlevel.h --- perl-5.8.3/patchlevel.h Wed Jan 14 07:18:14 2004 +++ AP809_source/patchlevel.h Tue Feb 3 17:22:13 2004 @@ -10,6 +10,8 @@ #ifndef __PATCHLEVEL_H_INCLUDED__ +#include "BuildInfo.h" + /* do not adjust the whitespace! Configure expects the numbers to be * exactly on the third column */ @@ -120,6 +122,14 @@ #if !defined(PERL_PATCHLEVEL_H_IMPLICIT) && !defined(LOCAL_PATCH_COUNT) static char *local_patches[] = { NULL + ,ACTIVEPERL_LOCAL_PATCHES_ENTRY + ,"22218 Remove the caveat about detached threads crashing on Windows" + ,"22201 Avoid threads+win32 crash by freeing Perl interpreter slightly later" + ,"22169 Display 'out of memeory' errors using low-level I/O" + ,"22159 Upgrade to Time::Hires 1.55" + ,"22120 Make 'Configure -Dcf_by=...' work" + ,"22051 Upgrade to Time::HiRes 1.54" + ,"21540 Fix backward-compatibility issues in if.pm" ,NULL }; diff -ruN perl-5.8.3/pod/perlfaq2.pod AP809_source/pod/perlfaq2.pod --- perl-5.8.3/pod/perlfaq2.pod Tue Dec 2 15:37:22 2003 +++ AP809_source/pod/perlfaq2.pod Tue Feb 3 17:22:14 2004 @@ -476,30 +476,6 @@ and in the proprietary Microsoft flavor); the free Unix distributions also all come with Perl. -Alternatively, you can purchase commercial incidence based support -through the Perl Clinic. The following is a commercial from them: - -"The Perl Clinic is a commercial Perl support service operated by -ActiveState Tool Corp. and The Ingram Group. The operators have many -years of in-depth experience with Perl applications and Perl internals -on a wide range of platforms. - -"Through our group of highly experienced and well-trained support engineers, -we will put our best effort into understanding your problem, providing an -explanation of the situation, and a recommendation on how to proceed." - -Contact The Perl Clinic at - - www.PerlClinic.com - - North America Pacific Standard Time (GMT-8) - Tel: 1 604 606-4611 hours 8am-6pm - Fax: 1 604 606-4640 - - Europe (GMT) - Tel: 00 44 1483 862814 - Fax: 00 44 1483 862801 - See also www.perl.com for updates on tutorials, training, and support. =head2 Where do I send bug reports? diff -ruN perl-5.8.3/t/op/sig.t AP809_source/t/op/sig.t --- perl-5.8.3/t/op/sig.t Wed Dec 31 16:00:00 1969 +++ AP809_source/t/op/sig.t Tue Feb 3 17:22:17 2004 @@ -0,0 +1,56 @@ +#!perl -w + +BEGIN { + chdir 't' if -d 't'; + @INC = '../lib'; + eval { + require POSIX; + POSIX::->import(qw(WNOHANG SIGINT SIGTERM)); + }; + if ($@ or !$Config{d_fork}) { + print "# $@\n"; + print "1..0 # skipped, not posix compatible\n"; + exit 0; + } +} + +use strict; + +my $done = 0; +sub reaper { + print "# got sig\n"; + $done = 1; +} + +sub start_child { + my $pid = fork(); + + defined $pid or die "fork() failed: $!"; + unless ($pid) { + # child + $SIG{INT} = $SIG{TERM} = \&reaper; + while () { + last if $done; + sleep(30); + } + exit; + } + sleep 1; + return $pid; +} + +my $test = 1; +my @signals = (SIGINT, SIGTERM); +print "1.." . (@signals * 3) . "\n"; + +# SIGINT/SIGTERM should not restart sleep() +for my $sig (@signals) { + my $pid = start_child(); + print "not " unless kill(SIGINT, $pid) == 1; + print "ok $test\n"; ++$test; + sleep 1; + print "not " unless waitpid($pid, WNOHANG) == $pid; + print "ok $test\n"; ++$test; + print "# [$?]\nnot " unless 0 == ($? >> 8); + print "ok $test\n"; ++$test; +} diff -ruN perl-5.8.3/util.c AP809_source/util.c --- perl-5.8.3/util.c Thu Dec 18 12:48:02 2003 +++ AP809_source/util.c Tue Feb 3 17:22:18 2004 @@ -72,7 +72,9 @@ else if (PL_nomemok) return Nullch; else { - PerlIO_puts(Perl_error_log,PL_no_mem) FLUSH; + /* Can't use PerlIO to write as it allocates memory */ + PerlLIO_write(PerlIO_fileno(Perl_error_log), + PL_no_mem, strlen(PL_no_mem)); my_exit(1); return Nullch; } @@ -119,7 +121,9 @@ else if (PL_nomemok) return Nullch; else { - PerlIO_puts(Perl_error_log,PL_no_mem) FLUSH; + /* Can't use PerlIO to write as it allocates memory */ + PerlLIO_write(PerlIO_fileno(Perl_error_log), + PL_no_mem, strlen(PL_no_mem)); my_exit(1); return Nullch; } @@ -171,7 +175,9 @@ else if (PL_nomemok) return Nullch; else { - PerlIO_puts(Perl_error_log,PL_no_mem) FLUSH; + /* Can't use PerlIO to write as it allocates memory */ + PerlLIO_write(PerlIO_fileno(Perl_error_log), + PL_no_mem, strlen(PL_no_mem)); my_exit(1); return Nullch; } diff -ruN perl-5.8.3/win32/Makefile AP809_source/win32/Makefile --- perl-5.8.3/win32/Makefile Tue Feb 3 17:36:31 2004 +++ AP809_source/win32/Makefile Tue Feb 3 17:22:18 2004 @@ -192,6 +192,12 @@ #BUILDOPT = $(BUILDOPT) -DPERL_TEXTMODE_SCRIPTS # +# This should be enabled to maintain binary compatibility with Perl 5.8.0. +# If you want to use the new hash seed functionality then all Perl modules +# must be recompiled with Perl 5.8.1. +BUILDOPT = $(BUILDOPT) -DNO_HASH_SEED + +# # specify semicolon-separated list of extra directories that modules will # look for libraries (spaces in path names need not be quoted) # @@ -201,7 +207,7 @@ # set this to your email address (perl will guess a value from # from your loginname and your hostname, which may not be right) # -#EMAIL = +EMAIL = support@ActiveState.com ## ## Build configuration ends. @@ -372,8 +378,8 @@ LIBC = PerlCRT.lib !ENDIF -PERLEXE_RES = -PERLDLL_RES = +PERLEXE_RES = perlexe.res +PERLDLL_RES = perldll.res !IF "$(CFG)" == "Debug" ! IF "$(CCTYPE)" == "MSVC20" @@ -383,8 +389,15 @@ ! ENDIF LINK_DBG = -debug !ELSE -OPTIMIZE = -MD -DNDEBUG -LINK_DBG = -release +OPTIMIZE = -MD -Zi -DNDEBUG +# we enable debug symbols in release builds also +LINK_DBG = -debug -opt:ref,icf +# you may want to enable this if you want COFF symbols in the executables +# in addition to the PDB symbols. The default Dr. Watson that ships with +# Windows can use the the former but not latter. The free WinDbg can be +# installed to get better stack traces from just the PDB symbols, so we +# avoid the bloat of COFF symbols by default. +#LINK_DBG = $(LINK_DBG) -debugtype:both ! IF "$(WIN64)" == "define" # enable Whole Program Optimizations (WPO) and Link Time Code Generation (LTCG) OPTIMIZE = $(OPTIMIZE) -Ox -GL diff -ruN perl-5.8.3/win32/makefile.mk AP809_source/win32/makefile.mk --- perl-5.8.3/win32/makefile.mk Tue Feb 3 17:36:31 2004 +++ AP809_source/win32/makefile.mk Tue Feb 3 17:22:19 2004 @@ -45,7 +45,7 @@ # the same location. Commenting it out gives you a simpler # installation that is easier to understand for beginners. # -INST_ARCH *= \$(ARCHNAME) +#INST_ARCH *= \$(ARCHNAME) # # uncomment to enable multiple interpreters. This is need for fork() @@ -213,6 +213,12 @@ #BUILDOPT += -DPERL_TEXTMODE_SCRIPTS # +# This should be enabled to maintain binary compatibility with Perl 5.8.0. +# If you want to use the new hash seed functionality then all Perl modules +# must be recompiled with Perl 5.8.1. +BUILDOPT += -DNO_HASH_SEED + +# # specify semicolon-separated list of extra directories that modules will # look for libraries (spaces in path names need not be quoted) # @@ -228,7 +234,7 @@ # set this to your email address (perl will guess a value from # from your loginname and your hostname, which may not be right) # -#EMAIL *= +EMAIL *= support@ActiveState.com ## ## Build configuration ends. @@ -397,7 +403,7 @@ .ELIF "$(CCTYPE)" == "GCC" CC = gcc -LINK32 = g++ +LINK32 = gcc .IF "$(USE_GCC_V3_2)" == "define" LINK32 = g++ .END @@ -469,8 +475,8 @@ LIBC = PerlCRT.lib .ENDIF -PERLEXE_RES = -PERLDLL_RES = +PERLEXE_RES = perlexe.res +PERLDLL_RES = perldll.res .IF "$(CFG)" == "Debug" .IF "$(CCTYPE)" == "MSVC20" Binary files perl-5.8.3/win32/perl.ico and AP809_source/win32/perl.ico differ diff -ruN perl-5.8.3/win32/perldll.rc AP809_source/win32/perldll.rc --- perl-5.8.3/win32/perldll.rc Wed Dec 31 16:00:00 1969 +++ AP809_source/win32/perldll.rc Tue Feb 3 17:22:19 2004 @@ -0,0 +1,52 @@ +// PerlDll.rc + +// (c) 1995-1998 Microsoft Corporation. All rights reserved. +// Developed by ActiveState Tool Corp., http://www.ActiveState.com + +// You may distribute under the terms of either the GNU General Public +// License or the Artistic License, as specified in the README file. + +#include +#include "BuildInfo.h" + +PERLDLL ICON perl.ico + +#ifndef _DEBUG +#define VER_DEBUG 0 +#else +#define VER_DEBUG VS_FF_DEBUG +#endif + +VS_VERSION_INFO VERSIONINFO + FILEVERSION PERLRC_VERSION + PRODUCTVERSION PERLRC_VERSION + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK + FILEFLAGS VER_DEBUG + FILEOS VOS_NT_WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE VFT2_UNKNOWN + +BEGIN +BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + BEGIN + VALUE "CompanyName", "ActiveState, a division of Sophos\0", + VALUE "FileDescription", "Perl Interpreter\0", + VALUE "FileVersion", PERLFILEVERSION, + VALUE "InternalName", "perl58.dll\0", + VALUE "LegalCopyright", "Copyright 1987-2004, Larry Wall, Binary build by ActiveState, a division of Sophos, http://www.ActiveState.com\0", + VALUE "LegalTrademarks", "\0", + VALUE "OriginalFilename", "perl58.dll\0", + VALUE "ProductName", PERLPRODUCTNAME, + VALUE "ProductVersion", PERLPRODUCTVERSION, + END + END + + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 0x04E4 + // English language (0x409) and the Windows ANSI codepage (0x04E4) + END +END + diff -ruN perl-5.8.3/win32/perlexe.rc AP809_source/win32/perlexe.rc --- perl-5.8.3/win32/perlexe.rc Wed Dec 31 16:00:00 1969 +++ AP809_source/win32/perlexe.rc Tue Feb 3 17:22:19 2004 @@ -0,0 +1,52 @@ +// PerlExe.rc + +// (c) 1995-1999 Microsoft Corporation. All rights reserved. +// Developed by ActiveState Tool Corp., http://www.ActiveState.com + +// You may distribute under the terms of either the GNU General Public +// License or the Artistic License, as specified in the README file. + +#include +#include "BuildInfo.h" + +PERLEXE ICON perl.ico + +#ifndef _DEBUG +#define VER_DEBUG 0 +#else +#define VER_DEBUG VS_FF_DEBUG +#endif + +VS_VERSION_INFO VERSIONINFO + FILEVERSION PERLRC_VERSION + PRODUCTVERSION PERLRC_VERSION + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK + FILEFLAGS VER_DEBUG + FILEOS VOS_NT_WINDOWS32 + FILETYPE VFT_APP + FILESUBTYPE VFT2_UNKNOWN + +BEGIN +BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + BEGIN + VALUE "CompanyName", "ActiveState, a division of Sophos\0", + VALUE "FileDescription", "Perl Command Line Interpreter\0", + VALUE "FileVersion", PERLFILEVERSION, + VALUE "InternalName", "perl.exe\0", + VALUE "LegalCopyright", "Copyright 1987-2004, Larry Wall, Binary build by ActiveState, a division of Sophos, http://www.ActiveState.com\0", + VALUE "LegalTrademarks", "\0", + VALUE "OriginalFilename", "perl.exe\0", + VALUE "ProductName", PERLPRODUCTNAME, + VALUE "ProductVersion", PERLPRODUCTVERSION, + END + END + + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 0x04E4 + // English language (0x409) and the Windows ANSI codepage (0x04E4) + END +END + diff -ruN perl-5.8.3/win32/win32.c AP809_source/win32/win32.c --- perl-5.8.3/win32/win32.c Mon Dec 29 09:49:57 2003 +++ AP809_source/win32/win32.c Tue Feb 3 17:22:19 2004 @@ -4297,6 +4297,13 @@ */ static +XS(w32_BuildNumber) +{ + dXSARGS; + XSRETURN_PV(PRODUCT_BUILD_NUMBER); +} + +static XS(w32_SetChildShowWindow) { dXSARGS; @@ -4863,6 +4870,7 @@ newXS("Win32::GetLongPathName", w32_GetLongPathName, file); newXS("Win32::CopyFile", w32_CopyFile, file); newXS("Win32::Sleep", w32_Sleep, file); + newXS("Win32::BuildNumber", w32_BuildNumber, file); newXS("Win32::SetChildShowWindow", w32_SetChildShowWindow, file); /* XXX Bloat Alert! The following Activeware preloads really diff -ruN perl-5.8.3/win32/win32.h AP809_source/win32/win32.h --- perl-5.8.3/win32/win32.h Sun Nov 2 12:50:37 2003 +++ AP809_source/win32/win32.h Tue Feb 3 17:22:19 2004 @@ -9,6 +9,8 @@ #ifndef _INC_WIN32_PERL5 #define _INC_WIN32_PERL5 +#include "BuildInfo.h" + #ifndef _WIN32_WINNT # define _WIN32_WINNT 0x0400 /* needed for TryEnterCriticalSection() etc. */ #endif