February 11, 2016
On Wednesday, 10 February 2016 at 23:30:03 UTC, Márcio Martins 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.
>
> 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.

When you figure it out maybe you could draft a clear explanation of whats missing from the existing wiki instructions to append as a set of hints and tips.

One of the biggest problems with explaining things is that it's hard to remember what it was like not to know something, and so experts can often be terrible at explaining things because it seems obvious (and as Ray Charles said, everything is easy when you know how to do it).


February 10, 2016
On 2/10/2016 6:07 PM, Etienne wrote:
> 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" -- Unix Documentation
February 10, 2016
On 2/10/2016 6:07 PM, Etienne wrote:
> 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.

These are opportunities to improve things. If you could issue PRs to improve the documentation at the pain points, it'll help the next traveler. Or at least open a bugzilla issue for it.
February 11, 2016
On Thursday, 11 February 2016 at 04:48:31 UTC, Laeeth Isharc wrote:
> (and as Ray Charles said, everything is easy when you know how to do it).

Not the case here: even when you know how to use the D build system, it still sucks and is very hard to use. The PR review team has let wrong things go past several times because it is so convoluted.
February 11, 2016
On Thursday, 11 February 2016 at 04:37:39 UTC, Jonathan M Davis wrote:
> And building the documentation is that much worse.


I'm fixing that at least! My docs: http://dpldocs.info/experimental-docs/std.stdio.html

are built with a single simple command:

docs path/to/phobos

done. No need to install several repos of crap.
February 11, 2016

Dne 11.2.2016 v 01:20 Adam D. Ruppe via Digitalmars-d napsal(a):
> 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!
Yes, this is the main reason why I  does not do dmd and druntime development much often. I really hate when I try to bisect regressions.
Separate repositories make this really annoying. This is one of thing where gdc developers makes better than ldc.
February 11, 2016

Dne 11.2.2016 v 05:37 Jonathan M Davis via Digitalmars-d napsal(a):
> 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.
> ...
>
> 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.
  I think that anything would be better than what we have now :)

> - Jonathan M Davis

February 11, 2016

Dne 11.2.2016 v 05:52 Walter Bright via Digitalmars-d napsal(a):
> On 2/10/2016 6:07 PM, Etienne wrote:
>> 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.
>
> These are opportunities to improve things. If you could issue PRs to improve the documentation at the pain points, it'll help the next traveler. Or at least open a bugzilla issue for it.

Documentation is only one part of problem. Every time when I want to contribute to D(dmd, druntime + phobos) it takes hours(days) of persuasion of myself.

Adding some new feature or fix something new is generaly easy (still it is useless hard), but when I want to find out regression it is really annoying and I often give up.
February 11, 2016
On Thursday, 11 February 2016 at 06:57:39 UTC, Daniel Kozak wrote:
> Dne 11.2.2016 v 01:20 Adam D. Ruppe via Digitalmars-d napsal(a):
>> 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!
> Yes, this is the main reason why I  does not do dmd and druntime development much often. I really hate when I try to bisect regressions.

That's what digger is for: https://github.com/CyberShadow/Digger

But yes, having everything in one repo would make some things easier.

- Jonathan M Davis
February 11, 2016

Dne 11.2.2016 v 08:23 Jonathan M Davis via Digitalmars-d napsal(a):
> On Thursday, 11 February 2016 at 06:57:39 UTC, Daniel Kozak wrote:
>> Dne 11.2.2016 v 01:20 Adam D. Ruppe via Digitalmars-d napsal(a):
>>> 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!
>> Yes, this is the main reason why I  does not do dmd and druntime development much often. I really hate when I try to bisect regressions.
>
> That's what digger is for: https://github.com/CyberShadow/Digger
>
> But yes, having everything in one repo would make some things easier.
>
> - Jonathan M Davis

Yeah I know it there is a some tool, but I can not find it last time. I just find dustmite and dvm. Thanks :)