321 Commits

Author SHA1 Message Date
eff9a10d0c v1.18.0 2019-10-10 16:29:21 -04:00
3733cb6114 Backport 2.x VarSet performance improvements to 1.x branch. 2019-10-04 15:01:32 -04:00
4967f89a76 fix inconsistent type handling in VarSet#expand_varref - #73 2019-04-14 14:10:13 -04:00
7cc68b2ce1 Remove Cache dirty-tracking
It really wasn't necessary since Cache#write is not called often.
2019-04-04 15:20:35 -04:00
be058dd18b avoid mkdir() race conditions - close #75 2018-12-11 22:13:33 -05:00
John Lindgren
fb5d107581 Reduce recursion of VarSet#expand_varref by expanding vars earlier.
It's common for a build command to contain a reference like:

    ${INCPREFIX}${CPPPATH}

Where ${INCPREFIX} is "-I" and ${CPPPATH} is an array of include
paths.  Without this change, Rscons expands ${INCPREFIX} (and then
tries to expand "-I") repeatedly, once for each path.

This change simply makes Rscons intelligent enough to expand
${INCPREFIX} only once, then join the expanded value to each path.

In a mid-sized rake project, ruby-prof shows that the number of
calls to expand_varref is reduced from ~80,000 to ~30,000., and the
total CPU time spent in expand_varref is reduced by about 30%.

In a larger project, the improvement in real build time is small
but consistent enough to be measurable (~0.5 seconds off a total
of ~20 seconds).
2018-12-07 20:06:18 -05:00
d5c1a4b41a v1.17.0 2018-11-02 17:01:52 -04:00
ce47bd3599 remove makefile target name check when parsing dependencies - close #57 2018-11-02 14:23:47 -04:00
michael.metivier
68cab5e24d Environment.expand_varref has the same allowed parameter types and returns as Varset.expand_varref 2018-11-02 08:52:23 -04:00
michael.metivier
f92dd62ebd Allow construction variable expansion on _true_ and _false_ literals 2018-11-02 00:03:54 -04:00
5cf77f1f58 v1.16.0 2018-08-24 09:24:03 -04:00
b4cc45c381 update documentation 2018-08-24 09:17:23 -04:00
284312a21c support command-line variables - close #51 2018-08-23 14:58:08 -04:00
c7f66694ab add Rscons.glob - close #50 2018-08-23 11:26:20 -04:00
57de94a3fb improve debuggability of cache.up_to_date? - close #46 2018-08-23 10:10:05 -04:00
53ba7dad41 allow passing a VarSet into cache methods - close #47 2018-08-22 16:32:05 -04:00
8cb02a7e34 generate dependencies for D builds - close #49 2018-08-22 15:23:48 -04:00
0dc3a90660 v1.15.0 2017-09-08 15:13:04 -04:00
e900e74342 v1.14.0 2017-08-03 15:55:54 -04:00
099d26f33c Add Rscons::VarSet#values_at - close #45 2017-08-03 15:54:24 -04:00
89562c584a Environment#print_builder_run_message should support string commands - close #44 2017-08-03 14:10:53 -04:00
a9aeaf2356 v1.13.0 2017-07-14 16:24:27 -04:00
6d04500c13 Add ability to record side-effect file production - close #43 2017-07-14 16:17:01 -04:00
45e30662d2 add YARD comment for Rscons::Ansi to get to 100% coverage 2017-07-12 15:51:00 -04:00
8f7e044bfd fix YARD @option tag 2017-07-12 15:50:13 -04:00
dbea6f0a26 v1.12.0 2017-07-11 16:16:01 -04:00
529d9aacaa colorize a couple other builders' output messages 2017-07-11 16:12:38 -04:00
65c1bac4f9 be more colorful - close #41 2017-07-11 13:52:01 -04:00
775363ddbd cloned Environments should inherit n_threads - close #42 2017-07-11 10:29:25 -04:00
2a96495e83 wait for in-progress subcommands to complete on build failure - close #39 2017-06-26 22:44:49 -04:00
15e52e488c env.depends should imply env.build_after - close #40 2017-06-21 10:44:52 -04:00
9141cf91e7 v1.11.1 2017-06-14 09:57:11 -04:00
7f7e6ef3da fix circular build dependency detection logic 2017-06-14 09:56:51 -04:00
5263ea03c6 v1.11.0 2017-06-14 08:56:21 -04:00
8deb1eb6f8 Change default :clone option to :all to clone all Environment attributes 2017-06-14 08:53:28 -04:00
694642dfbd Allow overriding n_threads on a per-Environment level - close #34 2017-06-13 19:45:53 -04:00
6dd70ff65e raise error when circular dependencies are found - close #38 2017-06-13 19:37:41 -04:00
eca01c38df Fix non-blocking thread-wait if Rscons.n_threads is set to 0 - close #37 2017-06-13 19:07:04 -04:00
4ad6ce1d9c SHCFLAGS and SHCXXFLAGS should inherit non-SH flags by default - close #36 2017-06-13 18:41:47 -04:00
a49ebc486e env.build_after should expand paths - close #35 2017-06-13 18:38:47 -04:00
11864eb55b v1.10.0 2017-06-10 00:50:43 -04:00
Michael Metivier
387c40176b Pre-build hooks do not respect modified key values for old-style builders 2017-06-09 19:50:12 -04:00
f1b24ee8ba minor formatting: replace missing space 2017-06-08 15:01:30 -04:00
010607d3b0 Rework builder features to be returned by Builder#features instead of taken into account by Builder#produces? 2017-06-08 11:07:01 -04:00
b7f609b7e8 add SHLIBPREFIX 2017-06-07 16:35:20 -04:00
aa192d7567 bugfix: Object and SharedObject should respect vars when checking source suffixes 2017-06-07 09:52:11 -04:00
ed5d6e9e49 homogenize slashes in Environment#expand_path() 2017-06-07 09:26:13 -04:00
3436dc3a64 Expand target and sources before calling Builder#create_build_target 2017-06-06 16:43:26 -04:00
df52a7e0e1 add SharedObject and SharedLibrary builders - close #8 2017-06-06 13:27:38 -04:00
6bd7e6f852 Object builder changes in preparation for adding SharedObject 2017-05-30 16:26:39 -04:00