Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • If not for the fact that loading Wx is an all or nothing proposition

    There is a patch to change that in a wxPerl branch; it should work but needs some real-world testing. I think Steffen was waiting for the Padre changes above before testing it.

    • Well, it was actually a bit different. I implemented the SlaveDriver bit because it's a precursor to being able to use the wx-threading-only branch. I got sidetracked fixing the problems the new approach created for Padre. (Andrew Bramble did a lot of the fixing, actually!) Then, I got sucked into other work.

  • "And if we can drop this further to around 5 meg, we get close to the memory cost of a forking/process model, which is the only other parallelism model available in the short term that supports many cores transparently."

    Yes, but it's not really available because it's not portable to win32. Besides: A lot of the memory you save with the fork() copy-on-write may eventually be copied when accessed by Perl. Pseudo-code:


    my $foo = 1.;
    fork();
    # $foo SV shared
    if ($foo == 1) {}
    # $foo SV likely not shared any more =

  • PS: ithreads aren't slow per se. It's just the communication between them that sucks. Just like communication between processes...

  • I have been prototyping a new threading system that's modeled after Erlang: threads share nothing with each other and can only communicate through a channel. I think that would be a better fit for background processes. You can find a rather old version on CPAN [cpan.org]. I'm planning to push a largely rewritten version to github as soon as it's remotely functional again.