From: Junio C Hamano Date: Fri, 20 Jan 2012 07:14:18 GMT Subject: Re: [PATCH] t/Makefile: Use $(sort ...) explicitly where needed Message-ID: <7vbopyhmlx.fsf@alter.siamese.dyndns.org> In-Reply-To: <20120120063450.GA15371@mini.zxlink> Kirill Smelkov writes: >> I do not necessarily buy your "so we HAVE TO, OR ELSE". >> >> Even though I can understand "We can sort the list of tests _if_ we do not >> want them executed in seemingly random order when running 'make -j1'", I >> tend to think that *if* is a big one. Aren't these tests designed not to >> depend on each other anyway? > > Yes, they don't depend on each other, but what's the point in not > sorting them? I usually watch test progress visually, and if tests are > sorted, even with make -j4 they go more or less incrementally by their t > number. > > On my netbook, adding $(sort ...) adds approximately 0.008s to make > startup, so imho there is no performance penalty to adding that sort. Heh, who said anything about performance? I was pointing out that your justification "we HAVE TO" was wrong. If you are doing this for perceived prettyness and not as a fix for any correctness issue, I want to see the patch honestly described as such; that's all. By the way, if I recall correctly, $(sort) in GNU make not just sorts but as a nice side effect removes duplicates. So if we used a(n fictional) construct in our Makefile like this: T = $(wildcard *.sh a.*) that might produce duplicates (i.e. "a.sh" might appear twice), which might leave us two identical pathnames in $T and cause us trouble. Even if we do not have such a use currently, rewriting $(wildcard) like your patch does using $(sort $(wildcard ...)) may be a good way to future-proof our Makefile, and if you justify your patch that way, it would be a possible correctness hardening, not just cosmetics, and phrasing it with "HAVE TO" may be justifiable. Care to try if $(wildcard *.sh a.*) give you duplicated output with newer GNU make? I am lazy but am a bit curious ;-)