Closed the-horo closed 9 months ago
I don't quite remember what made dlang-tools
end up in that state, but there fact that gdmd
and ldmd2
can be used by rdmd
and how it's inherently dependent on a compatible dmd
for command-line flags and how ddemangle
depends on the respective ABI of dmd
possibly played into it. Technically, when installing an old dmd
it makes sense to pull in an old version of dlang-tools
as well so they are compatible. Maybe I ran into problems with gdmd
and ldmd2
. Really can't remember. That was 10 years ago ^^.
The many dmd
versions were sort of an archive to go back through in case something doesn't compile or produces an error and you want to check if its a regression or the compiler has been behaving like that before. Or just to see how dmd
performed two years ago if it suddenly feels slow. I'm fine with cutting down on it. I am not actively maintaining it nowadays anyways and then, yeah, it starts to rot and suddenly throws errors because something in glibc
changed or whatnot.
For basic tests at least, rdmd
seems to be working fine with either gdc
or ldc2
.
For ddemangle
, it's souce file has not been updated in 6 years and it's using core.demangle
for doing to compiler-specific calculations so the ebuild version of dlang-tools
doesn't matter, what matters is the compiler used to build it.
The dmd
situation is indeed different. I can see its use in being able to use multiple different versions from across the years to see how the compiler (d)evolved but that's useful to developers, not to users. If somebody was impacted by the removal I wouldn't mind keeping a few more versions in the tree for a while but my interest for now is having up to date ebuilds and improving the overlay, not maintaining unused old versions.
This PR removeds a lot of the old versions of the packages in the overlay. Most notably dlang-tools and dmd lost the most versions. dlang-tools shouldn't have had so many versions in the tree in the first place since it's not slotted and dmd, while it may be useful to have access to older compiler versions, having rotting versions in the tree that don't work or are not tested only makes it harder to fix problems in the newer versions and adds a lot of complexity to dmd.eclass.
The cut on which versions will remain has been made based on the if checks in dmd.eclass, 2.101 being the last version that requires conditional code in the eclass. ldc2 has been left alone as its ebuilds don't require that many changes across versions.
dmd-2.086 has been kept in order to still be able to build tilix so that we wouldn't have to remove it from the tree.