Live data from Hacker News

Chromium Switching from Ninja to Siso

groups.google.com

71–73 of 73 posts

Re: Chromium Switching from Ninja to Siso

#71
post #45

Earlier quoted context omitted.

I stronly disagree. While you use a fraction of the features you often mistake it works for it is right and to something subtle is wrong. You end up either not working or dedicating a lot of effort fixing weird corner cases that you didn't think of

>You end up either not working or dedicating a lot of effort fixing weird corner cases that you didn't think of That's not my experience at all. Part of my job is to think about weird corner cases, I'm not sure why a build script should be any worse than what I normally deal with.

Now that I'm on a real computer (keyboard) maybe I can elaborate a bit.

It isn't hard to create a basic build system. However there are a lot more rare corner cases than anyone who sets out to create one as a side project realizes and so in almost all cases their build systems work for the easy/common situations, but in lots of weird cases it doesn't work. Often those corner cases will happen on setups that make sense for one exactly person in the world but for everyone else is stupid. (think cross compiling on haiku-os for a vax running netbsd)

Which is to say if you want to create a build system that needs to be your only goal. You can maybe make the goal create the build system that some project needs (Chromium in this case) needs, but you won't be doing any hacking on the project (Chromium) itself because all your time will be spent on the build system.

Since everyone I know thinks of build systems as a side project they should just choose one that works. I use cmake, which works well despite the warts. I've heard good things about build2 and bazel, but I have no experience with either. I have used ninja as well (that is handwritten ninja files), but it isn't intended for that purpose and so in general I wouldn't recommend it.

Re: Chromium Switching from Ninja to Siso

#72
post #9

Earlier quoted context omitted.

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

Blaze (and gtest) did exist then, but it was integrated with Omega scheduler.

IIRC even blaze didn't exist. The Chrome project existed before I joined Google (in 2007) but blaze came out after I joined Google.

Re: Chromium Switching from Ninja to Siso

#73
post #66

Earlier quoted context omitted.

gentoo is aces at crossdev - that's what gentoo calls it. https://wiki.gentoo.org/wiki/Cross_build_environment I believe this is the guide page i use, as it's purple in websearch results. I've used it a fair amount, to build x86 on x86_64, to build arm 32 on x86_64, etc. It will also let you build x86_64 on x86_64 but for a different CPU type, so i can build packages/binaries for older systems on a newer system (like…

Ah, cool. It's been a long time since I used it in anger, and it was not so hot then (yocto was I think the first system out of 3-4 I tried that actually gave me a functioning cross-toolchain, and gentoo's crossdev was one of those. This is like a decade ago though).

maybe longer than a decade, i've been cross-compiling on gentoo for at least 13 years without issue (that's 2012, for those playing along at home.) I say "at least" because i can't remember doing it prior to raspberry pi...
Post reply on HN