4 ms·
Which languages? IIUC Go and Rust resort to OS IPC based plugin system mainly because they refused to have a stable ABI. On the other hand, at $DAYJOB we have
by rfoo 2y ago
Which languages?
IIUC Go and Rust resort to OS IPC based plugin system mainly because they refused to have a stable ABI.
On the other hand, at $DAYJOB we have a query engine written in C++ (which itself uses mostly static linking [1]) loading mostly static linked UDFs and ... it works.
[1] Without glibc, but with libstdc++ / libgcc etc.
- pjmlp 2y agoWell if it loads code dynamically, it is no longer static linking. Also it isn't as if there is a stable ABI for C and C++ either, unless everything is compiled with the same compiler, or using Windows like dynamic libraries, or something like COM to work around the ABI limitations.
- skohan 2y agoDoesn’t rust’s static linking also have to do with the strategy of aggressive minimization? Iirc for instance every concrete instantiation of a dynamic type will have its own compiled binary, so it would basically be impossible for a dynamic library to do this since it wouldn’t know how it would be used, at least not without some major limitations or performance tradeoffs