Subject: distinction -- types of dynamic loading
From: Paul Rohr (paul@abisource.com)
Date: Thu Apr 19 2001 - 18:43:32 CDT
[ This may have already been pointed out, but I've lost track of the 
relevant thread. ] 
I think we're all in agreement that one cool feature on the horizon will be 
the ability to decouple certain sorts of functionality which are currently 
hardwired into the ever-growing binary, such as:
  - file import/export
  - spell-check APIs
  - localizations
  - encodings
  - etc. 
Just to settle on terminology, there are at least three different kinds of 
dynamic loading people have been talking about:
1.  Automatic.  Our binary expects certain fixed entry points, and if the 
loader can't find them, we don't run.  We already do a fair amount of this 
for required system libraries.  
2.  Manual.  At run-time, we look for a specific library and load it 
manually via the platform equivalent of dlopen().  If nothing suitable can 
be found, we either complain or do without.  
3.  Discovery.  At run-time, we look in a known place for plugins of a 
certain type, loading any or all of them.  This last case is most 
complicated, because all such plugins must export some well-known selector 
API so we know which one we want to load.  
The benefit of well-designed discovery-style APIs isn't just the bloat 
reduction of the original binary.  It also means that *new* plugins of that 
type can be built and deployed independently of the main AbiWord binaries.  
However, until the APIs needed really stabilize, this is far more trouble 
than it's worth.  
Paul
This archive was generated by hypermail 2b25 : Thu Apr 19 2001 - 18:35:58 CDT