2
0
mirror of https://github.com/boostorg/build.git synced 2026-02-15 00:52:16 +00:00
Commit Graph

60 Commits

Author SHA1 Message Date
Jurko Gospodnetić
c63206558f Added logging the exact command-line string passed to the CreateProcessA() Windows API in Boost Build's execnt.c module.
[SVN r78992]
2012-06-18 23:30:58 +00:00
Jurko Gospodnetić
92296ee7a4 Code cleanup in Boost Build's execnt.c module - using the CreateProcessA() API directly instead of the CreateProcess() wrapper now & made some code more localized.
[SVN r78991]
2012-06-18 23:28:30 +00:00
Jurko Gospodnetić
3f6421cd91 Checking whether a command can be spawned directly (as opposed to invoking it via an external shell) in Boost Build's execnt.c module now correctly skips all leading whitespace characters and not just tabs and spaces.
[SVN r78990]
2012-06-18 23:17:33 +00:00
Jurko Gospodnetić
992931ee90 Refactored the Boost Build execnt.c module's maxline() function to cache its result instead of calling the GetVersionEx() Windows API on every call.
[SVN r78989]
2012-06-18 23:12:33 +00:00
Jurko Gospodnetić
e25c77fc7d Minor stylistic changes - standardized relative type name and const modifier positions in Boost Build's execnt.c C module.
[SVN r78988]
2012-06-18 23:08:52 +00:00
Jurko Gospodnetić
8bdc35427c Minor stylistic changes.
[SVN r78987]
2012-06-18 23:02:48 +00:00
Steven Watanabe
60d66ca888 Use dynamic arrays instead of linked lists. Reduces memory use about 10% overall.
[SVN r77408]
2012-03-19 18:17:36 +00:00
Steven Watanabe
ea1a2928d2 Replace newstr with object. Use OBJECT * instead of char *. Fix a few bugs uncovered by the better typechecking.
[SVN r75609]
2011-11-22 23:04:09 +00:00
Steven Watanabe
86278a4624 Fix memory leaks. Make sure that newstr and copystr are always used as needed.
[SVN r75502]
2011-11-16 03:00:54 +00:00
Vladimir Prus
7df1f2f4af Kill 'engine/src', moving all content to 'engine'.
[SVN r68592]
2011-02-01 08:16:47 +00:00
Vladimir Prus
0f77dbdae2 Move tools/jam into tools/build/v2/engine
[SVN r64010]
2010-07-14 10:37:12 +00:00
Rene Rivera
c26a94ffd8 Let the child bjam commands inherit stdin, as some commands assume it's available. (fixes #1577)
[SVN r49883]
2008-11-23 02:37:44 +00:00
Rene Rivera
c06917cd60 On Windows don't limit bjam output to ASCII as some tools output characters in extended character sets. (fixes #1576)
[SVN r49882]
2008-11-23 02:10:52 +00:00
Jurko Gospodnetić
b14209b789 Major stylistic changes throughout the Boost Jam source base. No implementation changes.
Cleanup done while researching the Boost Jam internals. Added better implementation description comments at many places. Cleaned up the 'dependant' and 'dependency' terminology that got mixed up in several places. Renamed several functions to use underscores as word separators.

[SVN r48480]
2008-08-30 23:56:49 +00:00
Jurko Gospodnetić
84c8a57403 Minor stylistic changes throughout Boost Jam sources. Mostly corrected indentation, removed trailing spaces and updated comments.
[SVN r48445]
2008-08-29 12:59:49 +00:00
Jurko Gospodnetić
62cd6929b4 Minor stylistic Boost Jam & Boost Build module changes.
[SVN r48301]
2008-08-23 03:12:27 +00:00
Jurko Gospodnetić
a7aec314cb Added Boost Jam support for executing command lines longer than 2047 characters (up to 8191) characters when running on Windows XP or later OS version. Patch contributed by Franz Schnyder.
See http://support.microsoft.com/default.aspx?scid=kb;en-us;830473 for more detailed information on Windows cmd.exe shell command-line length limitations.

[SVN r47913]
2008-07-31 17:41:40 +00:00
Jurko Gospodnetić
556474bbb2 Solved the problem with child process returning the value 259 (Windows constant STILL_ACTIVE) causing bjam never to detect that it exited and therefore keep running in an endless loop. Done by relying on the Windows WaitForMultipleObjects() function to detect when a process has exited instead of GetExitCodeProcess(). The later function's MSDN article (http://msdn2.microsoft.com/en-us/library/ms683189(VS.85).aspx) warns about this problem.
Solved the problem with bjam going into an active wait state, hogging up processor resources, when waiting for one of its child processes to terminate while not all of its available child process slots are being used. To see this bug in action, try compiling a simple C++ program on a 2 processor PC with the -j 2 command-line option and watching how much processor resources bjam uses while linking. Was caused by treating unused process slots as used in the try_wait() function, causing the WaitForMultipleObjects() Windows API call to exit instantly with an error which was then getting incorrectly interpreted as a timeout, starting the whole cycle anew.

  Solved a race condition between bjam's output reading/child process termination detection and the child process's output generation/termination which could have caused bjam not to collect the terminated process's final output.

  Extracted all GetExitCodeProcess() API calls into one location so it no longer gets called in three separate places.

  Minor comment changes in code touched by previous fixes.


[SVN r44087]
2008-04-07 09:55:18 +00:00
Rene Rivera
6f12bd5e02 Revert various changes that break backward compatibility, and also some minor edits.
[SVN r42632]
2008-01-09 04:31:58 +00:00
Jurko Gospodnetić
8ffe82aaaa Tried trailing spaces. Minor comment typo corrections.
[SVN r42627]
2008-01-09 01:11:03 +00:00
Rene Rivera
7e35e8c18a Work around some Windows CMD.EXE programs that will fail executing a totally empty batch file.
[SVN r41626]
2007-12-03 02:57:49 +00:00
Rene Rivera
e2ae7d0a18 Plug memory leak when closing out actions. Thanks to Martin Kortmann for finding this.
[SVN r41535]
2007-12-01 16:44:54 +00:00
Rene Rivera
000431fdc1 build-system.jam
* Reflect added start/end timestamps for actions in xml output. And update action rules for new args.

execcmd.h
* Add start/end timestamps to action timing info.

execnt.c
* Fix filetime_seconds calculation when time is larger than low 32 bit value.
* Add calc of C time_t from Windows FILETIME.
* Add start/end timestamps recording to action timing info.

execunix.c
* Add start/end timestamps recording to action timing info.

jam.c
* Change JAMDATE to use common ISO date format.

make1.c
* Redo __TIMING_RULE__ and __ACTION__RULE__ invocations to new argument ordering and added end/result timestamp values.

[SVN r41431]
2007-11-28 07:21:49 +00:00
Rene Rivera
f267ee63a7 Add partial code for indicating to the output function that a command finished because of a timeout.
[SVN r39416]
2007-09-20 16:31:44 +00:00
Roland Schwarz
9801916f14 A small fix, so -d+2 will always show the "real" commands being executed instead of casually the name of a temporary batch file.
[SVN r38483]
2007-08-06 20:20:26 +00:00
Rene Rivera
a834daf2e0 Delete commented out code.
[SVN r38038]
2007-06-19 14:32:32 +00:00
Nicola Musatti
85f564d2e0 Worked around a Borland problem
[SVN r38037]
2007-06-19 07:04:20 +00:00
Rene Rivera
97681fd7eb Fix to compile in Borland C99: CLOCKS_PER_SEC, and clock_t, can be a float.
[SVN r38034]
2007-06-19 03:00:46 +00:00
Rene Rivera
b3128a55bd Implement running action commands through pipes (-p option) to fix jumbled output when using parallel execution with -j option. This is implemented for Unix variants, and Windows (Win32/NT). [ticket #994]
[SVN r38009]
2007-06-16 20:52:36 +00:00
Rene Rivera
71475c582f Implement gc of string only hash entries (note, doesn't work likely because a buffer overrun in var expand). Allocate all character data as atomic.
[SVN r35036]
2006-09-07 18:33:04 +00:00
Rene Rivera
f4efe8b540 Cleanup memory allocation calls to use macros defined in new mem.h header. This new header will handle configuration of both memory allocator to use, and memory profiling.
[SVN r35029]
2006-09-07 03:57:02 +00:00
Vladimir Prus
81d4ce4fbe More patches from Bronek
[SVN r34724]
2006-07-25 05:50:44 +00:00
Vladimir Prus
6be8cb24e9 More auto-dialog-closing fixes from Bronek.
[SVN r34658]
2006-07-22 06:12:42 +00:00
Vladimir Prus
837f57e2ba Improvements in auto-closing on dialog boxes. In particular, new
check that parent's creation time is less than child's creation time.

Patch from Bronek Kozicki.


[SVN r34605]
2006-07-20 06:27:50 +00:00
Vladimir Prus
42e6ab6ab2 Improve auto-closing of dialog boxes.
- Don't close boxes owned by 'explorer.exe'.
  - Close dialog parented by csrss.exe ("Unable to locate component/dll")
  - Various cleanups

Patch from Bronek Kozicki.


[SVN r34536]
2006-07-15 05:54:35 +00:00
Rene Rivera
3a18163384 Fix out of order function definitions.
[SVN r34211]
2006-06-07 02:16:58 +00:00
Rene Rivera
f5a8baad1e Make the action timeout attempt to also close any open dialogs before killing processes. Thanks to Bronek Kozicki.
[SVN r34210]
2006-06-06 23:58:07 +00:00
Rene Rivera
71f97e742d Workaround for failure to create command batch files. Thanks to Bronek Kozicki.
[SVN r31718]
2005-11-21 05:36:29 +00:00
Rene Rivera
8273af2a31 Add common path_tmpdir function to get system dependent path to temporary a directory.
[SVN r31509]
2005-10-31 06:36:54 +00:00
Rene Rivera
a34669c462 Add "-lx" option which limits the amount of time actions can run (in seconds). Currently only implemented for Windows NT and above.
[SVN r31266]
2005-10-10 20:33:22 +00:00
Rene Rivera
eed0cf6cc3 Variety of performance improvements.
* 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]
2005-10-03 00:47:36 +00:00
Rene Rivera
251f3b62a0 Fix use of C++ declaration semantics/syntax, in C file. Well Aleksey fixed it already.. So just cleanup the indentation, etc.
[SVN r29257]
2005-05-28 16:02:54 +00:00
Aleksey Gurtovoy
e0dea56553 move definition to the top of the block to make code ANSI C compliant
[SVN r29256]
2005-05-28 15:56:31 +00:00
Dave Abrahams
54e1155fa1 Workaround for vc6 preprocessor bug.
[SVN r29252]
2005-05-27 18:32:23 +00:00
Dave Abrahams
a9c901d25d Finally, a real fix for the spawn problem, I hope.
[SVN r29250]
2005-05-27 17:06:30 +00:00
Dave Abrahams
0b205d30d3 Eliminate undefined behavior and fix a spelling error.
[SVN r29238]
2005-05-27 03:18:08 +00:00
Dave Abrahams
72a5e80e64 jam_src/
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]
2005-02-12 02:30:18 +00:00
Rene Rivera
17889c132c Catch file open errors when creating batch command files. Thanks to Reece Dunn for catching the errors.
[SVN r26586]
2004-12-27 20:29:25 +00:00
Vladimir Prus
749406d295 Remove temporary files on Windows. Patch from Dean Ashton.
[SVN r23777]
2004-07-19 10:30:29 +00:00
Rene Rivera
7bec1dd305 Bump version to 3.1.10 for release.
Update copyrights to new Boost License.


[SVN r22987]
2004-06-01 05:42:36 +00:00