Greets,
A lot of KinoSearch has been converted over to C, and I've been
pondering where the stopping point ought to be. So far, it seems
like the lower-level readers/writers should be in C, but
IndexWriter, IndexReader/SegReader/MultiReader, and Searchable/
Searcher/MultiSearcher should be native.
The reason I'm bringing this up now is that I'm about to expose Lock
and LockFactory. They're implemented in C, but currently they are
always constructed and their methods are always called at the native
level. If that's guaranteed, it's possible to for users to override
them with a native subclass (which is the whole point of LockFactory).
I think Analyzer should be handled the same way -- we might provide
analyzers implemented in C, but we guarantee that they will always be
invoked via the binding.
In addition to the subclassing flexibility, exceptions are still
pretty easy to trace if you know where you left IndexWriter/
IndexReader -- but they're very difficult if e.g. all you know is
that you read past EOF at some point during Searcher_Search().
Marvin Humphrey
Rectangular Research
http://www.rectangular.com/