GHC - Long-term optimization plan?

the fact that this group of people is getting bigger inside the community should normally lead to more changes catered for such ends - since if they truly care about what they are trying to do and if the project is truly open as it claims they should have the motivation to make changes/suggestions

What leads you to believe this? It may sound OK as a theory, and sometimes it may happen, but this is certainly not the rule by any stretch.

Briefly: in many environments things perform more than well enough for most people. You don't need compiler extensions to hit comfortable baseline performance for a lot of things. You might need some optimization work on your code. You'd just do that instead.

The second reason is this: on the other hand, if you have an application and you don't think Haskell will hit the performance characteristics (a perfectly valid conclusion for many things), why would you choose it in the first place at the start? And let's say you did choose it, but you had to implement some Big Optimization to make it feasible. That's... maybe not always the most economically sound choice to base your product/approach on, you know?

Combined with the fact GHC emits decent code today, and you hit a valley where it's fast enough for the majority, but not "Super Web Scale" or not <whatever performance criteria people desire> enough.

The scenario you're describing sounds much more like a Unicorn situation, honestly: one where someone chose Haskell, suddenly they got a lot of money somehow and were entrenched, and now GHC wasn't working at Web Scale or something, but the technical effort to undo the Haskell code was too great. Then, there would be some reasonable justification for the engineering work on GHC.

There are obviously exceptions to all this and these scenarios could play out differently. But realistically? Most of our development funding comes from very few sources, people working for free, or graduate students on grants.

If any one of this "group of people" that wants faster code, that's getting bigger inside the community want, to, like, implement a new register allocator, improve low-level optimization passes, reduce latency, investigate performance, make code smaller and more efficient, or really do anything -- they are absolutely free to do that at any time, and I think lots of people would like it. I honestly cannot think of a reason any developer would reject it (outside of the code just being bad, I guess).

But you have to ask yourself why that hasn't happened. Labor does not magically appear, just because we really really want it to.

/r/haskell Thread Parent