7 ms·
Ever 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
by pzmarzly 2y ago
Ever 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.
- secondcoming 2y agoMaybe I'm holding it wrong, but mold isn't faster at all if you're using LTO, which you probably should be.
- 0x457 2y agoI think we're talking about non-release builds here. In those, you don't want to use LTO, you just want to get that binary as fast as possible.
- deleted 2y ago[deleted]
- compiler-guy 2y agoMold will be faster than LLD even using LTO, but all of its benefits will be absolutely swamped by the LTO process, which is, more or less, recompiling the entire program from high-level LLVM-IR. That's extremely expensive and dwarfs any linking advantages. So the benefit will be barely noticable. As another comment points out, LTO should only be used when you need a binary optimized to within an inch of its life, such as a release copy, or a copy for performance testing.
- paulddraper 2y agoUsername checks out. And factual.
- saagarjha 2y agoI'm waiting for 'linker-guy to weigh in, personally.
- Arelius 2y agoYeah, if you're development process requires LTO you may be holding it wrong.... Specifically, if LTO is so important that you need to be using it during development, you likely have a very exceptional case, or you have some big architectural issues that are causing much larger performance regressions then they should be.
- benatkin 2y agoBeing able to choose a middle ground between development/debug builds and production builds is becoming increasingly important. This is especially true when developing in the browser, when often something appears to be slow in development mode but is fine in production mode. WebAssembly and lightweight MicroVMs are enabling FaaS with real time code generation but the build toolchain makes it less appealing, when you don't want it to take half a minute to build or to be slow.
- jcalvinowens 2y agoIf you're debugging, and your bug only reproduces with LTO enabled, you don't have much of a choice...
- paulddraper 2y agoSure, for that 1% of the time.
- IshKebab 2y ago> you're development process requires LTO you may be holding it wrong.... Not necessarily. LTO does a very good job of dead code elimination which is sometimes necessary to fit code in microcontroller memory.
- benatkin 2y agoAgreed. Both fast and small are desirable for sandboxed (least authority) isomorphic (client and server) microservices with WebAssembly & related tech.
- account42 2y agoYou should be using LTO where incremental build times are a concern, i.e. for development builds. And for realease builds link time is hardly a concern.
- estebank 2y agoNote that Mold has no interest in becoming incremental, so there is a big reason there for another linker to exist. I find it kind of embarrassing that MS' linker has been incremental by default for decades, yet there's no production ready incremental linker on Linux yet.
- bogwog 2y ago[flagged]
- Thorrez 2y agoI'm pretty sure that's a typo, and "incremental" was meant to be included in that sentence.
- estebank 2y agoYes, indeed I accidentally forgot about incremental there.
- bdhcuidbebe 2y agoWhy so hostile? Have a break, go look at the clouds, they are beautiful today!
- estebank 2y agoYes, I missed a word. And I believe pretty much everybody else realized what I meant to say. Feel free to point me in the direction of a production grade incremental compiler that can run on Linux, GNU or otherwise.
- dang 2y ago"Please respond to the strongest plausible interpretation of what someone says, not a weaker one that's easier to criticize. Assume good faith." https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html
- pjmlp 2y agoAdditionally the way precompiled headers are handled in Visual C++ and C++ Builder have always been much better than traditional UNIX compilers, and now we have modules as well.
- easythrees 2y agoWait a minute, it’s possible to relicense something from GPL to MIT?
- DrillShopper 2y agoYes. Generally you need permissions from contributors (either asking them directly or requiring a contribution agreement that assigns copyright for contributions to either the author or the org hosting the project), but you can relicense from any license to any other license. That doesn't extinguish the prior versions under the prior license, but it does allow a project to change its license.
- prmoustache 2y agoYes if you are the only developper and never received nor accepted external contributions or if you managed to get permission from every single person who contributed or replaced their code with your own.
- computably 2y ago> or if you managed to get permission from every single person who contributed This makes it sound more difficult than it actually is (logistically); it's not uncommon for major projects to require contributors to sign a CLA before accepting PRs.
- mrighele 2y agoThat 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.
- LeFantome 2y agoNot exactly “stuck” since they very explicitly do not want to move to GPL 3.
- panzi 2y agoWhy does AGPL Vs MIT matter for a linker?
- zelcon 2y agoCorps 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.
- saagarjha 2y agoI think you should get new lawyers if this is their understanding of how software licenses work.
- mgsloan2 2y agoSee for example https://opensource.google/documentation/reference/using/agpl-policy https://opensource.google/documentation/reference/using/agpl... > Code licensed under the GNU Affero General Public License (AGPL) MUST NOT be used at Google.
- jenadine 2y agoIt’s their loss
- Defletter 2y agoIs it? Because open source tools re-licensing themselves to be more permissive would seem to indicate whose loss it really is.
- mistercheph 2y agoEmbrace, extend, extinguish. it could take about a century, but every software company (hardware maybe next century) is in the process of being swallowed by free software. Thats not to say people can’t carve out a niche and have balling corporate retreats for a while.. until the sleeping giant wakes up and rolls over you.
- integricho 2y agowhat is the status of Windows support in mold? reading the github issues leads to a circular confusion, the author first planned to support it, then moved Windows support to the sold linker, but then sold got archived recently so in the end there is no Windows support or did I just misunderstand the events?