amp.dev
toolchains_llvm
amp.dev | toolchains_llvm | |
---|---|---|
1 | 4 | |
577 | 265 | |
0.5% | 3.0% | |
9.1 | 8.8 | |
2 days ago | 10 days ago | |
HTML | Starlark | |
GNU General Public License v3.0 or later | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
amp.dev
-
WebAssembly
Here's one: https://amp.dev/documentation/examples/components/amp-analyt..., backed by https://github.com/ampproject/amp.dev/blob/future/examples/s...
toolchains_llvm
-
cc toolchain for macOS Monterey / Apple M1
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") BAZEL_TOOLCHAIN_TAG = "0.7.2" BAZEL_TOOLCHAIN_SHA = "f7aa8e59c9d3cafde6edb372d9bd25fb4ee7293ab20b916d867cd0baaa642529" http_archive( name = "com_grail_bazel_toolchain", sha256 = BAZEL_TOOLCHAIN_SHA, strip_prefix = "bazel-toolchain-{tag}".format(tag = BAZEL_TOOLCHAIN_TAG), canonical_id = BAZEL_TOOLCHAIN_TAG, url = "https://github.com/grailbio/bazel-toolchain/archive/{tag}.tar.gz".format(tag = BAZEL_TOOLCHAIN_TAG), ) load("@com_grail_bazel_toolchain//toolchain:deps.bzl", "bazel_toolchain_dependencies") bazel_toolchain_dependencies() load("@com_grail_bazel_toolchain//toolchain:rules.bzl", "llvm_toolchain") llvm_toolchain( name = "llvm_toolchain", llvm_version = "15.0.5", ) load("@llvm_toolchain//:toolchains.bzl", "llvm_register_toolchains") llvm_register_toolchains() http_archive( name = "com_google_googletest", urls = ["https://github.com/google/googletest/archive/609281088cfefc76f9d0ce82e1ff6c30cc3591e5.zip"], strip_prefix = "googletest-609281088cfefc76f9d0ce82e1ff6c30cc3591e5", )
-
Incremental Builds for Haskell with Bazel
Yeah the cross-compilation thing is definitely a rough spot. I have one project that's able to work around it via extensive hacks with macros, but at some point I'll need to do it "the right way."
Honestly if the docs had a canonical example of e.g. using unix_cc_toolchain_config (example: [0]) + Bootlin to compile for aarch64, it'd probably go a long way to making things understandable. Because say what you will about the old CROSSTOOL approach, at least there was a nice tutorial for it.
[0] https://github.com/grailbio/bazel-toolchain/blob/f14a8a5de8f...
-
Cross-compiling to linux on MacOS with cgo
I'm really not familiar with this issue or Go nor C++ overall, but if all you need is to set up a C++ toolchain, this should be quite simple and solve your issue.
-
WebAssembly
The trick is that to provide Bazel with a custom toolchain involves way more than just setting an environment variable, because Bazel wants to control installing and making available the compiler reliably (e.g., what if `emcc` is not present on the system where Bazel was invoked? Bazel solves that problem by fetching it and building it for that system)
There are projects that provide drop-in support for custom toolchains (e.g., we use this project[0] in Sorbet to fetch and build a custom LLVM/Clang toolchain for every host we build on (rather than relying on the system toolchain). But I'm not aware of a project that has done that for Emscripten. Maybe it would be as easy as plucking out what we've done in our project into a project that others could depend on, but to quote a colleague:
> Setting up a cc toolchain in Bazel is a unique sort of pain.
[0] https://github.com/grailbio/bazel-toolchain/
What are some alternatives?
content - The content behind MDN Web Docs
WSL - Source code behind the Windows Subsystem for Linux documentation.
sorbet - A fast, powerful type checker designed for Ruby
noclip.website - A digital museum of video game levels
design - WebAssembly Design Documents
bazel_rules_qt - Bazel rules for Qt5
gcc-toolchain - A fully-hermetic Bazel GCC toolchain for Linux.
nixpkgs - Nix Packages collection & NixOS
rules_python - Bazel Python Rules