The Runtime Link Library (RLL) system is designed to satisfy a number of goals:
This is a similar concept to the SuperBasic "Toolkit" which adds new keywords to the language, but extends the idea to other languages that need compiling and linking.
The RLL system was originally developed for use with programs compiled using the C68 compilation system. However, the implementation of most of the components has been done in a generic fashion so that there is no built in limitation that will stop it being used with other languages as well.
New versions of the libraries can be introduced without the need to recompile programs that use these libraries.
The aim is that there should no (or at least very minimal) additional call time overhead for accessing routines or data when sing such dynamically bound libraries compared to having inline code.
It is possible for the average casual developer who wants to know the minimum possible about the mechanics of the system while still being able to make use of the key features.
Those programmers who want to do more than the standard default should have complete control over the RLL process. This allows for situations in which the programmers want to control the loading and unloading of libraries themselves.
It should not be necessary for the user of programs that have been built using the RLL system to have any knowledge of how it works.
Runtime Link Libraries (RLL(s)) are (potentially at least) shareable between jobs. This saves memory if several jobs are running using the same RLL. In addition the program files are typically smaller as they now no longer need to contain the code for routines that are held in RLL libraries. This reduction in file size can have the useful side effect of reducing load time from mass media if large programs are run.
The runtime process of loading and using RLLs is managed by the Runtime Library Manager (RLM). An executable programme wishing to use a RLL would call the RLM which would resolve any runtime references and attempt to load any RLL(s) which are not already in the system. This process is completely transparent to C68 users as it is handled automatically in the C68 startup module.
The remainder of this document covers all details of the Runtime Link Library system. It is structured into several sections, and it is only necessary to read those that are relevant to the type of use that you wish to make of the RLL system. The sections are:
The runtime library system uses the QJUMP shared memory "THING" system to implement run time libraries. This provides mechanisms for the automatic removal of a user job should the library thing be removed thus protecting the system. The RLM itself is an infinitely shareable and ROMable extension linked into the THING system. For those that want further information on the THING system, they are adequately documented on QUANTA DISK SPECIALS_0.
The key personnel involved in the development and implementation of the Runtime Link Library concept are:
|Tony Tebby||who developed the THING concept which allows for general purpose shareable objects to be easily loaded and manipulated. In particular thanks must got to Tony for allowing the support code for the THING system to be freely distributed.|
|Lester Wareham||who produced the original proposals for the RLL concept, and developed the original implementation of the RLM and Superbasic components of the system.|
|Dave Walker||who helped develop the RLL concept; enhancing the LD linker to support the concept of Runtime Link libraries; enhancing the C68 system to exploit the RLL system; and enhancing the RLM system to support full integration with LD and the rest of the C68 system|
|Joachim van der Auwera||Who provided the ideas and much of the software that underlies the "modules" part of the RLL system.|
The RLM component of the RLL system is freely distributable subject to the following conditions:
The remainder of the RLL system is copyright ©1992-1997 D.J.Walker. All rights reserved. Permission is granted for the RLL system to be freely distributed on the same terms as the rest of the C68 system.