95 karma · joined August 28, 2015
As for GHC compile times... hard to say. The compiler does do a lot of things. Type checking and inference of a complex type system, lots of optimizations etc. I don't think it's just some bug/inefficient implementation, bc. resources have been poured into optimizations and still are. But there are certainly ways to improve speed. For single issues, check the bug-tracker: https://gitlab.haskell.org/ghc/ghc/-/issues/?label_name%5B%5...
For the big picture, maybe ask in the discourse[1] or the mailing list. If you want to contribute to the compiler, I can recommend that you ask for a gitlab account via the mailing list and introduce youself and your interests. Start by picking easy tickets - GHC is a huge codebase, it takes a while to get familiar.
Other than that, I'd say some of the tooling could use some IDE integration (e.g., VS Code plugins).
Many problems can be reduced to SAT and then you can employ an off-the-shelf SAT/SMT solver to solve it for you. Etc etc.
But in general, being able to reduce problem A to problem B implies that A is not harder than B. I.e., to show that a problem P is undecidable, you can reduce the Halting problem to P.
TSP is NP-hard and can be reduced to SAT, then solved with a SAT solver. But something like determining whether a player has a winning strategy in unrestricted chess (with an nxn board, for arbitrary n) is in EXPTIME and can't be reduced to an "easier" problem.
Edit: Someone ITT also mentioned ILP (integer linear programming). Also a good example. E.g., many optimization programs can be mapped to ILP.
Anyway, I do like the academic side of things and so many topics that I would have never gotten into (compilers, formal methods...), so I wouldn't want to miss it. Just wish I had finished sooner...
That being said, while there are alternative preludes, I'm not sure how or when (or ever) the current prelude will be changed or replaced.
In terms of language evolution, the community seems to focus on further extensions of the Type System (linear types, quicklook impredicativity, dependent types), where I think there is a bigger need in better tooling. Of course, there too, lots of things are happening, like haskell-language-server, ghc-debug etc. etc. But still lots of work to do. Would be great if more people worked on modern tooling and improving GHC. And even better if more companies would fund that =)
Maybe in libstdc++, but what else would you use there.
I wanted to know what register allocation algorithms GCC implements, but I can't even find it. It's all files with cryptic names and hundreds in one directory. You can find _even less_ documentation, talks and blog posts about GCC internals :(
I'm a bit conflicted. On the one hand, I am all for language diversity and empowering local languages. It may also help novices and very young learners. On the other hand you are already learning an unfamiliar formalism and it hinders interoperability, sharing and collaborating. Hm..
I really love his accent xD Reminds me of my semester in Naples <3
Anyway, we were using talky.io, which is also a WebRTC based solution and it worked really well. No registration, good Audio/Video quality, screen sharing. No background blurring though, if that's what you need.
Is writing valid BPF programs really that "hard"? E.g., does one often have to rewrite programs bc. the verifier wouldn't accept them? Do you see a need to extend BPF with more capabilities? (bounded loops have been added in Kernel 5.3, but maybe something else)
Thank you.
I'd agree with some sentiments in this comment section, that you might want to find a niche, as competing with Duolingo or Babbel would be difficult. Duolingo doesn't too well with "smaller" languages and different scripts.
Are you using a TTS engine for the voice (I assume)? I was looking for TTS for a smaller language I'm studying, but I couldn't find anything. I hope that something comes out of the Mozilla's Common Voice project.
Anyway, I've been using Duolingo since ca. 2014 and it didn't shutdown... Plus, it's free - what do you have to lose? Your progress on some language learning app? You won't lose the knowledge gained.