Pull the latest dmd, druntime, and phobos from github.
dmd and druntime can be built successfully, but not phobos.
While building phobos, you'll see a bunch of warning and deprecation messaged, followed by an error:
C:\dmd\import\core\thread.di(431): Warning: instead of C-style syntax, use D-style syntax 'void[ThreadSize - __traits(classInstanceSize, Object)] data'
C:\dmd\import\core\thread.di(788): Warning: instead of C-style syntax, use D-style syntax 'void[ThreadGroupSize - __traits(classInstanceSize, Object)] data'
C:\dmd\import\core\thread.di(1109): Warning: instead of C-style syntax, use D-style syntax 'void[FiberSize - __traits(classInstanceSize, Object)] data'
std\internal\math\biguintx86.d(120): Deprecation: asm statement is assumed to be impure - mark it with 'pure' if it is not
std\internal\math\biguintx86.d-mixin-141(141): Deprecation: asm statement is assumed to be impure - mark it with 'pure' if it is not
std\internal\math\biguintx86.d(147): Deprecation: asm statement is assumed to be impure - mark it with 'pure' if it is not
std\internal\math\biguintx86.d-mixin-158(158): Deprecation: asm statement is assumed to be impure - mark it with 'pure' if it is not
std\internal\math\biguintx86.d(163): Deprecation: asm statement is assumed to be impure - mark it with 'pure' if it is not
std\internal\math\biguintx86.d(120): Deprecation: asm statement is assumed to throw - mark it with 'nothrow' if it does not
..
..
..
std\internal\math\biguintx86.d(1114): Deprecation: asm statement is assumed to throw - mark it with 'nothrow' if it does not
std\internal\math\biguintx86.d-mixin-1158(1158): Deprecation: asm statement is assumed to throw - mark it with 'nothrow' if it does not
std\internal\math\biguintx86.d(1159): Deprecation: asm statement is assumed to throw - mark it with 'nothrow' if it does not
std\internal\math\biguintx86.d-mixin-1195(1195): Deprecation: asm statement is assumed to throw - mark it with 'nothrow' if it does not
--- errorlevel 1
Comment #1 by r.sagitario — 2014-10-12T10:01:50Z
core/thread.di has been deleted some time ago. You will have to remove it from your druntime/import/core directory. It's not clear from the output, but please also make sure that your import path points to the druntime import folder from git, not the folder of a released dmd.
The deprecation messages are annoying, but should not stop the build.
Comment #2 by andre — 2014-10-12T11:28:35Z
(In reply to Rainer Schuetze from comment #1)
> core/thread.di has been deleted some time ago. You will have to remove it
> from your druntime/import/core directory.
>
> The deprecation messages are annoying, but should not stop the build.
OK. Just to be safe, I deleted my existing dmd, druntime, and phobos development directories, and pull the latest again from github.
Indeed, core/thread.di is not exist in druntime anymore.
But phobos still cannot be built, like stated in my first post.
> It's not clear from the output,
> but please also make sure that your import path points to the druntime
> import folder from git, not the folder of a released dmd.
Hmm so that means I need to modify sc.ini?
(On my laptop, the released dmd is in C:\dmd)
Comment #3 by r.sagitario — 2014-10-12T18:32:51Z
>Hmm so that means I need to modify sc.ini?
> (On my laptop, the released dmd is in C:\dmd)
The version of dmd used to build git druntime and phobos should be also current git. Most people do this by specifying the path to dmd when invoking make:
make -f win32.mak DMD=../dmd/src/dmd
assuming dmd, druntime and phobos are fetched into parallel folders.
In this case, you will also have to create an sc.ini in the dmd/src folder with appropriate settings (import and library search paths). You should also copy link.exe from the release folder into the same folder.
Comment #4 by andre — 2014-10-13T01:08:27Z
(In reply to Rainer Schuetze from comment #3)
> The version of dmd used to build git druntime and phobos should be also
> current git. Most people do this by specifying the path to dmd when invoking
> make:
>
> make -f win32.mak DMD=../dmd/src/dmd
>
I use a different approach here. After successfully building dmd from git, I copied all the executables to C:\dmd\bin (replacing the old ones).
So far, this works fine. Hopefully this won't cause any problem.
Comment #5 by andre — 2014-10-13T15:21:34Z
(In reply to Rainer Schuetze from comment #1)
> core/thread.di has been deleted some time ago. You will have to remove it
> from your druntime/import/core directory. It's not clear from the output,
> but please also make sure that your import path points to the druntime
> import folder from git, not the folder of a released dmd.
>
> The deprecation messages are annoying, but should not stop the build.
I think I misunderstoodd your post. I deleted thread.di from existing (stable) dmd directory, and phobos can be built.
Case closed.