On Monday, 24 May 2021 at 10:47:16 UTC, Johan Engelen wrote:
> My standpoint on the original topic of "make it easier to experiment with the compiler": I disagree with making the code more stable. If anything, we should be refactoring much more aggressively, changing function names etc.
Thank you for bringing us back on topic. Yes, or at least have a map of what is considered stable and well encapsulated and what is considered unstable and likely to change.
I don't believe this is a matter for git rebasing tooling/understanding. I just don't want to build directly on top of something that looks like it is likely to change (from a software engineering point of view).
I consider every hour spent on rebasing, dealing with regressions etc to be losses, or more importantly "not fun". I only want to do "not fun" things if I can learn something from them.
D has to rely on hobbyists, so getting "not fun"/"no learning potential" out of the way is important.
> others too). The frontend source code is not nice, but I'm not drawn to fix it at all (even if paid for) because I am not ashamed by it as I would be if I would have some shared 'ownership' of it.
That is a bit harsh, of course all code bases that have evolved over a long time are not nice, parts of LDC too.
Anyway, my main wish is just to be able to inject my own IR between the frontend and backend.
My feeling right now is that to do that I have to choose LDC and then heavily modify it. I sense that in the end I basically will end up with my own backend, something I don't want to maintain...
Think of it like LEGOs. The front end is a green brick and the back end a red brick. I want to insert a white brick between them. I don't want to modify the bricks more than "cleaning" the studs.
Another analogy, if the frontend is an engine, my IR is the transmission and the backend is the wheels, then I don't mind that the current engine is oily and grease, I leave that to other mechanics to clean up. Same with the wheels. I just want to be an expert on the transmission and evolve it from a manual transmission into a nice automatic transmission. Right now the engine is coupled directly to the wheels... which basically means being forced to drive in the same gear all the time.
I am less interested in getting my fingers greasy and am happy to leave that to others as long as I can focus on polishing the chrome on my transmission line...
(I belive many things could be done with an intermediary high level IR, such as ARC, stackless coroutines, heap optimizations... LLVM is too low level. AST is too cumbersome.)