Re: JCC: no match for ‘operator=’ message when building

2009-11-05 Thread Andrew MacKinlay
Sorry, just realised that I could give some more diagnostic  
information that might be helpful:


The line in question is seemingly from the com.aliasi.util package,  
and is this:


15874 DECLARE_TYPE(Iterators$PrimitiveInt, t_Iterators 
$PrimitiveInt, java::lang::Object, Iterators$PrimitiveInt, t_Iterators 
$PrimitiveInt_init_, PyObject_SelfIter, ((PyObject *(*) 
(java::util::t_Iterator *))  
get_iterator_next 
java::util::t_Iterator,java::lang::t_Integer,java::lang::Integer),  
0, 0, 0);


the full code block is at http://pastebin.ca/1658592 is anyone's  
interested.




On 05/11/2009, at 7:00 PM, Andrew MacKinlay wrote:


Hi,

I'm trying to wrap the LingPipe library (http://alias-i.com/lingpipe/web/download.html 
) using JCC.


I've had a couple of problems - one seems to be fixed by simply  
excluding a class that I don't think I need (I can also post  
separate info about that problem if anyone's interested) but the  
other is trickier.


I'm running OS X 10.5 with macpython 2.5, java 1.6.0_15, and GCC  
4.0.1, although I get a very similar problem on Ubuntu 9.04 64 bit  
with python 2.6 and GCC 4.3.3.


I'm using the following command line (obviously the lingpipe jar is  
in the parent dir):
python -m jcc --jar ../lingpipe-3.8.2.jar  --build --python lingpipe  
--version 3.8.2 --files 4 --exclude com.aliasi.xml.XHtmlWriter


Things go fine apart from a few warnings until it dies with the  
following:


/Library/Python/2.5/site-packages/JCC-2.4-py2.5-macosx-10.5-i386.egg/ 
jcc/sources/functions.h: In function ‘PyObject*  
get_iterator_next(T*) [with T = java::util::t_Iterator, U =  
java::lang::t_Integer, V = java::lang::Integer]’:

build/_lingpipe/__wrap04__.cpp:15874:   instantiated from here
/Library/Python/2.5/site-packages/JCC-2.4-py2.5-macosx-10.5-i386.egg/ 
jcc/sources/functions.h:116: error: no match for ‘operator=’ in  
‘next = java::util::Iterator::next() const()’
build/_lingpipe/java/lang/Integer.h:20: note: candidates are:  
java::lang::Integer java::lang::Integer::operator=(const  
java::lang::Integer)
/Library/Python/2.5/site-packages/JCC-2.4-py2.5-macosx-10.5-i386.egg/ 
jcc/sources/functions.h: In function ‘PyObject*  
get_iterator_next(T*) [with T = java::util::t_Iterator, U =  
java::lang::t_Integer, V = java::lang::Integer]’:

build/_lingpipe/__wrap04__.cpp:15874:   instantiated from here
/Library/Python/2.5/site-packages/JCC-2.4-py2.5-macosx-10.5-i386.egg/ 
jcc/sources/functions.h:116: error: no match for ‘operator=’ in  
‘next = java::util::Iterator::next() const()’
build/_lingpipe/java/lang/Integer.h:20: note: candidates are:  
java::lang::Integer java::lang::Integer::operator=(const  
java::lang::Integer)
lipo: can't open input file: /var/folders/-x/-xosmfE4GNewB80LEz2rG+++ 
+TI/-Tmp-//ccGnGDoB.out (No such file or directory)

error: command 'gcc' failed with exit status 1

I can build PyLucene fine on both test systems.

Does anyone have any idea what's going on here?

Thanks,
Andy






Re: JCC: no match for ‘operator=’ message when building

2009-11-05 Thread Andi Vajda


On Nov 5, 2009, at 11:00, Andrew MacKinlay admac...@gmail.com wrote:


Hi,

I'm trying to wrap the LingPipe library (http://alias-i.com/lingpipe/web/download.html 
) using JCC.


I've had a couple of problems - one seems to be fixed by simply  
excluding a class that I don't think I need (I can also post  
separate info about that problem if anyone's interested) but the  
other is trickier.


I'm running OS X 10.5 with macpython 2.5, java 1.6.0_15, and GCC  
4.0.1, although I get a very similar problem on Ubuntu 9.04 64 bit  
with python 2.6 and GCC 4.3.3.


I'm using the following command line (obviously the lingpipe jar is  
in the parent dir):
python -m jcc --jar ../lingpipe-3.8.2.jar  --build --python lingpipe  
--version 3.8.2 --files 4 --exclude com.aliasi.xml.XHtmlWriter


Things go fine apart from a few warnings until it dies with the  
following:


/Library/Python/2.5/site-packages/JCC-2.4-py2.5-macosx-10.5-i386.egg/ 
jcc/sources/functions.h: In function ‘PyObject* get_iterator_next(T* 
) [with T = java::util::t_Iterator, U = java::lang::t_Integer, V = j 
ava::lang::Integer]’:

build/_lingpipe/__wrap04__.cpp:15874:   instantiated from here
/Library/Python/2.5/site-packages/JCC-2.4-py2.5-macosx-10.5-i386.egg/ 
jcc/sources/functions.h:116: error: no match for ‘operator=’ in  
‘next = java::util::Iterator::next() const()’
build/_lingpipe/java/lang/Integer.h:20: note: candidates are:  
java::lang::Integer java::lang::Integer::operator=(const  
java::lang::Integer)
/Library/Python/2.5/site-packages/JCC-2.4-py2.5-macosx-10.5-i386.egg/ 
jcc/sources/functions.h: In function ‘PyObject* get_iterator_next(T* 
) [with T = java::util::t_Iterator, U = java::lang::t_Integer, V = j 
ava::lang::Integer]’:

build/_lingpipe/__wrap04__.cpp:15874:   instantiated from here
/Library/Python/2.5/site-packages/JCC-2.4-py2.5-macosx-10.5-i386.egg/ 
jcc/sources/functions.h:116: error: no match for ‘operator=’ in  
‘next = java::util::Iterator::next() const()’
build/_lingpipe/java/lang/Integer.h:20: note: candidates are:  
java::lang::Integer java::lang::Integer::operator=(const  
java::lang::Integer)
lipo: can't open input file: /var/folders/-x/-xosmfE4GNewB80LEz2rG+++ 
+TI/-Tmp-//ccGnGDoB.out (No such file or directory)

error: command 'gcc' failed with exit status 1

I can build PyLucene fine on both test systems.

Does anyone have any idea what's going on here?


Someone reported a similar error recently with the same  
get_iterator_next template. I wasn't able to reproduce it, though.


Maybe a way to sidestep the problem -or to get a better clue as to  
what the bug is - would be to try to use JCC from svn trunk. This  
template has changed there.


Another thing to try could be to increase the number of files to  
generate thus generating smaller ones and then maybe avoiding some  
compiler limit that may be triggering this.


Of course, there is also the possibility of a JCC bug that, for  
example, could be leaving out a required header file. The way to test  
for this condition is to generate one .cpp file per class via the -- 
files separate option and watch for errors. Come to think of it, this  
is what I would try first.


Andi..



Thanks,
Andy