Conversation

whoa, kati (github.com/google/kati) is awesome. i'm using some makefiles with a large (>1s with no changes) hot rebuild latency that is intensely irritating. built kati, spent a few minutes figuring out the things it didn't quite like, now hot rebuilds are -instant-
4
90
Replying to and
It uses lower time complexity algorithms, avoids lots of unnecessary work and has built-in implementations of commonly used shell commands. It has clever things like a built-in $(shell find) where it can track the timestamps of those directories and avoid running find again.
1
10
It's not just that ninja is faster but that it's a much faster implementation of dealing with make. It's not an entirely complete GNU make implementation and they take the practical approach of requiring minor build system adjustments. It's also more reliable than GNU make.
1
9
It's clever enough to realize that it needs to cope with environment variables changing, etc. compared to GNU make where if you change CFLAGS, it's not going to realize that it actually needs to rebuild everything. It was made as a stopgap while Android moves to Blueprint files.
1
8
I think it would be very useful for many people outside of Android if they knew it existed. There are a lot of other neat tools like this in Android and Chromium. They're huge projects and they come up with some really nice tooling to deal with real problems in a practical way.
3
10
Kati isn't the replacement for the make-based build system. It's a faster and more reliable implementation of make for harm reduction while make is phased out. Has been around for 5 years and they're still phasing it out. Kati was always intended to become obsolete for Android.
1
1
It's not clear to me exactly what they'll be doing with Bazel yet. The current work on it uses Bazel instead of ninja as the backend for the same high-level declarative build system. Maybe they'll auto-convert Blueprint files to Bazel, but it'll be trivial vs. the make migration.
They still would have wanted kati to transition Android away from the make-based build system to Bazel. They would have ideally implemented support for building it with Bazel instead of making soong / Blueprint which are basically a reinvention of Bazel with strong AOSP support.
1
Show replies