All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/8] Makefile: optimize noop runs, add shared.mak
@ 2021-12-24 17:37 Ævar Arnfjörð Bjarmason
  2021-12-24 17:37 ` [PATCH v2 1/8] Makefiles: add "shared.mak", move ".DELETE_ON_ERROR" to it Ævar Arnfjörð Bjarmason
                   ` (9 more replies)
  0 siblings, 10 replies; 67+ messages in thread
From: Ævar Arnfjörð Bjarmason @ 2021-12-24 17:37 UTC (permalink / raw)
  To: git
  Cc: Junio C Hamano, Phillip Wood, Jeff King, Dan Jacques, Eric Wong,
	Jonathan Nieder, Mike Hommey,
	Đoàn Trần Công Danh, Victoria Dye,
	Eric Sunshine, Ævar Arnfjörð Bjarmason

As the v1 notes (among other things):
https://lore.kernel.org/git/cover-0.8-00000000000-20211217T012902Z-avarab@gmail.com/

    This speeds up noop runs of "make" by a lot. After a "make" running a
    "make -j1" with this is ~1.5 faster than on "master"[2], and around 3x
    as fast with "make -j1 NO_TCLTK=Y" (the TCL part takes a lot of time,
    but that's another matter).

This v2 re-roll addresses trivial commit message/comment grammar/typo
issues pointed out by Eric Sunshine, thanks Eric!

Ævar Arnfjörð Bjarmason (8):
  Makefiles: add "shared.mak", move ".DELETE_ON_ERROR" to it
  Makefile: disable GNU make built-in wildcard rules
  Makefile: define $(LIB_H) in terms of $(FIND_SOURCE_FILES)
  Makefile: move ".SUFFIXES" rule to shared.mak
  Makefile: move $(comma), $(empty) and $(space) to shared.mak
  Makefile: add "$(QUIET)" boilerplate to shared.mak
  Makefile: use $(wspfx) for $(QUIET...) in shared.mak
  Makefiles: add and use wildcard "mkdir -p" template

 Documentation/Makefile |  63 +++-------------------
 Makefile               | 118 +++++++++++++----------------------------
 config.mak.uname       |   1 -
 shared.mak             | 109 +++++++++++++++++++++++++++++++++++++
 t/Makefile             |   3 ++
 t/interop/Makefile     |   3 ++
 templates/Makefile     |   8 ++-
 7 files changed, 160 insertions(+), 145 deletions(-)
 create mode 100644 shared.mak

Range-diff against v1:
1:  f74b47662b7 = 1:  b652fc78fda Makefiles: add "shared.mak", move ".DELETE_ON_ERROR" to it
2:  b0c63abe091 = 2:  b0c9be581a6 Makefile: disable GNU make built-in wildcard rules
3:  c6c6f7cf8d8 = 3:  ed6fd1c0bd1 Makefile: define $(LIB_H) in terms of $(FIND_SOURCE_FILES)
4:  ed64cd1bd4a = 4:  4c6d8089fff Makefile: move ".SUFFIXES" rule to shared.mak
5:  1749085b929 = 5:  f1f02c71dbc Makefile: move $(comma), $(empty) and $(space) to shared.mak
6:  c25284b24cf = 6:  fb877060d6b Makefile: add "$(QUIET)" boilerplate to shared.mak
7:  3daef7672be = 7:  90d804ea9a0 Makefile: use $(wspfx) for $(QUIET...) in shared.mak
8:  aca560ca410 ! 8:  59c1b7032db Makefiles: add and use wildcard "mkdir -p" template
    @@ Commit message
     
         But as it turns out we can use this neat trick of only doing a "mkdir
         -p" if the $(wildcard) macro tells us the path doesn't exist. A re-run
    -    of a performance test similar to thatnoted downthread of [1] in [2]
    +    of a performance test similar to that noted downthread of [1] in [2]
         shows that this is faster, in addition to being less verbose and more
         reliable (this uses my "git-hyperfine" thin wrapper for "hyperfine"[3]):
     
    @@ shared.mak: ifndef V
     +## needed.
     +##
     +## Is racy, but in a good way; we might redundantly (and safely)
    -+## "mkdir -p" when running in parallel, but won't need to exhaustively
    ++## "mkdir -p" when running in parallel, but won't need to exhaustively create
     +## individual rules for "a" -> "prefix" -> "dir" -> "file" if given a
     +## "a/prefix/dir/file". This can instead be inserted at the start of
     +## the "a/prefix/dir/file" rule.
-- 
2.34.1.1215.g6e154b84c77


^ permalink raw reply	[flat|nested] 67+ messages in thread

end of thread, other threads:[~2022-04-11 10:14 UTC | newest]

Thread overview: 67+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-24 17:37 [PATCH v2 0/8] Makefile: optimize noop runs, add shared.mak Ævar Arnfjörð Bjarmason
2021-12-24 17:37 ` [PATCH v2 1/8] Makefiles: add "shared.mak", move ".DELETE_ON_ERROR" to it Ævar Arnfjörð Bjarmason
2021-12-24 17:37 ` [PATCH v2 2/8] Makefile: disable GNU make built-in wildcard rules Ævar Arnfjörð Bjarmason
2021-12-24 17:37 ` [PATCH v2 3/8] Makefile: define $(LIB_H) in terms of $(FIND_SOURCE_FILES) Ævar Arnfjörð Bjarmason
2021-12-24 17:37 ` [PATCH v2 4/8] Makefile: move ".SUFFIXES" rule to shared.mak Ævar Arnfjörð Bjarmason
2022-02-22  0:22   ` Taylor Blau
2022-02-22 11:14     ` Ævar Arnfjörð Bjarmason
2021-12-24 17:37 ` [PATCH v2 5/8] Makefile: move $(comma), $(empty) and $(space) " Ævar Arnfjörð Bjarmason
2021-12-24 17:37 ` [PATCH v2 6/8] Makefile: add "$(QUIET)" boilerplate " Ævar Arnfjörð Bjarmason
2021-12-24 17:37 ` [PATCH v2 7/8] Makefile: use $(wspfx) for $(QUIET...) in shared.mak Ævar Arnfjörð Bjarmason
2021-12-24 17:37 ` [PATCH v2 8/8] Makefiles: add and use wildcard "mkdir -p" template Ævar Arnfjörð Bjarmason
2022-02-21 20:17 ` [PATCH v2 0/8] Makefile: optimize noop runs, add shared.mak Ævar Arnfjörð Bjarmason
2022-02-25  9:04 ` [PATCH v3 0/9] " Ævar Arnfjörð Bjarmason
2022-02-25  9:04   ` [PATCH v3 1/9] scalar Makefile: set the default target after the includes Ævar Arnfjörð Bjarmason
2022-02-25 22:43     ` Junio C Hamano
2022-02-25  9:04   ` [PATCH v3 2/9] Makefiles: add "shared.mak", move ".DELETE_ON_ERROR" to it Ævar Arnfjörð Bjarmason
2022-02-25 22:47     ` Junio C Hamano
2022-02-25 23:05       ` Ævar Arnfjörð Bjarmason
2022-02-25 23:42         ` Junio C Hamano
2022-02-28 10:56     ` Phillip Wood
2022-02-28 11:16       ` Ævar Arnfjörð Bjarmason
2022-02-28 15:51         ` Phillip Wood
2022-02-28 16:34           ` Ævar Arnfjörð Bjarmason
2022-02-25  9:04   ` [PATCH v3 3/9] Makefile: disable GNU make built-in wildcard rules Ævar Arnfjörð Bjarmason
2022-02-25 23:17     ` Junio C Hamano
2022-02-25  9:04   ` [PATCH v3 4/9] Makefile: define $(LIB_H) in terms of $(FIND_SOURCE_FILES) Ævar Arnfjörð Bjarmason
2022-02-25  9:04   ` [PATCH v3 5/9] Makefile: move ".SUFFIXES" rule to shared.mak Ævar Arnfjörð Bjarmason
2022-02-25 23:19     ` Junio C Hamano
2022-02-25  9:04   ` [PATCH v3 6/9] Makefile: move $(comma), $(empty) and $(space) " Ævar Arnfjörð Bjarmason
2022-02-25 23:24     ` Junio C Hamano
2022-02-25  9:04   ` [PATCH v3 7/9] Makefile: add "$(QUIET)" boilerplate " Ævar Arnfjörð Bjarmason
2022-02-25 23:27     ` Junio C Hamano
2022-02-25  9:04   ` [PATCH v3 8/9] Makefile: use $(wspfx) for $(QUIET...) in shared.mak Ævar Arnfjörð Bjarmason
2022-02-25 23:30     ` Junio C Hamano
2022-02-25  9:04   ` [PATCH v3 9/9] Makefiles: add and use wildcard "mkdir -p" template Ævar Arnfjörð Bjarmason
2022-03-02 12:49   ` [PATCH v4 0/9] Makefile: optimize noop runs, add shared.mak Ævar Arnfjörð Bjarmason
2022-03-02 12:49     ` [PATCH v4 1/9] scalar Makefile: use "The default target of..." pattern Ævar Arnfjörð Bjarmason
2022-03-02 19:35       ` Junio C Hamano
2022-03-02 12:49     ` [PATCH v4 2/9] Makefiles: add "shared.mak", move ".DELETE_ON_ERROR" to it Ævar Arnfjörð Bjarmason
2022-03-02 12:49     ` [PATCH v4 3/9] Makefile: disable GNU make built-in wildcard rules Ævar Arnfjörð Bjarmason
2022-03-02 12:49     ` [PATCH v4 4/9] Makefile: define $(LIB_H) in terms of $(FIND_SOURCE_FILES) Ævar Arnfjörð Bjarmason
2022-03-02 12:49     ` [PATCH v4 5/9] Makefile: move ".SUFFIXES" rule to shared.mak Ævar Arnfjörð Bjarmason
2022-03-02 12:49     ` [PATCH v4 6/9] Makefile: move $(comma), $(empty) and $(space) " Ævar Arnfjörð Bjarmason
2022-03-02 12:49     ` [PATCH v4 7/9] Makefile: add "$(QUIET)" boilerplate " Ævar Arnfjörð Bjarmason
2022-03-02 12:49     ` [PATCH v4 8/9] Makefile: use $(wspfx) for $(QUIET...) in shared.mak Ævar Arnfjörð Bjarmason
2022-03-02 19:26       ` Junio C Hamano
2022-03-02 12:49     ` [PATCH v4 9/9] Makefiles: add and use wildcard "mkdir -p" template Ævar Arnfjörð Bjarmason
2022-03-02 20:38       ` Junio C Hamano
2022-03-02 20:39     ` [PATCH v4 0/9] Makefile: optimize noop runs, add shared.mak Junio C Hamano
2022-03-03 14:08     ` Phillip Wood
2022-03-03 16:04     ` [PATCH v5 0/8] " Ævar Arnfjörð Bjarmason
2022-03-03 16:04       ` [PATCH v5 1/8] scalar Makefile: use "The default target of..." pattern Ævar Arnfjörð Bjarmason
2022-03-03 16:04       ` [PATCH v5 2/8] Makefiles: add "shared.mak", move ".DELETE_ON_ERROR" to it Ævar Arnfjörð Bjarmason
2022-03-03 16:04       ` [PATCH v5 3/8] Makefile: disable GNU make built-in wildcard rules Ævar Arnfjörð Bjarmason
2022-04-11 10:05         ` Rene Kita
2022-04-11 10:11           ` Ævar Arnfjörð Bjarmason
2022-03-03 16:04       ` [PATCH v5 4/8] Makefile: define $(LIB_H) in terms of $(FIND_SOURCE_FILES) Ævar Arnfjörð Bjarmason
2022-03-03 16:04       ` [PATCH v5 5/8] Makefile: move ".SUFFIXES" rule to shared.mak Ævar Arnfjörð Bjarmason
2022-04-05 14:15         ` Adam Dinwoodie
2022-04-05 16:04           ` Ævar Arnfjörð Bjarmason
2022-04-05 19:56           ` [PATCH] Documentation/Makefile: fix "make info" regression in dad9cd7d518 Ævar Arnfjörð Bjarmason
2022-04-06  8:26             ` Adam Dinwoodie
2022-04-06 16:43               ` Junio C Hamano
2022-04-06 17:05                 ` Taylor Blau
2022-03-03 16:04       ` [PATCH v5 6/8] Makefile: move $(comma), $(empty) and $(space) to shared.mak Ævar Arnfjörð Bjarmason
2022-03-03 16:04       ` [PATCH v5 7/8] Makefile: add "$(QUIET)" boilerplate " Ævar Arnfjörð Bjarmason
2022-03-03 16:04       ` [PATCH v5 8/8] Makefiles: add and use wildcard "mkdir -p" template Ævar Arnfjörð Bjarmason

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.