Ævar Arnfjörð Bjarmason: "It would be a shame if we shipped a perl with known segfaults." Nicholas Clark (ever the pragmatist): "It wasn't solved in 5.8.8 so it's not a regression."
Nicholas Clark looked at an execution profile,
and saw that in a given workset,
pp_const is called around 200 million times,
if statement within is taken only 3000 times.
Since the decision to take it or not is known at compile time,
it could be split into two discrete ops which could only be a win.
No takers, but definitely a nice self-contained project for someone who wants to dip their toe in the p5p waters.
had I infinite tuits http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-02/msg00079.html
Last Saturday (the 2nd of February), Nicholas made 65 commits in a row to the Perforce repository, thus raising the number of commits in the repository to 33218.
He then posted a snapshot of what will become Perl 5.8.9, alas, slightly too late on Saturday afternoon to be included in the previous summary (which cuts off at around 16:00 UTC).
Apart from various known issues like IRIX and C++ compilers, Nicholas was very interesting in hearing how it coped on VMS, since he integrated lots of changes from 5.10 pertaining to VMS, and wasn't sure if his selection was sufficient.
Jerry D. Hedden pointed out that some of errors on the Cygwin platform could be solved by backing out a change dealing with consting.
Andy Armstrong offered to add
dtrace support (now that he's an expert having already done it for 5.10). Nicholas hoped he could backport it from the 5.10 track, assuming it gets into what will be 5.10.1.
Craig Berry promised to review the VMS changes. H.Merijn Brand tweaked his 5.8-dor patch to make sure it could still add the
// defined-or operator to 5.8.
released before christmas http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-02/msg00083.html
Jerry asked whether he should try to fix some of the warnings that were cropping up in recent builds; Nicholas said he hoped to locate the secret patch that, if applied, would make them all go away.
Jarkko Hietaniemi buzzed Mark Lutz, who works at a large aerospace firm and has access to some some serious hardware. He reported success on an SGI but gave up on a Cray X1.
David Cantrell reported compilation success on a Cray YMP, albeit with a number of test failures.
Dave also mentioned that his NetBSD/alpha was perfect barring one single failure in POSIX/t/sigaction.t.
H.Merijn Brand reported problems with the CPAN shell. Andreas König mentioned that Frank Wiegand had identified the cause as being a recent version of
Safe and that H.Merijn should downgrade to Safe version 1.12. (Only 5.8.8 is affected, 5.10 is fine).
Rafael thought he had fixed it with change #33236, it being something to do with version objects being returned from Safe compartments. John Peacock identified the interaction problem between
Safe, and suggested Rafael release his fix in Safe 1.15 and all would be well.
playing it safe http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-02/msg00140.html
Michael G. Schwern mentioned a solution he had heard about concerning the Y2038 problem, which is bring dates beyond back to before 2038 and run it through 64-bit safe routines in order to derive the correct time zone and daylight savings information.
licence-friendly code http://www.2038bug.com/pivotal_gmtime_r.c.html
Jesse Vincent pointed out that this approach will fail whenever timezones change, the most recent high-visibility exemplar of which was the USA's daylight savings changes in 2007.
Ben Morrow thought that we could only do so much without shipping a full timezone database. The conversation continued into excruciating detail about the periodicity of calendars and how to deal with daylight savings tweakages.
As part of his research, Michael asked for a table of post-2038 times from a 64 bit system. Mark Mielke provided him with enough data to keep him going 700 years.
my 600th birthday is on a Saturday http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-02/msg00239.html
Michael then delivered some experimental code to provide 64-bit time routines suitable for 32-bit hardware. Jan Dubois wondered about the licensing issues (since Michael had used code from 2038bug.com).
Andy Dougherty explained how to make the code more platform agnostic. Michael explained that the code needs quite a bit of work still and pointed out the areas where he was not happy. Andy thought that much of the problems could be addressed with Configure probes, and promised to get a round tuit.
David Nicol wondered if Reini Urban's compiler work would allow, for example, a known IV passed to a function to be passed as a bare
int, thereby removing a certain amount of indirection required to get from the pointer to an
SV down to the raw
Rob Sisyphus reported that the changes made to the MinGW runtime in order to have a C99-compliant
libmingwex, and said he'd file a bug with them.
Dave Mitchell admitted to having chopped some code out of the regexp engine that dealt with the super-linear positive cache (no, I don't know what it does) on the grounds that he couldn't figure out how it could be triggered, nor did anything in the test suite tickle it. And it got in the way of making the regexp engine non-recursive.
Moritz Lenz replied that fixing it up was probably not that important since the test case was rather pathological, insofar that if someone were to write such a pattern and encounter the slowdown, it would be easy to reformulate it to avoid the problem.
not really a bug http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-02/msg00182.html
Hein van den Heuvel was wondering why Perl couldn't deal with large files (>2GiB) out of the box, since the information returned by
tell) is an opaque cookie that is passed to
seek) as required. Therefore perl should just use that, and get large file handling for free.
Craig Berry thought that the interface was cracked open and exposed to be compatible with
tell. If people didn't really that, he proposed a two-line fix that restore the native VMS file positioning behaviour.
peeking behind the curtain http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-02/msg00251.html
In the beginning,
win32_async_check() could interact poorly with
win32_msgwait, and the denizens of the Win32::GUI mailing list determined that it could go into an infinite loop and consume all available CPU. It was subsequently patched to prevent this occurring, but the balance swung the other way, and caused 30 second DDE timeouts because it didn't loop enough. Robert May provided a patch to find the middle ground, and this Rafael applied.
the goldilocks syndrome http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-02/msg00098.html
Robert May then provided a second patch to improve the
kill implementations on Win32. Rafael applied the patch to blead, and if everything checks out correctly, it may be backportable it to 5.10.
wake up, time to die http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-02/msg00105.html
Steven Schubiger added some consting goodness to sv.c, which Rafael applied. So he did it again, and Rafael applied that too. And then again, and still Rafael followed. But then Steven delivered a fourth patch of consting goodness, but it didn't get applied.
repeat as necessary http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-02/msg00116.html
Jim Cromie was looking at the XML output from a MAD run, and needed to be able to specify an environment variable beforehand, and so set about adding a general mechanism to test.pl.
Nicholas cautioned about the dangers of being insufficiently shell-agnostic, and suggested a hash key/value approach to let each platform implement the initialisation of the environment.
Rafael applied Steffen Müller's patch that ensures that any specific feature request (such as
use feature 5.10.3) gets the same set of features as
use feature 5.10.
The result is a little drastic but there doesn't seem a way around the possible inconsistencies that may arise. So, for now, the porters promise that no new features will be added in 5.10 (that would require an extension to the
feature pragma, other new, non-
feature features are fair game).
the features remain the same http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-02/msg00281.html
Vincent Pit returned to his magical patch with some test cases that demonstrated the problem.
Hugo van der Sanden explained that his caution regarding the correct use of magic in Ben Morrow's patch for
PerlIO::scalar was not meant to kill the patch dead. Ben Morrow responded with what he thought was a change that resolved the issue, although he wished there was a perlmagic.pod that would explain the finer points of magic.
Rafael thought that the patch looked good enough to take.
Jim Cromie reworked opcode.pl to generate more efficient macros written to opcode.h, by relying on the property of consecutive opcode numbers. Nicholas was very impressed, as this shaved 300 bytes off the size of util.o.
Jim followed up with another tweak that resulted in a dozen or so bytes being saved.
cache dispenser http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-02/msg00312.html
The most recent 5.8.9-to-be smoke failure on Windows, courtesy of Steve Hay.
Smoke [5.8.8] 33205 FAIL(F) MSWin32 WinXP/.Net SP2 (x86/2 cpu) http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-02/msg00078.html
And a series of blead failures, also from Steve, the most recent of which is
Smoke [5.11.0] 33261 FAIL(F) MSWin32 WinXP/.Net SP2 (x86/2 cpu) http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-02/msg00305.html
Andy Dougherty wrapped up the compiler issues on IRIX with a patch, that Rafael applied. Now to see if it works.
Jerry D. Hedden reported that change #31864, designed to resolve bug #45053 made a valiant attempt at perfection, but if you run the test script repeated, it will emit periodically the message "Bad free() ignored (PERL_CORE) during global destruction."
"Fixed in bleadperl by change #33258" -- Rafael http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-02/msg00303.html
Steve Peters excised the reference to a book mentioned in the documentation that will never see the light of day.
Andreas König's binary search revealed that the bug (bad diagnostics) was introduced with change #31255. Nicholas helpfully reposted the entire patch to the list. Dave Mitchell took one look at it and posted change #33265 three hours later to fix it.
Nicholas got to the bottom of the issue:
split imposes scalar context on
unpack, and parens in unpack templates had, um shall we say, undefined behaviour in scalar context.
behavioural modification http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-02/msg00184.html
Martin Becker's documentation tweak regarding modulus and common residues was accepted.
Steve Hay twiddled the filter code to make the problem go away and also didn't break anything else in the tests, but was hoping someone more skilled in the art of filters would care to comment.
say we just called them a failed experiment? http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-02/msg00203.html
Jonas Kramer reported a bug with two issues, one of which was due to POD formatting issues on his terminal that causes
%- to be rendered as
%?. Don't laugh, people lose satellites for less than this.
The other issue was confirmed to be a true bug by Abigail, who went on to write some TODO tests for t/op/pat.t lest they be forgotten.
Stephan Springl delivered a delightfully concise test program to show how to make 5.10.0 coredump. It turns out that this is actually a marginal improvement over 5.8, since the same program will run the code without crashing, but will give the wrong results.
Dave Mitchell figured out what the problem and suggested two lines of enquiry to explore. Unfortunately he was waiting for a new delivery of tuits and was thus unable to do anything more.
beware the abominable newATTRSUB http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-02/msg00154.html
Matt Kraai reported difficulty getting Perl 5.8 up and running on QNX.
getcwd seemed to be giving grief, as do possibly unsigned
time_t data types.
Nicholas made some suggestions which cleared up some, but not all, errors.
brian d foy filed a bug report following his request for comments on the behaviour of
&& in a
when clause. His argument was that the documentation does not coincide with the implementation, but didn't know which one needed to be fixed.
could be a feature http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-02/msg00161.html
"sand" (who I suspect is really Andreas Köenig's sandbox) filed a reminder bug to point out that
Storable needs to be updated to handle the new
REGEXP datatype in 5.11.
Joachim Görner built a 5.8.8 on AIX. When he tried to run a CPAN shell, it appeared to have trouble downloading the CPAN indices, trying to rename a file that doesn't exist.
He pointed out that 5.8.2 works correctly on the same machine.
289 new + 1494 open = 1783 (10 created, 39 closed)
ooh, someone's been busy http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-02/msg00131.html http://rt.perl.org/rt3/NoAuth/perl5/Overview.html
- Devel-StackTrace 1.15
Dave Rolsky announced a fix in the shape of 1.16, available on CPAN.
- B::Generate 1.12_04
Jim Cromie made a new release that works on both 5.10 and 5.8.
- ExtUtils::MakeMaker 6.43_01
Michael G. Schwern released a development version of the venerable ExtUtils::MakeMaker module. Rafael and Steve Peters brought blead up to date with the latest goodies.
Moritz Lenz figured out that the weird
__stack_ck_chk_fail_local errors was caused by compiling with
-fstack-protector. Take it out and everything is fine. Andy Dougherty said he'd look at providing a better test for
back to the drawing board http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-02/msg00120.html
Jarkko Hietaniemi revived an two year old message from the depths of his outbox regarding the possibility of intercepting a possible segmentation fault with
H.Merijn Brand reported that gcc-4.2.3, HP-UX 11.23 and blead is not a recipe for happiness.
back to 3.4.6 http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-02/msg00160.html
Jerry D. Hedden asked for, and received, co-maintenance of
Thread::Queue. It's now dual-lifed, and so we may expect exciting new features on CPAN.
Yamashina Hio had some more questions about POD's L<> codes but received no answers.
Vincent Pit saw that
mg_copy ought to take an
I32 instead of an
int, and so it was done.
Alas, Jerry D. Hedden pointed out that this unfortunately causes "initialization from incompatible pointer type" warnings in
threads::shared. He wondered if there were 32/64-bit issues at hand, and if so, what was the best way to resolve them.
Jim Cromie added some simple tests to validate
-Dx output saying that it wasn't the most important thing in the world, but it might be helpful to know if and when the output changes in subtle ways.
canary in a perl mine http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-02/msg00232.html
Jim Cromie thought Nicholas's expand-macros.pl trick was so useful, he gave it the ability to pretty-print the macro expansions.
Jerry D. Hedden wrote a patch that added a lot of tests for read-only variables.
José Auguste-Etienne posted a patch to hints/aix_4.sh to allow builds on AIX 4.2 to succeed. Applied.
Slaven Rezic is the current Tk maintainer.
security patches welcome http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-02/msg00307.html
last week's news http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-02/msg00270.html
This summary was written by David Landgren.
Weekly summaries are published on http://use.perl.org/ and posted on a mailing list, (subscription: firstname.lastname@example.org). The archive is at http://dev.perl.org/perl5/list-summaries/. Corrections and comments are welcome.
If you found this summary useful, please consider contributing to the Perl Foundation to help support the development of Perl.