5.8.3 RC1

2 views
Skip to first unread message

Nicholas Clark

unread,
Jan 7, 2004, 1:18:32 PM1/7/04
to perl5-...@perl.org
There may be trouble ahead,
But while there's music and moonlight,
And love and romance,
Let's face the music and dance.

Before the fiddlers have fled,
Before they ask us to pay the bill,
And while we still have that chance,
Let's face the music and dance.

Soon, we'll be without the moon,
Humming a different tune, and then,

There may be teardrops to shed,
So while there's music and moonlight,
And love and romance,
Let's face the music and dance.

Irving Berlin


Please test it thoroughly and find all the discords so that we can resolve
them before the public performance. Currently it's at

http://www.ccl4.org/~nick/P/perl-5.8.3-RC1.tar.bz2

(or s/bz2$/gz/ if you really want a 25% larger download.) Please don't
publicise that URL outside p5p - instead

ftp://ftp.cpan.org/pub/CPAN/authors/id/N/NW/NWCLARK/perl-5.8.3-RC1.tar.bz2

Once it's propagated round the CPAN mirrors I'll make an announcement
on use.perl

I'm interested in confirmation of binary compatibility between 5.8.3 and
modules compiled under previous 5.8.x releases, and anything which is a new
bug in 5.8.3, particularly if it breaks current modules on CPAN.

rsync ftp.linux.activestate.com::perl-5.8.x/

will be at RC1 for the next 16 hours or so.

If the only reports are of music, sweet music then I hope to release the
real thing in about 10 days.

Nicholas Clark

H.Merijn Brand

unread,
Jan 7, 2004, 2:53:55 PM1/7/04
to Nicholas Clark, Perl 5 Porters
On Wed 07 Jan 2004 19:18, Nicholas Clark <ni...@ccl4.org> wrote:
> Please test it thoroughly and find all the discords so that we can resolve
> them before the public performance. Currently it's at
>
> http://www.ccl4.org/~nick/P/perl-5.8.3-RC1.tar.bz2
>
> (or s/bz2$/gz/ if you really want a 25% larger download.) Please don't
> publicise that URL outside p5p - instead
>
> ftp://ftp.cpan.org/pub/CPAN/authors/id/N/NW/NWCLARK/perl-5.8.3-RC1.tar.bz2

ftp://ftp.cpan.org/pub/CPAN/authors/id/H/HM/HMBRAND/dor-5.8.3-rc1.diff

for matching defined-or patches (once PAUSE has uploaded the file)

Enjoy, Have FUN!

--
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/daily...@perl.org/ per...@perl.org
send smoke reports to: smokers...@perl.org, QA: http://qa.perl.org

Robin Barker

unread,
Jan 7, 2004, 2:57:07 PM1/7/04
to Nicholas Clark, perl5-...@perl.org

All tests successful.
u=17.72 s=3.19 cu=1042.61 cs=88.31 scripts=777 tests=74019

I get the following warnings (with -Wall -Wno-unused):
the first isn't new, the second is.

Robin

Making MIME::Base64 (dynamic)
Writing Makefile for MIME::Base64
cp QuotedPrint.pm ../../../lib/MIME/QuotedPrint.pm
cp Base64.pm ../../../lib/MIME/Base64.pm
../../../miniperl "-I../../../lib" "-I../../../lib" \
../../../lib/ExtUtils/xsubpp -typemap
../../../lib/ExtUtils/typemap \
Base64.xs > Base64.xsc && mv Base64.xsc Base64.c
/opt/gcc/bin/gcc -c -fno-strict-aliasing -I/usr/local/include \
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -Wno-unused \
-DVERSION=\"2.21\" -DXS_VERSION=\"2.21\" -fPIC "-I../../.."
Base64.c
Base64.xs: In function `XS_MIME__QuotedPrint_encode_qp':
Base64.xs:298: warning: suggest parentheses around && within ||
Base64.xs: In function `XS_MIME__QuotedPrint_decode_qp':
Base64.xs:402: warning: subscript has type `char'
Base64.xs:402: warning: subscript has type `char'

Making Storable (dynamic)
Checking if your kit is complete...
Warning: the following files are missing in your kit:
t/Test/Builder.pm
t/Test/More.pm
t/Test/Simple.pm
Please inform the author.
Writing Makefile for Storable

-----Original Message-----
From: Nicholas Clark [mailto:ni...@ccl4.org]
Sent: 07 January 2004 18:19
To: perl5-...@perl.org
Subject: 5.8.3 RC1


There may be trouble ahead,
But while there's music and moonlight,
And love and romance,
Let's face the music and dance.

Before the fiddlers have fled,
Before they ask us to pay the bill,
And while we still have that chance,
Let's face the music and dance.

Soon, we'll be without the moon,
Humming a different tune, and then,

There may be teardrops to shed,
So while there's music and moonlight,
And love and romance,
Let's face the music and dance.

Irving Berlin


Please test it thoroughly and find all the discords so that we can
resolve
them before the public performance. Currently it's at

http://www.ccl4.org/~nick/P/perl-5.8.3-RC1.tar.bz2

(or s/bz2$/gz/ if you really want a 25% larger download.) Please don't
publicise that URL outside p5p - instead


ftp://ftp.cpan.org/pub/CPAN/authors/id/N/NW/NWCLARK/perl-5.8.3-RC1.tar.b
z2

Once it's propagated round the CPAN mirrors I'll make an announcement
on use.perl

I'm interested in confirmation of binary compatibility between 5.8.3 and
modules compiled under previous 5.8.x releases, and anything which is a
new
bug in 5.8.3, particularly if it breaks current modules on CPAN.

rsync ftp.linux.activestate.com::perl-5.8.x/

will be at RC1 for the next 16 hours or so.

If the only reports are of music, sweet music then I hope to release the
real thing in about 10 days.

Nicholas Clark

-------------------------------------------------------------------
This e-mail and any attachments may contain confidential and/or
privileged material; it is for the intended addressee(s) only.
If you are not a named addressee, you must not use, retain or
disclose such information.

NPL Management Ltd cannot guarantee that the e-mail or any
attachments are free from viruses.

NPL Management Ltd. Registered in England and Wales. No: 2937881
Registered Office: Teddington, Middlesex, United Kingdom TW11 0LW.
-------------------------------------------------------------------

Abe Timmerman

unread,
Jan 7, 2004, 3:13:27 PM1/7/04
to Nicholas Clark, perl5-...@perl.org
Op een druilerige winterdag (Wednesday 07 January 2004 19:18), schreef
Nicholas Clark:

> rsync ftp.linux.activestate.com::perl-5.8.x/
>
> will be at RC1 for the next 16 hours or so.
>
> If the only reports are of music, sweet music then I hope to release the
> real thing in about 10 days.

change 22080 doesn't do what it's supposed to and now "dmake utils" (required
by "make test") doesn't work anymore.

patch is on the way, (also for 22079 in blead)

Good luck,

Abe
--
We might as well document that in future sort() in scalar context *may*
make flying pigs in pink tutus spring forth from one's nostrils, too :-)
For 5.8.0 I'm happy just to document the current behaviour.
-- Jarkko Hietaniemi on p5p @ 2002-06-12

Alberto Manuel Brandão simões

unread,
Jan 7, 2004, 3:47:21 PM1/7/04
to Nicholas Clark, Perl 5 porters
All tests successful.
u=5.43 s=1.2 cu=223.43 cs=97.5 scripts=796 tests=78272

It seems not to have compiled DB_File, but that is, almost sure, my
fault :)

Best,
Alberto

Enache Adrian

unread,
Jan 7, 2004, 3:38:22 PM1/7/04
to perl5-...@perl.org
I'm confused: the 5.8.x Changes file seems to repeat itself.

$ grep -n 21982 Changes
498:[ 21982] By: nicholas on 2003/12/27 21:10:07
920:[ 21982] By: nicholas on 2003/12/27 21:10:07

Paul Green

unread,
Jan 7, 2004, 5:31:02 PM1/7/04
to Nicholas Clark, perl5-...@perl.org
Is this bad? Seen on the initial build from sources:

Making Storable (static)


Checking if your kit is complete...
Warning: the following files are missing in your kit:
t/Test/Builder.pm
t/Test/More.pm
t/Test/Simple.pm
Please inform the author.
Writing Makefile for Storable

...

but the build kept on going...


Thanks
PG
--
Paul Green, Senior Technical Consultant, Stratus Technologies.
Voice: +1 978-461-7557; FAX: +1 978-461-3610; Video on request.

Elizabeth Mattijsen

unread,
Jan 7, 2004, 6:03:06 PM1/7/04
to Nicholas Clark, perl5-...@perl.org
At 18:18 +0000 1/7/04, Nicholas Clark wrote:
>Please test it thoroughly and find all the discords so that we can resolve
>them before the public performance.

Bad news, I'm afraid.

ext/threads/shared/t/wait hangs on my Linux test box. It seems to be
related to the cond_timedwait test. Testing it seperately, I get:

# ./perl -Ilib ext/threads/shared/t/wait.t
1..90
ok 1 - cond_wait() present
ok 2 - cond_wait() prototype '\[$@%];\[$@%]'
ok 3 - cond_timedwait() present
ok 4 - cond_timedwait() prototype '\[$@%]$;\[$@%]'
ok 5 - Shared synchronization tests preparation
ok 6 - cond_wait [simple]: obtained initial lock
ok 7 - cond_wait [simple]: child before lock
ok 8 - cond_wait [simple]: child obtained lock
ok 9 - cond_wait [simple]: child signalled condition
ok 10 - cond_wait [simple]: condition obtained
ok 11 - cond_wait [repeat]: obtained initial lock
ok 12 - cond_wait [repeat]: child before lock
ok 13 - cond_wait [repeat]: child obtained lock
ok 14 - cond_wait [repeat]: child signalled condition
ok 15 - cond_wait [repeat]: condition obtained
ok 16 - cond_wait [twain]: obtained initial lock
ok 17 - cond_wait [twain]: child before lock
ok 18 - cond_wait [twain]: child obtained lock
ok 19 - cond_wait [twain]: child signalled condition
ok 20 - cond_wait [twain]: condition obtained
ok 21 - cond_timedwait [simple]: obtained initial lock
ok 22 - cond_timedwait [simple]: child before lock
ok 23 - cond_timedwait [simple]: child obtained lock
*hangs*

$ uname -a
Linux localhost 2.4.20-8 #1 Thu Mar 13 17:54:28 EST 2003 i686 i686
i386 GNU/Linux

$ ./perl -Ilib -V
Summary of my perl5 (revision 5.0 version 8 subversion 3) configuration:
Platform:
osname=linux, osvers=2.4.20-8, archname=i686-linux-thread-multi
uname='linux cadier.hsyndicate.com 2.4.20-8 #1 thu mar 13
17:54:28 est 2003 i686 i686 i386 gnulinux '
config_args='-de -Dusethreads'
hint=recommended, useposix=true, d_sigaction=define
usethreads=define use5005threads=undef useithreads=define
usemultiplicity=define
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS
-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm',
optimize='-O3',
cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS
-fno-strict-aliasing -I/usr/local/include -I/usr/include/gdbm'
ccversion='', gccversion='3.2.2 20030222 (Red Hat Linux
3.2.2-5)', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
ivtype='long', ivsize=4, nvtype='double', nvsize=8,
Off_t='off_t', lseeksize=8
alignbytes=4, prototype=define
Linker and Libraries:
ld='cc', ldflags =' -L/usr/local/lib'
libpth=/usr/local/lib /lib /usr/lib
libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc
perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
libc=/lib/libc-2.3.2.so, so=so, useshrplib=false, libperl=libperl.a
gnulibc_version='2.3.2'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic'
cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib'


Characteristics of this binary (from libperl):
Compile-time options: MULTIPLICITY USE_ITHREADS USE_LARGE_FILES
PERL_IMPLICIT_CONTEXT
Locally applied patches:
RC1
Built under linux
Compiled at Jan 7 2004 23:40:40
@INC:
lib
/usr/local/lib/perl5/5.8.3/i686-linux-thread-multi
/usr/local/lib/perl5/5.8.3
/usr/local/lib/perl5/site_perl/5.8.3/i686-linux-thread-multi
/usr/local/lib/perl5/site_perl/5.8.3
/usr/local/lib/perl5/site_perl/5.8.2/i686-linux-thread-multi
/usr/local/lib/perl5/site_perl/5.8.2
/usr/local/lib/perl5/site_perl/5.8.1/i686-linux-thread-multi
/usr/local/lib/perl5/site_perl/5.8.1
/usr/local/lib/perl5/site_perl/5.8.0/i686-linux-thread-multi
/usr/local/lib/perl5/site_perl/5.8.0
/usr/local/lib/perl5/site_perl/5.6.2
/usr/local/lib/perl5/site_perl

Liz

Abe Timmerman

unread,
Jan 7, 2004, 6:20:37 PM1/7/04
to Nicholas Clark, perl5-...@perl.org
Op een druilerige winterdag (Wednesday 07 January 2004 21:13), schreef Abe
Timmerman:

> Op een druilerige winterdag (Wednesday 07 January 2004 19:18), schreef

> change 22080 doesn't do what it's supposed to and now "dmake utils"


> (required by "make test") doesn't work anymore.
>
> patch is on the way, (also for 22079 in blead)

now attached (tested only for 5.8.3-RC1)


Good luck,

Abe
--
I'm not convinced. By setting up mock-ups you are not testing the
real thing: you are testing mock-ups. It's really emptying shotguns
at decoys and concluding that yup, we are eating duck tonight.
-- Jarkko Hietaniemi on p5p @ 2001-10-20

makefile.mk.patch58x
makefile.mk.patch59x

Nicholas Clark

unread,
Jan 7, 2004, 6:23:13 PM1/7/04
to Abe Timmerman, perl5-...@perl.org
On Thu, Jan 08, 2004 at 12:20:37AM +0100, Abe Timmerman wrote:
> Op een druilerige winterdag (Wednesday 07 January 2004 21:13), schreef Abe
> Timmerman:
>
> > Op een druilerige winterdag (Wednesday 07 January 2004 19:18), schreef
>
> > change 22080 doesn't do what it's supposed to and now "dmake utils"
> > (required by "make test") doesn't work anymore.
> >
> > patch is on the way, (also for 22079 in blead)
>
> now attached (tested only for 5.8.3-RC1)

Why didn't the version as was work?
To make that patch "work" you're going to need to patch pod/buildtoc to
understand the other format, or explain why I need to.
[I wanted those lines to be identical in the two Window makefiles]

Nicholas Clark

Elizabeth Mattijsen

unread,
Jan 7, 2004, 6:49:52 PM1/7/04
to Nicholas Clark, perl5-...@perl.org
At 18:18 +0000 1/7/04, Nicholas Clark wrote:
>Please test it thoroughly and find all the discords so that we can resolve
>them before the public performance.

This may be too thoroughly: during make install, I see this come by:

:
/usr/local/share/man/man1/h2xs.1
no documentation in utils/instmodsh
/usr/local/share/man/man1/libnetcfg.1
:

Liz

Elizabeth Mattijsen

unread,
Jan 7, 2004, 7:14:27 PM1/7/04
to Nicholas Clark, perl5-...@perl.org
At 18:18 +0000 1/7/04, Nicholas Clark wrote:
>Please test it thoroughly and find all the discords so that we can resolve
>them before the public performance.

Even still more bad news, I'm afraid:

Thread::Bless 0.05 test-suite crashes with 5.8.3-RC1. The valgrind traceback

$ valgrind perl5.8.3-threaded-debug -Ilib t/Bless03.t
==14814== Memcheck, a.k.a. Valgrind, a memory error detector for x86-linux.
==14814== Copyright (C) 2002-2003, and GNU GPL'd, by Julian Seward.
==14814== Using valgrind-2.0.0, a program supervision framework for x86-linux.
==14814== Copyright (C) 2000-2003, and GNU GPL'd, by Julian Seward.
==14814== Estimated CPU clock rate is 2816 MHz
==14814== For more details, rerun with: -v
==14814==
==14814== valgrind's libpthread.so: KLUDGED call to: pthread_cond_destroy
==14814== valgrind's libpthread.so: KLUDGED call to: pthread_cond_destroy
1..14
==14814== valgrind's libpthread.so: KLUDGED call to: siglongjmp
(cleanup handlers are ignored)
ok 1 - Without object going out of scope:
ok 2 - Check \# of destroys of WithoutDestroy
ok 3 - NoBless object going out of scope:
ok 4 - Check \# of destroys of NoBless
ok 5 - Threads with NoBless object:
ok 6 - Check \# of destroys of NoBless, with threads
ok 7 - WithDestroy object going out of scope:
ok 8 - Check \# of destroys of WithDestroy
ok 9 - Threads with WithDestroy object:
ok 10 - Check \# of destroys of WithDestroy, with threads
ok 11 - WithDestroyAll object going out of scope:
ok 12 - Check \# of destroys of WithDestroyAll
==14814== Invalid read of size 4
==14814== at 0x8116679: Perl_die_where (pp_ctl.c:1338)
==14814== by 0x80BECE6: Perl_vcroak (util.c:1195)
==14814== by 0x80BEE2E: Perl_croak (util.c:1243)
==14814== by 0x80E8BE0: S_sv_del_backref (sv.c:4921)
==14814== Address 0x0 is not stack'd, malloc'd or free'd
Segmentation fault


Adapting the relevant part of the test to:

=======================================================
$count = 0;
eval {
my $object = WithDestroyAll->new;
foreach (1..5) {
warn "start thread\n";
my $thread = threads->new( sub {warn "in thread\n"; 1} );
warn "thread started\n";
$thread->join;
warn "thread joined\n";
}
# threads->new( sub {warn "in thread\n"; 1} )->join foreach 1..5;
warn "threads started\n";
};
=======================================================

I get the following output:

=======================================================
start thread
in thread
thread started
thread joined
Segmentation fault
=======================================================

so I it looks like the problem occurs when the next iteration of the
foreach is taken.

This could well be the same / related to the bug that Dave Mitchell
described involving closures and threads.

Liz

Abe Timmerman

unread,
Jan 7, 2004, 7:56:01 PM1/7/04
to Nicholas Clark, perl5-...@perl.org
Op een druilerige winterdag (Thursday 08 January 2004 00:23), schreef Nicholas
Clark:

> On Thu, Jan 08, 2004 at 12:20:37AM +0100, Abe Timmerman wrote:
> > Op een druilerige winterdag (Wednesday 07 January 2004 21:13), schreef
> > Abe
> >
> > Timmerman:
> > > Op een druilerige winterdag (Wednesday 07 January 2004 19:18), schreef
> > >
> > > change 22080 doesn't do what it's supposed to and now "dmake utils"
> > > (required by "make test") doesn't work anymore.
> > >
> > > patch is on the way, (also for 22079 in blead)
> >
> > now attached (tested only for 5.8.3-RC1)
>
> Why didn't the version as was work?

Hmmm, dmake != nmake ?
it turnes out that the "cd ..\pod" didn't extend to the list of copy commands
that followed it (all lines in a "recipe" are executed on their own no
relation).

> To make that patch "work" you're going to need to patch pod/buildtoc to
> understand the other format, or explain why I need to.
> [I wanted those lines to be identical in the two Window makefiles]

Thank you for making me read the dmake manpages :-(
Grouped recipe-lines (with the square brackets) are fed as a block to a shell
so I hope your readmepods generating thing in pod/buildtoc will be happy
again:

This patch seems to work, but perhaps some more eyes should look at this...
(it's way past bedtime)

--- win32/makefile.mk.orig Wed Jan 7 22:57:51 2004
+++ win32/makefile.mk Thu Jan 8 01:35:53 2004
@@ -1126,6 +1126,7 @@
--libpod=perlfunc:perlguts:perlvar:perlrun:perlop --recurse

utils: $(PERLEXE) $(X2P)
+[
cd ..\utils && $(MAKE) PERL=$(MINIPERL)
cd ..\pod
copy ..\vms\perlvms.pod ..\pod\perlvms.pod
@@ -1168,7 +1169,8 @@
copy perl583delta.pod perldelta.pod
$(MAKE) -f ..\win32\pod.mak converters
cd ..\lib && $(PERLEXE) lib_pm.PL
- $(PERLEXE) $(PL2BAT) $(UTILS)
+ cd ..\win32 &&$(PERLEXE) $(PL2BAT) $(UTILS)
+]

distclean: clean
-del /f $(MINIPERL) $(PERLEXE) $(PERLDLL) $(GLOBEXE) \

Good luck,

Abe
--
Rafael> Actually you're thinking aloud, here ?
Yes?
No?
Maybe?
-- Jarkko Hietaniemi on p5p @ 2003-02-17

Paul Green

unread,
Jan 7, 2004, 10:15:44 PM1/7/04
to Nicholas Clark, Perl 5 Porters (perl5-porters@perl.org)
I have built perl-5.8.3 RC1 on Stratus VOS Release 14.7.dev.dj. This is a
pre-release copy of the next release of VOS. I built it using the full
native build procedure (Configure and gmake). I also need to build it on a
few other VOS releases; I'll do that next.

This version of perl works pretty well. I see no reason to hold things up.

Perl 5.8.x (where x > 0) has been failing a few tests for a while now, but I
don't have the time to look into them. I'll try to look into this before we
get to 5.8.4. For the record, the failing tests are:

t/io/dup.............................FAILED at test 2
t/io/tell............................FAILED at test 28
t/op/pack............................FAILED at test 0
ext/Devel/Peek/t/Peek................FAILED at test 1
ext/Encode/t/enc_module..............FAILED at test 1
ext/IO/t/io_dup......................FAILED at test 2
lib/Net/Ping/t/450_service...........FAILED at test 8

Some, perhaps most, of these failures will no doubt turn out to be VOS POSIX
issues. The last time I delved deeply into similar problems, almost all of
them were our issues (this was in the weeks leading up to the release of
5.8.0).

Thanks
PG
--
Paul Green, Senior Technical Consultant,

Stratus Technologies, Maynard, MA USA

Nicholas Clark

unread,
Jan 8, 2004, 7:55:26 AM1/8/04
to Abe Timmerman, perl5-...@perl.org
On Thu, Jan 08, 2004 at 01:56:01AM +0100, Abe Timmerman wrote:
> Op een druilerige winterdag (Thursday 08 January 2004 00:23), schreef Nicholas
> Clark:
>
> > On Thu, Jan 08, 2004 at 12:20:37AM +0100, Abe Timmerman wrote:

> > > now attached (tested only for 5.8.3-RC1)
> >
> > Why didn't the version as was work?
>
> Hmmm, dmake != nmake ?
> it turnes out that the "cd ..\pod" didn't extend to the list of copy commands
> that followed it (all lines in a "recipe" are executed on their own no
> relation).

Whereas I guess that in nmake it does.

> > To make that patch "work" you're going to need to patch pod/buildtoc to
> > understand the other format, or explain why I need to.
> > [I wanted those lines to be identical in the two Window makefiles]

I can see another way of doing it - having copy ..\README... ..\pod\perl...
in both. This would work because in the nmake makefile the cwd at that point
is pod, so ..\pod is still the same directory. :-)

> Thank you for making me read the dmake manpages :-(

Sorry

> Grouped recipe-lines (with the square brackets) are fed as a block to a shell
> so I hope your readmepods generating thing in pod/buildtoc will be happy
> again:

They are happy with it.

> This patch seems to work, but perhaps some more eyes should look at this...
> (it's way past bedtime)

I've applied it as 22092
We have a few days to change our minds

Nicholas Clark

Gisle Aas

unread,
Jan 8, 2004, 8:29:22 AM1/8/04
to Robin Barker, Nicholas Clark, perl5-...@perl.org
Robin Barker <Robin....@npl.co.uk> writes:

> I get the following warnings (with -Wall -Wno-unused):
> the first isn't new, the second is.

I was not able to reproduce the "subscript has type `char'" warning
here but I still think this patch should fix it. This patch can be
applied in the perl tree with:

(cd ext/MIME/Base64 && patch -p4) <file

MIME-Base64-2.22 has been uploaded to CPAN as well.

Regards,
Gisle

> ../../../lib/ExtUtils/typemap \
> Base64.xs > Base64.xsc && mv Base64.xsc Base64.c
> /opt/gcc/bin/gcc -c -fno-strict-aliasing -I/usr/local/include \
> -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -Wno-unused \
> -DVERSION=\"2.21\" -DXS_VERSION=\"2.21\" -fPIC "-I../../.."
> Base64.c
> Base64.xs: In function `XS_MIME__QuotedPrint_encode_qp':
> Base64.xs:298: warning: suggest parentheses around && within ||
> Base64.xs: In function `XS_MIME__QuotedPrint_decode_qp':
> Base64.xs:402: warning: subscript has type `char'
> Base64.xs:402: warning: subscript has type `char'

diff -u -r /tmp/tardiff-3931-1/MIME-Base64-2.21/ /tmp/tardiff-3931-2/MIME-Base64-2.22/
diff -u -r /tmp/tardiff-3931-1/MIME-Base64-2.21/Base64.pm /tmp/tardiff-3931-2/MIME-Base64-2.22/Base64.pm
--- /tmp/tardiff-3931-1/MIME-Base64-2.21/Base64.pm 2003-10-09 21:15:42.000000000 +0200
+++ /tmp/tardiff-3931-2/MIME-Base64-2.22/Base64.pm 2004-01-08 14:16:33.000000000 +0100
@@ -1,5 +1,5 @@
#
-# $Id: Base64.pm,v 2.34 2003/10/09 19:15:42 gisle Exp $
+# $Id: Base64.pm,v 2.35 2004/01/08 13:16:33 gisle Exp $

package MIME::Base64;

@@ -141,7 +141,7 @@
@ISA = qw(Exporter DynaLoader);
@EXPORT = qw(encode_base64 decode_base64);

-$VERSION = '2.21';
+$VERSION = '2.22';

eval { bootstrap MIME::Base64 $VERSION; };
if ($@) {
diff -u -r /tmp/tardiff-3931-1/MIME-Base64-2.21/Base64.xs /tmp/tardiff-3931-2/MIME-Base64-2.22/Base64.xs
--- /tmp/tardiff-3931-1/MIME-Base64-2.21/Base64.xs 2003-10-09 21:16:32.000000000 +0200
+++ /tmp/tardiff-3931-2/MIME-Base64-2.22/Base64.xs 2004-01-08 14:15:06.000000000 +0100
@@ -1,4 +1,4 @@
-/* $Id: Base64.xs,v 1.38 2003/10/09 11:26:12 gisle Exp $
+/* $Id: Base64.xs,v 1.40 2004/01/08 13:15:06 gisle Exp $

Copyright 1997-2003 Gisle Aas

@@ -253,7 +253,7 @@

MODULE = MIME::Base64 PACKAGE = MIME::QuotedPrint

-#define qp_isplain(c) ((c) == '\t' || ((c) >= ' ' && (c) <= '~') && (c) != '=')
+#define qp_isplain(c) ((c) == '\t' || (((c) >= ' ' && (c) <= '~') && (c) != '='))

SV*
encode_qp(sv,...)
@@ -399,7 +399,7 @@
whitespace = 0;
}
if (*str == '=') {
- if ((str + 2) < end && isxdigit(str[1]) && isxdigit(str[2])) {
+ if ((str + 2) < end && isXDIGIT(str[1]) && isXDIGIT(str[2])) {
char buf[3];
str++;
buf[0] = *str++;
diff -u -r /tmp/tardiff-3931-1/MIME-Base64-2.21/Changes /tmp/tardiff-3931-2/MIME-Base64-2.22/Changes
--- /tmp/tardiff-3931-1/MIME-Base64-2.21/Changes 2003-10-09 21:07:22.000000000 +0200
+++ /tmp/tardiff-3931-2/MIME-Base64-2.22/Changes 2004-01-08 14:15:47.000000000 +0100
@@ -1,3 +1,11 @@
+2004-01-08 Gisle Aas <gi...@ActiveState.com>
+
+ Release 2.22
+
+ Fix 'gcc -Wall' complaints.
+
+
+
2003-10-09 Gisle Aas <gi...@ActiveState.com>

Release 2.21

Nicholas Clark

unread,
Jan 8, 2004, 8:32:27 AM1/8/04
to perl5-...@perl.org

You're quite correct - it does. Now fixed. Thanks for spotting this.
This seems to be a mistake on my part during my continued arguments with
Jarkko's updateChanges script.

Nicholas Clark

Paul Green

unread,
Jan 8, 2004, 8:48:57 AM1/8/04
to Nicholas Clark, Perl 5 Porters (perl5-porters@perl.org)
OK, here's an interesting bug that our VOS Standard C compiler caught. I
have seen this before; it is an errror that GCC passes over without comment.
No patch b/c I don't know which way is correct here... (I think it is also
possible that I've messed up my copy of config.h in the vos subdir. I only
see this when using the non-configure way of building things. But it used
to work...)

cc: hv.c
1984** 373: The function "S_hv_fetch_common" has been declared as internal
to
this program (i.e. static), yet defined as external; it will be
treated as though it were defined static.
1984** 874: The function "S_hv_delete_common" has been declared as internal
to
this program (i.e. static), yet defined as external; it will be
treated as though it were defined static.

Line 373 of hv.c:
HE *
S_hv_fetch_common(pTHX_ HV *hv, SV *keysv, const char *key, STRLEN klen,
int flags, int action, SV *val, register U32 hash)
{

Line 874 of hv.c:
SV *
S_hv_delete_common(pTHX_ HV *hv, SV *keysv, const char *key, STRLEN klen,
int k_flags, I32 d_flags, U32 hash)
{

Line 1359 of proto.h:
STATIC SV* S_hv_delete_common(pTHX_ HV* tb, SV* key_sv, const char*
key, STRLEN klen, int k_flags, I32 d_flags, U32 hash);
STATIC HE* S_hv_fetch_common(pTHX_ HV* tb, SV* key_sv, const char* key,
STRLEN klen, int flags, int action, SV* val, U32 hash);

Gisle Aas

unread,
Jan 8, 2004, 9:20:18 AM1/8/04
to Robin Barker, Nicholas Clark, perl5-...@perl.org
Gisle Aas <gi...@ActiveState.com> writes:

> MIME-Base64-2.22 has been uploaded to CPAN as well.

Just as I uploaded 2.22 to CPAN I received a doc patch from Paul
Croome that I just to had to get out. So, I have now uploaded
MIME-Base64-2.23 to CPAN as well.

Included here is the patch to make perl's MIME-Base64 v2.23.

--Gisle


diff -u -r /tmp/tardiff-4151-1/MIME-Base64-2.21/ /tmp/tardiff-4151-2/MIME-Base64-2.23/
diff -u -r /tmp/tardiff-4151-1/MIME-Base64-2.21/Base64.pm /tmp/tardiff-4151-2/MIME-Base64-2.23/Base64.pm
--- /tmp/tardiff-4151-1/MIME-Base64-2.21/Base64.pm 2003-10-09 21:15:42.000000000 +0200
+++ /tmp/tardiff-4151-2/MIME-Base64-2.23/Base64.pm 2004-01-08 15:07:26.000000000 +0100


@@ -1,5 +1,5 @@
#
-# $Id: Base64.pm,v 2.34 2003/10/09 19:15:42 gisle Exp $

+# $Id: Base64.pm,v 2.37 2004/01/08 14:07:26 gisle Exp $

package MIME::Base64;

@@ -16,9 +16,9 @@

=head1 DESCRIPTION

-This module provides functions to encode and decode strings into the
-Base64 encoding specified in RFC 2045 - I<MIME (Multipurpose Internet
-Mail Extensions)>. The Base64 encoding is designed to represent
+This module provides functions to encode and decode strings into and from the
+base64 encoding specified in RFC 2045 - I<MIME (Multipurpose Internet
+Mail Extensions)>. The base64 encoding is designed to represent
arbitrary sequences of octets in a form that need not be humanly
readable. A 65-character subset ([A-Za-z0-9+/=]) of US-ASCII is used,
enabling 6 bits to be represented per printable character.
@@ -32,12 +32,12 @@
=item encode_base64($str, $eol);

Encode data by calling the encode_base64() function. The first
-argument is the string to encode. The second argument is the line
-ending sequence to use. It is optional and defaults to "\n". The
+argument is the string to encode. The second argument is the
+line-ending sequence to use. It is optional and defaults to "\n". The
returned encoded string is broken into lines of no more than 76
characters each and it will end with $eol unless it is empty. Pass an
empty string as second argument if you do not want the encoded string
-broken into lines.
+to be broken into lines.

=item decode_base64($str)

@@ -45,17 +45,17 @@
function takes a single argument which is the string to decode and
returns the decoded data.

-Any character not part of the 65-character base64 subset set is
-silently ignored. Characters occuring after a '=' padding character
+Any character not part of the 65-character base64 subset is
+silently ignored. Characters occurring after a '=' padding character
are never decoded.

If the length of the string to decode, after ignoring
-non-base64 chars, is not a multiple of 4 or padding occurs too early,
+non-base64 chars, is not a multiple of 4 or if padding occurs too early,
then a warning is generated if perl is running under C<-w>.

=back

-If you prefer not to import these routines into your namespace you can
+If you prefer not to import these routines into your namespace, you can
call them as:

use MIME::Base64 ();
@@ -64,7 +64,7 @@

=head1 DIAGNOSTICS

-The following warnings might be generated if perl is invoked with the
+The following warnings can be generated if perl is invoked with the
C<-w> switch:

=over 4
@@ -107,14 +107,14 @@

perl -MMIME::Base64 -0777 -ne 'print encode_base64($_)' <file

-Decoding does not need slurp mode if all the lines contains a multiple
-of 4 base64 chars:
+Decoding does not need slurp mode if every line contains a multiple
+of four base64 chars:

perl -MMIME::Base64 -ne 'print decode_base64($_)' <file

=head1 COPYRIGHT

-Copyright 1995-1999, 2001-2003 Gisle Aas.
+Copyright 1995-1999, 2001-2004 Gisle Aas.

This library is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
@@ -124,7 +124,7 @@
code posted to comp.lang.perl <3pd2lp$6...@wsinti07.win.tue.nl> by Hans
Mulder <ha...@wsinti07.win.tue.nl>

-The XS implementation use code from metamail. Copyright 1991 Bell
+The XS implementation uses code from metamail. Copyright 1991 Bell
Communications Research, Inc. (Bellcore)

=head1 SEE ALSO


@@ -141,7 +141,7 @@
@ISA = qw(Exporter DynaLoader);
@EXPORT = qw(encode_base64 decode_base64);

-$VERSION = '2.21';

+$VERSION = '2.23';



eval { bootstrap MIME::Base64 $VERSION; };
if ($@) {

diff -u -r /tmp/tardiff-4151-1/MIME-Base64-2.21/Base64.xs /tmp/tardiff-4151-2/MIME-Base64-2.23/Base64.xs
--- /tmp/tardiff-4151-1/MIME-Base64-2.21/Base64.xs 2003-10-09 21:16:32.000000000 +0200
+++ /tmp/tardiff-4151-2/MIME-Base64-2.23/Base64.xs 2004-01-08 15:07:26.000000000 +0100
@@ -1,6 +1,6 @@


-/* $Id: Base64.xs,v 1.38 2003/10/09 11:26:12 gisle Exp $

+/* $Id: Base64.xs,v 1.41 2004/01/08 14:07:26 gisle Exp $

-Copyright 1997-2003 Gisle Aas
+Copyright 1997-2004 Gisle Aas

This library is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.


@@ -253,7 +253,7 @@

MODULE = MIME::Base64 PACKAGE = MIME::QuotedPrint

-#define qp_isplain(c) ((c) == '\t' || ((c) >= ' ' && (c) <= '~') && (c) != '=')
+#define qp_isplain(c) ((c) == '\t' || (((c) >= ' ' && (c) <= '~') && (c) != '='))

SV*
encode_qp(sv,...)
@@ -399,7 +399,7 @@
whitespace = 0;
}
if (*str == '=') {
- if ((str + 2) < end && isxdigit(str[1]) && isxdigit(str[2])) {
+ if ((str + 2) < end && isXDIGIT(str[1]) && isXDIGIT(str[2])) {
char buf[3];
str++;
buf[0] = *str++;

diff -u -r /tmp/tardiff-4151-1/MIME-Base64-2.21/Changes /tmp/tardiff-4151-2/MIME-Base64-2.23/Changes
--- /tmp/tardiff-4151-1/MIME-Base64-2.21/Changes 2003-10-09 21:07:22.000000000 +0200
+++ /tmp/tardiff-4151-2/MIME-Base64-2.23/Changes 2004-01-08 15:05:52.000000000 +0100
@@ -1,3 +1,19 @@


+2004-01-08 Gisle Aas <gi...@ActiveState.com>
+

+ Release 2.23
+
+ Documentation fixes by Paul Croome <Paul....@softwareag.com>.
+
+
+


+2004-01-08 Gisle Aas <gi...@ActiveState.com>
+
+ Release 2.22
+
+ Fix 'gcc -Wall' complaints.
+
+
+
2003-10-09 Gisle Aas <gi...@ActiveState.com>

Release 2.21

diff -u -r /tmp/tardiff-4151-1/MIME-Base64-2.21/QuotedPrint.pm /tmp/tardiff-4151-2/MIME-Base64-2.23/QuotedPrint.pm
--- /tmp/tardiff-4151-1/MIME-Base64-2.21/QuotedPrint.pm 2003-10-09 21:04:29.000000000 +0200
+++ /tmp/tardiff-4151-2/MIME-Base64-2.23/QuotedPrint.pm 2004-01-08 15:07:26.000000000 +0100


@@ -1,5 +1,5 @@
#

-# $Id: QuotedPrint.pm,v 2.17 2003/10/09 19:04:29 gisle Exp $
+# $Id: QuotedPrint.pm,v 2.19 2004/01/08 14:07:26 gisle Exp $

package MIME::QuotedPrint;

@@ -16,12 +16,12 @@

=head1 DESCRIPTION

-This module provides functions to encode and decode strings into the
-Quoted-Printable encoding specified in RFC 2045 - I<MIME (Multipurpose
-Internet Mail Extensions)>. The Quoted-Printable encoding is intended
+This module provides functions to encode and decode strings into and from the
+quoted-printable encoding specified in RFC 2045 - I<MIME (Multipurpose
+Internet Mail Extensions)>. The quoted-printable encoding is intended
to represent data that largely consists of bytes that correspond to
-printable characters in the ASCII character set. Non-printable
-characters (as defined by english americans) are represented by a
+printable characters in the ASCII character set. Each non-printable
+character (as defined by English Americans) is represented by a
triplet consisting of the character "=" followed by two hexadecimal
digits.

@@ -33,30 +33,30 @@

=item encode_qp($str, $eol)

-This function will return an encoded version of the string given as
+This function returns an encoded version of the string given as
argument.

-The second argument is the line ending sequence to use. It is
-optional and defaults to "\n". Every occurence of "\n" will be
-replaced with this string and it will also be used for additional
+The second argument is the line-ending sequence to use. It is
+optional and defaults to "\n". Every occurrence of "\n" is
+replaced with this string, and it is also used for additional
"soft line breaks" to ensure that no line is longer than 76
characters. You might want to pass it as "\015\012" to produce data
-suitable external consumption. The string "\r\n" will produce the
+suitable for external consumption. The string "\r\n" produces the
same result on many platforms, but not all.

-An $eol of "" special. If passed no "soft line breaks" are introduced
+An $eol of "" (the empty string) is special. In this case, no "soft line breaks" are introduced
and any literal "\n" in the original data is encoded as well.

=item decode_qp($str);

-This function will return the plain text version of the string given
-as argument. The lines of the result will be "\n" terminated even it
+This function returns the plain text version of the string given
+as argument. The lines of the result are "\n" terminated, even if
the $str argument contains "\r\n" terminated lines.

=back


-If you prefer not to import these routines into your namespace you can
+If you prefer not to import these routines into your namespace, you can
call them as:

use MIME::QuotedPrint ();
@@ -64,8 +64,8 @@
$decoded = MIME::QuotedPrint::decode($encoded);

Perl v5.6 and better allow extended Unicode characters in strings.
-Such strings cannot be encoded directly as the quoted-printable
-encoding is only defined for bytes. The solution is to use the Encode
+Such strings cannot be encoded directly, as the quoted-printable
+encoding is only defined for single-byte characters. The solution is to use the Encode
module to select the byte encoding you want. For example:

use MIME::QuotedPrint qw(encode_qp);
@@ -76,7 +76,7 @@

=head1 COPYRIGHT

-Copyright 1995-1997,2002-2003 Gisle Aas.
+Copyright 1995-1997,2002-2004 Gisle Aas.

This library is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff -u -r /tmp/tardiff-4151-1/MIME-Base64-2.21/README /tmp/tardiff-4151-2/MIME-Base64-2.23/README
--- /tmp/tardiff-4151-1/MIME-Base64-2.21/README 2003-10-09 11:47:46.000000000 +0200
+++ /tmp/tardiff-4151-2/MIME-Base64-2.23/README 2004-01-08 15:02:54.000000000 +0100
@@ -2,14 +2,14 @@
encoder/decoder. These encoding methods are specified in RFC 2045 -
MIME (Multipurpose Internet Mail Extensions).

-The Base64 encoding is designed to represent arbitrary sequences of
+The base64 encoding is designed to represent arbitrary sequences of
octets in a form that need not be humanly readable. A 65-character
subset ([A-Za-z0-9+/=]) of US-ASCII is used, enabling 6 bits to be
represented per printable character.

The quoted-printable encoding is intended to represent data that
largely consists of bytes that correspond to printable characters in
-the ASCII character set. Non-printable characters are represented by
+the ASCII character set. Each non-printable character is represented by
a triplet consisting of the character "=" followed by two hexadecimal
digits.

@@ -26,7 +26,7 @@
file before running 'perl Makefile.PL' and everything should work the same,
although encoding and decoding will be much slower.

-Copyright 1995-1999,2001-2003 Gisle Aas <gi...@ActiveState.com>
+Copyright 1995-1999,2001-2004 Gisle Aas <gi...@ActiveState.com>

This library is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.

Nicholas Clark

unread,
Jan 8, 2004, 11:03:32 AM1/8/04
to Elizabeth Mattijsen, perl5-...@perl.org

I can't replicate this on x86 Linux (Debian)
[which you have to be using, given that you give a valgrind run]
What am I doing wrong?
I take it that this is new bug with 5.8.3, and isn't present with 5.8.2?

Nicholas Clark

Elizabeth Mattijsen

unread,
Jan 8, 2004, 11:13:43 AM1/8/04
to Nicholas Clark, perl5-...@perl.org
At 16:03 +0000 1/8/04, Nicholas Clark wrote:
>I can't replicate this on x86 Linux (Debian)

I'm on RedHat, I think 9 (what's the best way to check this?)


>[which you have to be using, given that you give a valgrind run]
>What am I doing wrong?
>I take it that this is new bug with 5.8.3, and isn't present with 5.8.2?

Indeed. Although 5.8.2 had its own share of problems. This is the
test output under 5.8.2: all tests are successful, but there is a lot
of noise:

$ perl5.8.2-threaded Makefile.PL
Writing Makefile for Thread::Bless
$ make test
PERL_DL_NONLAZY=1 /usr/local/bin/perl5.8.2-threaded
"-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib',
'blib/arch')" t/*.t
t/Bless01....ok 10/16Attempt to free unreferenced scalar: SV
0x832c6d8 during global destruction.
Attempt to free unreferenced scalar: SV 0x832c6d8 during global destruction.
Attempt to free unreferenced scalar: SV 0x832c6d8 during global destruction.
Attempt to free unreferenced scalar: SV 0x832c6d8 during global destruction.
Attempt to free unreferenced scalar: SV 0x832c6d8 during global destruction.
t/Bless01....ok 14/16Attempt to free unreferenced scalar: SV
0x832f990 during global destruction.
Attempt to free unreferenced scalar: SV 0x832f990 during global destruction.
Attempt to free unreferenced scalar: SV 0x832f990 during global destruction.
Attempt to free unreferenced scalar: SV 0x832f990 during global destruction.
Attempt to free unreferenced scalar: SV 0x832f990 during global destruction.
t/Bless01....ok
t/Bless02....ok 5/15Attempt to free unreferenced scalar: SV 0x830d33c
during global destruction.
Attempt to free unreferenced scalar: SV 0x832d89c during global destruction.
Attempt to free unreferenced scalar: SV 0x832d89c during global destruction.
Attempt to free unreferenced scalar: SV 0x832d89c during global destruction.
Attempt to free unreferenced scalar: SV 0x832d89c during global destruction.
t/Bless02....ok 9/15Attempt to free unreferenced scalar: SV 0x82c1e54
during global destruction.
Attempt to free unreferenced scalar: SV 0x82c1e54 during global destruction.
Attempt to free unreferenced scalar: SV 0x82c1e54 during global destruction.
Attempt to free unreferenced scalar: SV 0x82c1e54 during global destruction.
Attempt to free unreferenced scalar: SV 0x82c1e54 during global destruction.
t/Bless02....ok 13/15Attempt to free unreferenced scalar: SV
0x82c2b3c during global destruction.
Attempt to free unreferenced scalar: SV 0x82c2b3c during global destruction.
Attempt to free unreferenced scalar: SV 0x82c2b3c during global destruction.
Attempt to free unreferenced scalar: SV 0x82c2b3c during global destruction.
Attempt to free unreferenced scalar: SV 0x82c2b3c during global destruction.
t/Bless02....ok
t/Bless03....ok 8/14Attempt to free unreferenced scalar: SV 0x82dd7f8
during global destruction.
Attempt to free unreferenced scalar: SV 0x82dd7f8 during global destruction.
Attempt to free unreferenced scalar: SV 0x82dd7f8 during global destruction.
Attempt to free unreferenced scalar: SV 0x82dd7f8 during global destruction.
Attempt to free unreferenced scalar: SV 0x82dd7f8 during global destruction.


start thread
in thread
thread started

t/Bless03....ok 12/14thread joined
Attempt to free unreferenced scalar: SV 0x82e033c during global destruction.


start thread
in thread
thread started
thread joined

Attempt to free unreferenced scalar: SV 0x82e033c during global destruction.


start thread
in thread
thread started
thread joined

Attempt to free unreferenced scalar: SV 0x82e033c during global destruction.


start thread
in thread
thread started
thread joined

Attempt to free unreferenced scalar: SV 0x82e033c during global destruction.


start thread
in thread
thread started
thread joined

Attempt to free unreferenced scalar: SV 0x82e033c during global destruction.
threads started
t/Bless03....ok
t/Bless04....ok 4/14Attempt to free unreferenced scalar: SV 0x830c070
during global destruction.
Attempt to free unreferenced scalar: SV 0x832c5d0 during global destruction.
Attempt to free unreferenced scalar: SV 0x832c5d0 during global destruction.
Attempt to free unreferenced scalar: SV 0x832c5d0 during global destruction.
Attempt to free unreferenced scalar: SV 0x832c5d0 during global destruction.
t/Bless04....ok 8/14Attempt to free unreferenced scalar: SV 0x832ec00
during global destruction.
Attempt to free unreferenced scalar: SV 0x832ec00 during global destruction.
Attempt to free unreferenced scalar: SV 0x832ec00 during global destruction.
Attempt to free unreferenced scalar: SV 0x832ec00 during global destruction.
Attempt to free unreferenced scalar: SV 0x832ec00 during global destruction.
t/Bless04....ok 12/14Attempt to free unreferenced scalar: SV
0x8330b60 during global destruction.
Attempt to free unreferenced scalar: SV 0x8330b60 during global destruction.
Attempt to free unreferenced scalar: SV 0x8330b60 during global destruction.
Attempt to free unreferenced scalar: SV 0x8330b60 during global destruction.
Attempt to free unreferenced scalar: SV 0x8330b60 during global destruction.
t/Bless04....ok
t/Bless05....Too late to run INIT block at
/root/.cpan/build/Thread-Bless-0.05/blib/lib/Thread/Bless.pm line 129.
t/Bless05....ok 5/15Attempt to free unreferenced scalar: SV 0x8306b84
during global destruction.
Attempt to free unreferenced scalar: SV 0x83270dc during global destruction.
Attempt to free unreferenced scalar: SV 0x83270dc during global destruction.
Attempt to free unreferenced scalar: SV 0x83270dc during global destruction.
Attempt to free unreferenced scalar: SV 0x83270dc during global destruction.
t/Bless05....ok 9/15Attempt to free unreferenced scalar: SV 0x830872c
during global destruction.
Attempt to free unreferenced scalar: SV 0x830872c during global destruction.
Attempt to free unreferenced scalar: SV 0x830872c during global destruction.
Attempt to free unreferenced scalar: SV 0x830872c during global destruction.
Attempt to free unreferenced scalar: SV 0x830872c during global destruction.
t/Bless05....ok 13/15Attempt to free unreferenced scalar: SV
0x8309dec during global destruction.
Attempt to free unreferenced scalar: SV 0x8309dec during global destruction.
Attempt to free unreferenced scalar: SV 0x8309dec during global destruction.
Attempt to free unreferenced scalar: SV 0x8309dec during global destruction.
Attempt to free unreferenced scalar: SV 0x8309dec during global destruction.
t/Bless05....ok
t/Bless06....Too late to run INIT block at
/root/.cpan/build/Thread-Bless-0.05/blib/lib/Thread/Bless.pm line 129.
t/Bless06....ok 9/15Attempt to free unreferenced scalar: SV 0x832c8a0
during global destruction.
Attempt to free unreferenced scalar: SV 0x832c8a0 during global destruction.
Attempt to free unreferenced scalar: SV 0x832c8a0 during global destruction.
Attempt to free unreferenced scalar: SV 0x832c8a0 during global destruction.
Attempt to free unreferenced scalar: SV 0x832c8a0 during global destruction.
t/Bless06....ok 13/15Attempt to free unreferenced scalar: SV
0x832e9ec during global destruction.
Attempt to free unreferenced scalar: SV 0x832e9ec during global destruction.
Attempt to free unreferenced scalar: SV 0x832e9ec during global destruction.
Attempt to free unreferenced scalar: SV 0x832e9ec during global destruction.
Attempt to free unreferenced scalar: SV 0x832e9ec during global destruction.
t/Bless06....ok
t/Bless07....Too late to run INIT block at
/root/.cpan/build/Thread-Bless-0.05/blib/lib/Thread/Bless.pm line 129.
t/Bless07....ok 5/15Attempt to free unreferenced scalar: SV 0x830e5b4
during global destruction.
Attempt to free unreferenced scalar: SV 0x832eb04 during global destruction.
Attempt to free unreferenced scalar: SV 0x832eb04 during global destruction.
Attempt to free unreferenced scalar: SV 0x832eb04 during global destruction.
Attempt to free unreferenced scalar: SV 0x832eb04 during global destruction.
t/Bless07....ok 9/15Attempt to free unreferenced scalar: SV 0x83306fc
during global destruction.
Attempt to free unreferenced scalar: SV 0x83306fc during global destruction.
Attempt to free unreferenced scalar: SV 0x83306fc during global destruction.
Attempt to free unreferenced scalar: SV 0x83306fc during global destruction.
Attempt to free unreferenced scalar: SV 0x83306fc during global destruction.
t/Bless07....ok 13/15Attempt to free unreferenced scalar: SV
0x833269c during global destruction.
Attempt to free unreferenced scalar: SV 0x833269c during global destruction.
Attempt to free unreferenced scalar: SV 0x833269c during global destruction.
Attempt to free unreferenced scalar: SV 0x833269c during global destruction.
Attempt to free unreferenced scalar: SV 0x833269c during global destruction.
t/Bless07....ok
All tests successful.
Files=7, Tests=104, 2 wallclock secs ( 1.94 cusr + 0.13 csys = 2.07 CPU)


Liz

Nicholas Clark

unread,
Jan 8, 2004, 11:14:29 AM1/8/04
to Elizabeth Mattijsen, perl5-...@perl.org
On Thu, Jan 08, 2004 at 12:03:06AM +0100, Elizabeth Mattijsen wrote:
> At 18:18 +0000 1/7/04, Nicholas Clark wrote:
> >Please test it thoroughly and find all the discords so that we can resolve
> >them before the public performance.
>
> Bad news, I'm afraid.
>
> ext/threads/shared/t/wait hangs on my Linux test box. It seems to be
> related to the cond_timedwait test. Testing it seperately, I get:
>
> # ./perl -Ilib ext/threads/shared/t/wait.t
> 1..90

> ok 23 - cond_timedwait [simple]: child obtained lock
> *hangs*

Strange. Many other people have built on x86 Linux and never reported this.
Any idea what's special about your machine?

Might it be picking up a library from an earlier perl?
If you rebuild without other perl versions in @INC, do you still see this?
[Yes, I am clutching at straws]

Nicholas Clark

Elizabeth Mattijsen

unread,
Jan 8, 2004, 11:24:02 AM1/8/04
to Nicholas Clark, perl5-...@perl.org
At 16:14 +0000 1/8/04, Nicholas Clark wrote:
>On Thu, Jan 08, 2004 at 12:03:06AM +0100, Elizabeth Mattijsen wrote:
> > ok 23 - cond_timedwait [simple]: child obtained lock
> > *hangs*
>Strange. Many other people have built on x86 Linux and never reported this.
>Any idea what's special about your machine?

No idea, really. Except that I've built debug capable versions
_after_ the non-debug capable versions.


> > /usr/local/lib/perl5/5.8.3/i686-linux-thread-multi
> > /usr/local/lib/perl5/5.8.3
> > /usr/local/lib/perl5/site_perl/5.8.3/i686-linux-thread-multi
> > /usr/local/lib/perl5/site_perl/5.8.3
> > /usr/local/lib/perl5/site_perl/5.8.2/i686-linux-thread-multi
> > /usr/local/lib/perl5/site_perl/5.8.2
> > /usr/local/lib/perl5/site_perl/5.8.1/i686-linux-thread-multi
> > /usr/local/lib/perl5/site_perl/5.8.1
> > /usr/local/lib/perl5/site_perl/5.8.0/i686-linux-thread-multi
>> /usr/local/lib/perl5/site_perl/5.8.0
>> /usr/local/lib/perl5/site_perl/5.6.2
> > /usr/local/lib/perl5/site_perl
>Might it be picking up a library from an earlier perl?
>If you rebuild without other perl versions in @INC, do you still see this?
>[Yes, I am clutching at straws]

Let me first do _exactly_ the same thing I did on another box and get
back to you after that...


Liz

Redvers Davies

unread,
Jan 8, 2004, 2:57:52 PM1/8/04
to Nicholas Clark, perl5-...@perl.org

The build files which we patch have been modified since the last patch I
submitted and although they apply with a fuzz and compile cleanly I will
submit a patch.

My Zaurus is a.w.o.l at the moment and I have a new one on order
(c860). I have been using the ipaq/skiff cluster at handhelds.org to
run the tests and have hit a small snag.

Patch to follow in a day or so.


Enache Adrian

unread,
Jan 8, 2004, 3:58:35 PM1/8/04
to Elizabeth Mattijsen, Nicholas Clark, perl5-...@perl.org
On Thu, Jan 08, 2004 a.d., Elizabeth Mattijsen wrote:
[ more problems with backreferences and threads]

The SEGV happens because PL_errgv is NULL and the ERRSV macro
actually tries to dereference it.

The panic in del_backref (which causes all this, calls Perl_croak,etc)
popped up since my #21936 - before that the weak-referenced variable
wasn't probably freed at all.
I'll try to fix that tomorrow.

Regards,
Adi

Elizabeth Mattijsen

unread,
Jan 8, 2004, 4:49:13 PM1/8/04
to Enache Adrian, Nicholas Clark, perl5-...@perl.org

I guess I'll wait until that before I start testing Thread::Bless
again. Maybe because Thread::Bless is tickling both the weaken() and
the thread/closure issues, that I'm getting these strange phenomena.

On the other hand I seem to be the only one with problems with
5.8.3-threaded and Thread::Bless, so maybe there's something in my
setup that's further tickling this.


I just built a threaded 5.8.3 with debugging symbols on Mac OS X.
Test-suite of Thread::Bless coredumps. Looks like the same
del_backref panic problem to me.


Liz
=======================================================
#0 0x000d589c in Perl_die_where (my_perl=0x58f340, message=0x5fda30
"panic: del_backref during global destruction.\n", msglen=46) at
pp_ctl.c:1338
#1 0x00008520 in Perl_vcroak (my_perl=0x58f340, pat=0x184054 "panic:
del_backref", args=0xbfffdf58) at util.c:1195
#2 0x0000873c in Perl_croak (my_perl=0x58f340, pat=0x184054 "panic:
del_backref") at util.c:1243
#3 0x0005f3a8 in S_sv_del_backref (my_perl=0x58f340, sv=0x5e9b70) at sv.c:4921
#4 0x000607e4 in Perl_sv_clear (my_perl=0x58f340, sv=0x5e9b70) at sv.c:5198
#5 0x00060e2c in Perl_sv_free (my_perl=0x58f340, sv=0x5e9b70) at sv.c:5348
#6 0x000449e8 in Perl_hv_free_ent (my_perl=0x58f340, hv=0x5e9b64,
entry=0x5e2674) at hv.c:1400
#7 0x00045048 in S_hfreeentries (my_perl=0x58f340, hv=0x5e9b64) at hv.c:1570
#8 0x0004510c in Perl_hv_undef (my_perl=0x58f340, hv=0x5e9b64) at hv.c:1597
#9 0x000606a8 in Perl_sv_clear (my_perl=0x58f340, sv=0x5e9b64) at sv.c:5165
#10 0x00060e2c in Perl_sv_free (my_perl=0x58f340, sv=0x5e9b64) at sv.c:5348
#11 0x000607fc in Perl_sv_clear (my_perl=0x58f340, sv=0x5e9b58) at sv.c:5200
#12 0x00060e2c in Perl_sv_free (my_perl=0x58f340, sv=0x5e9b58) at sv.c:5348
#13 0x000449e8 in Perl_hv_free_ent (my_perl=0x58f340, hv=0x5e9b4c,
entry=0x5e2668) at hv.c:1400
#14 0x00045048 in S_hfreeentries (my_perl=0x58f340, hv=0x5e9b4c) at hv.c:1570
#15 0x0004510c in Perl_hv_undef (my_perl=0x58f340, hv=0x5e9b4c) at hv.c:1597
#16 0x000606a8 in Perl_sv_clear (my_perl=0x58f340, sv=0x5e9b4c) at sv.c:5165
#17 0x00060e2c in Perl_sv_free (my_perl=0x58f340, sv=0x5e9b4c) at sv.c:5348
#18 0x000607fc in Perl_sv_clear (my_perl=0x58f340, sv=0x5e9b40) at sv.c:5200
#19 0x00060e2c in Perl_sv_free (my_perl=0x58f340, sv=0x5e9b40) at sv.c:5348
#20 0x000449e8 in Perl_hv_free_ent (my_perl=0x58f340, hv=0x5e9b34,
entry=0x5e2650) at hv.c:1400
#21 0x00045048 in S_hfreeentries (my_perl=0x58f340, hv=0x5e9b34) at hv.c:1570
#22 0x0004510c in Perl_hv_undef (my_perl=0x58f340, hv=0x5e9b34) at hv.c:1597
#23 0x000606a8 in Perl_sv_clear (my_perl=0x58f340, sv=0x5e9b34) at sv.c:5165
#24 0x00060e2c in Perl_sv_free (my_perl=0x58f340, sv=0x5e9b34) at sv.c:5348
#25 0x0008557c in Perl_gp_free (my_perl=0x58f340, gv=0x5e9b1c) at gv.c:1265
#26 0x0006075c in Perl_sv_clear (my_perl=0x58f340, sv=0x5e9b1c) at sv.c:5180
#27 0x00060e2c in Perl_sv_free (my_perl=0x58f340, sv=0x5e9b1c) at sv.c:5348
#28 0x000449e8 in Perl_hv_free_ent (my_perl=0x58f340, hv=0x5e9a38,
entry=0x5e27b8) at hv.c:1400
#29 0x00045048 in S_hfreeentries (my_perl=0x58f340, hv=0x5e9a38) at hv.c:1570
#30 0x0004510c in Perl_hv_undef (my_perl=0x58f340, hv=0x5e9a38) at hv.c:1597
#31 0x000606a8 in Perl_sv_clear (my_perl=0x58f340, sv=0x5e9a38) at sv.c:5165
#32 0x00060e2c in Perl_sv_free (my_perl=0x58f340, sv=0x5e9a38) at sv.c:5348
#33 0x00060a88 in Perl_sv_clear (my_perl=0x58f340, sv=0x5e9a5c) at sv.c:5262
#34 0x00060e2c in Perl_sv_free (my_perl=0x58f340, sv=0x5e9a5c) at sv.c:5348
#35 0x00051d14 in do_clean_all (my_perl=0x58f340, sv=0x5e9a5c) at sv.c:439
#36 0x000517c4 in S_visit (my_perl=0x58f340, f=0x51c98
<do_clean_all>) at sv.c:331
#37 0x00051d64 in Perl_sv_clean_all (my_perl=0x58f340) at sv.c:457
#38 0x0002a778 in perl_destruct (my_perl=0x58f340) at perl.c:815
#39 0x00433c64 in ?? ()
#40 0x0043410c in ?? ()
#41 0x0005ee74 in Perl_sv_unmagic (my_perl=0x5938e0, sv=0x5e2734,
type=-1073745696) at sv.c:4822
#42 0x00435608 in ?? ()
#43 0x0043679c in ?? ()
#44 0x00096b04 in Perl_pp_entersub (my_perl=0x9000399c) at pp_hot.c:2840
#45 0x0002eb8c in S_call_body (my_perl=0x344400, myop=0xbffff30c,
is_eval=0) at perl.c:2218
#46 0x0002e658 in Perl_call_sv (my_perl=0x344400, sv=0x3c0a24,
flags=150) at perl.c:2139
#47 0x0006015c in Perl_sv_clear (my_perl=0x344400, sv=0x3c0a30) at sv.c:5102
#48 0x00060e2c in Perl_sv_free (my_perl=0x344400, sv=0x3c0a30) at sv.c:5348
#49 0x000607fc in Perl_sv_clear (my_perl=0x344400, sv=0x355800) at sv.c:5200
#50 0x00060e2c in Perl_sv_free (my_perl=0x344400, sv=0x355800) at sv.c:5348
#51 0x00100ad4 in Perl_free_tmps (my_perl=0x344400) at scope.c:189
#52 0x00088be4 in Perl_pp_unstack (my_perl=0x344400) at pp_hot.c:128
#53 0x0015219c in Perl_runops_debug (my_perl=0x344400) at dump.c:1438
#54 0x0002d838 in S_run_body (my_perl=0x344400, oldscope=1) at perl.c:1857
#55 0x0002d19c in perl_run (my_perl=0x344400) at perl.c:1776
#56 0x00002084 in main (argc=2, argv=0xbffffe24, env=0xbffffe30) at
perlmain.c:86
#57 0x00001eac in _start (argc=2, argv=0xbffffe24, envp=0xbffffe30)
at /SourceCache/Csu/Csu-45/crt.c:267
#58 0x00001d2c in start ()

Nick Ing-Simmons

unread,
Jan 9, 2004, 3:14:32 AM1/9/04
to ni...@ccl4.org, perl5-...@perl.org
Nicholas Clark <ni...@ccl4.org> writes:
>
>Please test it thoroughly and find all the discords so that we can resolve
>them before the public performance. Currently it's at

>
>
>I'm interested in confirmation of binary compatibility between 5.8.3 and
>modules compiled under previous 5.8.x releases, and anything which is a new
>bug in 5.8.3, particularly if it breaks current modules on CPAN.

What is the easiest way to do that these days?
My current perl looks & installs here:

@INC:
/usr/local/perl/lib/5.8.2/i686-linux-multi
/usr/local/perl/lib/5.8.2
/usr/local/perl/lib/site_perl/5.8.2/i686-linux-multi
/usr/local/perl/lib/site_perl/5.8.2
/usr/local/perl/lib/site_perl

How do I get 5.8.3 RC1 to look there?
It seems that the Configure thing that looks for old dists isn't
enabled in maint?

Is there a ./Configure -Dxxxx=yyyy thing I can use?


Enache Adrian

unread,
Jan 9, 2004, 9:04:47 AM1/9/04
to Elizabeth Mattijsen, perl5-...@perl.org
On Thu, Jan 08, 2004 a.d., Elizabeth Mattijsen wrote:
> At 22:58 +0200 1/8/04, Enache Adrian wrote:
> >On Thu, Jan 08, 2004 a.d., Elizabeth Mattijsen wrote:
> >[ more problems with backreferences and threads]
> >
> >The SEGV happens because PL_errgv is NULL and the ERRSV macro
> >actually tries to dereference it.
> >
> >The panic in del_backref (which causes all this, calls Perl_croak,etc)
> >popped up since my #21936 - before that the weak-referenced variable
> >wasn't probably freed at all.
> >I'll try to fix that tomorrow.

Please try this:
--- /arc/bleadperl/sv.c 2004-01-01 22:21:06.000000000 +0200
+++ sv.c 2004-01-09 15:34:10.000000000 +0200
@@ -9799,7 +9799,7 @@ Perl_mg_dup(pTHX_ MAGIC *mg, CLONE_PARAM
SvREFCNT_inc(nmg->mg_obj = (SV*)newAV());
svp = AvARRAY(av);
for (i = AvFILLp(av); i >= 0; i--) {
- if (!svp[i] || SvREFCNT(svp[i]) < 2) continue;
+ if (!svp[i]) continue;
av_push((AV*)nmg->mg_obj,sv_dup(svp[i],param));
}
}

That test was there trying to avoid leaks in things like:
$ perl -MScalar::Util=weaken -Mthreads -e 'my$t;\
threads->new(sub{my$a,$b;$a=$b=\$t;weaken$b;$a})->join while 1'
But the panic is worse than that.

Regards,
Adi

Elizabeth Mattijsen

unread,
Jan 9, 2004, 9:53:22 AM1/9/04
to Enache Adrian, perl5-...@perl.org

Hmmm... no go, I'm afraid. But there are some stranger things
happening here: I suspect some kind of interaction / voodoo with
Test::Harness to be involved here as well. Observe:

====================================================
$ perl5.8.3-threaded-debug Makefile.PL


Writing Makefile for Thread::Bless

[root@cadier Thread-Bless-0.05]# make test
PERL_DL_NONLAZY=1 /usr/local/bin/perl5.8.3-threaded-debug

"-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib',
'blib/arch')" t/*.t

t/Bless01....dubious
Test returned status 0 (wstat 11, 0xb)
DIED. FAILED tests 15-16
Failed 2/16 tests, 87.50% okay
t/Bless02....ok
t/Bless03....ok 8/14start thread

in thread
thread started
t/Bless03....ok 12/14thread joined

t/Bless03....dubious
Test returned status 0 (wstat 11, 0xb)
DIED. FAILED tests 13-14
Failed 2/14 tests, 85.71% okay


t/Bless04....ok
t/Bless05....Too late to run INIT block at
/root/.cpan/build/Thread-Bless-0.05/blib/lib/Thread/Bless.pm line 129.
t/Bless05....ok

t/Bless06....Too late to run INIT block at
/root/.cpan/build/Thread-Bless-0.05/blib/lib/Thread/Bless.pm line 129.

t/Bless06....dubious
Test returned status 0 (wstat 11, 0xb)
DIED. FAILED tests 14-15
Failed 2/15 tests, 86.67% okay


t/Bless07....Too late to run INIT block at
/root/.cpan/build/Thread-Bless-0.05/blib/lib/Thread/Bless.pm line 129.
t/Bless07....ok

Failed Test Stat Wstat Total Fail Failed List of Failed
-------------------------------------------------------------------------------
t/Bless01.t 0 11 16 4 25.00% 15-16
t/Bless03.t 0 11 14 4 28.57% 13-14
t/Bless06.t 0 11 15 4 26.67% 14-15
Failed 3/7 test scripts, 57.14% okay. 6/104 subtests failed, 94.23% okay.
make: *** [test_dynamic] Error 255
====================================================

So, I now run the Bless01.t test seperately:

====================================================
$ perl5.8.3-threaded-debug -Ilib t/Bless01.t
1..16
ok 1 - use Thread::Bless;
ok 2 - Thread::Bless->can(...)
ok 3 - Without object going out of scope:
ok 4 - Check \# of destroys of WithoutDestroy
ok 5 - NoBless Object going out of scope:
ok 6 - Check \# of destroys of WithDestroy
ok 7 - Threads with NoBless object:
ok 8 - Check \# of destroys of NoBless, with threads
ok 9 - WithDestroy object going out of scope:


ok 10 - Check \# of destroys of WithDestroy

ok 11 - Threads with WithDestroy object:
ok 12 - Check \# of destroys of WithDestroy, with threads
ok 13 - WithDestroyAll object going out of scope:
ok 14 - Check \# of destroys of WithDestroyAll
ok 15 - Threads with WithDestroyAll object:
ok 16 - Check \# of destroys of WithDestroyAll, with threads
====================================================

No problems! Whereas when running with "make test", two tests fail... ;-(


Liz

Stas Bekman

unread,
Jan 9, 2004, 6:34:18 PM1/9/04
to Nicholas Clark, perl5-...@perl.org
Both mod_perl 1 and 2 seem to be happy on mandrake linux.

__________________________________________________________________
Stas Bekman JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/ mod_perl Guide ---> http://perl.apache.org
mailto:st...@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org http://ticketmaster.com

Nicholas Clark

unread,
Jan 9, 2004, 7:17:22 PM1/9/04
to Stas Bekman, perl5-...@perl.org
On Fri, Jan 09, 2004 at 03:34:18PM -0800, Stas Bekman wrote:
> Both mod_perl 1 and 2 seem to be happy on mandrake linux.

Thanks. 5.8.3 does fewer scary things than 5.8.2, so I was hoping that it
would all "just work". But it's nice to know.

Nicholas Clark

Nicholas Clark

unread,
Jan 10, 2004, 3:26:24 PM1/10/04
to Robin Barker, Green, Paul, perl5-...@perl.org
On Wed, Jan 07, 2004 at 07:57:07PM -0000, Robin Barker wrote:

> Making Storable (dynamic)


> Checking if your kit is complete...
> Warning: the following files are missing in your kit:
> t/Test/Builder.pm
> t/Test/More.pm
> t/Test/Simple.pm
> Please inform the author.
> Writing Makefile for Storable


On Wed, Jan 07, 2004 at 05:31:02PM -0500, Green, Paul wrote:
> Is this bad? Seen on the initial build from sources:
>
> Making Storable (static)
> Checking if your kit is complete...
> Warning: the following files are missing in your kit:
> t/Test/Builder.pm
> t/Test/More.pm
> t/Test/Simple.pm
> Please inform the author.
> Writing Makefile for Storable
> ...
>
> but the build kept on going...

Thanks. Fixed. It seems that we can't use an identical MANIFEST file
for the subdirectory and the release on CPAN. (The CPAN release has those
3 files in t)

Nicholas Clark

Nicholas Clark

unread,
Jan 10, 2004, 5:56:38 PM1/10/04
to Nick Ing-Simmons, perl5-...@perl.org

What prefix are you compiling your new perl with? I tried maint
just post RC1, and on a machine where 5.8.0 is installed in /usr
by default I only got 5.8.3 in @INC, because Configure is checking in
/usr/local/...

But if I use a prefix of /usr I see:

Characteristics of this binary (from libperl):

Compile-time options: USE_LARGE_FILES


Locally applied patches:
RC1
Built under linux

Compiled at Jan 10 2004 22:41:48
@INC:
lib
/usr/lib/perl5/5.8.3/i686-linux
/usr/lib/perl5/5.8.3
/usr/lib/perl5/site_perl/5.8.3/i686-linux
/usr/lib/perl5/site_perl/5.8.3
/usr/lib/perl5/site_perl/5.8.0/i686-linux
/usr/lib/perl5/site_perl/5.8.0
/usr/lib/perl5/site_perl


Nicholas Clark

Greg Matheson

unread,
Jan 11, 2004, 6:20:11 AM1/11/04
to perl5-...@perl.org
On Thu, 08 Jan 2004, Abe Timmerman wrote:

> > Why didn't the version as was work?
>
> Hmmm, dmake != nmake ?
> it turnes out that the "cd ..\pod" didn't extend to the list of copy commands
> that followed it (all lines in a "recipe" are executed on their own no
> relation).

Can you include a 'cd ..\pod' on each line?

> > To make that patch "work" you're going to need to patch pod/buildtoc to
> > understand the other format, or explain why I need to.
> > [I wanted those lines to be identical in the two Window makefiles]

> Thank you for making me read the dmake manpages :-(
> Grouped recipe-lines (with the square brackets) are fed as a block to a shell
> so I hope your readmepods generating thing in pod/buildtoc will be happy
> again:

> This patch seems to work, but perhaps some more eyes should look at this...
> (it's way past bedtime)
>
> --- win32/makefile.mk.orig Wed Jan 7 22:57:51 2004
> +++ win32/makefile.mk Thu Jan 8 01:35:53 2004
> @@ -1126,6 +1126,7 @@
> --libpod=perlfunc:perlguts:perlvar:perlrun:perlop --recurse
>
> utils: $(PERLEXE) $(X2P)
> +[

This is messing up makefile.95, whose sole reason for existence is to
handle the problem of "&&" being non-existent in the command.com shell,
by using group recipes.

genmk95.pl generates these group recipes.

# how it works:
# dmake supports an alternative form for its recipes, called "group
# recipes", in which all elements of a recipe are run with only one shell.
# This program converts the standard dmake makefile.mk to one using group
# recipes. This is done so that lines using && or || (which command.com
# doesn't understand) may be split into two lines that will still be run
# with one shell.

I am getting in the makefiles run through genmk95.pl:

utils: $(PERLEXE) $(X2P)
@[
[
cd ..\utils
$(MAKE) PERL=$(MINIPERL)

and DMAKE.EXE is saying:

make distclean ...DMAKE.EXE: smoke.mk: line 1218: Error -- Cannot mix single
and group recipe lines

This was not happening with the RC1 from Friday.

I was intending to save this next part for another time, but seeing there
is a problem with this makefile.mk change, I might as well put in my
request.

As you can see, I'm trying to smoke Windows98. This is bringing out a
deficiency in genmk95.pl, which doesn't come up with the simple build of
dmake
dmake test
dmake install

gennk95.pl doesn't do anything about the -'s and @'s in front of
group recipe actions. It just puts the square brackets around the recipe,
making it a group recipe. dmake then just passes the metacharacters
to the shell, which doesn't know what they are.

The problem is with the distclean and clean recipes, used by Test::Smoke. eg

distclean: clean
@[


-del /f $(MINIPERL) $(PERLEXE) $(PERLDLL) $(GLOBEXE) \

$(PERLIMPLIB) ..\miniperl$(a) $(MINIMOD)
-del /f *.def *.map


Here is a patch to delete the - (ignore errors) and @ (no echo).
Seeing there are some long -- options we have to look ahead.

win32/genmk95.pl.orig win32/genmk95.pl
*** win32/genmk95.pl.orig Sun Jan 11 18:55:42 2004
--- win32/genmk95.pl Sun Jan 11 18:58:36 2004
***************
*** 64,69 ****
--- 64,70 ----
if (/^(.*?)(&&|\|\|)(.*)$/) # two commands separated by && or ||
{
my ($one, $sep, $two) = ($1, $2, $3);
+ $one =~ s/^\t(?:-(?!-))?\@?(.*?)$/\t$1/; #take out leading "-" and "@"
LINE_CONT:
if ($two =~ /\\\s*$/)
{
***************
*** 77,82 ****
--- 78,84 ----
next;
}
# fall through - no need for special handling
+ s/^\t(?:-(?!-))?\@?(.*?)$/\t$1/; #take out leading "-" and "@"
print $out "$_\n";
}
print $out "]\n" if ($inrec);

However, if you put cd ..\pod on every line of the recipe,
I wonder what makefile.95 will make of it?

--
Greg Matheson, Taiwan

Abe Timmerman

unread,
Jan 11, 2004, 9:50:46 AM1/11/04
to Greg Matheson, perl5-...@perl.org, Nicholas Clark
Op een druilerige winterdag (Sunday 11 January 2004 12:20), schreef Greg
Matheson:

> On Thu, 08 Jan 2004, Abe Timmerman wrote:
> > > Why didn't the version as was work?
> >
> > Hmmm, dmake != nmake ?
> > it turnes out that the "cd ..\pod" didn't extend to the list of copy
> > commands that followed it (all lines in a "recipe" are executed on their
> > own no relation).
>
> Can you include a 'cd ..\pod' on each line?

I'd go for Nick's solution and adjust the filepaths, I believe we only need to
patch F<pod/buildtoc> and regenerate the win32 (and wince?) makefiles.

[snip]


> make distclean ...DMAKE.EXE: smoke.mk: line 1218: Error -- Cannot mix
> single and group recipe lines
>
> This was not happening with the RC1 from Friday.

> As you can see, I'm trying to smoke Windows98.

Interesting, if you have any patches or requests to make Test::Smoke work out
of the box on Win9x, please let me know. It would be nice to get that into
the upcomming version 1.19.

Good luck,

Abe
--
I think this requires more thought, therefore
I'm excising the "promise" from perldelta and replacing it with more
non-committal mumbling.
-- Jarkko Hietaniemi on p5p @ 2002-05-27

Nicholas Clark

unread,
Jan 11, 2004, 11:02:37 AM1/11/04
to Abe Timmerman, Greg Matheson, perl5-...@perl.org
On Sun, Jan 11, 2004 at 03:50:46PM +0100, Abe Timmerman wrote:
> Op een druilerige winterdag (Sunday 11 January 2004 12:20), schreef Greg
> Matheson:
>
> > On Thu, 08 Jan 2004, Abe Timmerman wrote:
> > > > Why didn't the version as was work?
> > >
> > > Hmmm, dmake != nmake ?
> > > it turnes out that the "cd ..\pod" didn't extend to the list of copy
> > > commands that followed it (all lines in a "recipe" are executed on their
> > > own no relation).
> >
> > Can you include a 'cd ..\pod' on each line?
>
> I'd go for Nick's solution and adjust the filepaths, I believe we only need to
> patch F<pod/buildtoc> and regenerate the win32 (and wince?) makefiles.

Which solution? I can't remember if I suggested more than one.
The one where I proposed that all the lines should be

cp ..\README.foo ..\pod\perlfoo.pod


> > This was not happening with the RC1 from Friday.

Yes, because my changes which were in the RC1 had broken things for Abe.
So we "fixed" them.
Which broke things for you.

This seems to be the way of things. Although it appears we have a solution
here.

Nicholas Clark

Abe Timmerman

unread,
Jan 11, 2004, 12:13:40 PM1/11/04
to Nicholas Clark, Greg Matheson, perl5-...@perl.org
Op een druilerige winterdag (Sunday 11 January 2004 17:02), schreef Nicholas
Clark:

> On Sun, Jan 11, 2004 at 03:50:46PM +0100, Abe Timmerman wrote:
> > Op een druilerige winterdag (Sunday 11 January 2004 12:20), schreef Greg
> >
> > Matheson:
> > > On Thu, 08 Jan 2004, Abe Timmerman wrote:
> > > > > Why didn't the version as was work?
> > > >
> > > > Hmmm, dmake != nmake ?
> > > > it turnes out that the "cd ..\pod" didn't extend to the list of copy
> > > > commands that followed it (all lines in a "recipe" are executed on
> > > > their own no relation).
> > >
> > > Can you include a 'cd ..\pod' on each line?
> >
> > I'd go for Nick's solution and adjust the filepaths, I believe we only
> > need to patch F<pod/buildtoc> and regenerate the win32 (and wince?)
> > makefiles.
>
> Which solution? I can't remember if I suggested more than one.
> The one where I proposed that all the lines should be
>
> cp ..\README.foo ..\pod\perlfoo.pod

Yup that's the one (sorry for not quoting it from the other message)

Will this do?

--- pod/buildtoc.orig Sun Jan 11 17:59:42 2004
+++ pod/buildtoc Sun Jan 11 18:09:23 2004
@@ -556,9 +556,9 @@

sub generate_nmake_1 {
# XXX Fix this with File::Spec
- (map {sprintf "\tcopy ..\\README.%-8s .\\perl$_.pod\n", $_}
+ (map {sprintf "\tcopy ..\\README.%-8s ..\\pod\\perl$_.pod\n", $_}
sort keys %Readmes),
- (map {"\tcopy $Copies{$_} $_\n"} sort keys %Copies);
+ (map {"\tcopy ..\\pod\\$Copies{$_} ..\\pod\\$_\n"} sort keys %Copies);
}

# This doesn't have a trailing newline

Good luck,

Abe
--
We might as well document that in future sort() in scalar context *may*
make flying pigs in pink tutus spring forth from one's nostrils, too :-)
For 5.8.0 I'm happy just to document the current behaviour.
-- Jarkko Hietaniemi on p5p @ 2002-06-12

Abe Timmerman

unread,
Jan 11, 2004, 12:31:19 PM1/11/04
to Nicholas Clark, perl5-...@perl.org
Op een druilerige winterdag (Sunday 11 January 2004 18:13), schreef Abe
Timmerman:

> Op een druilerige winterdag (Sunday 11 January 2004 17:02), schreef
> Nicholas
>
> Clark:
> > On Sun, Jan 11, 2004 at 03:50:46PM +0100, Abe Timmerman wrote:

[snip]


> > > I'd go for Nick's solution and adjust the filepaths, I believe we only
> > > need to patch F<pod/buildtoc> and regenerate the win32 (and wince?)
> > > makefiles.
> >
> > Which solution? I can't remember if I suggested more than one.
> > The one where I proposed that all the lines should be
> >
> > cp ..\README.foo ..\pod\perlfoo.pod
>
> Yup that's the one (sorry for not quoting it from the other message)
>
> Will this do?

Nope, you'll also need to reverse 22092 (and then rebuild win32/Makefile and
win32/makefile.mk)

and perhaps do the same for blead?

Good luck,

Abe
--
NI-S> All in all not one of my better bits of code.
EINSUFFICIENTPARANOIA?

Remember, just because you don't believe that everyone is out to get

you, it doesn't actually mean that they are not.
-- Nicholas Clark on p5p @ 20020522

Rafael Garcia-Suarez

unread,
Jan 11, 2004, 12:48:14 PM1/11/04
to Abe Timmerman, Nicholas Clark, perl5-...@perl.org
Abe Timmerman wrote:
> > > > I'd go for Nick's solution and adjust the filepaths, I believe we only
> > > > need to patch F<pod/buildtoc> and regenerate the win32 (and wince?)
> > > > makefiles.
> > >
> > > Which solution? I can't remember if I suggested more than one.
> > > The one where I proposed that all the lines should be
> > >
> > > cp ..\README.foo ..\pod\perlfoo.pod
> >
> > Yup that's the one (sorry for not quoting it from the other message)
> >
> > Will this do?
>
> Nope, you'll also need to reverse 22092 (and then rebuild win32/Makefile and
> win32/makefile.mk)
>
> and perhaps do the same for blead?

FWIW I'm lost in this thread. I don't even think I'll summarize it correctly.
If blead is broke, please send clear patches againt it to help my brain :=)

Abe Timmerman

unread,
Jan 11, 2004, 1:11:34 PM1/11/04
to Rafael Garcia-Suarez, perl5-...@perl.org, Nicholas Clark
Op een druilerige winterdag (Sunday 11 January 2004 18:48), schreef Rafael
Garcia-Suarez:

> Abe Timmerman wrote:

[who cares :-]

> FWIW I'm lost in this thread. I don't even think I'll summarize it
> correctly. If blead is broke, please send clear patches againt it to help
> my brain :=)

I am so sorry, I'll try to give you *my* version of the thread:

Change 22079 (and 22080 in maint) doesn't do what it is supposed to do.

I proposed a patch that Nick wasn't happy with, so I went back to the
drawingboard and found another way that made Nick not unhappy so he applied
it to maint as change 22092, but it caused problems for Win9x.
(AFAICT 22092 was not integrated into blead)

Again back to the drawingboard to try Nick's alternative proposal, which
should be like:

--- pod/buildtoc.orig Sun Jan 11 17:59:42 2004
+++ pod/buildtoc Sun Jan 11 18:09:23 2004
@@ -556,9 +556,9 @@

sub generate_nmake_1 {
# XXX Fix this with File::Spec
- (map {sprintf "\tcopy ..\\README.%-8s .\\perl$_.pod\n", $_}
+ (map {sprintf "\tcopy ..\\README.%-8s ..\\pod\\perl$_.pod\n", $_}
sort keys %Readmes),
- (map {"\tcopy $Copies{$_} $_\n"} sort keys %Copies);
+ (map {"\tcopy ..\\pod\\$Copies{$_} ..\\pod\\$_\n"} sort keys %Copies);
}

# This doesn't have a trailing newline


----end patch
To make all this working for bleadperl:

reverse 22080, apply the above and run:

$ perl pod/buildtoc --build-dmake

(and perhaps also run that with '--build-nmake')


HTH &&
Good luck,

Abe
--
I think that's the best choice: cygwin seems to be so weird regarding
this feature that we might as well be testing rand()...
-- Jarkko Hietaniemi on p5p @ 2002-03-26

Nicholas Clark

unread,
Jan 11, 2004, 3:19:55 PM1/11/04
to Abe Timmerman, perl5-...@perl.org
On Sun, Jan 11, 2004 at 06:31:19PM +0100, Abe Timmerman wrote:
> Op een druilerige winterdag (Sunday 11 January 2004 18:13), schreef Abe
> Timmerman:
>
> > Op een druilerige winterdag (Sunday 11 January 2004 17:02), schreef
> > Nicholas
> >
> > Clark:
> > > On Sun, Jan 11, 2004 at 03:50:46PM +0100, Abe Timmerman wrote:
> [snip]
> > > > I'd go for Nick's solution and adjust the filepaths, I believe we only
> > > > need to patch F<pod/buildtoc> and regenerate the win32 (and wince?)
> > > > makefiles.
> > >
> > > Which solution? I can't remember if I suggested more than one.
> > > The one where I proposed that all the lines should be
> > >
> > > cp ..\README.foo ..\pod\perlfoo.pod
> >
> > Yup that's the one (sorry for not quoting it from the other message)
> >
> > Will this do?
>
> Nope, you'll also need to reverse 22092 (and then rebuild win32/Makefile and
> win32/makefile.mk)

Done in maint as 22211

Plus based on how you say && works I think that I'd broken the make distclean
target. That is now reverted to how it was before I started.


Sorry about all the unintended "fun"

> and perhaps do the same for blead?

Coming soon. Once I've worked out what to integrate back.

Nicholas Clark

Rafael Garcia-Suarez

unread,
Jan 12, 2004, 4:15:34 PM1/12/04
to Elizabeth Mattijsen, Nicholas Clark, perl5-...@perl.org
Elizabeth Mattijsen wrote:
> At 18:18 +0000 1/7/04, Nicholas Clark wrote:
> >Please test it thoroughly and find all the discords so that we can resolve
> >them before the public performance.
>
> This may be too thoroughly: during make install, I see this come by:
>
> :
> /usr/local/share/man/man1/h2xs.1
> no documentation in utils/instmodsh
> /usr/local/share/man/man1/libnetcfg.1
> :

blead hasn't this problem (a warning, in fact); I assume that some doc has
been added in the recent makemakers.

Nick Ing-Simmons

unread,
Jan 12, 2004, 5:25:12 PM1/12/04
to ni...@ccl4.org, Nick Ing-Simmons, perl5-...@perl.org
Nicholas Clark <ni...@ccl4.org> writes:
>> What is the easiest way to do that these days?
>> My current perl looks & installs here:
>>
>> @INC:
>> /usr/local/perl/lib/5.8.2/i686-linux-multi
>> /usr/local/perl/lib/5.8.2
>> /usr/local/perl/lib/site_perl/5.8.2/i686-linux-multi
>> /usr/local/perl/lib/site_perl/5.8.2
>> /usr/local/perl/lib/site_perl
>>
>> How do I get 5.8.3 RC1 to look there?
>> It seems that the Configure thing that looks for old dists isn't
>> enabled in maint?
>>
>> Is there a ./Configure -Dxxxx=yyyy thing I can use?
>
>What prefix are you compiling your new perl with?

/usr/local/perl

Looking in the Configure.log file I see this:
"
List of earlier versions to include in @INC?
[5.8.2/i686-linux-multi 5.8.2 5.8.1/i686-linux-multi 5.8.1]
"

But it does't make it to @INC.

config_args='-der -O -Dusedevel -Doptimize=-O2 -g -Dusemymalloc=n -Dprefix=/usr/local/perl -Dusevfork=false -Dusemultiplicity=y';

It it a -O or -Dusedevel that is killing it?


Rafael Garcia-Suarez

unread,
Jan 12, 2004, 5:29:23 PM1/12/04
to Gisle Aas, Robin Barker, Nicholas Clark, perl5-...@perl.org
Gisle Aas wrote:
> Gisle Aas <gi...@ActiveState.com> writes:
>
> > MIME-Base64-2.22 has been uploaded to CPAN as well.
>
> Just as I uploaded 2.22 to CPAN I received a doc patch from Paul
> Croome that I just to had to get out. So, I have now uploaded
> MIME-Base64-2.23 to CPAN as well.
>
> Included here is the patch to make perl's MIME-Base64 v2.23.

Thanks, applied as #22124 (instead of the previous one).

Nick Ing-Simmons

unread,
Jan 12, 2004, 5:33:11 PM1/12/04
to ni...@ing-simmons.net, ni...@ccl4.org, Nick Ing-Simmons, perl5-...@perl.org
Nick Ing-Simmons <ni...@ing-simmons.net> writes:
>Nicholas Clark <ni...@ccl4.org> writes:
>>> What is the easiest way to do that these days?
>>> My current perl looks & installs here:
>>>
>>> @INC:
>>> /usr/local/perl/lib/5.8.2/i686-linux-multi
>>> /usr/local/perl/lib/5.8.2
>>> /usr/local/perl/lib/site_perl/5.8.2/i686-linux-multi
>>> /usr/local/perl/lib/site_perl/5.8.2
>>> /usr/local/perl/lib/site_perl
>>>
>>> How do I get 5.8.3 RC1 to look there?
>
>Looking in the Configure.log file I see this:
>"
>List of earlier versions to include in @INC?
>[5.8.2/i686-linux-multi 5.8.2 5.8.1/i686-linux-multi 5.8.1]
>"
>
>But it does't make it to @INC.
>
>config_args='-der -O -Dusedevel -Doptimize=-O2 -g -Dusemymalloc=n -Dprefix=/usr/local/perl -Dusevfork=false -Dusemultiplicity=y';
>
>It it a -O or -Dusedevel that is killing it?

Hmm, it is the -Dusedevel

Configure has:

case "$usedevel" in
$define|true|[yY]*)
case "$versiononly" in
'') versiononly="$define" ;;
esac
case "$installusrbinperl" in
'') installusrbinperl="$undef" ;;
esac
;;
esac

Which is fine by me - I can always do an installperl +v later.

BUT it also has:

case "$versiononly" in
"$define") inc_version_list=''
inc_version_list_init=0
;;
esac

Which I disagee with!

Surely it not unreasonable to
have a prototype .../perl5.8.3 look in lib of 5.8.2 precisely
to see how compatible it is?

Yitzchak Scott-Thoennes

unread,
Jan 12, 2004, 6:07:25 PM1/12/04
to Nick Ing-Simmons, ni...@ccl4.org, Nick Ing-Simmons, perl5-...@perl.org
On Mon, Jan 12, 2004 at 10:33:11PM +0000, Nick Ing-Simmons <ni...@ing-simmons.net> wrote:
> case "$versiononly" in
> "$define") inc_version_list=''
> inc_version_list_init=0
> ;;
> esac
>
> Which I disagee with!
>
> Surely it not unreasonable to
> have a prototype .../perl5.8.3 look in lib of 5.8.2 precisely
> to see how compatible it is?

Looks like versiononly is used for two separate purposes. I would
suggest renaming the versiononly use above to something different, but
I would prefer it if both vars were defined if usedevel.
Then you can use -Dusedevel -Uwhateveryoucomeupwith but still have
versiononly.

Nicholas Clark

unread,
Jan 12, 2004, 7:38:35 PM1/12/04
to Elizabeth Mattijsen, Enache Adrian, perl5-...@perl.org

> No problems! Whereas when running with "make test", two tests fail... ;-(

To me it seems that whatever is happening here seems to be too messy
and intertwined to get fixed for 5.8.3.

Not that I like this, but it seems to be the less bad choice.

Nicholas Clark

H.Merijn Brand

unread,
Jan 12, 2004, 8:08:48 PM1/12/04
to Yitzchak Scott-Thoennes, Perl 5 Porters

This was Jarkko's decision

--
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/daily...@perl.org/ per...@perl.org
send smoke reports to: smokers...@perl.org, QA: http://qa.perl.org

Nick Ing-Simmons

unread,
Jan 13, 2004, 4:45:06 AM1/13/04
to ni...@ing-simmons.net, ni...@ccl4.org, Nick Ing-Simmons, perl5-...@perl.org
Nick Ing-Simmons <ni...@ing-simmons.net> writes:
>Nick Ing-Simmons <ni...@ing-simmons.net> writes:
>>Nicholas Clark <ni...@ccl4.org> writes:
>>>> What is the easiest way to do that these days?
>>>> My current perl looks & installs here:
>>>>
>>>> @INC:
>>>> /usr/local/perl/lib/5.8.2/i686-linux-multi
>>>> /usr/local/perl/lib/5.8.2
>>>> /usr/local/perl/lib/site_perl/5.8.2/i686-linux-multi
>>>> /usr/local/perl/lib/site_perl/5.8.2
>>>> /usr/local/perl/lib/site_perl
>>>>
>>It it a -O or -Dusedevel that is killing it?
>
>Hmm, it is the -Dusedevel

Building without -Dusedevel
and then doing

perl -Ilib installperl -v

Gives me a perl5.8.3 which looks in 5.8.2 stuff
Seems to run 5.8.2 built Tk okay and other things
needed to make this mailtool work!

I guess next thing to do is prune out the 5.8.2 and see how it
goes with 5.8.1 (which is as far back as I can go easily...)


Elizabeth Mattijsen

unread,
Jan 13, 2004, 4:51:46 AM1/13/04
to Nicholas Clark, Enache Adrian, perl5-...@perl.org

Well, that means that basically you will not be able to use
Scalar::Util::weaken in 5.8.3, whereas you _could_ use it (more or
less) in 5.8.[12]. So this is worse in some respects. It would need
a note in perldelta, I would think.


>Not that I like this, but it seems to be the less bad choice.

It's one more nail in the coffin of Perl ithreads, I'm afraid.


Liz

Tim Bunce

unread,
Jan 13, 2004, 10:37:44 AM1/13/04
to Elizabeth Mattijsen, Nicholas Clark, Enache Adrian, perl5-...@perl.org
On Tue, Jan 13, 2004 at 10:51:46AM +0100, Elizabeth Mattijsen wrote:
>
> It's one more nail in the coffin of Perl ithreads, I'm afraid.

Is there a handy summary of those nails anywhere?

Tim.

Elizabeth Mattijsen

unread,
Jan 13, 2004, 10:44:04 AM1/13/04
to Tim Bunce, Nicholas Clark, Enache Adrian, perl5-...@perl.org

Apart the nails mentioned in my article at
http://www.perlmonks.org/index.pl?node_id=288022 , I would think that
you can't detach threads on Win32 without risking segfaults is the
only other one for 5.8.3.

However, if you happen to have 5.8.0, there are the shared array
memory leak and other memory leaks associated with threads. Most of
these are fixed in 5.8.1 or higher. At least to my knowledge.


Liz

Nicholas Clark

unread,
Jan 13, 2004, 4:29:16 PM1/13/04
to Elizabeth Mattijsen, perl5-...@perl.org
On Tue, Jan 13, 2004 at 10:51:46AM +0100, Elizabeth Mattijsen wrote:
> At 00:38 +0000 1/13/04, Nicholas Clark wrote:

> >To me it seems that whatever is happening here seems to be too messy
> >and intertwined to get fixed for 5.8.3.
>
> Well, that means that basically you will not be able to use
> Scalar::Util::weaken in 5.8.3, whereas you _could_ use it (more or
> less) in 5.8.[12]. So this is worse in some respects. It would need
> a note in perldelta, I would think.

OK. Could you suggest a patch. I'm not quite sure what the problem is,
and hence how to word it.


Longer term, how do we stop these sorts of regressions happening again?
If the first we learn of problems is at RC time, then we either

a: Ship with regressions (non-surprise new bugs)
b: Never going to get anything release (ie abort RCs, back to fixing)
c: Ship with new surprise bugs (because sometimes the most obvious solution
has "side effects")

I don't have a solution to this conundrum.

Nicholas Clark

Elizabeth Mattijsen

unread,
Jan 13, 2004, 4:42:13 PM1/13/04
to Nicholas Clark, perl5-...@perl.org
At 21:29 +0000 1/13/04, Nicholas Clark wrote:
>On Tue, Jan 13, 2004 at 10:51:46AM +0100, Elizabeth Mattijsen wrote:
>> At 00:38 +0000 1/13/04, Nicholas Clark wrote:
>
>> >To me it seems that whatever is happening here seems to be too messy
>> >and intertwined to get fixed for 5.8.3.
>>
>> Well, that means that basically you will not be able to use
>> Scalar::Util::weaken in 5.8.3, whereas you _could_ use it (more or
>> less) in 5.8.[12]. So this is worse in some respects. It would need
> > a note in perldelta, I would think.
>OK. Could you suggest a patch. I'm not quite sure what the problem is,
>and hence how to word it.

Well, actually I've gotten to the point that I don't care much about
it anymore. And yes, this has happened before.

I'm no perl 5 internals hacker. I try to help the perl 5 internals
hackers as well as possible.


>Longer term, how do we stop these sorts of regressions happening again?

By having tests for it. The problem with this problem was that there
_were_ no tests for testing weakened references (to my knowledge).
So in that sense, I don't think we're going to see regressions in
that sense anymroe.


>If the first we learn of problems is at RC time, then we either
>a: Ship with regressions (non-surprise new bugs)
>b: Never going to get anything release (ie abort RCs, back to fixing)
>c: Ship with new surprise bugs (because sometimes the most obvious solution
> has "side effects")
>
>I don't have a solution to this conundrum.

I'd go for a. Document the behaviour. Release. One more nail
shouldn't matter that much at this time.


I'm afraid I won't be able to spend much time following p5p in the
next weeks: typical case of one project not being finished yet and
another starting and deadlines piling one upon the other... I hope
to be back sometime in the beginning of February...


Liz

H.Merijn Brand

unread,
Jan 15, 2004, 8:56:21 AM1/15/04
to Nick Ing-Simmons, Perl 5 Porters
On Mon 12 Jan 2004 23:33, Nick Ing-Simmons <ni...@ing-simmons.net> wrote:
> Nick Ing-Simmons <ni...@ing-simmons.net> writes:
> >Nicholas Clark <ni...@ccl4.org> writes:
> >>> What is the easiest way to do that these days?
> >>> My current perl looks & installs here:

Just proposed the following patch:

--- INSTALL 2003-11-05 19:11:18.000000000 +0100
+++ INSTALL.new 2004-01-15 14:38:00.000000000 +0100
@@ -238,6 +238,20 @@ defaults from then on.
After it runs, Configure will perform variable substitution on all the
*.SH files and offer to run make depend.

+=head2 Disabling older versions of Perl
+
+Configure will search for binary compatible versions of previously
+installed perl binaries in the tree that is specified as target tree
+and these will be used by the perl being built.
+
+To disable use of older perl modules, even completely valid pure perl
+modules, you can specify to not include the pathes found:
+
+ sh Configure -Dinc_version_list=none ...
+
+When using the newer perl, you can add these pathes again in the
+$PERL5LIB environment variable or with perl's -I runtime option.
+
=head2 Altering config.sh variables for C compiler switches etc.

For most users, all of the Configure defaults are fine. Configure

--

Nick Ing-Simmons

unread,
Jan 23, 2004, 5:06:25 AM1/23/04
to a...@ztreet.demon.nl, Nicholas Clark, Greg Matheson, perl5-...@perl.org
Abe Timmerman <a...@ztreet.demon.nl> writes:
>Op een druilerige winterdag (Sunday 11 January 2004 12:20), schreef Greg
>Matheson:
>
>> On Thu, 08 Jan 2004, Abe Timmerman wrote:
>> > > Why didn't the version as was work?
>> >
>> > Hmmm, dmake != nmake ?
>> > it turnes out that the "cd ..\pod" didn't extend to the list of copy
>> > commands that followed it (all lines in a "recipe" are executed on their
>> > own no relation).
>>
>> Can you include a 'cd ..\pod' on each line?

My 2¢ as I catchup - for IIRC one of the make/shell combinations on Win32
the cd is persistent across commands. So once none line has done the
cd ..\pod then next command is already in that directory.
This case may work as .../pod/../pod should be .../pod


Dave Mitchell

unread,
Jan 24, 2004, 9:27:14 PM1/24/04
to Elizabeth Mattijsen, Nicholas Clark, perl5-...@perl.org

The following patch fixes all the 'leaked scalar' warnings you currently
get with bleed and Thread::Bless 0.06. Turns out it was actually a minor
leak in the main interpreter that only really manifested itself after it
was cloned. The smallest test case for the leaked scalar was:

use threads;
BEGIN { $a = sub{}; $b = \&g }
sub f { 1};
threads->new( \&f )->join;
sub g { }

From reading this old thread, I'm not sure whether there are supposed to
be any other outstanding threads issues left?

--
In England there is a special word which means the last sunshine
of the summer. That word is "spring".

Change 22209 by davem@davem-percy on 2004/01/25 02:04:23

Remove small memory leak in newATTRSUB that manifested as a
leaking scalar after the interpeter was cloned

Affected files ...

... //depot/perl/op.c#599 edit

Differences ...

==== //depot/perl/op.c#599 (text) ====

@@ -4165,6 +4165,8 @@
/* transfer PL_compcv to cv */
cv_undef(cv);
CvFLAGS(cv) = CvFLAGS(PL_compcv);
+ if (!CvWEAKOUTSIDE(cv))
+ SvREFCNT_dec(CvOUTSIDE(cv));
CvOUTSIDE(cv) = CvOUTSIDE(PL_compcv);
CvOUTSIDE_SEQ(cv) = CvOUTSIDE_SEQ(PL_compcv);
CvOUTSIDE(PL_compcv) = 0;

Elizabeth Mattijsen

unread,
Jan 25, 2004, 11:04:30 AM1/25/04