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]
builtins.{c,h}
Support for the REBUILDS rule
remove unused variable
rules.h
make.c
Support for the REBUILDS rule
make1.c
Support for the REBUILDS rule
Support for recording timing information
Restructured a case statement because it was masking a bug I
introduced.
execcmd.h
execnt.c
execunix.c
Support for recording timing information
Also removed NT-specific stuff from execunix
expand.c
Removed tabs from critical comment
Added tab-width variable setting comment for emacs.
v2/test
rebuilds.py, timedata.py, test_all.py
Tests for REBUILDS and timing.
[SVN r27334]
* 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]
for getting the list of variable names and for clearing all rule and
variable storage.
* compile.c - better error reporting for unknown rules; now it is a
hard error.
* hash.c/h - added hash_free to allow removal of elements from a hash
* rule.c/h - implemented rule freeing; stopped exporting rules to the
global module by default.
* variable.c - reclaim variable storage when disposing of variable
hash.
* build.jam - make grammar building work under NT
[SVN r18405]
* jam_src/builtins.c: New builtin SEARCH_FOR_TARGET.
* jam_src/rules.c
(bind_explicitly_located_targets): New function.
(search_for_target): New function.
* jam_src/make.c (make): Call 'bind_explicitly_located_targets()'
immediately on entering.
* jam_src/search.c (call_bind_rule): No longer 'static'.
* new/builtin.jam (c-scanner.process): Real implementation.
* test/dependency_test.py: Really test for dependencies.
[SVN r15646]
* jam_src/Jamfile, jam_src/boost-jam.spec, jam_src/patchlevel.h:
Updated version number to 3.1.1.
* jam_src/jam.c: Made JAM_VERSION three-element string.
* bootstrap.jam: When JAM_VERSION is 3.1.1 or more, call UPDATE
explicitly on all non-option element in the command line.
[SVN r14363]