A big +1 to Nick for pushing the C bindings to the place they are. Great work.
Nick asked on #lucy_dev for testers. Here's my feedback:
on OS X 10.6:
./configure ... ok
make ... ok
make test ... fail:
RegexTokenizer is not available because Lucy was compiled without PCRE.
lucy_RegexTokenizer_init at src/Lucy/Analysis/RegexTokenizer.c line 148
Bad plan: You planned 68 tests but ran 0.
3/71 batches failed. 0/5029 tests failed.
Result: FAIL
make: *** [test] Error 1
[karpet@pekmac:~/projects/lucy/c]$ uname -a
Darwin pekmac.local 10.8.0 Darwin Kernel Version 10.8.0: Tue Jun 7 16:33:36 PDT
2011; root:xnu-1504.15.3~1/RELEASE_I386 i386
seems like it would be most ideal to detect the lack of PCRE at configure time.
on CentOS 5:
./configure ... ok
make ... ok
make test ... fail:
[karpet@ira:~/src/lucy/c]$ make test
gcc -std=gnu99 -D_GNU_SOURCE -O2 -I . -I src -I ../core -I autogen/include -I
../modules/analysis/snowstem/source/include -I ../modules/unicode/ucd -I
../modules/unicode/utf8proc -c -o t/test_lucy.o t/test_lucy.c
gcc t/test_lucy.o -L. -llucy -o t/test_lucy
LD_LIBRARY_PATH=. t/test_lucy
Running Lucy::Test::Util::TestPriorityQueue...
Running Lucy::Test::Object::TestBitVector...
Running Lucy::Test::Object::TestVArray...
Running Lucy::Test::Object::TestHash...
Running Lucy::Test::Object::TestObj...
Running Lucy::Test::Object::TestErr...
Running Lucy::Test::Object::TestByteBuf...
Running Lucy::Test::Util::TestMemoryPool...
Running Lucy::Test::Object::TestCharBuf...
Running Lucy::Test::Util::TestNumberUtils...
Running Lucy::Test::Object::TestNum...
Failed test 8: F64 Set_Value Get_Value
Failed test 11: Float32_To_F64
2/58 tests failed.
Running Lucy::Test::Util::TestStringHelper...
Running Lucy::Test::Util::TestIndexFileNames...
Running Lucy::Test::Util::TestJson...
Running Lucy::Test::Object::TestI32Array...
Running Lucy::Test::Util::TestAtomic...
Running Lucy::Test::Object::TestLockFreeRegistry...
Running Lucy::Test::Util::TestMemory...
Running Lucy::Test::Store::TestRAMFileHandle...
Running Lucy::Test::Store::TestFSFileHandle...
Running Lucy::Test::Store::TestInStream...
Running Lucy::Test::Store::TestFileHandle...
Running Lucy::Test::Store::TestIOPrimitives...
Running Lucy::Test::Store::TestIOChunks...
Running Lucy::Test::Store::TestRAMDirHandle...
Running Lucy::Test::Store::TestFSDirHandle...
Running Lucy::Test::Store::TestFSFolder...
Running Lucy::Test::Store::TestRAMFolder...
Running Lucy::Test::Store::TestFolder...
Running Lucy::Test::Index::TestIndexManager...
Running Lucy::Test::Store::TestCompoundFileWriter...
Running Lucy::Test::Store::TestCompoundFileReader...
Running Lucy::Test::Analysis::TestAnalyzer...
Running Lucy::Test::Analysis::TestPolyAnalyzer...
RegexTokenizer is not available because Lucy was compiled without PCRE.
lucy_RegexTokenizer_init at src/Lucy/Analysis/RegexTokenizer.c line 148
Bad plan: You planned 19 tests but ran 0.
Running Lucy::Test::Analysis::TestCaseFolder...
Running Lucy::Test::Analysis::TestRegexTokenizer...
RegexTokenizer is not available because Lucy was compiled without PCRE.
lucy_RegexTokenizer_init at src/Lucy/Analysis/RegexTokenizer.c line 148
Bad plan: You planned 3 tests but ran 0.
Running Lucy::Test::Analysis::TestSnowballStopFilter...
Running Lucy::Test::Analysis::TestSnowballStemmer...
Running Lucy::Test::Analysis::TestNormalizer...
Running Lucy::Test::Analysis::TestStandardTokenizer...
Running Lucy::Test::Index::TestSnapshot...
Running Lucy::Test::Index::TestTermInfo...
Running Lucy::Test::Plan::TestFieldMisc...
Running Lucy::Test::TestBatchSchema...
Running Lucy::Test::Index::TestDocWriter...
Running Lucy::Test::Index::TestHighlightWriter...
Running Lucy::Test::Index::TestPostingListWriter...
Running Lucy::Test::Index::TestSegWriter...
Running Lucy::Test::Index::TestPolyReader...
Running Lucy::Test::Plan::TestFullTextType...
Running Lucy::Test::Plan::TestBlobType...
Running Lucy::Test::Plan::TestNumericType...
Running Lucy::Test::Plan::TestFieldType...
Running Lucy::Test::Index::TestSegment...
Running Lucy::Test::Highlight::TestHighlighter...
Invalid UTF-8 header byte: 00000094
lucy_StrHelp_decode_utf8_char at ../core/Clownfish/Util/StringHelper.c
line 216
Bad plan: You planned 35 tests but ran 22.
Running Lucy::Test::Search::TestSpan...
Running Lucy::Test::Highlight::TestHeatMap...
Running Lucy::Test::Search::TestTermQuery...
Running Lucy::Test::Search::TestPhraseQuery...
Running Lucy::Test::Search::TestSortSpec...
Running Lucy::Test::Search::TestRangeQuery...
Running Lucy::Test::Search::TestANDQuery...
Running Lucy::Test::Search::TestMatchAllQuery...
Running Lucy::Test::Search::TestNOTQuery...
Running Lucy::Test::Search::TestReqOptQuery...
Running Lucy::Test::Search::TestLeafQuery...
Running Lucy::Test::Search::TestNoMatchQuery...
Running Lucy::Test::Search::TestSeriesMatcher...
Running Lucy::Test::Search::TestORQuery...
Running Lucy::Test::Search::TestQueryParserLogic...
Running Lucy::Test::Search::TestQueryParserSyntax...
RegexTokenizer is not available because Lucy was compiled without PCRE.
lucy_RegexTokenizer_init at src/Lucy/Analysis/RegexTokenizer.c line 148
Bad plan: You planned 68 tests but ran 0.
5/71 batches failed. 2/5016 tests failed.
Result: FAIL
make: *** [test] Error 1
[karpet@ira:~/src/lucy/c]$ uname -a
Linux ira.peknet.com 2.6.18-308.24.1.el5 #1 SMP Tue Dec 4 17:42:30 EST 2012 i686
i686 i386 GNU/Linux
--
Peter Karman . http://peknet.com/ . [email protected]