commit | 7f31f8044589858f1cd68998d880764da3e98b5e | [log] [tgz] |
---|---|---|
author | Lukasz Anforowicz <lukasza@google.com> | Fri Dec 16 08:24:13 2022 -0800 |
committer | Copybara-Service <copybara-worker@google.com> | Fri Dec 16 08:24:56 2022 -0800 |
tree | d7c8a834e5896218a04b33eb18d7ad5f4d7b9635 | |
parent | a2f1caeebab0ffa19c82e391c56a56327586607d [diff] |
Inline `Sum` into `format_crate`. This CL should have no impact on behavior - it just shuffles/refactors things around (hoping that the end result is "better": the CL removes more lines of code than it adds - this seems "better"; after the CL the code is contained in less methods while still being fairly easy to read - this also seems "better"). This CL is somewhat motivated by reading "A Philosophy of Software Design" which would probably highlight that the old code: * Spread related code into various, distant methods * Did some work unnecessarily (e.g. from `add_assign` perspective adding `CcPrerequisites::defs` makes sense, but `format_crate` doesn't care about it after `toposort` is done). * Unnecessarily coupled adding `rs` and `cc` parts of `MixedSnippet` (as well as `prereqs` and `tokens` parts of `CcSnippet`). Removing this coupling helps to refactor how namespaces are bound to C++ `tokens` in a follow-up CL: unknown commit). PiperOrigin-RevId: 495879442
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