==================
Apache Lucy STATUS
==================

The current version of this file can be found here:

  * <https://git-wip-us.apache.org/repos/asf?p=lucy.git;a=blob;f=STATUS;hb=HEAD>

Contributors looking for a mission should browse the issues linked below to
get a feel for the Lucy community's consensus priorities.  See
<http://wiki.apache.org/lucy/HowToContribute> for practical instructions.


CURRENT RELEASE NOTES:


RELEASE BLOCKERS:

  * See the issue tracker report for the upcoming release.


TODO LIST:

  * Port the Clownfish compiler to C.
    <https://issues.apache.org/jira/browse/LUCY-142>

  * Refactor away C89 idioms, since we have chosen the intersection of C99 
    and C++ as our C dialect.
    <https://issues.apache.org/jira/browse/LUCY-144>

  * Port most test files within trunk/perl/t/ to C.
    <https://issues.apache.org/jira/browse/LUCY-149>

  * Scaling issues: get Lucy to perform well enough to handle search
    for ASF public mailing lists (~ 10M messages as of 2011) from a
    single host.


WISH LIST:

  * Ruby bindings.

  * Python bindings.

