* 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]
That was an old hack which was only needed in one context -- when we
passed both Jamroot and jamroot as patterns, got back Jamroot and jamroot
(because windows is case-insensitive and reports that both exist), and get
confused.
Calling 'unique' does not harm in most cases, but in Boost Jamfiles we glob
for all headers, and O(n^2) algorithm used by unique considerably slows us.
[SVN r29187]
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]
It was completely broken with absolute windows paths because /cygdrive
is valid cygwin path, but 'cygdrive' is not shown when listing the '/'
directory.
[SVN r28508]
* build/generators.jam
(generator.generated-targets): Comment the desired semantics.
* util/utility.jam
(basename): Take the part till the last dot, not the first.
[SVN r27374]
* util/print.jam: Do not quote the argument to the
'echo' command on windows. It's special, and does not need quotes.
Adding them will cause the quotes to always appear in the output,
which would be different behaviour from Unix.
* tools/common.jam (response-file): Add quotes here.
[SVN r26836]
- Drop separate 'suffix' field in file targets. Store suffix as part of
the name' field. This avoids the need to copy the suffix field and the
name everywhere.
- Do not pass generated targets to constructor of 'action'. Instead,
pass the acton to constructor of target.
[SVN r26778]
enviroment variables in the list of values. No it's possible to add
an element to a variable.
* build/project.jam: Remove obsolete test.
* build/toolset.jam (find-property-subset): No longer local,
so that test can call it.
* test/test.jam: Import 'print' and 'common'.
* util/print.jam: Comment out failing unit test.
[SVN r26413]