commit | 409f6f6372e37fec26aede8fe9041dc87abeafba | [log] [tgz] |
---|---|---|
author | Devin Jeanpierre <jeanpierreda@google.com> | Thu Jul 07 02:00:26 2022 -0700 |
committer | Copybara-Service <copybara-worker@google.com> | Thu Jul 07 02:00:57 2022 -0700 |
tree | ca3589f545bbb940e329b4bbd3a81b9bd4681fc8 | |
parent | b2b6cf899044e4771a27702d770deeec7f2c828b [diff] |
Convert `RsTypeKind` creation into a Salsa query. This is one of the more important things I wanted to do with this rewrite -- after this CL, we will no longer recompute the RsTypeKind all over the place, but just look it up or create on first use. (It's possible/probable(?) that there's no particular performance benefit unless/until we change `RsType` to be interned/hashconsed, though -- the point is that this is at least possible to optimize from here, I guess.) Here I opted for a small/fast way to make `RsType` suitable as a cheaply-copyable query key: rather than holding `RsType` in an `Rc`, I made it relatively cheap to clone. (It is now five words -- we can cut it down to 4 words if `ItemId` were converted to be a nonzero number.) Slightly marginal, but since it's the only parameter to the query it should be fine really. In the future, we may want to instead use something like `ArcIntern<RsType>` to make it very efficient to use in Salsa. PiperOrigin-RevId: 459456664
Extremely experimental interop tooling for C++ and Rust.
Please don‘t use, this is an experiment and we don’t yet know where will it take us. There will be breaking changes without warning. Unfortunately, we can't take contributions at this point.
$ apt install clang lld bazel $ git clone git@github.com:google/crubit.git $ cd crubit $ bazel build --linkopt=-fuse-ld=/usr/bin/ld.lld //rs_bindings_from_cc:rs_bindings_from_cc_impl
$ git clone https://github.com/llvm/llvm-project $ cd llvm-project $ CC=clang CXX=clang++ cmake -S llvm -B build -DLLVM_ENABLE_PROJECTS='clang' -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install $ cmake --build build -j $ # wait... $ cmake --install build $ cd ../crubit $ LLVM_INSTALL_PATH=../llvm-project/install bazel build //rs_bindings_from_cc:rs_bindings_from_cc_impl