June 08, 2015
On 6/8/15 6:33 AM, anonymous wrote:
> Slightly different topic, related to changing documentation without
> losing your sanity: When building dlang.org, changes in druntime/phobos
> are not properly picked up.
>
> You can try deleting a strategic file like
> dlang.org/web/phobos-prerelease/index.html which should trigger a
> rebuild. See posix.mak for what files are dependencies to the different
> targets.
>
> Or just do a fresh build every time: `make -f posix.mak clean; make -f
> posix.mak phobos-prerelease`.
>
> I have an open pull request that's supposed to fix this:
> https://github.com/D-Programming-Language/dlang.org/pull/993

Yah, that's annoying. Thanks for contributing a fix. For now my typical approach is:

rm -f web/phobos-prerelease/index.html && make -j6 LATEST=2.067.1 phobos-prerelease


Andrei
June 08, 2015
On 6/8/15 8:07 AM, Atila Neves wrote:
> On Monday, 8 June 2015 at 13:36:08 UTC, Meta wrote:
>> On Monday, 8 June 2015 at 13:34:14 UTC, Steven Schveighoffer wrote:
>>> If you just want to check that a file's content is going to show up,
>>> I use:
>>>
>>> dmd -D -o- -c std/somemod.d
>>>
>>> The output is not styled properly. But the output should have working
>>> links.
>>>
>>> FWIW, I avoid building phobos docs. It's too painful. If I change
>>> dlang.org docs, I will build those, but not phobos.
>>>
>>> -Steve
>>
>> What's painful about building phobos docs? It only takes one command.
>
> What's _not_ painful?

I build the docs probably a few dozen times every day. I just press up arrow to fetch the previous command, and enter. Takes no perceptible time. What's the problem? -- Andrei

June 08, 2015
On Monday, 8 June 2015 at 16:14:30 UTC, Andrei Alexandrescu wrote:
> On 6/8/15 4:27 AM, John Colvin wrote:
>> Is there any non-insane way of changing some documentation in a module
>> and checking that any links/xrefs you may have added actually work?
>>
>> The dlang.org makefile appears to happily erase uncommitted changes in
>> ../druntime and ../phobos. I'm really struggling for words to describe
>> how infuriating that is. I ran make and it deleted my work in a separate
>> folder. Not OK.
>
> Bummer about that. I've never encountered this problem. What command(s) did you run? -- Andrei

with dir structure
.
|- dmd
|- druntime
|- phobos
|- dlang.org

clone phobos, edit
clone druntime, edit
clone dmd, compile
compile druntime,
compile phobos
clone dlang.org, make -f posix.mak

boom, my changes are gone
June 08, 2015
On Monday, 8 June 2015 at 16:27:49 UTC, Andrei Alexandrescu wrote:
> I build the docs probably a few dozen times every day. I just press up arrow to fetch the previous command, and enter. Takes no perceptible time. What's the problem? -- Andrei

Well, just for one, I tried building phobos docs a couple of days ago while disconnected from the internet; the whole thing failed because the clones of stable release repos couldn't be done.

No doubt I'm missing a trick, but it didn't seem very obvious, on browsing the makefile, what would get me the simple case of building the development phobos docs using my development dmd, without needing to worry about any of the other options out there.
June 08, 2015
On Monday, 8 June 2015 at 18:06:47 UTC, Joseph Rushton Wakeling wrote:
> On Monday, 8 June 2015 at 16:27:49 UTC, Andrei Alexandrescu wrote:
>> I build the docs probably a few dozen times every day. I just press up arrow to fetch the previous command, and enter. Takes no perceptible time. What's the problem? -- Andrei
>
> Well, just for one, I tried building phobos docs a couple of days ago while disconnected from the internet; the whole thing failed because the clones of stable release repos couldn't be done.
>
> No doubt I'm missing a trick, but it didn't seem very obvious, on browsing the makefile, what would get me the simple case of building the development phobos docs using my development dmd, without needing to worry about any of the other options out there.

Yah, you'd need to pass LATEST=2.067.1 in the command line. Then the build process won't need to connect to the internet to fetch the latest version.

Could you please make a pull request with the explanations you wish you had?


Andrei
June 08, 2015
On Monday, 8 June 2015 at 16:48:31 UTC, John Colvin wrote:
> with dir structure
> .
> |- dmd
> |- druntime
> |- phobos
> |- dlang.org
>
> clone phobos, edit
> clone druntime, edit
> clone dmd, compile
> compile druntime,
> compile phobos
> clone dlang.org, make -f posix.mak
>
> boom, my changes are gone

That shouldn't happen. If you get a repro, I'll look into that. -- Andrei

June 08, 2015
On 08/06/15 19:06, Joseph Rushton Wakeling via Digitalmars-d wrote:
> Well, just for one, I tried building phobos docs a couple of days ago while
> disconnected from the internet; the whole thing failed because the clones of
> stable release repos couldn't be done.
>
> No doubt I'm missing a trick, but it didn't seem very obvious, on browsing the
> makefile, what would get me the simple case of building the development phobos
> docs using my development dmd, without needing to worry about any of the other
> options out there.

Well, whaddayaknow, make -f posix.mak clean; make -f posix.mak phobos-prerelease just worked.  I'd swear I was trying to build the phobos-prerelease target before, but maybe forgetting the 'clean' first had some kind of weird effect on how build targets interacted.
June 08, 2015
On Monday, 8 June 2015 at 19:51:28 UTC, Andrei Alexandrescu wrote:
> Yah, you'd need to pass LATEST=2.067.1 in the command line. Then the build process won't need to connect to the internet to fetch the latest version.

"LATEST" detection must go. It makes bisecting impossible.

In general, if we want reproducible builds (and this is required for reliable bisection of regressions), we can't rely on non-immutable online resources. Fetching / building stable compiler versions is OK, but detecting which version is latest right now is not.
June 08, 2015
On Monday, 8 June 2015 at 21:53:07 UTC, Vladimir Panteleev wrote:
> On Monday, 8 June 2015 at 19:51:28 UTC, Andrei Alexandrescu wrote:
>> Yah, you'd need to pass LATEST=2.067.1 in the command line. Then the build process won't need to connect to the internet to fetch the latest version.
>
> "LATEST" detection must go. It makes bisecting impossible.

Actually, I can work around this fairly easily with Digger by calculating the correct LATEST value at the time and passing it as a make parameter :)
June 08, 2015
On 6/8/15 2:53 PM, Vladimir Panteleev wrote:
> On Monday, 8 June 2015 at 19:51:28 UTC, Andrei Alexandrescu wrote:
>> Yah, you'd need to pass LATEST=2.067.1 in the command line. Then the
>> build process won't need to connect to the internet to fetch the
>> latest version.
>
> "LATEST" detection must go. It makes bisecting impossible.
>
> In general, if we want reproducible builds (and this is required for
> reliable bisection of regressions), we can't rely on non-immutable
> online resources. Fetching / building stable compiler versions is OK,
> but detecting which version is latest right now is not.

Well I trust you can come up with a well-engineered improvement. -- Andrei