I am focusing on the Sage 9.8 issue of the missing symbol
__ZN6FFPACK8CharPolyIN6Givaro8Poly1DomINS1_7ModularIddvEENS1_5DenseEEEEERNT_7ElementERKS7_S9_mNS7_8Domain_t11Element_ptrEmRNSC_8RandIterENS_19FFPACK_CHARPOLY_TAGEm
Demangled with c++filt, the missing symbol is:
Givaro::Poly1Dom<Givaro::Modular<double, double, void>,
Givaro::Dense>::Element&
FFPACK::CharPoly<Givaro::Poly1Dom<Givaro::Modular<double, double, void>,
Givaro::Dense> >(Givaro::Poly1Dom<Givaro::Modular<double, double, void>,
Givaro::Dense> const&, Givaro::Poly1Dom<Givaro::Modular<double, double,
void>, Givaro::Dense>::Element&, unsigned long,
Givaro::Poly1Dom<Givaro::Modular<double, double, void>,
Givaro::Dense>::Domain_t::Element_ptr, unsigned long,
Givaro::Poly1Dom<Givaro::Modular<double, double, void>,
Givaro::Dense>::Domain_t::RandIter&, FFPACK::FFPACK_CHARPOLY_TAG, unsigned
long)
I expect this to be in ffpack, so I made sure that ffpack is indeed picked
up from the dedicated conda environment:
lsof -p 70202 | grep -i ffpack
python3.1 70202 matthias txt REG 1,15 1132624 5917685
/Users/matthias/anaconda3/envs/sage98-py311/lib/libffpack.1.dylib
I then looked whether similar symbols are available in ffpack with the
following command:
nm /Users/matthias/anaconda3/envs/sage98-py311/lib/libffpack.1.dylib | grep
__ZN6FFPACK8CharPolyIN6Givaro8Poly1DomINS1_7ModularIddvEENS1_5DenseEEEEERNT_7ElementERKS7_S9_mNS7_8Domain_t11Element_ptrEm
Which gave:
000000000004f17c T
__ZN6FFPACK8CharPolyIN6Givaro8Poly1DomINS1_7ModularIddvEENS1_5DenseEEEEERNT_7ElementERKS7_S9_mNS7_8Domain_t11Element_ptrEmNS_19FFPACK_CHARPOLY_TAGEm
000000000004ec10 T
__ZN6FFPACK8CharPolyIN6Givaro8Poly1DomINS1_7ModularIddvEENS1_5DenseEEEEERNT_7ElementERKS7_S9_mNS7_8Domain_t11Element_ptrEmRNS7_8Domain_t8RandIterENS_19FFPACK_CHARPOLY_TAGEm
which demangled gives:
Givaro::Poly1Dom<Givaro::Modular<double, double, void>,
Givaro::Dense>::Element&
FFPACK::CharPoly<Givaro::Poly1Dom<Givaro::Modular<double, double, void>,
Givaro::Dense> >(Givaro::Poly1Dom<Givaro::Modular<double, double, void>,
Givaro::Dense> const&, Givaro::Poly1Dom<Givaro::Modular<double, double,
void>, Givaro::Dense>::Element&, unsigned long,
Givaro::Poly1Dom<Givaro::Modular<double, double, void>,
Givaro::Dense>::Domain_t::Element_ptr, unsigned long,
FFPACK::FFPACK_CHARPOLY_TAG, unsigned long)
Givaro::Poly1Dom<Givaro::Modular<double, double, void>,
Givaro::Dense>::Element&
FFPACK::CharPoly<Givaro::Poly1Dom<Givaro::Modular<double, double, void>,
Givaro::Dense> >(Givaro::Poly1Dom<Givaro::Modular<double, double, void>,
Givaro::Dense> const&, Givaro::Poly1Dom<Givaro::Modular<double, double,
void>, Givaro::Dense>::Element&, unsigned long,
Givaro::Poly1Dom<Givaro::Modular<double, double, void>,
Givaro::Dense>::Domain_t::Element_ptr, unsigned long,
Givaro::Poly1Dom<Givaro::Modular<double, double, void>,
Givaro::Dense>::Domain_t::RandIter&, FFPACK::FFPACK_CHARPOLY_TAG, unsigned
long)
And then I got confused: the latter demangled method has the same signature
as the missing one.
In other words: from a C++ perspective, the missing method is there, it is
just that the way the name and signature get mangled is different
between linbox_flint_interface.cpython-311-darwin.so and libffpack.1.dylib
So it seems it is an ABI problem where we get two different managled names
for the same function signature.
I am not sure what to make out of this and have only two explanations:
1. It is a bug in the C++ compiler.
2. The two libraries were compiled with different C++ compilers or with
different compiler options.
On Wednesday, May 31, 2023 at 11:01:20 AM UTC-7 Matthias Goerner wrote:
Sorry for the late reply. Here are the details about my conda environment.
I am not exactly sure what other information is useful to debug this. I am
familiar with the linux tools, but am struggling with otool and vmmap to
figure out what is going on here and see whether I am picking up any
library from something that is not in the dedicated conda environment.
On Friday, May 26, 2023 at 8:05:04 AM UTC-7 Matthias Koeppe wrote:
config.log please
On Wednesday, May 24, 2023 at 3:16:25 PM UTC-7 Matthias Goerner wrote:
Hi!
I can't get sage to work when installing it with conda on a new MacBook Pro
with M2 chip and Ventura 13.3.
I tried
conda -n sage create sage=9.X python=3.Y
for (X,Y) = (5,10), (8,10), (8,11).
With Sage 9.5, I get the attached crash report.
With Sage 9.8, I get the following linking error below.
Cheers,
Matthias
(sage-py310) matthias@matthiass-air-2 ~ % sage
┌────────────────────────────────────────────────────────────────────┐
│ SageMath version 9.8, Release Date: 2023-02-11 │
│ Using Python 3.10.11. Type "help()" for help. │
└────────────────────────────────────────────────────────────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Warning: sage.all is not available; this is a limited REPL. ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
sage: import sage.all
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
Cell In[1], line 1
----> 1 import sage.all
File
~/anaconda3/envs/sage-py310/lib/python3.10/site-packages/sage/all.py:168
166 from sage.modules.all import *
167 from sage.monoids.all import *
--> 168 from sage.algebras.all import *
169 from sage.modular.all import *
170 from sage.sat.all import *
File
~/anaconda3/envs/sage-py310/lib/python3.10/site-packages/sage/algebras/all.py:21
5
#*****************************************************************************
6 # Copyright (C) 2005 William Stein [...]
7 #
(...)
17 # http://www.gnu.org/licenses/
18
#*****************************************************************************
19 from sage.misc.lazy_import import lazy_import
---> 21 import sage.algebras.catalog as algebras
23 from .quatalg.all import *
24 from .steenrod.all import *
File
~/anaconda3/envs/sage-py310/lib/python3.10/site-packages/sage/algebras/catalog.py:84
1 r"""
2 Catalog of Algebras
3
(...)
80 <sage.algebras.yokonuma_hecke_algebra.YokonumaHeckeAlgebra>`
81 """
83 from sage.algebras.free_algebra import FreeAlgebra as Free
---> 84 from sage.algebras.quatalg.quaternion_algebra import
QuaternionAlgebra as Quaternion
85 from sage.algebras.steenrod.steenrod_algebra import SteenrodAlgebra
as Steenrod
86 from
sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra import
FiniteDimensionalAlgebra as FiniteDimensional
File
~/anaconda3/envs/sage-py310/lib/python3.10/site-packages/sage/algebras/quatalg/quaternion_algebra.py:68
61 from operator import itemgetter
63 from .quaternion_algebra_element import (
64 QuaternionAlgebraElement_abstract,
65 QuaternionAlgebraElement_generic,
66 QuaternionAlgebraElement_rational_field,
67 QuaternionAlgebraElement_number_field)
---> 68 from . import quaternion_algebra_cython
70 from sage.modular.modsym.p1list import P1List
72 from sage.misc.cachefunc import cached_method
File
~/anaconda3/envs/sage-py310/lib/python3.10/site-packages/sage/algebras/quatalg/quaternion_algebra_cython.pyx:1,
in init sage.algebras.quatalg.quaternion_algebra_cython
(build/cythonized/sage/algebras/quatalg/quaternion_algebra_cython.cpp:6484)()
----> 1 # distutils: language = c++
2 # distutils: libraries = gmp m NTL_LIBRARIES
3 # distutils: extra_compile_args = NTL_CFLAGS
File
~/anaconda3/envs/sage-py310/lib/python3.10/site-packages/sage/matrix/matrix_integer_dense.pyx:1,
in init sage.matrix.matrix_integer_dense
(build/cythonized/sage/matrix/matrix_integer_dense.cpp:59322)()
----> 1 # -*- coding: utf-8 -*-
2 # distutils: extra_compile_args = NTL_CFLAGS M4RI_CFLAGS
3 # distutils: libraries = iml NTL_LIBRARIES gmp m CBLAS_LIBRARIES
ImportError:
dlopen(/Users/matthias/anaconda3/envs/sage-py310/lib/python3.10/site-packages/sage/libs/linbox/
linbox_flint_interface.cpython-310-darwin.so, 0x0002): symbol not found in
flat namespace
'__ZN6FFPACK8CharPolyIN6Givaro8Poly1DomINS1_7ModularIddvEENS1_5DenseEEEEERNT_7ElementERKS7_S9_mNS7_8Domain_t11Element_ptrEmRNSC_8RandIterENS_19FFPACK_CHARPOLY_TAGEm'
--
You received this message because you are subscribed to the Google Groups
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/sage-support/c028a399-8ecc-4370-9130-88b303487e50n%40googlegroups.com.