On Monday, 29 February 2016 at 16:22:41 UTC, Chris Wright wrote:
One of the important ones is: let's say DMD depended on Phobos. I'm developing Phobos and DMD side by side. I need a new function for DMD, and it would fit nicely in std.algorithm. So I add it to Phobos in a PR, add my code to DMD the next day -- and suddenly compiling DMD is a mess.
That would be the sign of a _completely_ messed up development process which would suggest problems way beyond using a standard library for writing a self-hosting compiler...
And that situation is worse. If DMD added a new feature earlier that release cycle and Phobos started depending on it, now you can't compile Phobos with the prior version of DMD, and you can't compile DMD with the prior version of Phobos, so you need to check out potentially several different revisions of DMD and Phobos iteratively to build their next versions.
Err... no, you use a preselected _stable_ version for the current non-stable build and archive stable builds you depend on. Of course, to get there you need a stable branch in the first place.
Basically all the rational arguments for not using phobos in the front end can be turned into arguments for not relying on phobos in any major project.
