State of the Compiler

Chris Wright via Digitalmars-d digitalmars-d at puremagic.com
Tue Mar 1 10:06:48 PST 2016


On Tue, 01 Mar 2016 07:00:43 +0000, Ola Fosheim Grøstad wrote:

> On Monday, 29 February 2016 at 23:25:45 UTC, Chris Wright wrote:
>> The second part is an argument against circular dependencies between
>> projects. Phobos depends only on system libraries, libcurl, druntime,
>> and dmd, and it's unlikely to add your project written in D as a new
>> dependency.
>>
>> I'm not sure how that translates to "never use phobos".
> 
> It translates to the same thing for any major project as it does for the
> compiler. If phobos isn't stable enough for the compiler,
> then it isn't stable enough for any major project.
> 
> All we need is a stable release, lock the compiler development to that
> release (add a conditional check for it). For archival purposes all that
> is needed is to ensure that the executable image of this stable release
> can be run in an x86 emulator.

In other words, in mars.d we add:
  static assert(__VERSION__ == 2068);
And occasionally we update that to something not bleeding edge. That's 
pretty extreme. Kinda hostile toward packagers and developers.

I'd set up continuous integration for each dmd release I want dmd to 
compile with, but that's just me.

Anyway, since dmd and phobos share a lot of top contributors and phobos 
tends to be an early adopter for new language features, they're often 
developed together. Plus they both have a lot more contributors than 
anything I've worked on outside a professional capacity. So we want 
either automated checking or a very simple rule. Walter went with a very 
simple rule. That doesn't protect from using newer language features, 
though, so you still need continuous integration. Less surface area for 
problems to crop up, though.


More information about the Digitalmars-d mailing list