Rene Rivera
46edc8ff59
Fix windows & vms engine compile.
2022-04-03 13:54:21 -05:00
Rene Rivera
9a67db02e3
Fix mem leaks in debugger and calling action rules.
...
Also fix double-free in property set create. This changes the object_free
calls to zero out the object pointer to prevent/catch double frees
and use-after-free issues. It also changes parse_free in the same way.
And adds a parse_ptr to scope manage the lifetime of PARSE
objects. Which fixes another mem leak in the parse_impl for
early abnormal exits.
2022-04-03 13:35:17 -05:00
Rene Rivera
63d677fce4
Fix mem leak from evaluating timing rules.
2022-04-02 14:03:00 -05:00
Rene Rivera
b6b7ff57c0
Fix msvc compile by avoiding tuples.
2022-04-02 13:30:54 -05:00
Rene Rivera
943c3869b1
Fix memory leaks from reused FRAME_INFO.
2022-04-02 12:30:27 -05:00
Rene Rivera
5a7c842685
Fix use-after-free error for copied FRAME objects.
2022-04-02 12:07:16 -05:00
Rene Rivera
bc4a6c3d4e
Fix orphan items in function eval stack.
2022-04-02 11:35:47 -05:00
Rene Rivera
3236572892
Better way to cleanup frame allocations.
2022-04-02 11:33:03 -05:00
Rene Rivera
69c03ced04
Fix memory leak for invoked function args.
...
If a function exits abnormally, for any reason, the passed in function
frame args would leak. This change captures such early exits and
cleans up the args for directly invoked functions. This clears up about
70% of current memory leaks.
2022-03-31 00:42:18 -05:00
Rene Rivera
e82fdf2e7c
Use alternate sizeof advance size calc re msvc.
2022-03-29 13:25:08 -05:00
Rene Rivera
03dd13ef23
Use safer, but slower, select_last_t for msvc.
2022-03-29 08:38:42 -05:00
Rene Rivera
a9a21dfc72
Make all jam stack access type safe.
2022-03-29 08:31:02 -05:00
Rene Rivera
266c664fd9
Remove public function STACK access.
...
In preparation to clean up the Jam function global stack move the
definition of the STACK and related functions inside the function.cpp
source file only.
2022-03-22 23:02:51 -04:00
Rene Rivera
02c076e14a
Start of 4.9.0
2022-03-19 17:52:19 -05:00
Rene Rivera
0b8a8ad7d6
Fix crash on exit cleanup from targets list dtor and pop.
2022-03-17 23:51:57 -05:00
Rene Rivera
7c3ff9a80d
Fix engine build for EXIT_* possibly missing.
2022-03-16 21:54:29 -05:00
Rene Rivera
c9557503c4
Update history and readme for release.
2022-03-10 22:39:49 -06:00
Rene Rivera
524ce68d5e
Add future C++ versions.
...
fixes #135
2022-03-10 21:20:47 -06:00
Rene Rivera
b793d6f0a6
Fix warnings.
2022-03-03 23:19:42 -06:00
Rene Rivera
e0c7d35b1f
Remove use of freelist caching.
...
Modern memory allocator is fast enough to not need our own
chained caching of specific data. Hence remove the use of caching
of free LIST instances to simplify memory management.
Also remove uses of exit/abort.
2022-03-03 22:49:45 -06:00
Rene Rivera
157e26303f
Avoid crash if modules_done is called early.
2022-03-03 21:41:49 -06:00
Rene Rivera
027ee7379f
Remove memory leaks.
2022-03-03 21:40:48 -06:00
Rene Rivera
a9aed5c40a
Convert alloc/free calls with unique_ptr managed code.
...
Using unique_ptr allows to not loose track of memory when early
exit when clean_exit throws an exception.
2022-03-03 21:39:00 -06:00
Rene Rivera
a9aafc7a70
Replace most exit/abort with exception equivalent.
...
This replaces most abort/exit calls with the utility that throws an
exception. The exception is caught in main to cleanly return failure.
This allows to clean up allocations and always return a valid status
value instead of abnormal termination.
2022-03-03 21:17:38 -06:00
Rene Rivera
efab66b211
Add LIST ctor to prevent no-init errors.
2022-03-03 20:54:12 -06:00
Rene Rivera
d66a79b698
Add b2::clean_exit to replace plain exit/abort.
2022-03-03 20:51:43 -06:00
Rene Rivera
1ab86c307a
Add utilityies for managing the Jam dynamic objects.
2022-03-03 20:46:14 -06:00
Rene Rivera
ddecd777bd
Fix memory leaks in filesys.
2022-02-21 23:22:06 -06:00
Rene Rivera
2847e6cc90
Fix compile of BJAM_NO_MEM_CACHE mode.
2022-02-21 23:21:09 -06:00
Rene Rivera
22187fae9c
Fix memory leak in variable ctro from char*.
2022-02-21 23:19:55 -06:00
Rene Rivera
f1382e4aef
Fix memory leak in targets lists.
...
This changes the pointer type used everywhere for _targets/TARGETS to a
unique_ptr to manage the ownership correctly. Thus removing the memory
leaks resulting therein.
2022-02-21 16:01:24 -06:00
Rene Rivera
38dc406527
Replace all direct pointers in rules with typedef.
...
Moving towards true C++ type safety by retyping all raw pointers. The
typedefs will eventually be replaced with managed pointers.
2022-02-16 22:55:02 -06:00
Rene Rivera
43358117aa
Shift CI to account for AZP removing vs2017.
2022-02-15 08:35:43 -06:00
Zhang Na
c6409fa0e7
Add support for LoongArch
2022-02-15 07:17:32 -06:00
Alain Miniussi
9ef234db6b
Tell intel compiler to lik with intel static librariess if availables, and fall back on shared objects if not.
2022-02-14 22:43:19 -06:00
Alain Miniussi
97420841b0
On linux, the archive version of libstdc++ availability cannot be assumed.
...
So we cannot use the -static option.
Also, -s is not documented in the compiler manual page.
2022-02-14 22:43:19 -06:00
Peter Dimov
8a675ca396
msvc.jam: put user-supplied <cflags> and <cxxflags> last; support <compileflags>. Closes #137 . Refs #118 .
2022-02-14 08:57:12 -06:00
Dimitry Andric
a01b64fcc5
Add special case processing of RPATH to clang-linux toolset ( #117 )
...
Similar to 8faba6ab2 , don't add double quotes around the RPATH
expansion in clang-linux's link actions, so '$ORIGIN' can be used.
The gcc.quote-rpath rule already checks whether double quotes need to be
added, and skips it if the rpath argument already has single quotes.
2022-02-13 08:45:14 -06:00
Laurent Bigonville
13ecd50cfa
Use the FreeBSD way to detect the executable path also on kfreebsd ( #126 )
2022-02-12 21:30:05 -06:00
Jim King
dce955c816
add .ipp files to scanner so headers are not missed ( #134 )
2022-02-12 21:24:34 -06:00
Nikita Kniazev
7568c84471
MSVC mock test ( #125 )
...
Initial step in fixing flags issues
2022-02-12 21:22:40 -06:00
Rene Rivera
9463525ef4
Update ZAP tested compilers.
2022-02-12 17:50:05 -06:00
Rene Rivera
24bd22bd53
macOS-10.14 no onger avail in AZP.
2022-02-12 12:03:10 -06:00
Nikita Kniazev
b59e85fc76
CI: Actually test intended msvc versions ( #127 )
...
* CI: Simplify Appveyor script
* CI: Actually test intended msvc versions
2022-01-09 21:07:00 -06:00
Nikita Kniazev
f10c1d267b
Improve dependency cycle diagnostic message ( #114 )
...
Before:
```
error: ./forward ./stage ./stage-proper libs/filesystem/build/stage libs/filesystem/build/stage-dependencies libs/log/build/stage libs/log/build/stage-dependencies libs/filesystem/build/stage
```
After:
```
error: ./forward -> ./stage -> ./stage-proper -> ***libs/filesystem/build/stage*** -> libs/filesystem/build/stage-dependencies -> libs/log/build/stage -> libs/log/build/stage-dependencies -> ***libs/filesystem/build/stage***
```
2021-12-15 07:21:35 -06:00
Rene Rivera
1998d0656c
Bump to version 4.8.0
2021-12-14 13:02:00 -06:00
Dmitry
78fd284a42
Don't skip install targets if there's <build>no in ureqs ( #113 )
2021-12-11 07:58:23 -06:00
Rene Rivera
371b47af9d
FBSD gcc7 no longer available.
2021-11-18 20:22:02 -06:00
Rene Rivera
d1af45d606
Release note for cxxstd=20 for msvc.
2021-11-18 09:02:17 -06:00
Peter Dimov
aa2cfda382
Add cxxstd=20 to msvc.jam (msvc-14.2 and above support /std:c++20) ( #103 )
2021-11-18 08:46:00 -06:00