www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Compiling druntime gives error messages

reply "tcak" <tcak gmail.com> writes:
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.
Nov 04 2014
parent reply "H. S. Teoh via Digitalmars-d" <digitalmars-d puremagic.com> writes:
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
Nov 04 2014
parent reply "Joakim" <dlang joakim.fea.st> writes:
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.
Nov 04 2014
next sibling parent reply "Domingo" <mingodad gmail.com> writes:
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 !
Nov 05 2014
parent "Joakim" <dlang joakim.fea.st> writes:
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
Nov 05 2014
prev sibling next sibling parent "tcak" <tcak gmail.com> writes:
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.
Nov 06 2014
prev sibling parent "tcak" <tcak gmail.com> writes:
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.
Nov 06 2014