3 ms·
As someone who has had to deal with legacy C++ compilers from multiple platforms, I didn't have the luxury of dropping compilers I didn't like but instead had t
by epage 5y ago
As someone who has had to deal with legacy C++ compilers from multiple platforms, I didn't have the luxury of dropping compilers I didn't like but instead had to program to the lowest common (working) denominator of those frontends.
For a frontend to be taken seriously, I see the following questions needing to be addressed:
- How long until the frontend is viable?
- What will it take to keep the frontend is viable?
- How far will each frontend lag in shipping lang/lib features?
- What is the relative user upgrade cadence of each frontend?
- How do developers test multiple frontend versions?
- How do developers workaround frontend bugs?
- How do we communicate out frontend support for crates, especially if crate authors take the approach of this person and drop support as they become a problem for them?
A GCC backend for rustc is a smaller, well scoped target that can more easily be kept up-to-date (I would hope, upstreamed in Rust) that resolves a lot of the pressing needs (platform support).
For any finite resource allocation, I see getting a GCC backend to be a priority for quick wins and then focus on gcc-rs as an experimental hedge against future problems.
- Narishma 5y ago> For any finite resource allocation, I see getting a GCC backend to be a priority for quick wins and then focus on gcc-rs as an experimental hedge against future problems. Doesn't that only work if it's the same people working on all those things? AFAIK, it's different people doing the different projects. You can't just re-assign open-source developers however you want.
- CUViper 5y agoYou can't directly re-assign those developers, but you can try to influence their decisions. It's not only about the current developers either, but also potential new contributors that may be considering either project.
- epage 5y agoYes, people can work on what they want and good for them, it helps build a healthy community. What my point is more about the conversation for the larger community of what we want to prioritize and put in the effort to support. If we have the opportunity to influence where people gravitate to, which should it be? If companies want to come in and sponsor work, where would we, as a community, want that to go? Also if gcc-rs "makes it", the cost will shift from that one or two developers to the whole community. We will need to test our projects against multiple versions of each frontend, our projects will need to advertize what they support, Rust will need to get compiler vendor and versions flags for us to conditionalize compilation to handle discrepancies and bugs, and crate authors will need to carry around these compiler conditionals.