Imagine the kind of programmer productivity we could get if we could all use tools such as this.
I'm imagining @Jonathan_Blow 's Jai as compiler, mold as linker, and Live++ in between.
With a bit more help on the C++ side, you could have fully generic sub-second iteration times.https://twitter.com/rui314/status/1389537043521277956 …
-
Show this thread
-
Replying to @molecularmusing @Jonathan_Blow
I was just thinking about this while waiting for unreal to recompile, would it be even possible to get live++ and mold to work together given mold doesn't do an incremental link, wouldn't that mean you'd have to fix up the entire executable?
1 reply 0 retweets 1 like -
Replying to @1st_C_Lord @Jonathan_Blow
Live++ doesn't need (or do) incremental links. Instead, it massages all changed .obj files so that they link even though there are unresolved symbols in it. The linker is used to produce the DLL and PDB. Live++ then links the DLL against existing symbols, patching relocations.
1 reply 0 retweets 1 like -
Live++ is pretty much also a linker that can link "partial" DLLs against any existing module, it just invokes an ordinary linker for producing a DLL and PDB, and possibly bringing in needed .objs from archives.
1 reply 0 retweets 1 like -
So mold as a daemon would be *perfect* in that case.
1 reply 0 retweets 1 like -
Replying to @molecularmusing @1st_C_Lord
But I mean, this is just an insane amount of complexity for something that should be trivial.
3 replies 0 retweets 6 likes -
Replying to @Jonathan_Blow @1st_C_Lord
It could be trivial, but unfortunately isn't with the current tools we have. If every symbol access went through a PLT or GOT, hot-reloading would be much easier. Or were you thinking about something else? Would love to hear your take on that.
1 reply 0 retweets 2 likes -
Replying to @molecularmusing @1st_C_Lord
Symbol lookup is just matching a name to a value. This is something we know how to make computers do very fast. Those symbols are a small amount of data, e.g. the symbol for a function is much smaller than the code in almost all cases, and requires no computation whereas the code
1 reply 1 retweet 4 likes -
took a lot of computation to generate. Yet somehow the linkers are so slow and complicated. It is just a pile of garbage. The solution is not to make the pile of garbage bigger. Someone just has to be the adults in the room and see how absurd this all is.
1 reply 1 retweet 5 likes -
I am not against making tools to help alleviate the problems of the current regime, *but* I think it is critical that these tools be explicitly aiming to elide all the current garbage complexity as an end-goal. Otherwise we are just making the pile bigger.
1 reply 1 retweet 9 likes
So when talking about the problems of the current tools, I think it is important not to give those tools respect they don't deserve. It's not like this problem happened despite everyone's best efforts. It happened because a bunch of people fell asleep and didn't care.
-
-
Replying to @Jonathan_Blow @1st_C_Lord
I agree, but didn't quite understand what you're referring to when you say "The solution is not to make the pile of garbage bigger". mold is a completely new linker in 10KLOC that can link Firefox, Chrome, etc. in about ~1.5 seconds, approaching SSD speeds.
3 replies 0 retweets 2 likes -
Of were you talking about getting rid of linkers entirely, basically? Most of the complexity is probably buried in stuff like producing valid PDBs, because that format is not exactly "friendly" to produce.
1 reply 0 retweets 1 like - Show replies
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.