[CMake] memoized build systems, opinions
David Manura
dm.list at math2.org
Fri Mar 11 03:19:59 EST 2011
I've seen a small following in "memoized build systems" as an
alternative to the traditional approach of building a dependency tree,
but these projects are still emerging and its difficult finding
information on this approach. Does anyone have real world experience
of the strengths/weaknesses of these systems in large projects
compared to the more well known systems like cmake and its current
generators? One concern is how parallelism would be handled, but
apparently there is some support for that.
mem
http://srp.github.com/mem/getting-started.html
https://github.com/srp/mem/blob/master/doc/source/mem.rst
- memoization
fbuild
https://github.com/felix-lang/fbuild/
https://github.com/felix-lang/fbuild/raw/master/docs/introducing-fbuild.markdown
http://www.reddit.com/r/programming/comments/8wezu/fbuild_01_build_system_released_with_cross/
- memoization, parallelism (is used to build the felix language)
http://news.ycombinator.com/item?id=2105894
"I believe the key insight that we all independently made is that we
can use the procedural execution stack for the dependency tree, and
cache the function arguments and results to avoid work duplication. I
believe this helps someone reason about what's going on in the build
system compared to the declarative make systems because you can easily
trace the inputs and outputs of some dependency."
wonderbuild
http://retropaganda.info/~bohan/work/sf/psycle/branches/bohan/wonderbuild/wonderbuild/README
http://retropaganda.info/~bohan/work/sf/psycle/branches/bohan/wonderbuild/benchmarks/time.xml
- memoization, fast, parallelism
memoize
http://benno.id.au/blog/2008/06/06/memoize-build-framework
fabricate
http://code.google.com/p/fabricate/
http://code.google.com/p/fabricate/wiki/HowItWorks
- finds dependencies automatically
- "inspired by Bill McCloskey's memoize, but fabricate works under
Windows as well by using file access times instead of strace if strace
is not available on your file system"
More information about the CMake
mailing list