Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2024-02-26 | Add ability to serialize compilation/linking in cc rules | Boris Kolpackov | 1 | -0/+10 | |
Specifically, both the C/C++ compiler and link rules now recognize the cc.serialize boolean variable which instructs them to compiler/link serially with regards to any other recipe. This is primarily useful when compiling large translation units or linking large binaries that require so much memory that doing that in parallel with other compilation/linking jobs is likely to summon the OOM killer. For example: obj{memory-hog}: cc.serialize = true | |||||
2024-02-15 | Add fsdir{} duplicate suppression in more places | Boris Kolpackov | 1 | -1/+2 | |
2024-01-09 | Disable use of -frewrite-includes for assembler with preprocessor files | Boris Kolpackov | 1 | -3/+24 | |
With -frewrite-includes Clang has issues with correctly tracking location information (manifests itself as wrong line numbers in debug info, for example). The result also appears to reference the .Si file instead of the original source file for some reason. While at it also omit trying to scan such files since that can be hazardous (such files sometimes use `#`-style comments). | |||||
2023-12-14 | Allow enabling C++ modules for C++20 and later std.cxx values | Boris Kolpackov | 1 | -1/+7 | |
2023-12-14 | Cleanup old code for C++ modules support in Clang | Boris Kolpackov | 1 | -106/+2 | |
2023-12-13 | Fix another instance of module name not being assigned due to deferred failure | Boris Kolpackov | 1 | -10/+17 | |
2023-12-08 | Workaround bogus initialized variable warning | Boris Kolpackov | 1 | -1/+1 | |
2023-12-07 | Fix bug that led to duplication of module import information | Boris Kolpackov | 1 | -1/+7 | |
2023-12-07 | Add support for compiling MSVC standard library modules | Boris Kolpackov | 1 | -41/+144 | |
2023-12-07 | C++20 named modules support for MSVC, take 2 | Boris Kolpackov | 1 | -101/+77 | |
2023-12-03 | Search in src for existing prerequisites with unspecified out | Boris Kolpackov | 1 | -3/+3 | |
2023-11-29 | Add rule for extracting C and C++ predefs | Boris Kolpackov | 1 | -0/+6 | |
2023-11-29 | Minor cleanups in cc::compile_rule | Boris Kolpackov | 1 | -6/+3 | |
2023-11-29 | Complete earlier fix for modules support in Clang | Boris Kolpackov | 1 | -5/+2 | |
2023-11-27 | Fix minor incompatibility with C++14 | Boris Kolpackov | 1 | -1/+1 | |
2023-11-27 | Tweak module name from file name guessing logic | Boris Kolpackov | 1 | -2/+41 | |
As a heuristics, prefer shorter but exact partition name matches to longer but partial. | |||||
2023-11-22 | Deal with lack of module information due to deferred failure | Boris Kolpackov | 1 | -9/+17 | |
2023-11-22 | Fix incorrect _LIBCPP_VERSION macro name in comments | Boris Kolpackov | 1 | -1/+1 | |
2023-11-22 | Add support for `import std` in Clang 17 or later with libc++ | Boris Kolpackov | 1 | -110/+208 | |
2023-11-16 | Extend comment on Clang's -fmodules-embed-all-files use | Boris Kolpackov | 1 | -0/+6 | |
2023-11-15 | Switch from two-step module compilation to -fmodule-output for Clang | Boris Kolpackov | 1 | -0/+35 | |
2023-11-14 | Fix module sidebuild logic for Clang | Boris Kolpackov | 1 | -10/+16 | |
2023-11-09 | Fix more issues with C++20 named modules support in Clang | Boris Kolpackov | 1 | -20/+10 | |
2023-11-06 | Fix basic issues with C++20 named modules support in Clang | Boris Kolpackov | 1 | -12/+5 | |
Note that modules support now require Clang 16 or later. | |||||
2023-11-01 | Fix incorrect fsdir_rule::perform_update_direct() calls | Boris Kolpackov | 1 | -1/+1 | |
Also make fsdir_rule::perform_{update,clean}_direct() harder to misuse. | |||||
2023-09-11 | Invoke Clang to produce object files for module partitions similar to interfaces | Swat SomeBug | 1 | -2/+7 | |
Module interface and implementation partitions are like module interfaces so it's not surprising they require similar compilation steps. See GH PR #328 for background. | |||||
2023-08-22 | Consider *_inc{} target types as headers for rule match purposes | Boris Kolpackov | 1 | -4/+4 | |
2023-06-22 | Omit -Wno-gnu-line-marker for Apple Clang 14.0.3 | Boris Kolpackov | 1 | -2/+9 | |
2023-06-14 | Use dry_run_option instead of dry_run during match | Boris Kolpackov | 1 | -1/+1 | |
2023-06-13 | Disable -Wgnu-line-marker in Clang 15 triggered by -frewrite-includes | Boris Kolpackov | 1 | -6/+43 | |
See llvm-project issue 63284 for details. | |||||
2023-06-07 | Implement GCC module mapper protocol quoting/escaping (GH issues #203, #228) | Boris Kolpackov | 1 | -14/+223 | |
2023-06-05 | Remap Clang -Wunqualified-std-cast-call warning to -Wextra (GH issue #259) | Boris Kolpackov | 1 | -0/+40 | |
2023-06-02 | Fix another race in library metadata protocol logic | Boris Kolpackov | 1 | -0/+8 | |
2023-04-18 | Add support for Assembler with C Preprocessor (.S) compilation | Boris Kolpackov | 1 | -31/+42 | |
Specifically, the c module now provides the c.as-cpp submodules which can be loaded in order to register the S{} target type and enable Assembler with C Preprocessor compilation in the c compile rule. For details, refer to "Assembler with C Preprocessor Compilation" in the manual. | |||||
2023-04-10 | Fix inconsistent /usr/local/{include,lib} search | Boris Kolpackov | 1 | -6/+7 | |
In particular, we were adding -L/usr/local/lib which means it is considered before built-in directories (/usr/lib, etc) but in our own library search code we were considering it after (because we were storing it at the end of sys_lib_dirs). Now in both sys_{hdr,lib}_dirs we store /usr/local/{include,lib} after mode and before built-in directories. Note that as part of this fix we now pass -isystem /usr/local/include instead of -idirafter (which is consistent with the -L behavior and also the customarily expected semantics). | |||||
2023-04-05 | Allow creating context with bare minimum of initializations | Boris Kolpackov | 1 | -4/+4 | |
This is used by bpkg to detect forwarded configurations without incurring the full context creation overhead. | |||||
2022-12-09 | Enable diagnostics color in GCC and Clang | Boris Kolpackov | 1 | -2/+24 | |
2022-11-25 | Fix diag buffer opining logic in cc::compile_rule | Boris Kolpackov | 1 | -5/+11 | |
2022-11-23 | Rework diag_buffer interface to facilitate correct destruction order | Boris Kolpackov | 1 | -21/+24 | |
2022-11-22 | Add support for Objective-C/C++ compilation in cc module | Boris Kolpackov | 1 | -22/+32 | |
2022-11-16 | Initial low verbosity diagnostics rework | Boris Kolpackov | 1 | -1/+1 | |
2022-11-08 | Make process exit diagnostics consistent | Boris Kolpackov | 1 | -4/+4 | |
In particular, we now always print error message on non-0 exit except in cases where such exit is ignored. | |||||
2022-11-08 | Work around suspected GCC 12 mis-compilation (bug #107555) | Boris Kolpackov | 1 | -14/+22 | |
2022-11-08 | Allow passing fail diag record to diag_buffer::close() | Boris Kolpackov | 1 | -11/+4 | |
2022-11-08 | Tighten args const-ness in the run*() function family | Boris Kolpackov | 1 | -4/+0 | |
2022-11-08 | Rework header dependency extraction with diagnostics buffering | Boris Kolpackov | 1 | -245/+412 | |
2022-11-08 | More work on child process diagnostics buffering | Boris Kolpackov | 1 | -5/+4 | |
2022-10-27 | Suppress (potential) bogus GCC 12 -Wrestrict warnings | Boris Kolpackov | 1 | -3/+3 | |
2022-10-27 | Initial work on child process diagnostics buffering | Boris Kolpackov | 1 | -36/+55 | |
Currently this is implemented for C/C++ compile and link rules. | |||||
2022-10-10 | Preparatory work for public/private variable distinction | Boris Kolpackov | 1 | -0/+4 | |
We still always use the public var_pool from context but where required, all access now goes through scope::var_pool(). |