January 21, 2011
On 1/21/2011 9:41 PM, Andrei Alexandrescu wrote:
> On 1/21/11 10:25 PM, Brad Roberts wrote:
>> On Fri, 21 Jan 2011, Andrei Alexandrescu wrote:
>>
>>> On 1/21/11 8:56 PM, Brad Roberts wrote:
>>>> What needs to be added to the auto-tester to catch this near submit time? Is it another make target?  If so, what?
>>>
>>> It's make -f posix.mak html that fails on all systems.
>>
>> Gah.. what the hell does it need wine for?  How twisted is that?  It only runs via the posix.mak file, but runs the windows binaries?  Please god, why?
> 
> Sorry, I meant "OSX and Linux" instead of "all systems". Wine is present for two reasons:
> 
> 1. Allows people who don't use Windows to test on a Windows-like platform
> 
> 2. Is a good check for the portability of our Windows code across different Windows versions.
> 
> But it's not required. Feel free to ignore it. Unless you say OS=win32wine while building it won't bother you.

I said nothing more than:

make DMD=../../dmd/src/dmd DRUNTIME_PATH=../../druntime MODEL=64 -f posix.mak html

And got:
wine dmd -version=ddoc -d -c -o- ../docsrc/std.ddoc -I../../druntime/import
-Df../web/2.0/phobos/phobos.html phobos.d
make: wine: Command not found

I'll dig in to see why I got that and not something saner after I dig into why the win32 dmd tests are failing.  I'm fairly sure it has to do with the replace changes still not working right.

Later,
Brad
January 21, 2011
On Friday 21 January 2011 22:17:17 Brad Roberts wrote:
> On 1/21/2011 9:41 PM, Andrei Alexandrescu wrote:
> > On 1/21/11 10:25 PM, Brad Roberts wrote:
> >> On Fri, 21 Jan 2011, Andrei Alexandrescu wrote:
> >>> On 1/21/11 8:56 PM, Brad Roberts wrote:
> >>>> What needs to be added to the auto-tester to catch this near submit time? Is it another make target?  If so, what?
> >>> 
> >>> It's make -f posix.mak html that fails on all systems.
> >> 
> >> Gah.. what the hell does it need wine for?  How twisted is that?  It only runs via the posix.mak file, but runs the windows binaries? Please god, why?
> > 
> > Sorry, I meant "OSX and Linux" instead of "all systems". Wine is present for two reasons:
> > 
> > 1. Allows people who don't use Windows to test on a Windows-like platform
> > 
> > 2. Is a good check for the portability of our Windows code across different Windows versions.
> > 
> > But it's not required. Feel free to ignore it. Unless you say OS=win32wine while building it won't bother you.
> 
> I said nothing more than:
> 
> make DMD=../../dmd/src/dmd DRUNTIME_PATH=../../druntime MODEL=64 -f posix.mak html
> 
> And got:
> wine dmd -version=ddoc -d -c -o- ../docsrc/std.ddoc -I../../druntime/import
> -Df../web/2.0/phobos/phobos.html phobos.d
> make: wine: Command not found
> 
> I'll dig in to see why I got that and not something saner after I dig into why the win32 dmd tests are failing.  I'm fairly sure it has to do with the replace changes still not working right.

When I build with make -f posix.html -version=ddoc, I get

----------

GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for x86_64-unknown-linux-gnu

----------

So, I have no clue what's going on there. Something isn't working right, but whether it's the makefile or my system, I don't know.

However, I really do think that we should be set up to build the docs on both Linux and Windows natively, and that we should work on making the documentation in the code such that it's identical for every OS (though obviously, that will take some time). And having the docs build for both Linux and Windows on the autotester would be good to have as part of that, though obviously the build has to actually _work_ first.

- Jonathan M Davis
January 21, 2011
On Friday 21 January 2011 22:24:59 Jonathan M Davis wrote:
> On Friday 21 January 2011 22:17:17 Brad Roberts wrote:
> > On 1/21/2011 9:41 PM, Andrei Alexandrescu wrote:
> > > On 1/21/11 10:25 PM, Brad Roberts wrote:
> > >> On Fri, 21 Jan 2011, Andrei Alexandrescu wrote:
> > >>> On 1/21/11 8:56 PM, Brad Roberts wrote:
> > >>>> What needs to be added to the auto-tester to catch this near submit time? Is it another make target?  If so, what?
> > >>> 
> > >>> It's make -f posix.mak html that fails on all systems.
> > >> 
> > >> Gah.. what the hell does it need wine for?  How twisted is that?  It only runs via the posix.mak file, but runs the windows binaries? Please god, why?
> > > 
> > > Sorry, I meant "OSX and Linux" instead of "all systems". Wine is present for two reasons:
> > > 
> > > 1. Allows people who don't use Windows to test on a Windows-like platform
> > > 
> > > 2. Is a good check for the portability of our Windows code across different Windows versions.
> > > 
> > > But it's not required. Feel free to ignore it. Unless you say OS=win32wine while building it won't bother you.
> > 
> > I said nothing more than:
> > 
> > make DMD=../../dmd/src/dmd DRUNTIME_PATH=../../druntime MODEL=64 -f posix.mak html
> > 
> > And got:
> > wine dmd -version=ddoc -d -c -o- ../docsrc/std.ddoc
> > -I../../druntime/import -Df../web/2.0/phobos/phobos.html phobos.d
> > make: wine: Command not found
> > 
> > I'll dig in to see why I got that and not something saner after I dig into why the win32 dmd tests are failing.  I'm fairly sure it has to do with the replace changes still not working right.
> 
> When I build with make -f posix.html -version=ddoc, I get
> 
> ----------
> 
> GNU Make 3.81
> Copyright (C) 2006  Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.
> There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
> PARTICULAR PURPOSE.
> 
> This program built for x86_64-unknown-linux-gnu
> 
> ----------
> 
> So, I have no clue what's going on there. Something isn't working right, but whether it's the makefile or my system, I don't know.
> 
> However, I really do think that we should be set up to build the docs on both Linux and Windows natively, and that we should work on making the documentation in the code such that it's identical for every OS (though obviously, that will take some time). And having the docs build for both Linux and Windows on the autotester would be good to have as part of that, though obviously the build has to actually _work_ first.

Actually, as a bonus, perhaps at some point, we can make it so that the docs from the most recent svn (or git, once we get there) version can be viewed online somewhere (though obviously not on the main site - those should still be the docs from the most recent release).

- Jonathan M Davis
January 21, 2011
On 1/21/2011 10:27 PM, Jonathan M Davis wrote:
> On Friday 21 January 2011 22:24:59 Jonathan M Davis wrote:
>> On Friday 21 January 2011 22:17:17 Brad Roberts wrote:
>>> On 1/21/2011 9:41 PM, Andrei Alexandrescu wrote:
>>>> On 1/21/11 10:25 PM, Brad Roberts wrote:
>>>>> On Fri, 21 Jan 2011, Andrei Alexandrescu wrote:
>>>>>> On 1/21/11 8:56 PM, Brad Roberts wrote:
>>>>>>> What needs to be added to the auto-tester to catch this near submit time? Is it another make target?  If so, what?
>>>>>>
>>>>>> It's make -f posix.mak html that fails on all systems.
>>>>>
>>>>> Gah.. what the hell does it need wine for?  How twisted is that?  It only runs via the posix.mak file, but runs the windows binaries? Please god, why?
>>>>
>>>> Sorry, I meant "OSX and Linux" instead of "all systems". Wine is present for two reasons:
>>>>
>>>> 1. Allows people who don't use Windows to test on a Windows-like platform
>>>>
>>>> 2. Is a good check for the portability of our Windows code across different Windows versions.
>>>>
>>>> But it's not required. Feel free to ignore it. Unless you say OS=win32wine while building it won't bother you.
>>>
>>> I said nothing more than:
>>>
>>> make DMD=../../dmd/src/dmd DRUNTIME_PATH=../../druntime MODEL=64 -f posix.mak html
>>>
>>> And got:
>>> wine dmd -version=ddoc -d -c -o- ../docsrc/std.ddoc
>>> -I../../druntime/import -Df../web/2.0/phobos/phobos.html phobos.d
>>> make: wine: Command not found
>>>
>>> I'll dig in to see why I got that and not something saner after I dig into why the win32 dmd tests are failing.  I'm fairly sure it has to do with the replace changes still not working right.
>>
>> When I build with make -f posix.html -version=ddoc, I get
>>
>> ----------
>>
>> GNU Make 3.81
>> Copyright (C) 2006  Free Software Foundation, Inc.
>> This is free software; see the source for copying conditions.
>> There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
>> PARTICULAR PURPOSE.
>>
>> This program built for x86_64-unknown-linux-gnu
>>
>> ----------
>>
>> So, I have no clue what's going on there. Something isn't working right, but whether it's the makefile or my system, I don't know.
>>
>> However, I really do think that we should be set up to build the docs on both Linux and Windows natively, and that we should work on making the documentation in the code such that it's identical for every OS (though obviously, that will take some time). And having the docs build for both Linux and Windows on the autotester would be good to have as part of that, though obviously the build has to actually _work_ first.
> 
> Actually, as a bonus, perhaps at some point, we can make it so that the docs from the most recent svn (or git, once we get there) version can be viewed online somewhere (though obviously not on the main site - those should still be the docs from the most recent release).
> 
> - Jonathan M Davis

the problem is here:

# Set DDOC, the documentation generator
ifeq ($(OS),linux)
    DDOC=wine dmd
else
    DDOC=dmd
endif

I can 'fix' this for now by overriding DDOC when invoking make.
January 21, 2011
On Friday 21 January 2011 22:36:13 Brad Roberts wrote:
> On 1/21/2011 10:27 PM, Jonathan M Davis wrote:
> > On Friday 21 January 2011 22:24:59 Jonathan M Davis wrote:
> >> On Friday 21 January 2011 22:17:17 Brad Roberts wrote:
> >>> On 1/21/2011 9:41 PM, Andrei Alexandrescu wrote:
> >>>> On 1/21/11 10:25 PM, Brad Roberts wrote:
> >>>>> On Fri, 21 Jan 2011, Andrei Alexandrescu wrote:
> >>>>>> On 1/21/11 8:56 PM, Brad Roberts wrote:
> >>>>>>> What needs to be added to the auto-tester to catch this near submit time? Is it another make target?  If so, what?
> >>>>>> 
> >>>>>> It's make -f posix.mak html that fails on all systems.
> >>>>> 
> >>>>> Gah.. what the hell does it need wine for?  How twisted is that?  It only runs via the posix.mak file, but runs the windows binaries? Please god, why?
> >>>> 
> >>>> Sorry, I meant "OSX and Linux" instead of "all systems". Wine is present for two reasons:
> >>>> 
> >>>> 1. Allows people who don't use Windows to test on a Windows-like platform
> >>>> 
> >>>> 2. Is a good check for the portability of our Windows code across different Windows versions.
> >>>> 
> >>>> But it's not required. Feel free to ignore it. Unless you say OS=win32wine while building it won't bother you.
> >>> 
> >>> I said nothing more than:
> >>> 
> >>> make DMD=../../dmd/src/dmd DRUNTIME_PATH=../../druntime MODEL=64 -f posix.mak html
> >>> 
> >>> And got:
> >>> wine dmd -version=ddoc -d -c -o- ../docsrc/std.ddoc
> >>> -I../../druntime/import -Df../web/2.0/phobos/phobos.html phobos.d
> >>> make: wine: Command not found
> >>> 
> >>> I'll dig in to see why I got that and not something saner after I dig into why the win32 dmd tests are failing.  I'm fairly sure it has to do with the replace changes still not working right.
> >> 
> >> When I build with make -f posix.html -version=ddoc, I get
> >> 
> >> ----------
> >> 
> >> GNU Make 3.81
> >> Copyright (C) 2006  Free Software Foundation, Inc.
> >> This is free software; see the source for copying conditions.
> >> There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
> >> PARTICULAR PURPOSE.
> >> 
> >> This program built for x86_64-unknown-linux-gnu
> >> 
> >> ----------
> >> 
> >> So, I have no clue what's going on there. Something isn't working right, but whether it's the makefile or my system, I don't know.
> >> 
> >> However, I really do think that we should be set up to build the docs on both Linux and Windows natively, and that we should work on making the documentation in the code such that it's identical for every OS (though obviously, that will take some time). And having the docs build for both Linux and Windows on the autotester would be good to have as part of that, though obviously the build has to actually _work_ first.
> > 
> > Actually, as a bonus, perhaps at some point, we can make it so that the docs from the most recent svn (or git, once we get there) version can be viewed online somewhere (though obviously not on the main site - those should still be the docs from the most recent release).
> > 
> > - Jonathan M Davis
> 
> the problem is here:
> 
> # Set DDOC, the documentation generator
> ifeq ($(OS),linux)
>     DDOC=wine dmd
> else
>     DDOC=dmd
> endif
> 
> I can 'fix' this for now by overriding DDOC when invoking make.

Well, make -f posix.mak OS=win32wine html seems to work, but it really shouldn't need wine.

- Jonathan M Davis
January 22, 2011
On 1/22/11 12:27 AM, Jonathan M Davis wrote:
> Actually, as a bonus, perhaps at some point, we can make it so that the docs from the most recent svn (or git, once we get there) version can be viewed online somewhere (though obviously not on the main site - those should still be the docs from the most recent release).

Only if you promise to _never_ insert two empty lines in a row.

http://d-programming-language.org/cutting-edge/phobos/phobos.html


Andrei
January 21, 2011
On Friday 21 January 2011 19:33:24 Andrei Alexandrescu wrote:
> On 1/21/11 8:59 PM, Jonathan M Davis wrote:
> > There does seem to be a tendency in Phobos to put ddoc comments on the Windows versions of functions if there are multiple versions, which means that building ddoc on posix isn't going to look anything like building it on Windows. I'd suggest that if a function has to be versioned for different OSes that either the versioning be done in the function body or that the function be put in version(D_Ddoc) with the documentation only on that version (though obviously without a body for the function, unlike what I've been doing).
> 
> Yes, I think this is a good idea. But... yellow? :o)

Okay. The yellow looks horrible. It's essentially illegible. It's just too close in color to the white background. I guess that that just leaves white and blue, and white would obviously be worse, so I'm changing them to blue.

- Jonathan M Davis
January 22, 2011
On 1/22/11 12:36 AM, Brad Roberts wrote:
> the problem is here:
>
> # Set DDOC, the documentation generator
> ifeq ($(OS),linux)
>      DDOC=wine dmd
> else
>      DDOC=dmd
> endif
>
> I can 'fix' this for now by overriding DDOC when invoking make.

Yah, please do. Since Jonathan's changes we're migrating towards a platform-independent html build. I had to use wine just to make sure I match the dox that Walter was generating on Windows.

Andrei
January 21, 2011
On Friday 21 January 2011 22:44:52 Andrei Alexandrescu wrote:
> On 1/22/11 12:27 AM, Jonathan M Davis wrote:
> > Actually, as a bonus, perhaps at some point, we can make it so that the docs from the most recent svn (or git, once we get there) version can be viewed online somewhere (though obviously not on the main site - those should still be the docs from the most recent release).
> 
> Only if you promise to _never_ insert two empty lines in a row.
> 
> http://d-programming-language.org/cutting-edge/phobos/phobos.html

LOL. ;)

Not that empty lines have any effect on the documentation... ;)

- Jonathan M Davis
January 21, 2011
On Friday 21 January 2011 22:46:24 Andrei Alexandrescu wrote:
> On 1/22/11 12:36 AM, Brad Roberts wrote:
> > the problem is here:
> > 
> > # Set DDOC, the documentation generator
> > ifeq ($(OS),linux)
> > 
> >      DDOC=wine dmd
> > 
> > else
> > 
> >      DDOC=dmd
> > 
> > endif
> > 
> > I can 'fix' this for now by overriding DDOC when invoking make.
> 
> Yah, please do. Since Jonathan's changes we're migrating towards a platform-independent html build. I had to use wine just to make sure I match the dox that Walter was generating on Windows.

I think that it's great to be able to build the windows docs using wine, but I think that that should only be when building with OS=win32wine and that otherwise, they should be built natively. But since so much of the documentation has been Windows-only, I can see why you would have just made it use wine all the time.

- Jonathan M Davis