PaulHowarth/Blog/2016-03-09

Wednesday 9th March 2016

Fedora Project

  • Updated perl-Apache-Session-Browseable to 1.2 in F-24 and Rawhide:

    • Replace MD5 by SHA256
    • Replace serialization by JSON

Local Packages

  • Updated perl-MCE to 1.700:

  • Bug Fixes

    • Fixed race condition on Windows for non-threaded workers
    • Updated MCE Models to not fail when running inside an eval statement; this addresses CPAN RT#105557 and CPAN RT#105559

    • Added new MCE option loop_timeout to prevent the MCE Manager process from hanging perpetually; the manager process wrongly assumes a worker is still running when the worker died in an uncontrollable manner (CPAN RT#111780)

  • Enhancements

    • Perl 5.10.1 or later is required to run MCE 1.7; Perl < 5.10.1 lacks 'overloading.pm'

    • Added code in MCE::Grep's documentation for parsing huge files

    • Added support for running MCE with Perl under MobaXterm on Windows

    • MCE/examples and MCE/images are no longer included with the distribution: these are maintained separately at https://github.com/marioroy/mce-examples and https://github.com/marioroy/mce-assets respectively

    • MCE performs channel locking via a pipe or socket depending on platform; previously, locking was through file locking using flock - this resolves the slow locking performance on Cygwin

    • Optimized signal handling including improved support on Windows
    • Reduced overhead during spawning and job submissions on Windows and Cygwin; this enables IPC to complete up to 20x faster, thus benefiting Monte-Carlo simulations; e.g. calling ->run(0) or ->process(...) repeatedly

    • The MCE::Flow and MCE::Step Models can take an anonymous array for specifying use_threads uniquely for sub-tasks

  • New Features

    • Added MCE::Hobo for running code asynchronously, which provides async/join functionality for processes similarly to async/join in threads; it includes ->is_joinable, ->is_running, ->join, ->kill, ->list, ->waitall, ->waitone, and other methods not mentioned here

    • Added MCE::Shared for sharing objects/data between threads/processes

    • Added MCE::Shared::{ Array, Handle, Hash, Ordhash, and Scalar }

    • Added MCE::Shared::{ Condvar, Minidb, Queue, and Sequence }

    • Added MCE::Shared::{ Server }

    • Added methods ->await, ->enq, and ->enqp to MCE::Step

    • Added method ->await to MCE::Queue

    • Added option max_retries => N for retrying a failed chunk from a worker dying while processing input data or sequence of numbers

    • Added option posix_exit => 1 to avoid END and destructor processing; this is necessary for running with Tk and child processes or with use_threads => 0

    • Seeds the Math::Random generator automatically when present for non-threads to avoid child processes sharing the same seed value as the parent and each other; the new seed is computed using the current seed, thus it's okay to set the seed at the application level for predictable results


Recent