On Mon, 2021-11-08 at 12:18 +0100, Michał Górny wrote:
> Hi,
> 
> A few years back I've slotted LLVM and Clang to make the life with
> revdeps easier.  Long story short, every major LLVM release (which
> happens twice a year) breaks API and it takes some time for revdeps to
> adjust.  Slotting made it possible to install multiple versions
> simultaneously, and therefore let "faster" packages use newer LLVM
> without being blocked by "slower" packages on the user's system.
> 
> Unfortunately, this ended up pretty bothersome to maintain.  Besides
> making ebuilds quite complex (and prone to mistakes), I'm hearing more
> and more reports of programs being broken through getting multiple LLVM
> versions in the link chain.
> 
> This is not something that can be easily solved.  In other words, it's
> a mess and I don't think we're really getting anywhere.  For this
> reason, I'm considering dropping slotting and going back to permitting
> only a single version of LLVM and Clang being installed.
> 
> This would have two major implications:
> 
> 1. If you installed any package that requires older LLVM, it'd block all
> other packages from updating.  If you hit two packages that do not have
> a common supported LLVM version, you won't be able to install them
> at all.
> 
> On the plus side, this will motivate developers to actually start fixing
> these packages rather than letting them rot until I start removing old
> LLVM versions.
> 
> 2. We will no longer support having multiple clang versions installed. 
> While it was convenient for testing stuff, it's not really a killer
> feature though.
> 
> The only real alternative I see is actively limiting supported LLVM
> versions in packages to ensure that all libraries in the depgraph end up
> using the same LLVM version.  However, I don't think it's really worth
> the effort.
> 
> I don't have a ready unslotting plan yet.
> 
> WDYT?
> 

I've got the message and slotted LLVM and Clang are going to stay for
the time being.

-- 
Best regards,
Michał Górny


Reply via email to