In version 31 I introduced support for runtime libraries (RTL). They effectively increase the possible size of an executable by allowing invocation of functions contained within libraries loaded at runtime by an application.
To achieve this, I wrote two reusable modules. The first is expected to be included in every RTL. It looks up and calls functions by name within the RTL.
The second module is contained within the consumer and is responsible for loading RTLs into memory and invoking functions on the RTL-side module. The fact that RTL are generally loaded in a different memory segment is opaque to the consumer.
The two modules (consumer-side and RTL-side) act as a bridge between consumer and RTL, while abstracting the internals of invocations. To the consumer, invocations of RTL functions are reduced to usual, near calls.
To find out more, visit the Snowdrop OS pages