Wednesday 29th June 2011
Fedora Project
Updated libpng10 in all current releases to address 1-byte uninitialized memory reference in png_format_buffer() (CVE-2011-2501, related to CVE-2004-0421)
Updated perl-Perl-Critic in dist-f16-perl to run the author tests (and pull in the associated additional build requirements) if (and only if) the %perl_bootstrap macro is not defined
Local Packages
Updated libpng10 as per the Fedora version
Updated perl-Coro to 6.0:
Incompatible Change: unreferenced coro objects will now be destroyed and cleaned up automatically (e.g. async { schedule })
- Implement a JIT compiler for part of the thread switch code, which gives a 50% speed improvement on threaded perls, and about 4% on non-threaded perls (so threaded perls now finally reach about half the speed of non-threaded perls)
Slightly modernise Coro::Intro, add section about rouse functions
Avoid DEFSV and ERRSV, giving another 10% improvement in thread switching
Coro::State->is_destroyed is now called is_zombie
Implement a Coro->safe_cancel method that might fail, but cancels in a "safer" way if it succeeds
Add preliminary support for DEBUGGING perls
Get rid of two hash-accesses when initialising a new Coro - this speeds up coro creation by almost a factor of two
Croak when a coro that is being cancelled tries to block (e.g. while executing a guard block), instead of crashing or deadlocking
Use a more robust and also faster method to identify Coro::State objects - speeds up everything a bit
Implement Coro->cancel in XS for a 20% speed improvement, and to be able to implement mutual cancellation
- Speed up context switches by a percent or two by more efficiently allocating context stack entries
Implement Coro->join and Coro->on_destroy in XS for a speed-up and a reduction in memory use
Cancelling a coro while it itself is cancelling another coro is now supported and working, instead of triggering an assertion
Be a bit more crash-resistant when calling (buggy) on_destroy callbacks (best effort)
Move on_destroy into the slf_frame, to allow extension slf functions to have destructors
Get rid of coro refcounting - simply crash in other interpreter threads by nulling the pointers on clone
Simplify warn/die hook handling when loading Coro - the convoluted logic seems no longer to be necessary
Use libecb instead of our own home-grown gcc hacks
Document alternatives to Coro::LWP - please use them
Work around another mindless idiotic needless bug in openbsd/mirbsd's sigaltstack
I had to add a patch to remove a bit of CFI assembler code in coro.c for distributions that had too old a gcc/gas combination (anything older than Fedora 11)
Updated perl-IO-AIO to 3.92:
(libeio) work around a Linux (and likely FreeBSD and other kernels) bug where sendfile would not transfer all the requested bytes on large transfers, using a heuristic
Buggy sendfile caused aio_move/copy to sometimes fail for big files (fortunately it checks that the whole file has been transferred...)
Use libecb for higher performance and higher portability
(libeio) disable sendfile on darwin, it's too broken
Disable fork tests on !linux, as only linux supports mixing pthread and fork in perl
Document the fact that fork doesn't work any more when using this module, on anything !GNU/Linux
Increase timeout in t/04_fork.t, as too many CPAN-tester setups run on a 0.1 MHz cpu (or so)
Contrary to upstream's changelog, the header file ecb.h was still missing so I copied it over from the Coro 6.0 distribution by the same author so that the package would build (CPAN RT#69186)