4 ms·
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://gittu
by NieDzejkob 7y ago
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 http://gittup.org/tup/examples.html
- theamk 7y agoIt seems dead? Latest commit was over a year ago, and there are over 100 open issues seemingly with no activity.
- swsieber 7y agoDoes Tup do more than C? Firefox needs to build some Rust things too.
- andrewflnr 7y agoIt'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...
- staktrace 7y agoFirefox currently can be built with tup, although it's still experimental and not used in production.
- IshKebab 7y agoWhat is different about Tup? It's home page contains a lot of text but zero information.
- beagle3 7y agoTup 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.
- IshKebab 7y agoI suspected as much but why doesn't the page supposedly explaining what Tup is actually say any of that?
- adgasf 7y agoWindows support seems to be very lacking.
- dblohm7 7y agoThat 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.