pat / thinking-sphinx-raspell

An add-on gem for spelling suggestions in Thinking Sphinx
http://pat.github.io/thinking-sphinx
MIT License
58 stars 11 forks source link

Seems not to work with Ruby 1.9? #4

Closed spieker closed 13 years ago

spieker commented 13 years ago

The error message is:

dyld: lazy symbol binding failed: Symbol not found: _STR2CSTR Referenced from: /Users/spieker/.rvm/gems/ruby-1.9.2-p0/gems/raspell-1.2/lib/raspell.bundle Expected in: flat namespace

dyld: Symbol not found: _STR2CSTR Referenced from: /Users/spieker/.rvm/gems/ruby-1.9.2-p0/gems/raspell-1.2/lib/raspell.bundle Expected in: flat namespace

Trace/BPT trap

pat commented 13 years ago

Turns out this is an issue with raspell, not thinking-sphinx-raspell. Latest commit switches to dmarkow-raspell instead, which works fine.

Easy enough to grab the latest if you're using Bundler:

gem 'thinking-sphinx-raspell',
  :git => 'git://github.com/freelancing-god/thinking-sphinx-raspell.git'

I'm going to ask Evan whether raspell will be fixed for 1.9.2, and then I'll decide which gem we'll go with (and thus, what's part of the next thinking-sphinx-raspell gem).

josh-m-sharpe commented 12 years ago

It seems this is broken again...

$ cat /Users/joshsharpe/.rvm/gems/ruby-1.9.2-p290@veloracing/gems/raspell-1.3/ext/gem_make.out
/Users/joshsharpe/.rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb 
checking for ruby.h... yes
checking for aspell.h... no
checking for main() in -laspell... no
creating Makefile

make
/usr/bin/gcc-4.2 -I. -I/Users/joshsharpe/.rvm/rubies/ruby-1.9.2-p290/include/ruby-1.9.1/x86_64-darwin11.3.0 -I/Users/joshsharpe/.rvm/rubies/ruby-1.9.2-p290/include/ruby-1.9.1/ruby/backward -I/Users/joshsharpe/.rvm/rubies/ruby-1.9.2-p290/include/ruby-1.9.1 -I. -DHAVE_RUBY_H -I/Users/joshsharpe/.rvm/usr/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE   -fno-common -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long  -fno-common -pipe  -o raspell.o -c raspell.c
In file included from raspell.c:2:
raspell.h:6:20: error: aspell.h: No such file or directory
raspell.c:13: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
raspell.c: In function ‘dictinfo_name’:
raspell.c:24: error: invalid type argument of ‘->’
raspell.c:24: error: invalid type argument of ‘->’
raspell.c:24: error: invalid type argument of ‘->’
raspell.c:24: error: invalid type argument of ‘->’
raspell.c: In function ‘dictinfo_code’:
raspell.c:28: error: invalid type argument of ‘->’
raspell.c:28: error: invalid type argument of ‘->’
raspell.c:28: error: invalid type argument of ‘->’
raspell.c:28: error: invalid type argument of ‘->’
raspell.c: In function ‘dictinfo_jargon’:
raspell.c:32: error: invalid type argument of ‘->’
raspell.c:32: error: invalid type argument of ‘->’
raspell.c:32: error: invalid type argument of ‘->’
raspell.c:32: error: invalid type argument of ‘->’
raspell.c: In function ‘dictinfo_size’:
raspell.c:36: error: invalid type argument of ‘->’
raspell.c: In function ‘dictinfo_size_str’:
raspell.c:40: error: invalid type argument of ‘->’
raspell.c:40: error: invalid type argument of ‘->’
raspell.c:40: error: invalid type argument of ‘->’
raspell.c:40: error: invalid type argument of ‘->’
raspell.c: At top level:
raspell.c:74: error: expected ‘)’ before ‘*’ token
raspell.c:87: error: expected ‘)’ before ‘*’ token
raspell.c:98: error: expected ‘)’ before ‘*’ token
raspell.c:119: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
raspell.c:130: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
raspell.c:145: error: expected ‘;’, ‘,’ or ‘)’ before ‘*’ token
raspell.c: In function ‘aspell_s_new’:
raspell.c:192: error: ‘AspellCanHaveError’ undeclared (first use in this function)
raspell.c:192: error: (Each undeclared identifier is reported only once
raspell.c:192: error: for each function it appears in.)
raspell.c:192: error: ‘ret’ undeclared (first use in this function)
raspell.c:193: error: ‘AspellSpeller’ undeclared (first use in this function)
raspell.c:193: error: ‘speller’ undeclared (first use in this function)
raspell.c:194: error: ‘AspellConfig’ undeclared (first use in this function)
raspell.c:194: error: ‘config’ undeclared (first use in this function)
raspell.c:215: warning: passing argument 1 of ‘strdup’ makes pointer from integer without a cast
raspell.c:217: warning: format not a string literal and no format arguments
raspell.c: In function ‘aspell_s_new1’:
raspell.c:240: error: ‘AspellCanHaveError’ undeclared (first use in this function)
raspell.c:240: error: ‘ret’ undeclared (first use in this function)
raspell.c:241: error: ‘AspellSpeller’ undeclared (first use in this function)
raspell.c:241: error: ‘speller’ undeclared (first use in this function)
raspell.c:242: error: ‘AspellConfig’ undeclared (first use in this function)
raspell.c:242: error: ‘config’ undeclared (first use in this function)
raspell.c:254: warning: passing argument 1 of ‘strdup’ makes pointer from integer without a cast
raspell.c:256: warning: format not a string literal and no format arguments
raspell.c: In function ‘aspell_s_list_dicts’:
raspell.c:271: error: ‘AspellConfig’ undeclared (first use in this function)
raspell.c:271: error: ‘config’ undeclared (first use in this function)
raspell.c:272: error: ‘AspellDictInfoList’ undeclared (first use in this function)
raspell.c:272: error: ‘dlist’ undeclared (first use in this function)
raspell.c:273: error: ‘AspellDictInfoEnumeration’ undeclared (first use in this function)
raspell.c:273: error: ‘dels’ undeclared (first use in this function)
raspell.c:274: error: nested functions are disabled, use -fnested-functions to re-enable
raspell.c:274: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
raspell.c:274: error: ‘entry’ undeclared (first use in this function)
raspell.c:285: error: ‘AspellDictInfo’ undeclared (first use in this function)
raspell.c:285: error: expected expression before ‘)’ token
raspell.c:285: error: too few arguments to function ‘rb_data_object_alloc’
raspell.c: In function ‘aspell_set_option’:
raspell.c:295: error: ‘AspellSpeller’ undeclared (first use in this function)
raspell.c:295: error: ‘speller’ undeclared (first use in this function)
raspell.c: In function ‘aspell_remove_option’:
raspell.c:306: error: ‘AspellSpeller’ undeclared (first use in this function)
raspell.c:306: error: ‘speller’ undeclared (first use in this function)
raspell.c: In function ‘aspell_set_suggestion_mode’:
raspell.c:316: error: ‘AspellSpeller’ undeclared (first use in this function)
raspell.c:316: error: ‘speller’ undeclared (first use in this function)
raspell.c: In function ‘aspell_personal_wordlist’:
raspell.c:326: error: ‘AspellSpeller’ undeclared (first use in this function)
raspell.c:326: error: ‘speller’ undeclared (first use in this function)
raspell.c: In function ‘aspell_session_wordlist’:
raspell.c:335: error: ‘AspellSpeller’ undeclared (first use in this function)
raspell.c:335: error: ‘speller’ undeclared (first use in this function)
raspell.c: In function ‘aspell_main_wordlist’:
raspell.c:344: error: ‘AspellSpeller’ undeclared (first use in this function)
raspell.c:344: error: ‘speller’ undeclared (first use in this function)
raspell.c: In function ‘aspell_save_all_wordlists’:
raspell.c:352: error: ‘AspellSpeller’ undeclared (first use in this function)
raspell.c:352: error: ‘speller’ undeclared (first use in this function)
raspell.c: In function ‘aspell_clear_session’:
raspell.c:362: error: ‘AspellSpeller’ undeclared (first use in this function)
raspell.c:362: error: ‘speller’ undeclared (first use in this function)
raspell.c: In function ‘aspell_suggest’:
raspell.c:374: error: ‘AspellSpeller’ undeclared (first use in this function)
raspell.c:374: error: ‘speller’ undeclared (first use in this function)
raspell.c: In function ‘aspell_add_to_personal’:
raspell.c:384: error: ‘AspellSpeller’ undeclared (first use in this function)
raspell.c:384: error: ‘speller’ undeclared (first use in this function)
raspell.c: In function ‘aspell_add_to_session’:
raspell.c:395: error: ‘AspellSpeller’ undeclared (first use in this function)
raspell.c:395: error: ‘speller’ undeclared (first use in this function)
raspell.c: In function ‘aspell_conf_retrieve’:
raspell.c:408: error: ‘AspellSpeller’ undeclared (first use in this function)
raspell.c:408: error: ‘speller’ undeclared (first use in this function)
raspell.c:409: error: ‘AspellConfig’ undeclared (first use in this function)
raspell.c:409: error: ‘config’ undeclared (first use in this function)
raspell.c:410: warning: passing argument 1 of ‘strlen’ makes pointer from integer without a cast
raspell.c:410: warning: passing argument 1 of ‘rb_str_new’ makes pointer from integer without a cast
raspell.c:410: warning: passing argument 1 of ‘rb_str_new_cstr’ makes pointer from integer without a cast
raspell.c:412: warning: passing argument 2 of ‘rb_raise’ makes pointer from integer without a cast
raspell.c:412: warning: format not a string literal and no format arguments
raspell.c: In function ‘aspell_conf_retrieve_list’:
raspell.c:422: error: ‘AspellSpeller’ undeclared (first use in this function)
raspell.c:422: error: ‘speller’ undeclared (first use in this function)
raspell.c:423: error: ‘AspellConfig’ undeclared (first use in this function)
raspell.c:423: error: ‘config’ undeclared (first use in this function)
raspell.c:424: error: ‘AspellStringList’ undeclared (first use in this function)
raspell.c:424: error: ‘list’ undeclared (first use in this function)
raspell.c:425: error: ‘AspellMutableContainer’ undeclared (first use in this function)
raspell.c:425: error: ‘container’ undeclared (first use in this function)
raspell.c:426: error: ‘AspellStringEnumeration’ undeclared (first use in this function)
raspell.c:426: error: ‘els’ undeclared (first use in this function)
raspell.c:434: warning: passing argument 1 of ‘strdup’ makes pointer from integer without a cast
raspell.c:436: warning: format not a string literal and no format arguments
raspell.c:441: warning: assignment makes pointer from integer without a cast
raspell.c: In function ‘aspell_dump_config’:
raspell.c:457: error: ‘AspellSpeller’ undeclared (first use in this function)
raspell.c:457: error: ‘speller’ undeclared (first use in this function)
raspell.c:458: error: ‘AspellConfig’ undeclared (first use in this function)
raspell.c:458: error: ‘config’ undeclared (first use in this function)
raspell.c:459: error: ‘AspellKeyInfoEnumeration’ undeclared (first use in this function)
raspell.c:459: error: ‘key_list’ undeclared (first use in this function)
raspell.c:460: error: nested functions are disabled, use -fnested-functions to re-enable
raspell.c:460: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
raspell.c:460: error: ‘entry’ undeclared (first use in this function)
raspell.c:463: warning: format ‘%s’ expects type ‘char *’, but argument 3 has type ‘int’
raspell.c:463: warning: format ‘%s’ expects type ‘char *’, but argument 3 has type ‘int’
raspell.c: In function ‘aspell_check’:
raspell.c:475: error: ‘AspellSpeller’ undeclared (first use in this function)
raspell.c:475: error: ‘speller’ undeclared (first use in this function)
raspell.c:483: warning: passing argument 2 of ‘rb_raise’ makes pointer from integer without a cast
raspell.c:483: warning: format not a string literal and no format arguments
raspell.c: In function ‘aspell_correct_lines’:
raspell.c:508: error: ‘AspellSpeller’ undeclared (first use in this function)
raspell.c:508: error: ‘speller’ undeclared (first use in this function)
raspell.c:509: error: ‘AspellDocumentChecker’ undeclared (first use in this function)
raspell.c:509: error: ‘checker’ undeclared (first use in this function)
raspell.c:510: error: ‘AspellToken’ undeclared (first use in this function)
raspell.c:510: error: expected ‘;’ before ‘token’
raspell.c:515: warning: implicit conversion shortens 64-bit value into a 32-bit value
raspell.c:531: error: ‘token’ undeclared (first use in this function)
raspell.c:531: warning: left-hand operand of comma expression has no effect
raspell.c:549: warning: implicit conversion shortens 64-bit value into a 32-bit value
raspell.c: In function ‘aspell_store_replacement’:
raspell.c:572: error: ‘AspellSpeller’ undeclared (first use in this function)
raspell.c:572: error: ‘speller’ undeclared (first use in this function)
raspell.c: In function ‘aspell_list_misspelled’:
raspell.c:607: error: ‘AspellSpeller’ undeclared (first use in this function)
raspell.c:607: error: ‘speller’ undeclared (first use in this function)
raspell.c:608: error: ‘AspellDocumentChecker’ undeclared (first use in this function)
raspell.c:608: error: ‘checker’ undeclared (first use in this function)
raspell.c:609: error: ‘AspellToken’ undeclared (first use in this function)
raspell.c:609: error: expected ‘;’ before ‘token’
raspell.c:611: warning: implicit conversion shortens 64-bit value into a 32-bit value
raspell.c:620: error: ‘token’ undeclared (first use in this function)
raspell.c:620: warning: left-hand operand of comma expression has no effect
make: *** [raspell.o] Error 1
pat commented 12 years ago

Josh: probably best to post that to raspell's issues so Evan is aware of it and can help debug.