[Ferret-talk] Windows progress

David Balmain
Thu, 01 Jun 2006 13:15:51 -0000

On 6/1/06, Alex Young <alex at blackkettle.org>
wrote:
> 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.

Actually the main reason I haven''t finished porting to Windows yet is
that it seemed like too much work if the one-click installer is going
to change to mingw32 anyway. I hope it happens soon.

> 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?

Yes, this would probably be the shortest path to get it working. Plus
you''ll have much better locale support (ie utf-3 support).

> > 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?

It can be done but it''s still a lot of work and I just didn''t
feel up
to the task. Plus we get better performance this way with a much
smaller download.

> > 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.

Have fun. I don''t think it''ll be too much work getting it to
compile
under mingw32. I guess we''ll see.

Cheers,
Dave