State of the Compiler
Jonathan M Davis via Digitalmars-d
digitalmars-d at puremagic.com
Tue Mar 1 11:53:58 PST 2016
On Tuesday, 1 March 2016 at 13:48:18 UTC, Andrei Alexandrescu
wrote:
> On 02/28/2016 11:57 PM, Walter Bright wrote:
>> There are good reasons for that. But there's no reason why
>> std.algorithm.sort, for example, cannot still be used (cut &
>> paste).
>
> How would cutting and pasting from phobos be better than using
> it? -- Andrei
You avoid a circular dependency. If it's just stuff like the
functions in std.algorithm, it's probably not too bad, but if
anything pulls in std.conv, std.format, std.stdio, etc., you end
up with a bunch of extra stuff, whereas what the compiler really
needs is probably only a small piece of that. And if there's a
bug in any of the Phobos code that the compiler uses, you end up
with a bug in the compiler, which in turn causes bugs when
compiling Phobos...
Copying specific pieces of Phobos and pasting them into dmd does
allow for stuff that's more specific to what dmd is doing and
avoids dependency issues - but it does mean copying, which means
code duplication and can cause it's own set of problems.
I don't know if it's ultimately better to have dmd use Phobos or
not, but it does avoid some potentially weird dependency issues
with bugs if we avoid it. Things already get weird enough when
Phobos depends on itself. Locking the version down like Ola
Fosheim Grøstad is talking about definitely would mitigate the
problem, but it would just be simpler to avoid it. Regardless,
I'll leave it up to the compiler devs to come to a decision on
that one.
- Jonathan M Davis
More information about the Digitalmars-d
mailing list