Skip to content

[pull] master from bazelbuild:master#618

Merged
pull[bot] merged 17 commits intomcx:masterfrom
bazelbuild:master
Jul 16, 2023
Merged

[pull] master from bazelbuild:master#618
pull[bot] merged 17 commits intomcx:masterfrom
bazelbuild:master

Conversation

@pull
Copy link
Copy Markdown

@pull pull bot commented Jul 16, 2023

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

Googler and others added 17 commits July 13, 2023 22:21
Fixes : #18926
PiperOrigin-RevId: 548019595
Change-Id: I23162a79b7188307359426c965fd39002311f658
Also enhance the comment to describe the reason why using Guava's `CompactHashSet` in Bazel is not possible (performance implications).

PiperOrigin-RevId: 548056127
Change-Id: I28a0cb95720c287bde34086528bb663f99a7b2a9
Hi bazel team

I use an aspect to run clangtidy on the codebase. It is based on https://github.com/erenon/bazel_clang_tidy.

To check my codebase with `-Werror`, I use the "new" feature `external_include_path` requested by #12009, introduced by commit 08936ae.

Now my clangtidy rules did not work anymore of course. As you can see in https://github.com/erenon/bazel_clang_tidy/blob/master/clang_tidy/clang_tidy.bzl, all the different include paths are being passed to the clang-tidy executable. I now also needed to pass the new external_includes to `clang-tidy`.

This PR adds `external_includes` to the `compilation_context` object. I looked at the style of the other `includes` and hope it is in line with your expectations.

Closes #18094.

PiperOrigin-RevId: 548070112
Change-Id: I212420d2f888c3af088c4afbf8202c848d19722e
…less required

PiperOrigin-RevId: 548099770
Change-Id: I85b009090a74e6b042c8e9419af833534291dece
PiperOrigin-RevId: 548100915
Change-Id: I37aa2f48efa257675b6fb5c9d580466a80bc65df
This layer of indirection isn't currently used.

PiperOrigin-RevId: 548110996
Change-Id: I58d381456caff4668588304ba7750c4552eebe3a
Recently Bazel introduced support for C++ binaries linking against
//tools/cpp:link_extra_lib which typically just depends on the label flag
//tools/cpp:link_extra_libs.

For normal C++ binaries this is the intended behaviour. However, certain
special C++ binaries really do not want to be linked against any other targets
for a variety of reasons: conflicting dependencies, pure C binaries that should
not pull in C++ runtime libraries, or other very low level binaries that want
to remain untouched.

Our experience building many thousands of C++ targets shows that there are few
cases where opting out linking of extra libraries always makes sense. To
provide this flexibility, expose cc_binary.link_extra_lib, which can be set to
an empty library such as @bazel_tools//tools/cpp:empty_lib.

PiperOrigin-RevId: 548117556
Change-Id: Iaaa35ec9115031bfaa124ca2441aafe823145899
… string compression in `FileWriteAction`.

* Presize the `ByteArrayOutputStream` more appropriately. This holds the compressed data, so presizing it to the number of uncompressed bytes can be way more space than needed. A code comment justifies the chosen presizing.
* Use `StringUnsafe` to get a reference to the string's internal byte array instead of calling `getBytes()`, which makes a copy.

PiperOrigin-RevId: 548132680
Change-Id: Id5eb02013e652ae2f0e47a750011491101738df8
PiperOrigin-RevId: 548132756
Change-Id: I037206db54a3051458f2764d4b3a1ff452a172f3
…pt the output artifacts

This will allow reusing this method from the Starlark implementation of `java_common.compile()`

PiperOrigin-RevId: 548134654
Change-Id: I9599b79a08c851f2961e6f4103b74ae04559c6d6
`compilation_info.boot_classpath` is a `Sequence`, not a `Depset`

PiperOrigin-RevId: 548141815
Change-Id: I828187945061d4327fcd53dea8e1d27954f1be71
This allows comparing different Starlark-constructed `JavaInfo` instances in native. This is primarily required for our unit tests that verify provider propagation.

PiperOrigin-RevId: 548146901
Change-Id: I7474c0dd7d3e711dcf082f20a29e934d60367764
PiperOrigin-RevId: 548168304
Change-Id: Ie3eeb8197c74a14edc738e691c7970e6cbcab337
Instead, inject it where it is needed.

This is possible because StateMachines always emit events to a
StoredEventHandler associated with SkyKeyComputeState (driven by the
Skyframe requirement that SkyFunctions replay events if there is a restart).

This simplifies some error handling code by making the ExtendedEventHandler
immediately available to error handling callbacks, which would otherwise
need to propagate errors upwards.

PiperOrigin-RevId: 548175834
Change-Id: Ie384bb05561d6503513603971191d13b545bce18
PiperOrigin-RevId: 548182488
Change-Id: Ic94084e8465fcdab8d332e62fbe201286f9b1f08
#17377

PiperOrigin-RevId: 548185001
Change-Id: Ibc44001666965845f2f5300ab1c507da179355e9
#17377

PiperOrigin-RevId: 548205363
Change-Id: I071cab13c549983627a303895775458d98af24f1
@pull pull bot added ⤵️ pull and removed team-Rules-CPP labels Jul 16, 2023
@pull pull bot merged commit 7060f6f into mcx:master Jul 16, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants