incubator-lucy-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marvin Humphrey <>
Subject Which classes should be native?
Date Mon, 12 Mar 2007 00:13:34 GMT

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

View raw message