Re: lang/rust is super slow to build

From: Xin LI <delphij_at_gmail.com>
Date: Tue, 13 Dec 2022 22:18:06 UTC
On Tue, Dec 13, 2022 at 7:55 AM Mel Pilgrim <list_freebsd@bluerosetech.com>
wrote:

> On 2022-12-12 11:27, Pat Maddox wrote:
> > Using poudriere, lang/rust is at 2 hours and counting on my 10-core i9
> > w/ 128 gigs of RAM.
> >
> > Does that sound right? It seems extremely slow to me, but this is my
> > first time building it.
>
> That sounds typical.  You can use ccache and tmpfs to speed it up a
> little bit, but both rust and llvm are computationally massive.
>
> Even worse, poudriere doesn't need to build it.  If you aren't changing
> its options there's no functional difference between building it locally
> and installing from the public pkg repo.  Poudriere does have the
> ability to install from pkgs, but there is a 2-year-old bug that
> prevents that feature from working correctly.
>
> I recommend everyone comment on issue #822 on the freebsd/poudriere
> github[1] and explain how much of a pain it is that poudriere doesn't
> have sane behaviour wrt dependencies.  Maybe if enough people comment it
> will spur a fix.
>
> 1: https://github.com/freebsd/poudriere/issues/822


IMHO the ports collection should provide and use prebuilt packages of
compilers (LLVM, GCC, Rust, etc.) built from the FreeBSD packages builder,
and ports framework (possibly also the base system) should be changed to
use prebuilt packages by default, unless a) user requested to build
everything from source, or b) no binary package is available for the
platform combination, like a Tier-2 platform.  The source ports for
compilers should have all optimizations (like PGO, LTO, etc.) enabled by
default, and require reasonably modern (perhaps newer than Sandy Bridge)
processor features by default.

It does not make sense for most users to build compilers from source all
the time, because most of them don't make any changes that would affect the
toolchain, which takes hours for them to build, even with beefy machines
and with parallelism and caching enabled.  For these users, it's just a
waste of time and also increases their carbon footprint for nothing good.

Cheers,