![]() |
Blitz Support : |
From: Brett Viren (bv_at_[hidden])
Date: 2003-07-17 14:36:21
Hello,
I am attempting to port some code from GCC 2.95 and an older version
of blitz++ to any recent version of blitz++ that will work with GCC
3.3.1. The platform is Debian GNU/Linux on x86. Is there any known
such version of blitz++?
I tried both the v0.6 as packaged by Debian, and the upstream sources
from oonumerics.org and found that in both use of sum() for
contraction fails to compile.
I reported this problem in these two locations:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=200505
http://www.oonumerics.org/MailArchives/blitz-dev/msg00529.php
The Debian bug report has many of the technical details. I received
no replies from either.
More recently, I tried blitz++ from today's CVS and find that while I
can manage to compile the static library with many remaining warnings
by following this message:
http://www.oonumerics.org/MailArchives/blitz-support/msg00770.php
it then fails to compile the testsuite as well as this trivial
program:
typedef blitz::Array<std::complex<double>,2> ComplexMatrix;
ComplexMatrix a, b(3,3);
a = b;
Please see below for the compiler output of the two.
Any help would be appreciated.
-Brett.
--------------------------------------------------
make check-testsuite
bviren_at_minos:blitz> make check-testsuite
make[1]: Entering directory `/home/bviren/work/elbo/libnuosc++/blitz/blitz/compiler'
make[1]: Nothing to be done for `check-compiler'.
make[1]: Leaving directory `/home/bviren/work/elbo/libnuosc++/blitz/blitz/compiler'
make[1]: Entering directory `/home/bviren/work/elbo/libnuosc++/blitz/blitz/lib'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/bviren/work/elbo/libnuosc++/blitz/blitz/lib'
make[1]: Entering directory `/home/bviren/work/elbo/libnuosc++/blitz/blitz/testsuite'
source='Adnene-Ben-Abdallah-1.cpp' object='Adnene-Ben-Abdallah-1.o' libtool=no \
depfile='.deps/Adnene-Ben-Abdallah-1.Po' tmpdepfile='.deps/Adnene-Ben-Abdallah-1.TPo' \
depmode=gcc3 /bin/sh ../depcomp \
g++ -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"Blitz++\" -DVERSION=\"0.6\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DHAVE_LIBM=1 -I. -I. -I.. -I.. -g -DBZ_DEBUG -c -o Adnene-Ben-Abdallah-1.o `test -f 'Adnene-Ben-Abdallah-1.cpp' || echo './'`Adnene-Ben-Abdallah-1.cpp
../blitz/array/expr.h: In constructor `
blitz::_bz_ArrayExpr<P_expr>::_bz_ArrayExpr(const T&) [with T =
blitz::ETBase<blitz::_bz_ArrayExpr<blitz::_bz_ArrayExprConstant<double> > >,
P_expr = blitz::_bz_ArrayExprConstant<double>]':
../blitz/array/ops.cc:54: instantiated from `blitz::Array<T, N>& blitz::Array<T, N>::operator=(const blitz::ETBase<T_expr>&) [with T_expr = blitz::_bz_ArrayExpr<blitz::_bz_ArrayExprConstant<double> >, P_numtype = double, int N_rank = 1]'
../blitz/array/ops.cc:44: instantiated from `blitz::Array<T, N>& blitz::Array<T, N>::initialize(P_numtype) [with P_numtype = double, int N_rank = 1]'
../blitz/listinit.h:83: instantiated from `blitz::ListInitializationSwitch<T_array, T_iterator>::~ListInitializationSwitch() [with T_array = blitz::Array<double, 1>, T_iterator = double*]'
../blitz/array-impl.h:2223: instantiated from `blitz::ListInitializationSwitch<blitz::Array<T, N>, P_numtype*> blitz::Array<T, N>::operator=(P_numtype) [with P_numtype = double, int N_rank = 1]'
Adnene-Ben-Abdallah-1.cpp:9: instantiated from here
../blitz/array/expr.h:115: error: no matching function for call to `
blitz::_bz_ArrayExprConstant<double>::_bz_ArrayExprConstant(const
blitz::ETBase<blitz::_bz_ArrayExpr<blitz::_bz_ArrayExprConstant<double> > >&
)'
../blitz/array/expr.h:709: error: candidates are:
blitz::_bz_ArrayExprConstant<P_numtype>::_bz_ArrayExprConstant() [with
P_numtype = double]
../blitz/array/expr.h:628: error:
blitz::_bz_ArrayExprConstant<P_numtype>::_bz_ArrayExprConstant(P_numtype)
[with P_numtype = double]
../blitz/array/expr.h:624: error:
blitz::_bz_ArrayExprConstant<P_numtype>::_bz_ArrayExprConstant(const
blitz::_bz_ArrayExprConstant<P_numtype>&) [with P_numtype = double]
make[1]: *** [Adnene-Ben-Abdallah-1.o] Error 1
make[1]: Leaving directory `/home/bviren/work/elbo/libnuosc++/blitz/blitz/testsuite'
make: *** [check-testsuite] Error 1
--------------------------------------------------
Furthermore, this trivial program fails to compile:
--------------------------------------------------
bviren_at_minos:blitz> cat mcopy.cc
#include <blitz/array.h>
int main (int argc, char *argv[])
{
typedef blitz::Array<std::complex<double>,2> ComplexMatrix;
ComplexMatrix a, b(3,3);
a = b;
return 0;
} // end of main()
bviren_at_minos:blitz> g++ -Wall -o mcopy mcopy.cc -I. -Llib -lblitz
blitz/array/expr.h: In constructor `
blitz::_bz_ArrayExpr<P_expr>::_bz_ArrayExpr(const T&) [with T =
blitz::ETBase<blitz::_bz_ArrayExpr<blitz::FastArrayIterator<std::complex<double>,
2> > >, P_expr = blitz::FastArrayIterator<std::complex<double>, 2>]':
blitz/array/ops.cc:54: instantiated from `blitz::Array<T, N>& blitz::Array<T, N>::operator=(const blitz::ETBase<T_expr>&) [with T_expr = blitz::_bz_ArrayExpr<blitz::FastArrayIterator<std::complex<double>, 2> >, P_numtype = std::complex<double>, int N_rank = 2]'
blitz/array/ops.cc:63: instantiated from `blitz::Array<T, N>& blitz::Array<T, N>::operator=(const blitz::Array<T, N>&) [with P_numtype = std::complex<double>, int N_rank = 2]'
mcopy.cc:6: instantiated from here
blitz/array/expr.h:115: error: no matching function for call to `
blitz::FastArrayIterator<std::complex<double>, 2>::FastArrayIterator(const
blitz::ETBase<blitz::_bz_ArrayExpr<blitz::FastArrayIterator<std::complex<double>,
2> > >&)'
blitz/array/fastiter.h:65: error: candidates are:
blitz::FastArrayIterator<T_numtype, N_rank>::FastArrayIterator(const
blitz::Array<P_numtype, N_rank>&) [with P_numtype = std::complex<double>,
int N_rank = 2]
blitz/array/fastiter.h:53: error:
blitz::FastArrayIterator<T_numtype, N_rank>::FastArrayIterator(const
blitz::FastArrayIterator<T_numtype, N_rank>&) [with P_numtype =
std::complex<double>, int N_rank = 2]
bviren_at_minos:blitz> g++ -v
Reading specs from /usr/lib/gcc-lib/i386-linux/3.3.1/specs
Configured with: ../src/configure -v --enable-languages=c,c++,java,f77,pascal,objc,ada,treelang --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-gxx-include-dir=/usr/include/c++/3.3 --enable-shared --with-system-zlib --enable-nls --without-included-gettext --enable-__cxa_atexit --enable-clocale=gnu --enable-debug --enable-java-gc=boehm --enable-java-awt=xlib --enable-objc-gc i386-linux
Thread model: posix
gcc version 3.3.1 20030626 (Debian prerelease)
bviren_at_minos:blitz>
------------------------------------