Conversation

Charlotte lotteheartplural/Cinny cinny_heart_plural thetadelta ursaminor treblesand

lots of words being left on why static linking is the evil yet no effort being made to make dynamic linking work past “well in this specific memory unsafe language it might work if the dev is careful”

2
1
3

Charlotte lotteheartplural/Cinny cinny_heart_plural thetadelta ursaminor treblesand

Edited 7 days ago

abolishing static linking also requires abolishing the concept of debian btw

1
0
2

imo the ideal split is that memory unsafe deps get the dynamic library treatment but also there really needs to be a way to programmatically verify that the abi matches what is expected by programs

and moreover, debian ships a 3 year out of date version of the library so have fun with that

1
0
1

the biggest conflict feature with dynamic linking is any sort of code in the interface, but also llterally nothing checks that the declarations match in the first place, lol

0
0
1
@charlotte it can work in Java too, but also suffers from ABI incompatibilities (worst scenario so far: javax to jakarta package migration because Oracle insisted on their trademark)
1
0
0

@LunaDragofelis the posts are a bit overly terse because i was about to head to bed but yeah like

a lot of the things that makes dynamic linking work better is the greater level of abstraction between the code as shipped and the code as run. java bytecode still says things like “access field abc of this object” instead of “access pointer at rax with an offset of 16 bytes” and so the exact way the JVM chooses to represent objects isn’t a factor of the ABI

at some point your ABI and API are basically one and the same, but for C style dynamic linking every single little detail is hardcoded down to a machine code level and even in C different compilers disagree on the minutiae

1
0
1

@LunaDragofelis another thing that helps java in this case is that its generics are dynamic dispatch only and that the concept of an object is identical throughout the runtime, neither of which is the case for c style dynamic linking

0
0
1