Plugins are pieces of code that extend the Object Engine. They're mainly used to interface existing libraries (ie. freetye) and to write more efficient code.
The way they are made is pretty simple, but may be puzzling at first because they use to consist of two parts:
- A set of primitives that may be written directly in C or in Slang (and get converted to C by VMMaker). This primitives are compiled to a statically or dinamically linked library (.lib or .dll in Windows or .so in Linux). If they get dinamically linked we talk about external plugins, otherwise, we talk of internal plugins.
- A set of interfacing classes, written in Smalltalk, that wrap the access to these primitives. These classes have methods that call the primitive functions.
To use a plugin you will need the second part, the interfacing classes. The first one is needed only if you want to compile the plugin, else you can just use the compiled library (which may already be incorporated in your VM).