Jump to page: 1 24  
Page
Thread overview
Wannabe contributor frustrations
Feb 10, 2016
Márcio Martins
Feb 10, 2016
Chris Wright
Feb 11, 2016
Adam D. Ruppe
Feb 11, 2016
Daniel Kozak
Feb 11, 2016
Jonathan M Davis
Feb 11, 2016
Daniel Kozak
Feb 11, 2016
Edwin van Leeuwen
Feb 11, 2016
Márcio Martins
Feb 11, 2016
Vladimir Panteleev
Feb 11, 2016
Márcio Martins
Feb 11, 2016
Vladimir Panteleev
Feb 11, 2016
Jonathan M Davis
Feb 12, 2016
Daniel Murphy
Feb 11, 2016
tsbockman
Feb 11, 2016
H. S. Teoh
Feb 11, 2016
Walter Bright
Feb 11, 2016
Etienne
Feb 11, 2016
Anonymouse
Feb 11, 2016
Jonathan M Davis
Feb 11, 2016
Adam D. Ruppe
Feb 11, 2016
Vladimir Panteleev
Feb 11, 2016
Adam D. Ruppe
Feb 11, 2016
Mengu
Feb 11, 2016
Daniel Kozak
Feb 11, 2016
Daniel Murphy
Feb 11, 2016
Atila Neves
Feb 11, 2016
Walter Bright
Feb 11, 2016
Walter Bright
Feb 11, 2016
Daniel Kozak
Feb 11, 2016
Walter Bright
Feb 11, 2016
Daniel Kozak
Feb 11, 2016
Laeeth Isharc
Feb 11, 2016
Adam D. Ruppe
Feb 11, 2016
Atila Neves
Feb 11, 2016
Márcio Martins
February 10, 2016
I decided to try a couple ideas in druntime and followed this http://wiki.dlang.org/Starting_as_a_Contributor#Fetch_dmd_from_GitHub

Everything went fast and smooth - I have a custom built dmd version.
Bootstrapping and building dmd was suspiciously fast - took around 15 secs maybe, if I remember right,


I did my changes to druntime, rebuilt with make -f posix.mak

Compiled a test case with ../dmd/src/dmd test.d, but my changes were not reflected.

So, I double check I actually did recompile druntime and look for the output lib files, and immediately thought that it must be picking up the system include and lib paths instead of this development env.

I create a dmd.conf in ../dmd/src right next to my custom dmd binary, but still doesn't work.
I try again invoking ../dmd/src/dmd -conf=../dmd/src/dmd.conf but still nothing.
I try passing the -I and -L arguments in the command line but still it is not using my custom druntime.

At this point I flip the table and give up - what could I be doing wrong?

My expectation was that given I followed the official "tutorial" closely, everything was going to just work, instead I spent about 2 hours on this and got nowhere...

dmd should have a verbose mode where it outputs what it's trying to do and with which settings, so I could have a chance at seeing what I have messed up, and what linker command it is invoking, ... as it is, I felt totally in the dark, and that just adds to the frustration.

I am on Ubuntu 15 and got a system-wide dmd installed from the official .deb package.
February 10, 2016
On Wed, 10 Feb 2016 23:30:03 +0000, Márcio Martins wrote:

> So, I double check I actually did recompile druntime and look for the output lib files, and immediately thought that it must be picking up the system include and lib paths instead of this development env.

I'm working on druntime stuff now, and I'm about to run into the same issue.

I notice that the dmd 2.070 package does not contain libdruntime. I presume it's rolled into libphobos. And I notice that the phobos makefile references "../druntime". Try building phobos as well and see how that works?
February 11, 2016
On Wednesday, 10 February 2016 at 23:30:03 UTC, Márcio Martins wrote:
> I did my changes to druntime, rebuilt with make -f posix.mak

You really need to build all three together to see changes effectively...

IMO it is a denial of reality to put them in three separate repositories since they are so strongly coupled in practice - their makefiles reference each other!

> I create a dmd.conf in ../dmd/src right next to my custom dmd binary, but still doesn't work.

That shouldn't be necessary, but building phobos as well as your custom druntime probably is.


> dmd should have a verbose mode where it outputs what it's trying to do and with which settings, so I could have a chance at seeing what I have messed up, and what linker command it is

try `dmd -v`

February 11, 2016
On Wednesday, 10 February 2016 at 23:30:03 UTC, Márcio Martins wrote:
> dmd should have a verbose mode where it outputs what it's trying to do and with which settings, so I could have a chance at seeing what I have messed up, and what linker command it is invoking, ... as it is, I felt totally in the dark, and that just adds to the frustration.

The "-v" (verbose) option does this.

You can find a list of DMD options and such here: http://dlang.org/dmd-linux.html
February 10, 2016
On Wed, Feb 10, 2016 at 11:30:03PM +0000, Márcio Martins via Digitalmars-d wrote:
> I decided to try a couple ideas in druntime and followed this http://wiki.dlang.org/Starting_as_a_Contributor#Fetch_dmd_from_GitHub
> 
> Everything went fast and smooth - I have a custom built dmd version. Bootstrapping and building dmd was suspiciously fast - took around 15 secs maybe, if I remember right,
> 
> 
> I did my changes to druntime, rebuilt with make -f posix.mak
> 
> Compiled a test case with ../dmd/src/dmd test.d, but my changes were not reflected.

Druntime is not linked to compiled programs by itself; it gets linked as part of Phobos. So after making changes in druntime, you have to also rebuild Phobos before you will see your changes reflected.


[...]
> dmd should have a verbose mode where it outputs what it's trying to do and with which settings, so I could have a chance at seeing what I have messed up, and what linker command it is invoking, ... as it is, I felt totally in the dark, and that just adds to the frustration.
[...]

You're looking for:

	dmd -v


T

-- 
Freedom of speech: the whole world has no right *not* to hear my spouting off!
February 10, 2016
On 2/10/2016 4:45 PM, H. S. Teoh via Digitalmars-d wrote:
>> dmd should have a verbose mode where it outputs what it's trying to do
>> and with which settings, so I could have a chance at seeing what I
>> have messed up, and what linker command it is invoking, ... as it is,
>> I felt totally in the dark, and that just adds to the frustration.
> You're looking for:
> 	dmd -v

http://dlang.org/dmd-windows.html#switch-v
February 10, 2016
On 2/10/16 6:40 PM, Chris Wright wrote:
> On Wed, 10 Feb 2016 23:30:03 +0000, Márcio Martins wrote:
>
>> So, I double check I actually did recompile druntime and look for the
>> output lib files, and immediately thought that it must be picking up the
>> system include and lib paths instead of this development env.
>
> I'm working on druntime stuff now, and I'm about to run into the same
> issue.
>
> I notice that the dmd 2.070 package does not contain libdruntime. I
> presume it's rolled into libphobos. And I notice that the phobos makefile
> references "../druntime". Try building phobos as well and see how that
> works?
>

Psst! libdruntime was never used.

It was always used as compiled in phobos. I don't know why it was ever included.

-Steve
February 11, 2016
On Wednesday, 10 February 2016 at 23:30:03 UTC, Márcio Martins wrote:
> My expectation was that given I followed the official "tutorial" closely, everything was going to just work, instead I spent about 2 hours on this and got nowhere...

It took me way more than 2 hours to grasp how this build process works. It wasn't until I had read through the whole source code actually.
February 11, 2016
On Thursday, 11 February 2016 at 02:07:54 UTC, Etienne wrote:
> On Wednesday, 10 February 2016 at 23:30:03 UTC, Márcio Martins wrote:
>> My expectation was that given I followed the official "tutorial" closely, everything was going to just work, instead I spent about 2 hours on this and got nowhere...
>
> It took me way more than 2 hours to grasp how this build process works. It wasn't until I had read through the whole source code actually.

"Use the source, Luke!"
February 11, 2016
On Thursday, 11 February 2016 at 02:07:54 UTC, Etienne wrote:
> On Wednesday, 10 February 2016 at 23:30:03 UTC, Márcio Martins wrote:
>> My expectation was that given I followed the official "tutorial" closely, everything was going to just work, instead I spent about 2 hours on this and got nowhere...
>
> It took me way more than 2 hours to grasp how this build process works. It wasn't until I had read through the whole source code actually.

It's also a pain to edit. It's been suggested several times that we change the build system (e.g. to use https://github.com/atilaneves/reggae), but IIRC, Walter and Andrei have generally been opposed to the idea of changing it. It's one of those things that frequent contributors have more or less sorted out and don't usually worry about much anymore (aside perhaps from the rare occasions when they need to edit the makefiles), whereas it definitely tends to bite folks who aren't familiar with it. And building the documentation is that much worse.

Personally, I'd love to see it changed to something more maintainable, but we'd  have to be sure that what we were switching to really was better. As it is, I wrote a program that I use to update the source and do builds on my machine so that building is semi-sane, and I suspect that other contributors have done similar.

- Jonathan M Davis
« First   ‹ Prev
1 2 3 4