[ 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
