[sword-devel] micro-diatheke

Lynn Allan sword-devel@crosswire.org
Wed, 29 Oct 2003 07:54:11 -0700


I've had some off-list discussions with Troy A. Griffitts concerning some
revisions to the sword-api for a 'micro-diatheke'. He's set me straight on
several issues, and accomplished an "attitude adjustment" on my part.

I've been doing some experiments with a VisC++ configuration:
Release - SubsetNoManagers
that has
#define SUBSET_NO_MANAGERS
and generates swordlibvc6_ssnm.lib.
This allows a versekey.obj that has most of it's "octopus tentacles" clipped
off. The net result is that a diatheke.exe can be as small as 36kb, rather
than up to 400kb. This is "r & d" for an InVerse "plug-in" for Scripture
memorization.

If the above made any sense, I'd appreciate feedback.
TIA,
Lynn Allan

>Troy replied
> I like the idea about a subclass to handle a small subset of
> functionality, if that would be useful to you.  No problems at all with
me.
>
> Oh, you're using RawVerse :)  Now I see why you're doing the extra
> calls.  I was gonna say, why not just just use RawText::SetKey, but I
> guess that would pull in too many dependencies for you :)
>
> The constructor idea is fine with me, as well.  If it's useful, then
> let's add it.
>> VerseKey::VerseKey(char testmt, signed char bk, int chap, int ver) :
SWKey()
>
>
> > Lynn Allan wrote:
> > I would advocate allowing VerseKey to accept a constuctor with numeric
> > values for the testament, book, chapter, and verse, such as:
> >
> >   VerseKey vk(2, 10, 2, 9);  // NT Ephesians 2:9
> >
> > The above eliminates parsing, and some applications will be using
widgets
> > that don't use text at all. Currently, all the versekey constructors
take a
> > text argument (directly or indirectly).
> >
> > Also, I'd propose something like
> > #define BAREBONES_SWORDLIB
> > to put into versekey. As it is, my experience is that versekey.h and
> > versekey.cpp are like an "octopus" ... they "touch" lots of code, which
> > ripples outward, and drag in all kinds of code. The linker isn't smart
> > enough figure out what is actually needed. The above can result in a
36kb
> > diatheke.exe with some judious snipes to the versekey code. (related to
> > listkey, locale, etc.). Otherwise, it is 116kb to 168kb.
> >