September 20, 2008
Leonid Krashenko wrote:

> Gregor Richards wrote:
> 
> I am getting strange errors using rebuild/dsss: http://codepad.org/MfhzjJFG
> 
> If I use my own Makefile, everything compiles, links and runs successfully:
> 
> cc = dmd
> flags = -unittest
> link_flags = -L-lX11
> source_dirs = y std/c/linux/X11 tl
> 
> src_files = $(addsuffix /*.d, $(source_dirs))
> src_objs = $(patsubst %.d, %.o, $(wildcard $(src_files)))
> 
> paint: paint.o $(src_objs)
>         $(cc) $^ $(link_flags)
> 
> main: main.o $(src_objs)
>         $(cc) $^ $(link_flags)
> 
> VPATH := $(source_dirs) .
> 
> %.o: %.d
>         $(cc) -c $^ $(flags) -op
> 
> clean:
>         rm -f $(addsuffix /*.o, . $(source_dirs))
>         rm -f paint
>         rm -f main
> 
> What am I doing wrong?

rebuild cmd is:

$ rebuild paint.d -L-lX11
September 20, 2008
Leonid Krashenko wrote:
> Gregor Richards wrote:
> 
> I am getting strange errors using rebuild/dsss:
> http://codepad.org/MfhzjJFG
> 
> If I use my own Makefile, everything compiles, links and runs successfully:
> 
> cc = dmd
> flags = -unittest
> link_flags = -L-lX11
> source_dirs = y std/c/linux/X11 tl
> 
> src_files = $(addsuffix /*.d, $(source_dirs))
> src_objs = $(patsubst %.d, %.o, $(wildcard $(src_files)))
> 
> paint: paint.o $(src_objs)
>         $(cc) $^ $(link_flags)
> 
> main: main.o $(src_objs)
>         $(cc) $^ $(link_flags)
> 
> VPATH := $(source_dirs) .
> 
> %.o: %.d
>         $(cc) -c $^ $(flags) -op
> 
> clean:
>         rm -f $(addsuffix /*.o, . $(source_dirs))
>         rm -f paint
>         rm -f main
> 
> What am I doing wrong?

Rebuild ignores D files in the package 'std', since those should be packages provided by the standard library. You really oughtn't to name things 'std' anyway, and putting 'X11' in std.c.linux doesn't make much sense regardless.

 - Gregor Richards
September 21, 2008
On Sun, Sep 21, 2008 at 8:58 AM, Gregor Richards <Richards@codu.org> wrote:
> Leonid Krashenko wrote:
>>
>> Gregor Richards wrote:
>>
>> I am getting strange errors using rebuild/dsss: http://codepad.org/MfhzjJFG
>>
>> If I use my own Makefile, everything compiles, links and runs successfully:
>>
>> cc = dmd
>> flags = -unittest
>> link_flags = -L-lX11
>> source_dirs = y std/c/linux/X11 tl
>>
>> src_files = $(addsuffix /*.d, $(source_dirs))
>> src_objs = $(patsubst %.d, %.o, $(wildcard $(src_files)))
>>
>> paint: paint.o $(src_objs)
>>        $(cc) $^ $(link_flags)
>>
>> main: main.o $(src_objs)
>>        $(cc) $^ $(link_flags)
>>
>> VPATH := $(source_dirs) .
>>
>> %.o: %.d
>>        $(cc) -c $^ $(flags) -op
>>
>> clean:
>>        rm -f $(addsuffix /*.o, . $(source_dirs))
>>        rm -f paint
>>        rm -f main
>>
>> What am I doing wrong?
>
> Rebuild ignores D files in the package 'std', since those should be packages provided by the standard library. You really oughtn't to name things 'std' anyway, and putting 'X11' in std.c.linux doesn't make much sense regardless.

Is that behavior new with DSSS 0.78?
What does that mean for Tangobos, which is not the standard library
but is completely in the std package?

--bb
September 21, 2008
Bill Baxter wrote:
> On Sun, Sep 21, 2008 at 8:58 AM, Gregor Richards <Richards@codu.org> wrote:
>> Leonid Krashenko wrote:
>>> Gregor Richards wrote:
>>>
>>> I am getting strange errors using rebuild/dsss:
>>> http://codepad.org/MfhzjJFG
>>>
>>> If I use my own Makefile, everything compiles, links and runs
>>> successfully:
>>>
>>> cc = dmd
>>> flags = -unittest
>>> link_flags = -L-lX11
>>> source_dirs = y std/c/linux/X11 tl
>>>
>>> src_files = $(addsuffix /*.d, $(source_dirs))
>>> src_objs = $(patsubst %.d, %.o, $(wildcard $(src_files)))
>>>
>>> paint: paint.o $(src_objs)
>>>        $(cc) $^ $(link_flags)
>>>
>>> main: main.o $(src_objs)
>>>        $(cc) $^ $(link_flags)
>>>
>>> VPATH := $(source_dirs) .
>>>
>>> %.o: %.d
>>>        $(cc) -c $^ $(flags) -op
>>>
>>> clean:
>>>        rm -f $(addsuffix /*.o, . $(source_dirs))
>>>        rm -f paint
>>>        rm -f main
>>>
>>> What am I doing wrong?
>> Rebuild ignores D files in the package 'std', since those should be packages
>> provided by the standard library. You really oughtn't to name things 'std'
>> anyway, and putting 'X11' in std.c.linux doesn't make much sense regardless.
> 
> Is that behavior new with DSSS 0.78?
> What does that mean for Tangobos, which is not the standard library
> but is completely in the std package?
> 
> --bb

This is not new. If you're using Tango, you (should) use the rebuild profile for Tango, which doesn't ignore the std package since that's not part of Tango.

The only reason it has to actively ignore the std package is because they're .d files instead of the .di files they ought to be.

 - Gregor Richards
September 21, 2008
On Sun, Sep 21, 2008 at 10:38 AM, Gregor Richards <Richards@codu.org> wrote:
> Bill Baxter wrote:
>>
>> On Sun, Sep 21, 2008 at 8:58 AM, Gregor Richards <Richards@codu.org> wrote:
>>>
>>> Leonid Krashenko wrote:
>>>>
>>>> Gregor Richards wrote:
>>>>
>>>> I am getting strange errors using rebuild/dsss: http://codepad.org/MfhzjJFG
>>>>
>>>> If I use my own Makefile, everything compiles, links and runs successfully:
>>>>
>>>> cc = dmd
>>>> flags = -unittest
>>>> link_flags = -L-lX11
>>>> source_dirs = y std/c/linux/X11 tl
>>>>
>>>> src_files = $(addsuffix /*.d, $(source_dirs))
>>>> src_objs = $(patsubst %.d, %.o, $(wildcard $(src_files)))
>>>>
>>>> paint: paint.o $(src_objs)
>>>>       $(cc) $^ $(link_flags)
>>>>
>>>> main: main.o $(src_objs)
>>>>       $(cc) $^ $(link_flags)
>>>>
>>>> VPATH := $(source_dirs) .
>>>>
>>>> %.o: %.d
>>>>       $(cc) -c $^ $(flags) -op
>>>>
>>>> clean:
>>>>       rm -f $(addsuffix /*.o, . $(source_dirs))
>>>>       rm -f paint
>>>>       rm -f main
>>>>
>>>> What am I doing wrong?
>>>
>>> Rebuild ignores D files in the package 'std', since those should be
>>> packages
>>> provided by the standard library. You really oughtn't to name things
>>> 'std'
>>> anyway, and putting 'X11' in std.c.linux doesn't make much sense
>>> regardless.
>>
>> Is that behavior new with DSSS 0.78?
>> What does that mean for Tangobos, which is not the standard library
>> but is completely in the std package?
>>
>> --bb
>
> This is not new. If you're using Tango, you (should) use the rebuild profile for Tango, which doesn't ignore the std package since that's not part of Tango.
>
> The only reason it has to actively ignore the std package is because they're .d files instead of the .di files they ought to be.

Ok.  Thanks for the explanation & reassurance.

--bb
September 21, 2008
Gregor Richards wrote:

> Bill Baxter wrote:
>> On Sun, Sep 21, 2008 at 8:58 AM, Gregor Richards <Richards@codu.org> wrote:
>>> Leonid Krashenko wrote:
>>>> Gregor Richards wrote:
>>>>
>>>> I am getting strange errors using rebuild/dsss: http://codepad.org/MfhzjJFG
>>>>
>>>> If I use my own Makefile, everything compiles, links and runs successfully:
>>>>
>>>> cc = dmd
>>>> flags = -unittest
>>>> link_flags = -L-lX11
>>>> source_dirs = y std/c/linux/X11 tl
>>>>
>>>> src_files = $(addsuffix /*.d, $(source_dirs))
>>>> src_objs = $(patsubst %.d, %.o, $(wildcard $(src_files)))
>>>>
>>>> paint: paint.o $(src_objs)
>>>>        $(cc) $^ $(link_flags)
>>>>
>>>> main: main.o $(src_objs)
>>>>        $(cc) $^ $(link_flags)
>>>>
>>>> VPATH := $(source_dirs) .
>>>>
>>>> %.o: %.d
>>>>        $(cc) -c $^ $(flags) -op
>>>>
>>>> clean:
>>>>        rm -f $(addsuffix /*.o, . $(source_dirs))
>>>>        rm -f paint
>>>>        rm -f main
>>>>
>>>> What am I doing wrong?
>>> Rebuild ignores D files in the package 'std', since those should be packages provided by the standard library. You really oughtn't to name things 'std' anyway, and putting 'X11' in std.c.linux doesn't make much sense regardless.
>> 
>> Is that behavior new with DSSS 0.78?
>> What does that mean for Tangobos, which is not the standard library
>> but is completely in the std package?
>> 
>> --bb
> 
> This is not new. If you're using Tango, you (should) use the rebuild profile for Tango, which doesn't ignore the std package since that's not part of Tango.
> 
> The only reason it has to actively ignore the std package is because they're .d files instead of the .di files they ought to be.
> 
>   - Gregor Richards

But in this case the use of Makefiles is more flexible... And this behavior of Rebuild really is not obvious.. isn't it better to change it?
September 21, 2008
Leonid Krashenko wrote:
> Gregor Richards wrote:
> 
>> Bill Baxter wrote:
>>> On Sun, Sep 21, 2008 at 8:58 AM, Gregor Richards <Richards@codu.org>
>>> wrote:
>>>> Leonid Krashenko wrote:
>>>>> Gregor Richards wrote:
>>>>>
>>>>> I am getting strange errors using rebuild/dsss:
>>>>> http://codepad.org/MfhzjJFG
>>>>>
>>>>> If I use my own Makefile, everything compiles, links and runs
>>>>> successfully:
>>>>>
>>>>> cc = dmd
>>>>> flags = -unittest
>>>>> link_flags = -L-lX11
>>>>> source_dirs = y std/c/linux/X11 tl
>>>>>
>>>>> src_files = $(addsuffix /*.d, $(source_dirs))
>>>>> src_objs = $(patsubst %.d, %.o, $(wildcard $(src_files)))
>>>>>
>>>>> paint: paint.o $(src_objs)
>>>>>        $(cc) $^ $(link_flags)
>>>>>
>>>>> main: main.o $(src_objs)
>>>>>        $(cc) $^ $(link_flags)
>>>>>
>>>>> VPATH := $(source_dirs) .
>>>>>
>>>>> %.o: %.d
>>>>>        $(cc) -c $^ $(flags) -op
>>>>>
>>>>> clean:
>>>>>        rm -f $(addsuffix /*.o, . $(source_dirs))
>>>>>        rm -f paint
>>>>>        rm -f main
>>>>>
>>>>> What am I doing wrong?
>>>> Rebuild ignores D files in the package 'std', since those should be
>>>> packages provided by the standard library. You really oughtn't to name
>>>> things 'std' anyway, and putting 'X11' in std.c.linux doesn't make much
>>>> sense regardless.
>>> Is that behavior new with DSSS 0.78?
>>> What does that mean for Tangobos, which is not the standard library
>>> but is completely in the std package?
>>>
>>> --bb
>> This is not new. If you're using Tango, you (should) use the rebuild
>> profile for Tango, which doesn't ignore the std package since that's not
>> part of Tango.
>>
>> The only reason it has to actively ignore the std package is because
>> they're .d files instead of the .di files they ought to be.
>>
>>   - Gregor Richards
> 
> But in this case the use of Makefiles is more flexible... And this behavior
> of Rebuild really is not obvious.. isn't it better to change it?

Makefiles are absolutely more flexible. As flexible as a noose. But rebuild traces dependencies, and Makefiles don't: Would you have me stop tracing dependencies, making rebuild entirely useless, or stop ignoring std, making it rebuild the entire core library every time you build anything?

 - Gregor Richards
September 29, 2008
2008/9/15 yidabu <yidabu.spam@gmail.com>:
> On Sun, 14 Sep 2008 20:05:06 +0900
> "Bill Baxter" <wbaxter@gmail.com> wrote:
>
>> 2008/9/14 yidabu <yidabu.spam@gmail.com>:
>> > On Sat, 13 Sep 2008 15:04:27 -0400
>> > Seems it takes a long time to build lib under Windows.
>>
>> This may or may not be your issue, but if you had changed your oneatatime setting in the rebuild config then re-installing dsss would overwrite that.  So maybe you just need to re-edit your oneatatime back to "no"?
>>
>> --bb
>
> Thanks for you reply, I set oneatatime=yes for DSSS 0.75 and DSSS 0.78, 0.75 is more quickly to build Windows library.
>
> set oneatatime=no may be cause larger executable size.


I have to say, this new DSSS does seem a lot slower at building to me too.  I'll do some more exact measurements later, but my DWT-using exe now seems to compile as much slower.  It feels about as slow slow as DSSS 0.75 did running a --full build, except now it's that slow when not doing --full.

Did anything change in how DSSS compiles things between 0.75 and 0.78?

--bb
September 29, 2008
On Mon, Sep 29, 2008 at 12:15 PM, Bill Baxter <wbaxter@gmail.com> wrote:
> 2008/9/15 yidabu <yidabu.spam@gmail.com>:
>> On Sun, 14 Sep 2008 20:05:06 +0900
>> "Bill Baxter" <wbaxter@gmail.com> wrote:
>>
>>> 2008/9/14 yidabu <yidabu.spam@gmail.com>:
>>> > On Sat, 13 Sep 2008 15:04:27 -0400
>>> > Seems it takes a long time to build lib under Windows.
>>>
>>> This may or may not be your issue, but if you had changed your oneatatime setting in the rebuild config then re-installing dsss would overwrite that.  So maybe you just need to re-edit your oneatatime back to "no"?
>>>
>>> --bb
>>
>> Thanks for you reply, I set oneatatime=yes for DSSS 0.75 and DSSS 0.78, 0.75 is more quickly to build Windows library.
>>
>> set oneatatime=no may be cause larger executable size.
>
>
> I have to say, this new DSSS does seem a lot slower at building to me too.  I'll do some more exact measurements later, but my DWT-using exe now seems to compile as much slower.  It feels about as slow slow as DSSS 0.75 did running a --full build, except now it's that slow when not doing --full.
>
> Did anything change in how DSSS compiles things between 0.75 and 0.78?

Here are some timings with my app:

Takes 2:48 to "dsss build" with 0.78
Takes 2:48 to "dsss build -full" with 0.78

Takes 0:35 to "dsss build" with 0.76pre
Takes 0:35 to "dsss build -full" with 0.76pre
Takes 0:36 to "dss build" after a "dsss clean" with 0.76pre

So two strange things are 1) that 0.78 is so much slower and 2) that -full and not -full seem to have the same speed in both cases.

--bb
1 2
Next ›   Last »