News for hackers. Stuff that matters.
Re:Composable multi-threaded parallelism in Julia by pka on Tuesday July 23, 2019 @07:24PM (#20511101)
For completeness' sake, Haskell has had this for over a decade :) A SO thread that gives a nice overview [0], the paper [1], the library [2]. Here's how a parallel fib looks like:

  fib :: Int -> Int
  fib n
    | n <= 1    = 1
    | otherwise = x ‘par‘ (y ‘pseq‘ x + y + 1)
    where
      x = fib (n-1)
      y = fib (n-2)
[0] https://stackoverflow.com/questions/958449/what-is-a-spark-i...

[1] http://simonmar.github.io/bib/papers/strategies.pdf

[2] http://hackage.haskell.org/package/parallel-3.2.2.0/docs/Con...

Re:Composable multi-threaded parallelism in Julia by cygx on Wednesday July 24, 2019 @09:08AM (#20514836)
Perl6 also has been able to do this for a couple of years:

    sub fib(Int $n) {
        return $n if $n < 2;
        my $t = start { fib($n - 2) }
        fib($n - 1) + await($t);
    }
Re:Composable multi-threaded parallelism in Julia by pkofod on Tuesday July 23, 2019 @11:18PM (#20512149)
For complete completenes sake, Haskell has existed for almost three decades :)
Re:Composable multi-threaded parallelism in Julia by dwohnitmok on Wednesday July 24, 2019 @01:28AM (#20512566)
While the earliest versions of Haskell date back that far, those combinators only came out in 2007 (IIRC).
Re:Composable multi-threaded parallelism in Julia by chrisseaton on Wednesday July 24, 2019 @02:45AM (#20512858)
Those functions weren’t part of Haskell back then.
Re:Composable multi-threaded parallelism in Julia by pkofod on Wednesday July 24, 2019 @02:55PM (#20518431)
What do you mean? That's my point exactly. While Haskell has that now, they didn't always have it.

If a programming language is created in 2019 they can certainly instantly incorporate insights from existing technology in their design an plans. However, that doesn't mean that any programming language/compiler project started today will instantly have all of those features. Things take time in each new framework.

Re:Composable multi-threaded parallelism in Julia by chrisseaton on Wednesday July 24, 2019 @06:15PM (#20520520)
I don't know what your point is, then.

Haskell didn’t have it originally. Ok. But what do you think that says about whether it’s a new idea or not? What’s the connection? Why mention it in this thread about whether it's a new idea or not?

Re:Composable multi-threaded parallelism in Julia by StefanKarpinski on Thursday July 25, 2019 @12:49AM (#20522638)
At what point did anyone claim it was a new idea? The blog post cites prior art in the very first paragraph. Not in a footnote—in the main text. The top post here cites several other languages with a similar model. This entire thread reads like a bunch of dudes who are really dying to "well, actually" someone.
Re:Composable multi-threaded parallelism in Julia by chrisseaton on Thursday July 25, 2019 @04:37AM (#20523673)
I think people were responding to

> The only systems which have supported compute-oriented composable parallelism like this are Cilk and TBB

Because it isn’t true. Haskell is an example of why it isn’t true.

Re:Composable multi-threaded parallelism in Julia by StefanKarpinski on Friday July 26, 2019 @05:57PM (#20538707)
It's extremely debatable that Haskell is compute-oriented. I know that Haskell people like to talk about doing numerical computing in Haskell, but in reality it does not seem to be a thing. No one has ever used Haskell to implement large scale scientific computations on supercomputers, for example.
Re:Composable multi-threaded parallelism in Julia by tavert on Friday July 26, 2019 @07:41PM (#20539275)
Re:Composable multi-threaded parallelism in Julia by DNF2 on Monday July 29, 2019 @09:48AM (#20554537)
This particular example appears to be an implementation of a 'Computer algebra system', which seems to be a type of symbolic computing rather than numerical computing.
[dead]
Re:Composable multi-threaded parallelism in Julia by tavert on Sunday July 28, 2019 @08:00PM (#20550519)
You're really asking for a Dan Luu sequel here.