[Ferret-talk] Windows progress

Alex Young
Thu, 01 Jun 2006 11:27:49 -0000

David Balmain wrote:
> On 6/1/06, Alex Young <alex at blackkettle.org> wrote:
>> Hi there,
>>
>> What''s the current status of the Windows port?  I may be in a
position
>> to lend a hand over the next couple of weeks - where should I start
>> looking?
>
> Hi Alex,
>
> Thanks for your interest. I got Ferret to compile with Visual Studio
> Express 2005. Unfortunately you currently need to use Visual C 6 to
> create Ruby bindings.
A few groups have been bitten by this.  I believe this is something Curt
Hibbs is going to be addressing with the next One-Click Installer.  I
don''t know if you''ve been following ruby-lang, but there are
noises to
move over to a mingw32 build instead of a VC6, which would sort a *lot*
of things out.  If that ends up happening, extension building on Windows
will get much simpler.  As far as I know, the OCI only uses VC6 because
it was believed at the time that it would be compatible with mingw32
extensions.

For my purposes, I don''t especially mind building my own Ruby to make
Ferret compatible with it, but I can see that approach may not have too
many adherents :-)  Do you see any reason why that wouldn''t work with
the current Ferret source?  Would that not be the shortest path to
getting it working?

> This proved a lot more difficult so I decided to
> take a different route. Marvin Humphrey (author of KinoSearch, a perl
> port of lucene) and I are about to start a new project at Apache
> called Lucy (http://wiki.apache.org/jakarta-lucene/LucyProposal) which
> will aim to create a C port of Lucene that can be used as a backend in
> all dynamic languages. This time around, portability will be a much
> higher priority.
I''m sure you''ve considered this, but what does that add
compared to a
GCJ+SWIG approach, as with PyLucene?  Without having looked at it, is
there anything which prevents that method from being applied to Ruby?

> Lucy may or may not one day become the back end to Ferret. At the same
> time I''m experimenting with some different options using the
Ferret
> codebase. Now that Lucy is happening I''m not going to worry about
> Lucene index compatibility (which was currently still a long way off
> in Ferret due to Java''s modified UTF-8 encoding). This
experimental
> code is in;
>
>     svn://www.davebalmain.com/exp
>
> This code is much more portable and will compile with VC6. So if you
> want a Windows port quickly you can try merging this code back into
> Ferret propper. Or if you are really interested in the libraries
> internals you could join me working on this experimental code or join
> Marvin and I on the Lucy project (still waiting on Apache approval).
> Whichever route you chose your help will be most appreciated. Let me
> know your thoughts.
 From my personal point of view, I''m most interested in having the same
codebase work fast on both Linux and Windows, and, like I say, I don''t
mind rebuilding Ruby to do it.  Right now, I''d be most interested in
patching the current cFerret to work under mingw32, unless you know of
any reasons that''s just not going to work.  I''ll certainly
take a look
at the new code and see if there''s anything I can usefully add there,
too.

Thanks,
--
Alex