Ok fair enough, to be excruciatingly semantically correct, meson is fast 
because ninja is fast and meson requires files to be listed because ninja does 
not support directory search, and meson being a sloooow python program `meson 
build` just invokes ninja and does nothing else, ninja will re-invoke meson if 
any of the `meson.build` files change.  

In fact you can invoke `ninja build` instead of `meson build`, that is how 
little meson build does when using the ninja backend. :grin:

Sure a makefile written to ninja rules will likely be nearly as fast because 
those rules are designed to make a fast build system, so except for automatic 
parallelisation it should be similar because it does much the same stuff (other 
than automatic include dependency handling and no recursive dependency issues, 
but they are convenience and accuracy issues, not speed).  

And for make you can of course try to guess a suitable `-j` yourself and try to 
remember to run `make depends` manually when you change includes (unless you 
use the GNU make extensions, which autofools doesn't).  

But almost all makefiles written by humans, and by autofools, and by most other 
tools, do not meet the ninja rules, and as @kugel- pointed out that is what 
most comparisons are to.  It would be interesting to get benchmarks of ninja 
and kmake makefiles for a big program like chromium, frankly Geany is just a 
tiddler[1]. IIUC pre-ninja chromium make would take ages to figure out what to 
do before it actually started the compiles, which was annoying if you only 
changed one character :imp: 

This lack of search is also important on windows where the file system is slow 
(by comparison to linux) and makes the visual studio backend work better too.

Anyway @kugel- thanks for fixing the Julia, probably should have prompted when 
I merged it, but didn't think of it.

[1] tiddler: a thing so small its not worth anything in the context, usually of 
fish that are thrown back.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2761#issuecomment-894896202

Reply via email to