winelib, Cygwin, midipix
Fair enough of the principle, but do any of those work like that? Last I checked there is a huge amount of code in std and the community that assumes a unix-windows dichotomy.
- A huge amount of boilerplate for each crate
Huh? My proposal is that we cfg just like today, but something checks to ensure regardless of the (valid) combination of cfg tokens, there are no unresolved identifiers. The compiler, not the users “proves” that that the cfgs are total. If anything the problem would be compilation time bloat, not code bloat.
- Semantically backwards
I am not sure what you mean.
- Relatively inextensible
Do you mean any(os(windows), os(unix)) seems total, but then somebody adds multics to rustc, so the code wasn’t so portable after all? We can avoid that.