It makes me sick!
Jesse Phillips via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Thu Jul 27 12:53:10 PDT 2017
On Thursday, 27 July 2017 at 03:34:19 UTC, FoxyBrown wrote:
> Knowing that every time I upgrade to the latest "official" D
> compiler I run in to trouble:
>
> I recompiled gtkD with the new compiler, same result. My code
> was working before the upgrade just fine and I did not change
> anything.
I've had to delete my previous install at least 2 times before.
It is an infrequent headache I hit because I'm not following
appropriate install steps. I cannot expect upstream to support a
DMD folder which has additional files from what they have
provided.
Here is my attempt to explain the problem.
* std/datetime.d has a different mangled name than
std/datetime/package.d.
* The phobos.lib contains the std.datetime.package module and no
longer contains the std.datetime module.
* When the compiler is reading your code it sees imports for
std.datetime and looks at the import location
/install/directory/dmd2/src/std and it writes a reference to the
std/datetime.d file.
* The linker takes over, loads up phobos.lib and barfs since the
referenced symbol was not compiled into your obj file nor the
released phobos.lib.
More recently the headache I've been hitting with upgrades is
improvements to @safe and such. The bug fixes around this cause
libraries I'm using to fail compilation. Even this isn't so bad,
but the library that files is a dependent of a dub package I'm
using. This means I have to wait for the dependent package to
update and release followed by the dub package I'm actually
referencing. So even if I create the needed patches, I have to
wait at each step for the author to merge and tag their release.
(or create a branch of the project and throw it in dub so I can
control all the updates)
More information about the Digitalmars-d-learn
mailing list