On Friday, 22 July 2016 at 20:26:50 UTC, Rufus Smith wrote:
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.
LDC is fairly up to date. In fact, it recently shipped an alpha
version with support for the 2.071 frontend, while DMD 2.072 is
still in beta. So, not that bad, just one version behind. I
started a project a couple months ago with DMD 2.071. I'm still
working on it, and now I can also use LDC.
The real problem is GDC, which apparently is currently at 2.066.