Hi Caleb,

On Apr 18, 2012, at 10:18, Caleb Burns <[email protected]> wrote:

> My question is: would it be possible for JCC to be compiled as a shared
> library in PyLucene (by default) instead of being compiled in as a static
> object?

It cannot be the default as shared mode (the mode where JCC has a shared 
library component) is not supported on all operating systems where PyLucene/JCC 
is. It currently works on Mac OS X, Windows and Linux (and on Linux with a 
patch to setuptools).
Other operating systems need to solve the "building a regular shared library 
-as opposed to a python extension shared library - via setuptools" first before 
shared mode can be supported there.

Where the local environment (operating system and presence of setuptools) 
permits, JCC already defaults to this shared mode. This is why, for example, on 
Linux, you are presented with the patching of setuptools required to make the 
building of a regular shared library work, when first building JCC there.

> If JCC was compiled as a shared object and PyLucene linked to it,
> my organization (and possibly others) would be able to maintain and release
> custom extensions for PyLucene written in C++. This would simplify the use
> and need for maintaining a custom installation of PyLucene linked against
> JCC. The reason for our approach is because we primarily use/write Python
> with C and C++ extension.

Out of curiosity, why did you rewrite this Solr module in C++ instead of 
isolating its Java classes into a jar file and generating C++/Python wrappers 
for it using JCC ?

Andi..

> 
> On Tue, Apr 17, 2012 at 7:39 PM, Andi Vajda <[email protected]> wrote:
> 
>> 
>> Hi Caleb,
>> 
>> 
>> On Tue, 17 Apr 2012, Caleb Burns wrote:
>> 
>> I've finished the process at my organization of re-implementing SOLR's
>>> faceting algorithm (in C++).
>>> 
>>> We would like the public at large to have access to the work we've done
>>> and
>>> plan to do. In order for this to be a real possibility the code needs to
>>> be
>>> built against and use the same JVM as the PyLucene installation does. The
>>> most logical way we feel to have this accomplished is by having PyLucenes'
>>> default installation use JCC as a Shared Object.
>>> 
>>> We have yet more plans to extend and provide utilities that work with
>>> PyLucene, but this all hinges on having the shared object. The only
>>> alternative methodology would require the bundling of our source with the
>>> PyLucene project itself as a fork.
>>> 
>>> We are eager to start open sourcing our work, so please let us know what
>>> would be the best way to integrate our work.
>>> 
>> 
>> Ok, so what is your question ?
>> PyLucene's shared mode also depends on JCC's shared library.
>> Is your question about what the default should be ?
>> 
>> Andi..
>> 
> 
> 
> 
> -- 
> Caleb Burns
> Developer | Riders Discount

Reply via email to