emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PROPOSAL] Builder, a build system integration for Emacs


From: Gregory Heytings
Subject: Re: [PROPOSAL] Builder, a build system integration for Emacs
Date: Thu, 25 May 2023 14:36:40 +0000



The answers were clear, but they didn't present any solutions to the issues I brought up. None of the tools I'm aware of, including Cargo, support interactive selection of dependencies based on their features and requirements, nor provide any decision support for the kind of decisions I described. They allow you to specify a version, but leave the actual decision process to you. And if that is the case, why do I need them? I can easily build stuff myself once I've figured out which versions of what dependencies I need.

And there's no need for you to work hard to try to represent the problems as having their solutions. Those build tools do not intend to solve those problems, they don't even consider them problems. They "know better". The facilities you described are nothing more than lip service.


Then I guess I don't understand what these problems are, and what kind of solution you are after. Let's take a concrete example of a popular Rust program: ripgrep. All you need to build it is:

git clone https://github.com/BurntSushi/ripgrep
cargo build --release

or (even simpler):

cargo install ripgrep

That (relatively simple) program depends on no less than 37 Rust libraries, and has two optional build options, "pcre2" and "simd-accel". If you activate these two options the program depends on 45 libraries. What would you want do do with those 45 libraries? What do you mean in this concrete case by "interactive selection of dependencies based on their features and requirements"?

Another popular (slightly more complex) Rust program is Alacritty (a terminal emulator). That one depends on 131 Rust libraries. Again, what would you want to do with all those libraries? Why would you want to build that program with a version of a Rust library that is different from what the authors of that program recommend?

One thing that might be unclear in this discussion is that Rust libraries are compiled in the program, they are not dynamic libraries. A Rust program can of course also depend on non-Rust libraries, e.g. Alacritty depends on the Freetype library (and on other libraries). These non-Rust dependencies are not managed by Cargo.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]