top | item 44307972

Chromium Switching from Ninja to Siso

117 points| hortense | 8 months ago |groups.google.com

68 comments

order

intexpress|8 months ago

Note that Siso uses Starlark (https://chromium.googlesource.com/infra/infra/+/refs/heads/m...) which is the build language of Bazel

I wonder if the end goal is to use Bazel for Chromium and Siso is an incremental step to get there

oldmanhorton|8 months ago

A handful of other areas are configured using Starlark in chromium. This particular use is in a very different capacity than Bazel - the Bazel equivalent in chromium is GN, and I have not seen any signs that GN will be replaced any time soon.

RainyDayTmrw|8 months ago

Kinda impressive and terrifying that Chromium needs its own build system. Kinda strange that Bazel was right there, also from Google, and they not only choose not to use it, but also reference it in the name of the new tool.

tonyedgecombe|8 months ago

>Kinda impressive and terrifying that Chromium needs its own build system.

This is one area where I think it makes some sense to build your own. Most projects only use a fraction of the capability of a typical build system. The last time I did this I managed the whole thing in just 300 lines of code.

operator-name|8 months ago

If Android was anything to go by, migrating build systems is a risky endeavour. Miso claims compatibility with ninja, so I’m guessing this route was deemed easier to make incremental improvements.

jinwoo68|8 months ago

To be fair, Bazel didn't exist when Chrome started.

jefftk|8 months ago

I think this makes Chrome build system number four: scons, gyp, ninja, siso.

enqk|8 months ago

gyp to gn

gyp could produce ninja files. gn is short for generate ninja. Now gn produces files compatible with siso

charcircuit|8 months ago

I wonder if AOSP will also move over to Siso. Since it is advertised as a drop in replacement it would take less resources than the Bazel migration which got canceled. The readme explicitly calls out a feature used by AOSP, so it is plausible that thought was put into it.

pjmlp|8 months ago

Another NIH build tool?

Never heard of it, and ninja is the only way to build C++20 modules alongside CMake.

Then again, that is something that Chromium probably will never bother with.

kichik|8 months ago

Wasn't ninja invented by a Google employee?

mrlonglong|8 months ago

They've added a dependency on Go with the addition of siso.

tedunangst|8 months ago

Is this consequential for a project the size of chromium?

lordofgibbons|8 months ago

How so? you don't need the go build toolchain installed to use Go binaries.

kookamamie|8 months ago

If Siso is a drop-in alternative to Ninja, are there builds of Siso usable for building Ninja-projects, in general?

ahartmetz|8 months ago

They want to "improve their build processes", huh? Yeah, there are some problems, like ginormous build times, for which there are some very well-known and pedestrian solutions ("physical code design"). But these aren't impressive enough to get promoted.

Just Google things.

kosolam|8 months ago

Looks like the Google developer in the discussion is clueless.

kosolam|8 months ago

I just wanted to point out after reading the thread of the Chromium maintainers that it looked to me like they rushed out this change without proper consideration of all possible implications. Other comments there show that the developer isn’t intimately familiar in depth with the Chromium project at large, yet making changes with very wide impact. I apologize if anyone got me wrong, especially if there are any Googler here that took this personally.

kosolam|8 months ago

[deleted]