Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I'm surprised to see no mention of Tup [1] in the discussion. Verifying the dependency graph for maximizing parallelism is its major feature.

[1]: http://gittup.org/tup/examples.html



It seems dead? Latest commit was over a year ago, and there are over 100 open issues seemingly with no activity.


Firefox currently can be built with tup, although it's still experimental and not used in production.


Does Tup do more than C? Firefox needs to build some Rust things too.


It's a very general tool. IIRC from playing with it, it doesn't give a fig about whether it's running a compiler at all. I think I was using it for a toy compiler+nasm, actually...


Windows support seems to be very lacking.


That would be pretty easy to fix, TBH. Tup's author works for Mozilla, and Mozilla has the expertise to add that functionality. As always, it's a matter of will and resourcing.


What is different about Tup? It's home page contains a lot of text but zero information.


Tup runs what is effectively a bash build script, but does so under ptrace (or equivalent) so it knows about every file that has been checked (and IIRC even those that were missing). So you basically write a "from scratch" build script and that's it.

To rebuild, it will rerun the script, except that it knows which file it reads (and which mustn't exist), so if nothing is changed, it can skip that stage. There is no inherent difference between the compiler binary (say, /usr/bin/gcc), the system include (/usr/include/stdio.h), and the project source.

It makes for a super simple build script, which, after one successful build, gives tup enough information about dependencies and parallelization opportunities, while at the same time also tracks toolchains better than you can manually (does /usr/bin/gcc shell to /usr/bin/x86-gcc or /usr/bin/amd64-gcc ? did one of them change but not the other? was it the one we need? tup knows)

Unfortunately, it is nontrivial; it can uses ptrace or fuse to trace file access on Linux, IIRC has some other hack on Windows - and little to no support for other systems. Also, the overhead is in the single digit % last time I checked.


I suspected as much but why doesn't the page supposedly explaining what Tup is actually say any of that?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: