llvm-project VS Bazel

Compare llvm-project vs Bazel and see what are their differences.

llvm-project

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies. (by llvm)

Bazel

a fast, scalable, multi-language and extensible build system (by bazelbuild)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
llvm-project Bazel
353 136
25,839 22,436
3.0% 0.8%
10.0 10.0
about 21 hours ago about 4 hours ago
C++ Java
GNU General Public License v3.0 or later Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.

llvm-project

Posts with mentions or reviews of llvm-project. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-05-07.
  • Qt and C++ Trivial Relocation (Part 1)
    3 projects | news.ycombinator.com | 7 May 2024
    As far as I know, libstdc++'s representation has two advantages:

    First, it simplifies the implementation of `s.data()`, because you hold a pointer that invariably points to the first character of the data. The pointer-less version needs to do a branch there. Compare libstdc++ [1] to libc++ [2].

    [1]: https://github.com/gcc-mirror/gcc/blob/065dddc/libstdc++-v3/...

    [2]: https://github.com/llvm/llvm-project/blob/1a96179/libcxx/inc...

    Basically libstdc++ is paying an extra 8 bytes of storage, and losing trivial relocatability, in exchange for one fewer branch every time you access the string's characters. I imagine that the performance impact of that extra branch is tiny, and massively confounded in practice by unrelated factors that are clearly on libc++'s side (e.g. libc++'s SSO buffer is 7 bytes bigger, despite libc++'s string object itself being smaller). But it's there.

    The second advantage is that libstdc++ already did it that way, and to change it would be an ABI break; so now they're stuck with it. I mean, obviously that's not an "advantage" in the intuitive sense; but it's functionally equivalent to an advantage, in that it's a very strong technical answer to the question "Why doesn't libstdc++ just switch to doing it libc++'s way?"

  • Playing with DragonRuby Game Toolkit (DRGTK)
    2 projects | dev.to | 6 May 2024
    This Ruby implementation is based on mruby and LLVM and it’s commercial software but cheap.
  • Add support for Qualcomm Oryon processor
    1 project | news.ycombinator.com | 3 May 2024
  • Ask HN: Which books/resources to understand modern Assembler?
    6 projects | news.ycombinator.com | 21 Apr 2024
    'Computer Architeture: A Quantitative Apporach" and/or more specific design types (mips, arm, etc) can be found under the Morgan Kaufmann Series in Computer Architeture and Design.

    "Getting Started with LLVM Core Libraries: Get to Grips With Llvm Essentials and Use the Core Libraries to Build Advanced Tools "

    "The Architecture of Open Source Applications (Volume 1) : LLVM" https://aosabook.org/en/v1/llvm.html

    "Tourist Guide to LLVM source code" : https://blog.regehr.org/archives/1453

    llvm home page : https://llvm.org/

    llvm tutorial : https://llvm.org/docs/tutorial/

    llvm reference : https://llvm.org/docs/LangRef.html

    learn by examples : C source code to 'llvm' bitcode : https://stackoverflow.com/questions/9148890/how-to-make-clan...

  • Flang-new: How to force arrays to be allocated on the heap?
    1 project | news.ycombinator.com | 14 Apr 2024
    See

    https://github.com/llvm/llvm-project/issues/88344

    https://fortran-lang.discourse.group/t/flang-new-how-to-forc...

  • The LLVM Compiler Infrastructure
    1 project | news.ycombinator.com | 9 Apr 2024
  • Programming from Top to Bottom - Parsing
    2 projects | dev.to | 18 Mar 2024
    You can never mistake type_declaration with an identifier, otherwise the program will not work. Aside from that constraint, you are free to name them whatever you like, there is no one standard, and each parser has it own naming conventions, unless you are planning to use something like LLVM. If you are interested, you can see examples of naming in different language parsers in the AST Explorer.
  • Look ma, I wrote a new JIT compiler for PostgreSQL
    1 project | news.ycombinator.com | 18 Mar 2024
    > There is one way to make the LLVM JIT compiler more usable, but I fear it’s going to take years to be implemented: being able to cache and reuse compiled queries.

    Actually, it's implemented in LLVM for years :) https://github.com/llvm/llvm-project/commit/a98546ebcd2a692e...

  • C++ Safety, in Context
    8 projects | news.ycombinator.com | 12 Mar 2024
    > It's true, this was a CVE in Rust and not a CVE in C++, but only because C++ doesn't regard the issue as a problem at all. The problem definitely exists in C++, but it's not acknowledged as a problem, let alone fixed.

    Can you find a link that substantiates your claim? You're throwing out some heavy accusations here that don't seem to match reality at all.

    Case in point, this was fixed in both major C++ libraries:

    https://github.com/gcc-mirror/gcc/commit/ebf6175464768983a2d...

    https://github.com/llvm/llvm-project/commit/4f67a909902d8ab9...

    So what C++ community refused to regard this as an issue and refused to fix it? Where is your supporting evidence for your claims?

  • Clang accepts MSVC arguments and targets Windows if its binary is named clang-cl
    2 projects | news.ycombinator.com | 2 Mar 2024
    For everyone else looking for the magic in this almost 7k lines monster, look at line 6610 [1].

    [1] https://github.com/llvm/llvm-project/blob/8ec28af8eaff5acd0d...

Bazel

Posts with mentions or reviews of Bazel. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-18.
  • Hello World
    2 projects | news.ycombinator.com | 18 Apr 2024
    Wow, if you curl it, there's a lot of boilerplate code there.

    Maybe built using Bazel?

    https://bazel.build

  • Things I learned while building projects with NX
    5 projects | dev.to | 18 Mar 2024
    Bazel by Google
  • Show HN: Flox 1.0 – Open-source dev env as code with Nix
    17 projects | news.ycombinator.com | 13 Mar 2024
    Luckily a feature to limit the disk cache size is in development: https://github.com/bazelbuild/bazel/issues/5139
  • How to write unit tests in C++ relying on non-code files?
    3 projects | news.ycombinator.com | 22 Feb 2024
    This is a problem that Bazel (https://bazel.build) solves in a very convenient way. You can just keep using the paths relative to the repository root, and as long as you properly declare your test needs that file it will access it without problems. Or you can use the runfile libraries to access them too.
  • blade-build VS Bazel - a user suggested alternative
    2 projects | 28 Jan 2024
  • Bazel 7.0 LTS
    1 project | news.ycombinator.com | 11 Dec 2023
  • My first Software Release using GitHub Release
    6 projects | dev.to | 24 Nov 2023
    When doing research for this lab exercise I looked at both vcpkg and conan. Both are package managers that would automate the installation and configuration of my program with its dependencies. However, when it came to releasing and sharing my program my options were limited. For example, the central public registry for conan packages is conan-center, but these packages are curated and the process is very involved. There was no way conan-center would accept a class project like mine. Alternatively, I could host a conan package on a public Artifactory repository, but accessing the package requires users to add the repository to their conan remote. This already sounded like too many steps to expect regular users to follow - I already haven't setup any conan remotes, there's no way I could expect regular users to know about conan remotes, let alone have conan installed on their system. After discussing with people online and consulting my instructor, I ultimately decided to do a GitHub release. However, in the future I was encouraged to look into using CMake or bazel.
  • Declarative Gradle is a cool thing I am afraid of: Maven strikes back
    3 projects | dev.to | 11 Nov 2023
    NOTE: I won’t mention SBT and Leiningen here because, with all due respect, they are niche build tools. I also won’t discuss Kobalt for the same reason (besides, it’s no longer actively maintained). Additionally, I won’t touch upon Bazel and Buck in this context, mainly because I’m not very familiar with them. If you have insights or comments about these tools, please feel free to share them in the comments 👇
  • Bazel
    1 project | news.ycombinator.com | 2 Oct 2023
  • A Modern C Development Environment
    7 projects | news.ycombinator.com | 10 Aug 2023
    > None of this solves C's only REAL problem (in my opinion) which is the lack of dependency management.

    Bazel solves this really nicely, I know some people have strong opinions on it but I cannot recommend it enough

    https://bazel.build/

What are some alternatives?

When comparing llvm-project and Bazel you can also consider the following projects:

zig - General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.

Buck - A fast build system that encourages the creation of small, reusable modules over a variety of platforms and languages.

Lark - Lark is a parsing toolkit for Python, built with a focus on ergonomics, performance and modularity.

nx - Smart Monorepos · Fast CI

gcc

meson - The Meson Build System

SDL - Simple Directmedia Layer

Gradle - Adaptable, fast automation for all

cosmopolitan - build-once run-anywhere c library

ninja - a small build system with a focus on speed

windmill - Open-source developer platform to turn scripts into workflows and UIs. Fastest workflow engine (5x vs Airflow). Open-source alternative to Airplane and Retool.

turborepo - Incremental bundler and build system optimized for JavaScript and TypeScript, written in Rust – including Turborepo and Turbopack. [Moved to: https://github.com/vercel/turbo]