On 12/03/2013 02:02 PM, Val Markovic wrote:
Agreed with Daniel. The D approach would be best. They one frontend and
then dmd (frontend + proprietary backend), ldc (frontend + llvm) and gdc
(frontend + gcc backends) use that. This would be the best for the Rust
ecosystem, users and developers of the various compilers; there's no
duplication of efforts and critically, very few compiler-specific bugs.
One can reasonably assume that any code written for dmd will work with
ldc and gdc.

LDC and GDC do not use the same frontend by choice, but because historically every attempt to create a new D frontend has failed to bear fruit (SDC and DIL) in part because of a lack of a concrete specification and the resultant lack of clarity of how exactly some code should work. The reliance (over-reliance in my opinion) on the DMD frontend resulted in a lack of focus on creating a good language specification which to this day results in debates about what exactly constitutes a language change and what constitutes a bug fix.

Multiple independent compilers would require a common, detailed spec to
reach any level of interoperability. That comes with its own costs and
complexities and IMO I don't think they're worth it.

A new frontend implementation can motivate and help the writing of the spec to begin with, assuming Philip is willing to keep implementation notes as he goes along.

-SL
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to