Earlier quoted context omitted.
That depends on how old and big is the project. For example Linux is "stuck" on GPL2 and even if they wanted to move to something else it wouldn't be feasible to get permission from all the people involved. Some contributors passed away making it even more difficult.
Not exactly “stuck” since they very explicitly do not want to move to GPL 3.
Wild – A fast linker for Linux
171–180 of 222 posts
Re: Wild – A fast linker for Linux
#172Earlier quoted context omitted.
it's usually windows defender and virus scanning that causes these massive slowdowns.
And as a result of this, if you want to optimize your program to be fast on Windows, you will make very different optimization decisions than on other platforms. For example, Windows runs virus scans on close(), which makes it very slow. This means that sometimes it makes sense to have one or more background threads exclusively dedicated to closing files. There's a good talk on this at https://www.youtube.com/watch?v…
Re: Wild – A fast linker for Linux
#173Earlier quoted context omitted.
Corps don't want to have to release the source code for their internal forks. They could also potentially be sued for everything they link using it because the linked binaries could be "derivative works" according to a judge who doesn't know anything.
They don't have to release source for internal forks.
Re: Wild – A fast linker for Linux
#174Re: Wild – A fast linker for Linux
#175Ever since mold relicensed from AGPL to MIT (as part of mold 2.0 release), the worldwide need for making another fast linker has been greatly reduced, so I wasn't expecting a project like this to appear. And definitely wasn't expecting it to already be 2x faster than mold in some cases. Will keep an eye on this project to see how it evolves, best of luck to the author.
Why does AGPL Vs MIT matter for a linker?
AGPL is avoided like the plague by big corps: same big corps are known for having money to pay for licenses and sometimes (yes, I look at you Amazon) being good at deriving value from FLOSS without giving back.
iirc AGPL was used so everyone can just use it, big biz is still compelled to buy a license. this has been done before and can be seen as one of the strategies to make money off FLOSS.
Re: Wild – A fast linker for Linux
#176Earlier quoted context omitted.
it's usually windows defender and virus scanning that causes these massive slowdowns.
That’s exactly the problem “Dev Drive” is intended to solve I believe. I haven’t tried it myself. https://learn.microsoft.com/en-us/windows/dev-drive/
Re: Wild – A fast linker for Linux
#177Earlier quoted context omitted.
Rarely mentioned: all of these occur at the cost of not implementing a very large number of useful features used by real-world programs.
Can you name a few of these features, for those of us who don't know much about linking beyond the fact that it takes compiled object files and makes an executable (and maybe does LTO)?
Re: Wild – A fast linker for Linux
#178There’s been a lot of interest in faster linkers spurred by the adoption and popularity of rust. Even modest statically linked rust binaries can take a couple of minutes in the link stage of compilation in release mode (using mold). It’s not a rust-specific issue but an amalgam of (usually) strictly static linking, advanced link-time optimizations enabled by llvm like LTO and bolt, and a general dissatisfaction with…
C++ can be rather faster to compile than Rust, because some compilers do have incremental compilation, and incremental linking. Additionally, the acceptance of binary libraries across the C and C++ ecosystem, means that more often than not, you only need to care about compiling you own application, and not the world, every time you clone a repo, or switch development branch.
Re: Wild – A fast linker for Linux
#179What a coincidence. :) Just an hour ago I compared the performance of wild, mold, and (plain-old) ld on a C project I'm working on. 23 kloc and 172 files. Takes about 23.4 s of user time to compile with gcc+ld, 22.5 s with gcc+mold, and 21.8 s with gcc+wild. Which leads me to believe that link time shouldn't be that much of a problem for well-structured projects.
It sounds like you're building from scratch. In that case, the majority of the time will be spent compiling code, not linking. The case for fast linkers is strongest when doing iterative development. i.e. when making small changes to your code then rebuilding and running the result. With a small change, there's generally very little work for the compiler to do, but linking is still done from scratch, so tends to domi…
Re: Wild – A fast linker for Linux
#180Earlier quoted context omitted.
Tell me you don't have rust experience without telling me you don't have rust experience.
I mean, sorry for the snark but really, there's so many of these things that it's just ridiculous to even attempt to compare. e.g. I wouln't ever use something like string_view or span unless the code is absolutely performance critical. There's a lot of defensive copying in C(++), because all the risks of losing track of pointers are just not worth it. In Rust, you can go really wild with this, there's no comparison.
These risks are mostly, and often entirely, gone when you write modern C++. You don't lose track of them, because you don't track them, and you only use them when you don't need to track them. (Except for inside the implementations of a few data structures, which one can think of as the equivalent of unsafe code in Rust). Of course I'm generalizing here, but again, you just don't write C-style code, and you don't have those problems.
(You may have some other problems of course, C++ has many warts.)