in reply to Re^2: Slow evolution of Perl = Perl is a closed Word (NQP, parrot concurrency == Oh dear.)
in thread Slow evolution of Perl = Perl is a closed Word

If you're looking for the problems of tacking on threads afterwards, you can also take a look at the Python Global Interpreter Lock (and the discussion around it). While I'm not a fan of Guido van Rossum's striving for speed for speeds sake, the discussion highlights the problems that you encounter when you don't plan for share-everything threading/lightweight threading/fibers/coroutines from the start.

Of course, there remain the semantical problems of the global name space of Perl, especially what happens in a share-everything model with the following code:

sub quote_string { qq{"\Q$_[0]\E"} }; sub send_to_client { my $client_socket = shift; async { print {$client_socket} quote_string($_) for @_; }; }; function send_strings_to_client { local *quote_string = sub { qq{'\Q$_[0]\E'} }; send_to_client(@_); };

With a share-everything, it's not really clear how overwriting the globs should be handled. I would be for "overwriting (code) glob entries is discouraged" and there should/could be a strict 'thread-globs' pragma that prevents you from assigning to glob entries. This should prevent 95% of all those problems.

  • Comment on Re^3: Slow evolution of Perl = Perl is a closed Word (NQP, parrot concurrency == Oh dear.)
  • Select or Download Code

Replies are listed 'Best First'.
Re^4: Slow evolution of Perl = Perl is a closed Word (NQP, parrot concurrency == Oh dear.)
by BrowserUk (Patriarch) on Sep 14, 2007 at 01:22 UTC

    Corion. Sorry for taking so long to get back to you, but I was hoping for some ... um ... something. Anything. Some reaction from those "in the know", to my earlier posts. Something to indicate that I was wrong about Parrot. But nothing.

    A monk, so confident in his appraisal that I "had done no research", that he posted his "just cos your on a broken platform" condemnation, anonymously.

    Back in the other part of this thread, before erroneousBollocks decided to lift his misunderstanding to a new level, chromatic made a suggestion that he would listen if I had something useful to say. When I asked him off-line if he was seriously inviting me to make a proposal, he opened his reply with..."I'm not a fan of threading but...".

    And in that single phrase he summed up the entire problem. Nobody developing Parrot believes that threading is necessary. And while that situation continues, and whilst those with the insight to see beyond the 22 year old straight jacket that is POSIX, to a future (actually now. I just saw an ad for a 4-core machine for less than $1000), in which multiple processors are ubiquitous, and threading is the only way to usefully exploit them, keep quiet...perl is doomed.

    In just the same way as the Perl experience for Win32 users will never improve, while the key players, (according to one recent post here, from TimToady on down), continue to use a lame unix emulation (Strawberry Perl) as their only experience of Perl on Win32.

    Read again, and weep.


    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.