Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris

Re^4: Parrot, threads & fears for the future.

by Anonymous Monk
on Oct 25, 2006 at 08:30 UTC ( #580508=note: print w/replies, xml ) Need Help??

in reply to Re^3: Parrot, threads & fears for the future.
in thread Parrot, threads & fears for the future.

In Scheme, all I have to do is signal that a part of my code has no side effects and then my macros can do things like parallelise all the arguments to each function call*. I don't have to think about it any further.

I guess that's an ability that could be build into Perl6 (or even Perl5). That is, signalling that there are no side-effects.

The interesting case is of course, what if the programmer tells the compiler that there are no side-effects, but in reality, there are? The programmer could be deliberately lying, or just not knowing the internals of the language implementation well enough to know (or it could be that in the implementation (aka compiler/interpreter/run-time environment) the programmer developed the program on, there were no side-effects, but there are in the implementation the program is actually run on).

The idea of having parts that are side-effect free available for parallellization is great - but I rather have the compiler determine this for me than the programmer. (Of course, the compiler cannot determine this always, or else one could solve the halting problem. Unless the language is side-effect free to begin with.)

  • Comment on Re^4: Parrot, threads & fears for the future.

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://580508]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (3)
As of 2023-06-08 19:25 GMT
Find Nodes?
    Voting Booth?
    How often do you go to conferences?

    Results (35 votes). Check out past polls.