Just to put that 7MB "hello world" ELF file into some perspective. Back in the 1990s, I did an Windows-32 application to display an archaic equivalent of SVGs (so, y'know, quite a bit more than "hello world" but not a lot more) and it compiled to something like a 200K EXE... about 36 times smaller.
@thewhitefalcon8539Ай бұрын
Metafiles I suppose
@UliTroyoАй бұрын
Dang, that's clever! This is the insight I wanted into Roc platforms.
@UliTroyoАй бұрын
And yeah, I second Loris, I hope you guys got lunch together.
@ZigSHOWTIMEАй бұрын
They did get lunch together!
@medbenbrahim3246Ай бұрын
Interesting talk. Maybe ELF isn't optimized for (Platform+App) pattern. Also the fact that most producers of ELF are compiled languages, and the linking time is a one-time cost makes it hard to convince for a new/modern format.
@VACatholicАй бұрын
That's just a horrible argument tbh. They're not "build once". They're "build once for end users". But for devs, they might be build dozens of times a day. The fact that this garbage is "good enough" is why we can't have nice things. People just like living in garbage.
@grafgrantula6100Ай бұрын
Great talk, thanks Brendan! I seriously look forward to try out Roc for real when it is a bit more stable. I did try to get into Roc about a year ago with thoughts of maybe contributing to the standard library, but super slow and error prone Rust compiling and not being very Windows friendly (which is fair, but still, it's my primary platform) have turned me away from that. But all the goals of Roc sound extremely cool to me!
@diegoaugusto15614 күн бұрын
you could try wsl for the specific applications that don't have great windows support
@NuclearFury8Ай бұрын
Is there no way to pre-link a static library into a single object for the platform? Similar to what you'd get if you concatenated all the source into one gigantic file and just compiled that.
@brendanhansknecht4650Ай бұрын
A static library is just a pile of object files. You could merge all of those object files into one gigantic object file. That said until you start making the final executable, pulling in system dependencies, dynamic linking, and dealing with other complications, nothing gets concrete. So you really wouldn't have gained anything from the original static library. You still have tons of slow linking work to get done.
@NuclearFury8Ай бұрын
@@brendanhansknecht4650 You'd solve inter-linking between the objects, but I see... it really is annoying that you can't finalize linking to external libs using the existing compiler stack.
@brendanhansknecht4650Ай бұрын
@@NuclearFury8 yeah, and a lot of relocation kinds can't be handled until you pick a final location in the output binary (which depends on headers and such). So many relocations won't actually get fully resolved. It is quite inconvenient.