#acl PaulHowarth:read,write,admin,revert,delete All:read === 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|CVE-2011-2501]], related to [[CVE:2004-0421|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 [[http://cpansearch.perl.org/src/MLEHMANN/IO-AIO-3.92/Changes|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:69186|CPAN RT#69186]]) ----