Whenever looking at one these, I think back to the obscure but interesting "tup": “How is it so awesome? In a typical build system, the dependency arrows go down. Although this is the way they would naturally go due to gravity, it is unfortunately also where the enemy's gate is. This makes it very inefficient and unfriendly. In tup, the arrows go up.” https://gittup.org/tup/. - Source: Hacker News / about 2 months ago
Once upon a time, you could roll your own of this using `tup` which might have my favorite "how it works" in the readme: How is it so awesome? In a typical build system, the dependency arrows go down. Although this is the way they would naturally go due to gravity, it is unfortunately also where the enemy's gate is. This makes it very inefficient and unfriendly. In tup, the arrows go up. This is... - Source: Hacker News / 4 months ago
Ten years ago, I used reStructuredText and its support for LaTeX math and syntax highlighting. I used tup (tup monitor -a -f) to take care of running rst2html on save. Source: 10 months ago
The dependency resolution is core to https://gittup.org/tup/ which had been adopted a bit at the time it came out but since faded back into obscurity. - Source: Hacker News / about 1 year ago
I might be showing my ignorance here, but this just sounds like Tup? https://gittup.org/tup/. Source: about 1 year ago
I agree. While I like the idea of tup (https://gittup.org/tup/ -- the first "forward" build system I remember hearing of), writing a makefile is easy enough that thinking about the problem upside-down doesn't offer a compelling reason to switch. Ptrace is one option for tracing dependencies, but it comes with a performance hit. A low-level alternative would be ftrace (https://lwn.net/Articles/608497/) or dtrace... - Source: Hacker News / about 1 year ago
You might enjoy Tup[1] if you've not checked it out before. [1]: https://gittup.org/tup/. - Source: Hacker News / over 1 year ago
Then don't use cargo. Rustc is quite a smart compiler, and it's actually quite easy to assemble your own dependency trees with something like make or tup. It's just that nobody distributes their Rust code in that way... But you're free to, if you want. Source: over 1 year ago
CMake is often referred to as a meta build-system. It isn't a build-system in itself, such as make) and tup are, but rather a higher-order tool which is used to generate the build-system files; for example, it outputs makefiles. CMake also other features, for testing and packaging, and probably a bunch of stuff because it's a rather bloated mess. Source: over 1 year ago
- outside of a compiler, the only examples I'm aware of are build systems like tup (https://gittup.org/tup/) or RIKER (https://github.com/curtsinger-lab/riker) which use filesystem sandboxing (FUSE for tup, ptrace/seccomp-BPF for RIKER) for "automatically correct" build dependencies. - Source: Hacker News / over 1 year ago
I hate cmake with a passion. Horrible horrible thing. I quite enjoy writing (non critical hobby stuff) in C++, but cmake makes me dread setting up new projects and really puts me off doing so, so I try to avoid it (I use Tup for my own “I don’t care if other people can’t use it” stuff). Source: almost 2 years ago
The problem is that asciidoctor doesn't have a -MMD option like gcc. So you have to list out all dependencies explicitly. The only ways to fix this are to look at what files asciidoctor opens and calculate dependencies based on that, send a patch to add this kind of option, or create your own asciidoc parser just to extract dependency info. Note, however, that this is not a make problem. Every build tool runs into... Source: almost 2 years ago
For a lot of the same reasons in this article I like to use tup[0] when I can. It doesn't integrate into anything which is both good and bad. I wish my IDE could check with tup to see what dependencies get pulled in by what files. However, it's nice that it doesn't care what language or ecosystem I'm using. Also I can get a neat dependency graph as a PNG if I want. [0] https://gittup.org/tup/. - Source: Hacker News / about 2 years ago
With more complex notebooks I often find the notebook gets too error-prone to work with. It's very easy to have some variable floating around from an old execution which you're accidentally relying on, for example. In these cases I've ported the notebook over to the Tup build system (http://gittup.org/tup/). Each cell becomes one Python file and effectively you get a system where modifying one cell will... Source: over 2 years ago
I only use it for code highlighting and limited autocomplete though, since I build using Tup http://gittup.org/tup/. Source: over 2 years ago
Basically I write a config for using Tup. I find Tup much easier to understand and it’s configuration much simpler than cmake. Source: over 2 years ago
Basically I use Tup as a build tool and have a setup around that. I keep third party dependencies in git submodules where possible and try to only use header only dependencies. When I need a dependency that’s not headed only, I create a Tupfile to build it into a .a archive for me and my main Tupfile is set up to link all archives in my dependency directory. Source: over 2 years ago
I have the whole thing nearly automated using the tup build system, so that for each new one I mostly just have to write out the new text files. Source: almost 3 years ago
In addition to what u/SAI_Peregrinus said, though you definitely have to learn Make / CMake to work on existing projects, you may also want to give TUP a try for your new projects. Source: about 3 years ago
Do you know an article comparing tup to other products?
Suggest a link to a post with product alternatives.
This is an informative page about tup. You can review and discuss the product here. The primary details have not been verified within the last quarter, and they might be outdated. If you think we are missing something, please use the means on this page to comment or suggest changes. All reviews and comments are highly encouranged and appreciated as they help everyone in the community to make an informed choice. Please always be kind and objective when evaluating a product and sharing your opinion.