Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Quite possibly, but I suspect there are good reasons why the existing runtime is strict.

In any case, regardless of the underlying motivation, it is certainly an interesting fact that one of the largest commercial Haskell(ish) codebases uses a strict variant of the language.



Mu is not Haskell, it is entirely different language.

The Haskell codebase that made Mu possible is not strict.


> their own dialect of Haskell called Mu. [emphasis mine]

>Mu has a strict runtime, which makes program performance easier to analyse and predict – but prevents us from just copy-pasting some Haskell libraries that rely crucially on lazy evaluation. [emphasis mine]

If Mu were an entirely different language then you wouldn't be able to copy-paste any Haskell libraries. See also e.g. here: https://www.quora.com/Why-did-Standard-Chartered-need-its-ow..., https://www.youtube.com/watch?v=hgOzYZDrXL0


I can copy-paste some of Haskell definitions into Agda source file and vice versa. I can copy-paste some of C code into C++ source and vice versa. Given C preprocessor, some Lisp code can be moved into C or other languages.

The likeness of languages' syntaxes does not mean they are the same.


https://anil.recoil.org/papers/2011-cufp-scribe-preprint.pdf

> Mu is a true Haskell dialect in that code written in Mu may be compiled with a Haskell compiler.

> [...]

> Their experience with strict semantics has been positive. Particularly useful is the ease of obtaining meaningful stack traces, tracking resource usage, […]

My point was that "if S&C is to count as a Haskell success story (which it's often touted as), then it's fair to point out that it's a codebase where eager evaluation is used throughout." Please note the 'if'. The article presents S&C's large Mu codebase as a Haskell success story. In this context it's perfectly fair to point out that Mu has a strict semantics.

If you want to insist that Mu is an 'entirely different' language to Haskell then that's fine. As with natural languages, there's no objective line to be drawn between 'different dialect' and 'different language'. However, anyone who holds to this view obviously cannot follow the article in presenting a large Mu codebase as an example of Haskell in production.


What is described in article is a subset of Haskell: "...as long as one is writing mostly vanilla Haskell you can’t tell the difference."

And then it proceeds to tell us that you can't tail recurse.

Mu is different language which uses Haskell ecosystem.

What I am interested in and what article does not tell is how big the actual Mu compiler is. I think it is in the hundreds of thousands of lines of code, 200K SLOC or more.

And it is still a big code base and it's use of Haskell is success.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: