Hi Shachar,

On Sat, Feb 23, 2013 at 06:57:27AM +0200, Shachar Shemesh wrote:
> 
> What I'm also interested in is why .SECONDARY made everything slow.

I've put a cut-down makefile demonstrating this here:
    http://urchin.earth.li/~ian/tmp/Makefile

First run
    $ make setup
(which creates some directories and touches some files).

Then
    $ time make -nr D
    make: *** No rule to make target `compiler/stage1/build/Name.hi-boot', 
needed by `compiler/stage1/build/Binary.o'.  Stop.
    make -nr D  11.48s user 0.01s system 100% cpu 11.493 total

Interesting also is
    $ time make -nr A
    make: *** No rule to make target `compiler/stage1/build/Name.hi-boot', 
needed by `compiler/stage1/build/Binary.o'.  Stop.
    make -nr A  28.55s user 0.00s system 100% cpu 28.552 total
i.e. a lot slower than making D, despite appearing to require very
little extra work.

Comment out the ".SECONDARY:" and:
    $ time make -nr D
    make: *** No rule to make target `compiler/stage1/build/Name.hi-boot', 
needed by `compiler/stage1/build/Binary.o'.  Stop.
    make -nr D  0.03s user 0.00s system 97% cpu 0.033 total
    $ time make -nr A
    make: *** No rule to make target `compiler/stage1/build/Name.hi-boot', 
needed by `compiler/stage1/build/Binary.o'.  Stop.
    make -nr A  0.03s user 0.00s system 97% cpu 0.033 total


I can reproduce the slowness with both 3.81 and a recent git checkout.
(in fact, recent git seems to be slightly slower).


Thanks
Ian


_______________________________________________
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make

Reply via email to