Revision history for subs-parallel 0.09 Mon Nov 30 20:21:38 2015 * fix broken POD tests 0.08 Sat Jan 6 02:01:34 2007 * bugfix: overriden CORE::GLOBAL::ref came without a prototype and thus resulted in breakage * added caveat regarding the interaction between this module and Catalyst (and possibly other modules) * fixed some typos, reformatted this Changes file 0.07 Sun Jun 19 12:30:10 2005 * s/parallelyze/parallelize/g Thanks to Christian Renz (crenz AT web42.com) for promptly reporting me the right way to spell the word. As a non-native English speaker I'm prone to this kind of errors, since it was a word I've never heard before. Fortunately, the module is very new and it wasn't too late for a big interface change like this one. I confess I'm really glad to have this kind of feedback. 0.06 Sun Jun 19 01:33:00 2005 * Fixed the Makefile.pl. It seems that Module::Starter generated a wrong output file which only works on Windows (paths with '\' instead of '/'). This has been fixed. Thanks to Sébastien Aperghis-Tramoni (SAPER at cpan.org) for pointing it out. 0.05 Sat Jun 18 09:45:59 2005 * Fix problems with Pod::Coverage failing on some subs which were the last ones added and should be private. Now it should be successfully installed without "force". 0.04 Tue Jun 17 23:26:44 2005 This is more of a fine-tuning version, just to guarantee that some specific situations will work as expected. * First CPAN upload after giving up waiting an answer from the folks at the official module-list. * Some simple test cases added. * Now, parallelyzed subs keep their prototypes. This didn't happen before, so you couldn't parallelyze LWP::Simple's get() without a warning. It would DWYM, though, but it seemed wrong. So this is fixed but introduced the dependency of Scalar::Util (which would end up being included anyway, as there's a lot of magic going on here). * CORE::GLOBAL::ref() is now overriden in order to make it DWIM with returned objects (previously, it would returns 'subs::parallel'). 0.03 Mon Jun 13 20:50:25 2005 * Refactored the functional interface, so it makes more sense. * Now there's documentation! Including a big "CAVEATS" section. * Previously if you never used the return value of a parallelyzed sub (i.e. it was called in void context) some memory would be leaked due to non-detached threads waiting to be joined. Now, when the return value goes out of scope (or never even enters, as in void context) the threads are detached. * The previous fix resulted in another bug which caused threads to be incorrectly detached. This has been worked around. * parallelyze() was causing "Scalars leaked: 1" warnings. Although I don't really, understand why, it has been fixed. All I needed to do was to change its definition from sub parallelyze (&) { parallelyze_coderef(@_)->() } to sub parallelyze (&) { parallelyze_coderef(shift)->() } As I read somewhere, I suspect there's just too much magic associated with @_. * The "parallel" attribute is now known as "Parallel" due to perl interpreter whining. * 0.03 is a much more respectable version number (hence the number of issues fixed / worked-around). 0.02 June 10, 2005 This was supposed to be the first public version. But I decided to bump up the version number because it seemed like the way to go. Besides, who would use a module that is only version 0.02 and doesn't have that many features? ;) * "parallel" attribute handling implemented 0.01 June, 2005 * Gathering ideas. * Making it just work.