README.txt (1825B)
1 The new "concurrent.futures" module from Python 3.2 will make it 2 even easier to execute tasks concurrently: 3 http://www.python.org/dev/peps/pep-3148/ 4 5 It may be tempting to try to create a new build system from it, 6 but that's only a small part of a build system: 7 8 * reinventing a system for handling commands and command-line options 9 * adding a system of (task) order and dependencies 10 * creating an extension system for new programming languages 11 * handling exceptions and errors 12 * adding support for python versions < 3.2 13 14 All this represents a lot of work, and there are of course lots of design 15 mistakes to avoid. It is so easy to create a system with poor usability, 16 poor extensibility, and poor performance. 17 18 These pitfalls and many others are already solved in the Waf build system, which 19 also enables the re-use of its components into new build tools. By using these 20 tested and maintained components, much more time will be left to work 21 on the interesting problems such as creating an intuitive XML/YAML/JSON schema 22 or creating a domain-specific programming language (make-like, cmake-like, ...), 23 or extracting commands and dependencies to create derivated files (Makefiles, Visual studio, ..) 24 25 A few examples are provided to illustrate the range of possibilities: 26 * overview: how to create a custom file using the waf framework to perform a simple build 27 * parser: how to add a parser for a domain-specific language 28 * noscript: infer what to build from given files, use no script file 29 * makefile_dumper: create a makefile corresponding to the current build, extracting as many dependencies as possible 30 * nostate: use timestamps only, and no build directory (very make-like) 31 * extpy: a custom waf file able to read wscript files having the extension ".py" 32 33 Thomas Nagy, 2010-2016