* bjam; bump to version 3.1.12
* bjam; make it possible to build in MinGW/MSYS shell
* bjam; move profile code to debug.h/c to make it available for use everywhere
* bjam; cache all filesystem query operations, Unix and Windows only, include PWD and scanning
* bjam; add memory profile info, and sprinkle throught code
* bbv2; rewrite some while() loops into for() loops to reduce time and memory
* bbv2; keep a single instance counter instead of one per type to reduce memory use
* bjam+bbv2; change NORMALIZE_PATH builtin to join path parts to reduce memory use
[SVN r31177]
Otherwise, the added path elements won't be seen when loading user-config.jam
and site-config.jam and we'll get error when those files are present only
in V2 directories.
[SVN r29360]
The problem with the previous implementation is that it would iterate
over all elements in a dir even if 'pattern' had no metacharacters. First,
that was slow -- if you handed
/cygdrive/w/My Documents/boost/test/a.cpp
to it, it would crawl all the way to the top, listing each directory and
checking each file. Second, it would fail, because Cygwin is broken and
does not show 'cygdrive' is the list of directory elements of '/'.
Now we check if a pattern has metacharacters, and if not, just do
a simple 'timestamp' call.
The new glob is implemented as new 'GLOB-RECURSIVELY' builtin. I've decided
to use builtin since otherwise, we'd need 'does this name exist' builtin,
and if we need new builtin, why don't implement all globbing in core.
[SVN r29163]
* tools/common.jam (check-init-parameters): New rule.
* tools/gcc.jam (init): Make use of the above.
* kernel/errors.jam (user-error): New rule.
[SVN r23084]
* jam_src/modules.c: (import_module, imported_modules): New functions.
* jam_src/builtins.c (builtin_import_module, builtin_imported_modules):
Just call the above.
* new/class.jam: Add some extra tests.
[SVN r19424]
* jam_src/builtins.c: New builtins IMPORT_MODULE and IMPORTED_MODULES.
jam_src/rules.c: (bindrule): Refactor. (lookup_rule): New function.
* kernel/modules.jam: Make use of IMPORT_MODULE.
[SVN r19422]
- boostrap.jam; Modified the parsing of options to accept the syntax that the help system requires.
- doc.jam; Removed the option parsing code.
- doc.jam; Added some rules to set documentation options.
- help.jam; Move in code from doc.jam to parse options.
[SVN r18798]
* kernel/bootstrap.jam: Allow option handler modules to indicate that
regular build process should be skipped.
* options/help.jam: Return 'true', don't EXIT. Existing prevents header
scanning, which is the mechanism that makes 'doc' module work.
* new/doc.jam: Import header scanning rule into global module.
(split-symbol): Handle the case where the are two modules with the same
name (e.g. V1 stlport.jam and V2 stlport.jam).
[SVN r18663]
build-system.jam - moved from tools/build/new to tools/build
boost-build.jam - moved from tools/build/new to tools/build/kernel
bootstrap.jam
errors.jam
modules.jam
test/BoostBuild.py - adjusted for the above modification
test/boost-build.jam
project-root.jam - renamed to "project-roots.jam" to avoid confusion
and conflict with the user's project-root.jam file
project.jam - adjusted for the above renaming
test/project-test1/project-test1.jam
type.jam - broke a circular module dependency
[SVN r18575]
virtual-target.jam.
- Added the missing explicit imports, now that we don't dump
everything into the global module with qualification
- stopped using the feature-space hack for temporary testing states of
the feature module. Instead we move its global variable definitions
to a temporary module.
- the way feature.action was invoking the rule it was being passed was
evil. Now you pass (even local) rules without qualification and
they are invoked in the source module context.
- module __test__ rules are always executed in a separate module, so
that their import dependencies can be separated from those of the
module being tested.
- better reporting of circular module-loading dependencies
implemented.
- minor changes:
property-set.jam: moved .empty initialization to avert circular
load dependency .
symlink.jam: fixed global variable naming.
[SVN r18407]
* class.jam; Use new "::" syntax.
* doc.jam; Change comment parsing to keep leading whitespaces.
* doc.jam; Fix problem when a rule's argument has the same name as an inner rule.
* print.jam; Implement ReST syntax of "::" to indicate preformatted text. All forms of the ReST syntax are supported, and the additional form of a preformated paragraph with the first line as "::".
[SVN r16244]
* virtual-target.jam (virtual-target.actualize): Accept
'scanner' parameter and create different actual targets
for different values of that parameter.
(virtual-target.includes): Remove.
(binding): New rule
(remember-binding): New rule.
* type.jam (set-scanner): New rule. (get-scanner): New rule.
* scanner.jam: New file.
* class.jam (__init__): Define __name__ in class scopes.
* builtin.jam (c-scanner): New scanner class, associated with CPP
files.
[SVN r15644]
* new/class.jam: Import all rules from the 'class' module into a class
instance module, not into a class module.
* new/targets.jam: Remove explicit import from 'class' in ctor.
[SVN r13829]