Thread overview
Compiling druntime gives error messages
Nov 04, 2014
tcak
Nov 04, 2014
H. S. Teoh
Nov 05, 2014
Joakim
Nov 05, 2014
Domingo
Nov 06, 2014
Joakim
Nov 06, 2014
tcak
Nov 06, 2014
tcak
November 04, 2014
I have DMD 2.066.1 installed on 64-bit Ubuntu 14.04.

I downloaded all files from
https://github.com/D-Programming-Language/druntime

I use following command line to compile druntime to
generate library.

make -f posix.mak DMD=dmd

First few lines are as follows:
dmd -c -o- -Isrc -Iimport -Hfimport/core/sync/barrier.di src/core/sync/barrier.d
src/core/stdc/stdio.d(859): Error: found 'nothrow' when expecting '{'
src/core/stdc/stdio.d(861): Error: mismatched number of curly brackets
src/core/stdc/stdio.d(862): Error: mismatched number of curly brackets
src/core/stdc/stdio.d(863): Error: mismatched number of curly brackets


Then I opened both
./src/core/stdc/stdio.d
/usr/include/dmd/druntime/import/core/stdc/stdio.d

to compare them each other.

On line 859, the downloaded stdio.d has "asm nothrow @nogc".
The installed stdio.d has "asm" only.


Am I downloading wrong druntime codes, or using wrong DMD compiler? It is like downloaded druntime codes are coming from future.
November 04, 2014
On Tue, Nov 04, 2014 at 11:32:34PM +0000, tcak via Digitalmars-d wrote:
> I have DMD 2.066.1 installed on 64-bit Ubuntu 14.04.
> 
> I downloaded all files from https://github.com/D-Programming-Language/druntime
[...]
> Am I downloading wrong druntime codes, or using wrong DMD compiler? It is like downloaded druntime codes are coming from future.

Generally, to compile druntime from git HEAD requires that you use dmd from git HEAD, as a number of compiler / druntime fixes require changes in both. So it's not surprising if the latest druntime fails to be compiled by an earlier compiler.

See also: http://wiki.dlang.org/Building_DMD

(which includes building druntime).


T

-- 
Nobody is perfect.  I am Nobody. -- pepoluan, GKC forum
November 05, 2014
On Tuesday, 4 November 2014 at 23:45:54 UTC, H. S. Teoh via Digitalmars-d wrote:
> On Tue, Nov 04, 2014 at 11:32:34PM +0000, tcak via Digitalmars-d wrote:
>> I have DMD 2.066.1 installed on 64-bit Ubuntu 14.04.
>> 
>> I downloaded all files from
>> https://github.com/D-Programming-Language/druntime
> [...]
>> Am I downloading wrong druntime codes, or using wrong DMD compiler? It
>> is like downloaded druntime codes are coming from future.
>
> Generally, to compile druntime from git HEAD requires that you use dmd
> from git HEAD, as a number of compiler / druntime fixes require changes
> in both. So it's not surprising if the latest druntime fails to be
> compiled by an earlier compiler.
>
> See also: http://wiki.dlang.org/Building_DMD
>
> (which includes building druntime).

Specifically, it was noticed that certain function attribute checks are skipped if the function contains an asm block (https://issues.dlang.org/show_bug.cgi?id=12979), so attributes for asm blocks were added after the stable release:

https://github.com/D-Programming-Language/dmd/pull/4033

Obviously, the stable compiler doesn't recognize those subsequent changes in git HEAD, so you have to compile dmd from git source if you want to compile druntime from the latest git.
November 05, 2014
And what about of back ports of important fixes, changes that can be backward compatible.

In my point of view the 2.0.66.* is a dead release, because it can not compile lots of already existing code that the 2.0.65 and 2.0.67 can.

A D language weakness pointed out on other posts no backports/fixes like gcc and others do.

Not a good thing to grow up the user base.

Cheers !
November 06, 2014
On Wednesday, 5 November 2014 at 17:40:54 UTC, Domingo wrote:
> And what about of back ports of important fixes, changes that can be backward compatible.
>
> In my point of view the 2.0.66.* is a dead release, because it can not compile lots of already existing code that the 2.0.65 and 2.0.67 can.
>
> A D language weakness pointed out on other posts no backports/fixes like gcc and others do.
>
> Not a good thing to grow up the user base.

While it may be better for users if such backporting was done for stable releases, the D community doesn't have the resources to do that right now.  Perhaps users can post bounties on bountysource for specific features they'd like to see backported, as it's thankless work that nobody is incented to do otherwise:

https://www.bountysource.com/teams/d/issues
November 06, 2014
On Wednesday, 5 November 2014 at 03:31:47 UTC, Joakim wrote:
> On Tuesday, 4 November 2014 at 23:45:54 UTC, H. S. Teoh via Digitalmars-d wrote:
>> On Tue, Nov 04, 2014 at 11:32:34PM +0000, tcak via Digitalmars-d wrote:
>>
>> Generally, to compile druntime from git HEAD requires that you use dmd
>> from git HEAD, as a number of compiler / druntime fixes require changes
>> in both. So it's not surprising if the latest druntime fails to be
>> compiled by an earlier compiler.
>>
>> See also: http://wiki.dlang.org/Building_DMD
>>
>> (which includes building druntime).
>
> Specifically, it was noticed that certain function attribute checks are skipped if the function contains an asm block (https://issues.dlang.org/show_bug.cgi?id=12979), so attributes for asm blocks were added after the stable release:
>
> https://github.com/D-Programming-Language/dmd/pull/4033
>
> Obviously, the stable compiler doesn't recognize those subsequent changes in git HEAD, so you have to compile dmd from git source if you want to compile druntime from the latest git.

I downloaded the source codes of 2.066.1 from Downloads page of Dlan. Then I used its druntime folder. It builds properly. Though I still couldn't have made it work with -defaultlib flag. Anyway, I will play with it for a while.
November 06, 2014
On Wednesday, 5 November 2014 at 03:31:47 UTC, Joakim wrote:
> On Tuesday, 4 November 2014 at 23:45:54 UTC, H. S. Teoh via Digitalmars-d wrote:
>> On Tue, Nov 04, 2014 at 11:32:34PM +0000, tcak via Digitalmars-d wrote:
>>
>> Generally, to compile druntime from git HEAD requires that you use dmd
>> from git HEAD, as a number of compiler / druntime fixes require changes
>> in both. So it's not surprising if the latest druntime fails to be
>> compiled by an earlier compiler.
>>
>> See also: http://wiki.dlang.org/Building_DMD
>>
>> (which includes building druntime).
>
> Specifically, it was noticed that certain function attribute checks are skipped if the function contains an asm block (https://issues.dlang.org/show_bug.cgi?id=12979), so attributes for asm blocks were added after the stable release:
>
> https://github.com/D-Programming-Language/dmd/pull/4033
>
> Obviously, the stable compiler doesn't recognize those subsequent changes in git HEAD, so you have to compile dmd from git source if you want to compile druntime from the latest git.

I downloaded the source codes of 2.066.1 from Downloads page of Dlan. Then I used its druntime folder. It builds properly. Though I still couldn't have made it work with -defaultlib flag. Anyway, I will play with it for a while.