5 ms·
There has been out-of-tree GCC support for D for several years. I wonder what has changed that they're letting it in to the official repository.
by LukeShu 9y ago
There has been out-of-tree GCC support for D for several years. I wonder what has changed that they're letting it in to the official repository.
- theandrewbailey 9y agoThe reference compiler got open sourced about 2 months ago. https://news.ycombinator.com/item?id=14060846 https://news.ycombinator.com/item?id=14060846
- CogitoCogito 9y agoHow does this work exactly from a licensing perspective? Will they merge the dmd sources into the gcc tree? Does this mean that the D compiler in gcc will now be GPL(v?) licensed? This is certainly possible since dmd is licensed permissively. https://github.com/dlang/dmd/blob/master/LICENSE.txt https://github.com/dlang/dmd/blob/master/LICENSE.txt I don't mean this to start a fight over licenses I'm just curious how it works when gcc lets other projects in.
- ben-schaaf 9y agoI don't see how dmd would be mergable with gcc, completely different backends. gdc however is a different story.
- jpf91 9y agoAlthough the recent DMD backend license change does not affect GDC, GDC is not a complete standalone implementation of a D compiler. GDC (and LDC, the LLVM D compiler) use the frontend (lexer, parser,semantic) provided by the DMD reference compiler. GDC and LDC then map the AST produced by the frontend to something GCC and LLVM understand. The DMD frontend has always been boost licensed. So the licensing question is valid here as we'll include boost frontend code into GCC. But I don't really have an answer to the question ;-)
- jabl 9y agoIn general, it's possible to create a combined work made from parts with different licenses, provided that the licenses are compatible. So if you have part A licensed under, say, the MIT license, and part B licensed under the GPL, then the combined work falls under the GPL (due to the GPL "virability", and since the GPL and MIT are compatible in the sense that the GPL restrictions are a superset of MIT ). You can still later on extract part A and distribute that under the MIT license. I don't know the details of the D compiler frontend that has now become part of GCC, but I'd imagine its something like that. E.g. the GCC Go frontend is, AFAIK, BSD licensed.
- qznc 9y agoThe reference compiler is unrelated. The frontend has been Free Software since the beginning. The reference backend was only Open Source (not freely redistributable). So, alternative backends were plugged to the frontend, LLVM and GCC. They all share the same frontend still, although LLVM and GCC slightly lag behind the reference in version (LLVM is nearly in sync). This announcement is official recognition after Iain and helpers did the grunt work consistently for years now.
- amyjess 9y ago> The reference backend was only Open Source (not freely redistributable). Free redistributibility is part of the Open Source Definition. It is literally the first item: https://opensource.org/osd-annotated https://opensource.org/osd-annotated
- boondaburrah 9y agoI think they meant lower case "open source" (as in the source is open (anyone can read/compile it)). There are plenty of software that are open source but not freely distributable, such as Unreal Engine.
- davexunit 9y ago"open source", no matter the capitalization, means what the OSI has defined. Unreal Engine is neither Open Source nor open source. It is simply proprietary. To say otherwise is a practice known as "open washing" that companies use to appear community friendly when in fact they are not.
- mindcrime 9y agoThis. While OSI may not have been successful in getting an official trademark on the phrase "Open Source", in practice almost everybody treats "Open Source" or "open source" as meaning what the Open Source Definition states. Other "source available" approaches are more correctly termed "shared source" or something.
- dbcurtis 9y agoMy guess is that is also why. gcc wants to be assured there are sufficient maintainers. If a crew has been maintaining out-tree-support with a good track record, that demonstrates maintainability.
- le-mark 9y agoIs this what happened to gcj, lack of maintainers? I always thought it was a shame support for it lapsed, a to native java compiler would be awefully nice to have.
- dbcurtis 9y agoCould be. I don't know the specifics. I do know that the bar is pretty high, in general, before gcc will commit. I think that simply goes with the territory with such a large project where a lot of people depend on it to just work. For example, an acquaintance plays (at least used to) a large role in the AVR (8 bit) back-end. He went to a gcc summit to lobby for avr-gcc being upgraded to a support tier where functional (not performance) regressions would be release show-stoppers. His argument: Over a million downloads per month. It took that much to get the gcc steering committee to even consider it. gcc is a big project, they can't afford to make commitments lightly.
- phkahler 9y ago>> I wonder what has changed that they're letting it in to the official repository. <sarcasm (or something)> Because they need an alternative to the mess that is C++ and Rust is already married to LLVM.</sarcasm>
- ptrott2017 9y agoThe out of tree codebase - was extensively updated with development being led by Ian Buclaw. Ian has given some presentations on all the changes and updates at the recent D language conference - Dconf 2017. see https://www.youtube.com/watch?v=g-5T4zlc_bc https://www.youtube.com/watch?v=g-5T4zlc_bc
- zombinedev 9y agoI think the main factor is that the primary contributor to GDC (Iain) made a giant push for this to happen in the last 6-12 months. Just look at this graph: https://github.com/D-Programming-GDC/GDC/graphs/contributors https://github.com/D-Programming-GDC/GDC/graphs/contributors Great work, Iain!!!