aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2022-12-02Fail if scope or target qualification in variable expansion is unknownBoris Kolpackov7-30/+103
There are three options here: we can "fall through" to an outer scope (there is always the global scope backstop; this is the old semantics, sort of), we can return NULL straight away, or we can fail. It feels like in most cases unknown scope or target is a mistake and doing anything other than failing is just making things harder to debug.
2022-12-01Fix corner case in distributing via obj{}, libul{} groupsBoris Kolpackov4-3/+102
2022-12-01Make dist::rule reusable as baseBoris Kolpackov6-38/+41
2022-11-30Diagnose absence of import library after link.exe invocation (GH issue #231)Boris Kolpackov1-7/+22
If a library does not export any symbols then link.exe skips creating the import library.
2022-11-30Reserve targets, variables to avoid rehashingBoris Kolpackov7-0/+92
2022-11-30Deal with order dependence in dist ruleBoris Kolpackov6-60/+191
2022-11-29Move buildfiles to root_extra, use vector instead of unordered_setBoris Kolpackov4-14/+27
2022-11-29Use list instead of unordered_set in regex line_poolBoris Kolpackov2-4/+22
2022-11-29Improve diagnostics for value subscript out of evaluation contextBoris Kolpackov1-2/+21
2022-11-29Fix backlink logic for target groupsBoris Kolpackov8-175/+469
We used to backlink ad hoc group members both via the group and as individual members. And for explicit groups it was done only via individual members, which means it only works correctly if every member is individually updated. Now both types of groups are backlinked from the group target.
2022-11-25Use operation name as a buildscript name if unable to deduceKaren Arutyunov4-25/+58
2022-11-25Fix diag buffer opining logic in cc::compile_ruleBoris Kolpackov1-5/+11
2022-11-24Fix skipping potential input for exit, etc script pseudo-builtinsKaren Arutyunov1-7/+22
2022-11-24Fix script to pass diag buffer reading end to process constructorKaren Arutyunov1-10/+7
2022-11-24Fix forcing diag buffering for diff in simple testKaren Arutyunov1-3/+5
2022-11-24Document Objective-C/C++ support in manualBoris Kolpackov1-0/+57
2022-11-23Take into account ad hoc recipes in rule::sub_match() (fixed GH issue #227)Boris Kolpackov3-66/+98
2022-11-23Rework diag_buffer interface to facilitate correct destruction orderBoris Kolpackov17-470/+444
2022-11-22Add support for Objective-C/C++ compilation in cc moduleBoris Kolpackov16-72/+294
2022-11-18Fix incorrect diag builtin examplesBoris Kolpackov2-4/+4
2022-11-18Fix test failure on WindowsBoris Kolpackov1-1/+1
2022-11-18Complete low verbosity diagnostics reworkBoris Kolpackov21-205/+877
2022-11-16Initial low verbosity diagnostics reworkBoris Kolpackov28-124/+664
2022-11-14Add buffering for simple test diagnosticsdiag-bufferKaren Arutyunov3-87/+430
Also fix simple test redirecting diff's stdout to stderr.
2022-11-14Make $process.run() print builtin command line on error and verbosity level >= 3Karen Arutyunov4-29/+44
2022-11-10Use small_vector for some script typesKaren Arutyunov1-3/+7
2022-11-09Use diag_buffer in scriptKaren Arutyunov16-571/+1023
2022-11-09Improve low-level diagnostics in `in` rule (and derived)Boris Kolpackov2-2/+38
2022-11-09Make process exit diagnostics in executable metadata extraction consistentBoris Kolpackov4-15/+35
2022-11-08Restore original error/ignore_exit semantics in run<>() overloadsBoris Kolpackov3-74/+64
2022-11-08Make process exit diagnostics consistentBoris Kolpackov20-169/+370
In particular, we now always print error message on non-0 exit except in cases where such exit is ignored.
2022-11-08Work around suspected GCC 12 mis-compilation (bug #107555)Boris Kolpackov2-16/+25
2022-11-08Add few missing noexcept qualificationsBoris Kolpackov2-4/+4
2022-11-08Allow passing fail diag record to diag_buffer::close()Boris Kolpackov3-20/+17
2022-11-08Tighten args const-ness in the run*() function familyBoris Kolpackov7-52/+42
2022-11-08Rework header dependency extraction with diagnostics bufferingBoris Kolpackov4-255/+422
2022-11-08Tweak match progress reporting for serial executionBoris Kolpackov1-1/+3
2022-11-08Add diag_buffer::open_eof()Boris Kolpackov2-5/+33
2022-11-08Add force flag to diag_buffer::read(), diag_buffer::write()Boris Kolpackov2-275/+280
2022-11-08Add diag_buffer::is_open()Boris Kolpackov1-0/+12
2022-11-08More work on child process diagnostics bufferingBoris Kolpackov27-593/+1316
2022-11-08Adjust to diagnostics epilogue interface changeBoris Kolpackov1-2/+2
2022-10-28Add ability to disable diagnostics buffering (--no-diag-buffer)Boris Kolpackov11-23/+110
2022-10-27Suppress (potential) bogus GCC 12 -Wrestrict warningsBoris Kolpackov11-25/+25
2022-10-27Initial work on child process diagnostics bufferingBoris Kolpackov10-87/+578
Currently this is implemented for C/C++ compile and link rules.
2022-10-25Adapt to butl::semantic_version API changeKaren Arutyunov2-5/+12
2022-10-25Allow concatenation of path/dir_path type to be a path patternKaren Arutyunov3-7/+79
2022-10-24Allow conversion of untyped split dir/value names to stringBoris Kolpackov1-11/+19
2022-10-24Allow non-parallel absolute src/out to support imported target taggingBoris Kolpackov2-20/+43
Also fix bug in out clearing.
2022-10-21Add support for pairs in script 'for x:...' loopKaren Arutyunov2-10/+43