On Friday, 22 July 2016 at 19:52:59 UTC, Lodovico Giaretta wrote:
On Friday, 22 July 2016 at 18:30:13 UTC, Rufus Smith wrote:
Trying to compile code that uses GDC, had to import phobos
files from dmd in to project since they are not in the GDC's
phobo lib(the core.sys.windows stuff).
Almost all the errors are related to stuff like
PALETTEENTRY* peNew() return { return _peNew.ptr; }
Does that even make sense?
I'll add that, in general, it's a bad idea to mix the libraries
of the various compilers. In fact, the library has the same
release cycle as the frontend, and is specific to the frontend
version it comes with. GDC is several frontend versions behind
DMD, so GDC cannot support the new features / characteristics
of the recent DMD libraries.
You should always use a Phobos version as old as the frontend
of the compiler you're using.
I don't agree with this. The versions are too far out of sync. It
is better to test the different versions together because they
are not consistent. As I yet I can neither use GDC or LDC because
they don't compile the code that works with DMD. This is a
problem with those compilers. If one could guarantee that the
oldest compiler was always compatible, eventually(reasonably),
with the newest one, it would be a different story. But bugs
creep in. I'd rather work with the reference compiler, the actual
one the language is based off of, rather than work with one that
is not even guaranteed to be maintained properly.
With dmd, I know exactly what I'm getting and I only bother with
the other compilers due to performance, which is not priority
when developing. Hence, I hope that the other compilers are up to
speed once I am finished with developing. This is a risk, but no
more than expecting those compilers to eventually be updated.
Given that the maintenance of LDC and GDC are rather low compared
to DMD, I'd rather stick with DMD.