Live data from Hacker News

Chromium Switching from Ninja to Siso

groups.google.com

21–30 of 73 posts

Re: Chromium Switching from Ninja to Siso

#22

Earlier quoted context omitted.

If I'm going to compile Chromium from source, I probably want to compile the build system from source.

Why? Would you compile the compiler from source as well? From what? You need to compile the compiler's compiler from source as well, right? Where does it stop? And why is that location more valid of a decision than the one that doesn't require building the build system from source?

Not really relevant here, but this is actually exactly how it's done in embedded systems like Yocto, everything from gcc, make, etc. is built from source (I believe the host compiler is used in a 3-stage bootstrapping process for gcc).

And in these cases you really see the impact of internal dependencies (building rust/llvm takes around 30-40% of the entire build). The upside is that you can patch and debug absolutely any part of the system.

Re: Chromium Switching from Ninja to Siso

#24

Earlier quoted context omitted.

If I'm going to compile Chromium from source, I probably want to compile the build system from source.

Why? Would you compile the compiler from source as well? From what? You need to compile the compiler's compiler from source as well, right? Where does it stop? And why is that location more valid of a decision than the one that doesn't require building the build system from source?

[deleted]

Re: Chromium Switching from Ninja to Siso

#25
post #18
post #9

Earlier quoted context omitted.

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

Even so, a build system migration of any kind being anything other than Bazel given the design goals of Bazel and the heritage of Chrome is an implicit indictment of Bazel itself. I say this as a fan of Bazel.

moving to bazel might be a lot more work vs a drop in replacement which is what siso looks like atm.

Re: Chromium Switching from Ninja to Siso

#26
post #25
post #18

Earlier quoted context omitted.

Even so, a build system migration of any kind being anything other than Bazel given the design goals of Bazel and the heritage of Chrome is an implicit indictment of Bazel itself. I say this as a fan of Bazel.

moving to bazel might be a lot more work vs a drop in replacement which is what siso looks like atm.

Yeah, thats fair, but if I understood right- this is a custom built tool to be compatible with Ninja.

That work building “yet another build tool” could have gone in to programmatically generating bazel BUILD files. So, there was an active choice here somewhere; we just don’t know all the information as to why effort was diverted away from Bazel and toward building a new tool.

I trust them to make good decisions, so I would like to understand more. :)

Seems like Siso supports Starlark, so maybe its a step in Bazels direction after all.

Re: Chromium Switching from Ninja to Siso

#27
post #9

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.

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

Bazel didn't even exist when they moved from gyp to ninja.

Re: Chromium Switching from Ninja to Siso

#29

Earlier quoted context omitted.

If I'm going to compile Chromium from source, I probably want to compile the build system from source.

Why? Would you compile the compiler from source as well? From what? You need to compile the compiler's compiler from source as well, right? Where does it stop? And why is that location more valid of a decision than the one that doesn't require building the build system from source?

You compile the compiler from source, then you use the compiler compiled from source to compile the compiler from source again, and then the compiler that you compiled from source using the compiler compiled from source should be essentially identical to the compiler compiled from source by itself (unless anything like Reflections on Trusting Trust is in play, but then a lot of bets are off).

Re: Chromium Switching from Ninja to Siso

#30
post #17

Earlier quoted context omitted.

Why? Would you compile the compiler from source as well? From what? You need to compile the compiler's compiler from source as well, right? Where does it stop? And why is that location more valid of a decision than the one that doesn't require building the build system from source?

Same can be extended for other tools that are generally used in builds like make. I never heard someone say that they need to build make from source so they can build X, unless of course you're using something like Linux From Scratch.

I build cmake from source but TBF that's because projects sometimes depend on specific version ranges for features that they use (either brand new or recently removed).
Post reply on HN