I understand: I start a new compilation with "make giac && make". It starts with readline and does pari now very early.
Tobias Weiss schrieb am Samstag, 28. November 2020 um 20:31:13 UTC+1: > In what directory I should do "make giac && make" ? > > Tobias Weiss schrieb am Samstag, 28. November 2020 um 20:29:11 UTC+1: > >> Here the top-level config.log. Giac was compiled without problems bevor >> sagelib. I give you the install logs of both. Installing the static-devel >> of glibc didn't help. >> >> Matthias Koeppe schrieb am Samstag, 28. November 2020 um 19:47:27 UTC+1: >> >>> The actual error is likely further up. This problem could just be the >>> missing dependency of sagelib on giac, already fixed in >>> https://trac.sagemath.org/ticket/30858 >>> Try compiling the latest development version, >>> or do "make giac && make" to work around the problem >>> >>> On Saturday, November 28, 2020 at 9:32:26 AM UTC-8 [email protected] >>> wrote: >>> >>>> Because the last g++ command is something with stl vector: Do I need >>>> the glibc-static-devel? I only have glibc-devel installed. >>>> >>>> Tobias >>>> >>>> >>>> Tobias Weiss schrieb am Samstag, 28. November 2020 um 16:25:24 UTC+1: >>>> >>>>> Hello Everybody, >>>>> >>>>> now the second post to the problem. I try to make sage 9.2 on Opensuse >>>>> Tumbleweed. The compilation stopped with last step of sagelib. If I don't >>>>> take system packages, the error don't occurs. >>>>> (see thread https://groups.google.com/g/sage-support/c/AJRosgRDrsE) >>>>> >>>>> Pari was take from tarball this times. The output of make ends with: >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> *[sagelib-9.2] [296/297] creating >>>>> build/temp.linux-x86_64-3.8/build/cythonized/sage/tests [sagelib-9.2] gcc >>>>> -Wno-unused-result -Wsign-compare -DNDEBUG -O2 -Wall -D_FORTIFY_SOURCE=2 >>>>> -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables >>>>> -fstack-clash-protection -Werror=return-type -g -DOPENSSL_LOAD_CONF >>>>> -fwrapv >>>>> -fno-semantic-interposition -O2 -Wall -D_FORTIFY_SOURCE=2 >>>>> -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables >>>>> -fstack-clash-protection -Werror=return-type -g -O2 -Wall >>>>> -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables >>>>> -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type >>>>> -g -fPIC -I/home/tobias/bin/sage-9.2/build/pkgs/sagelib/src >>>>> -I/home/tobias/bin/sage-9.2/build/pkgs/sagelib/src/sage/ext >>>>> -I/usr/include/python3.8 >>>>> -I/home/tobias/bin/sage-9.2/local/lib64/python3.8/site-packages/numpy/core/include >>>>> >>>>> -Ibuild/cythonized -I/home/tobias/bin/sage-9.2/local/include >>>>> -I/usr/include/python3.8 -c build/cythonized/sage/tests/cython.c -o >>>>> build/temp.linux-x86_64-3.8/build/cythonized/sage/tests/cython.o >>>>> -fno-strict-aliasing -DCYTHON_CLINE_IN_TRACEBACK=1 -std=c99 [sagelib-9.2] >>>>> gcc -pthread -shared -Wl,-rpath-link,/home/tobias/bin/sage-9.2/local/lib >>>>> -L/home/tobias/bin/sage-9.2/local/lib >>>>> -Wl,-rpath,/home/tobias/bin/sage-9.2/local/lib >>>>> build/temp.linux-x86_64-3.8/build/cythonized/sage/tests/cython.o >>>>> -L/usr/lib64 -o >>>>> build/lib.linux-x86_64-3.8/sage/tests/cython.cpython-38-x86_64-linux-gnu.so >>>>> >>>>> <http://cython.cpython-38-x86_64-linux-gnu.so> [sagelib-9.2] [297/297] >>>>> gcc >>>>> -Wno-unused-result -Wsign-compare -DNDEBUG -O2 -Wall -D_FORTIFY_SOURCE=2 >>>>> -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables >>>>> -fstack-clash-protection -Werror=return-type -g -DOPENSSL_LOAD_CONF >>>>> -fwrapv >>>>> -fno-semantic-interposition -O2 -Wall -D_FORTIFY_SOURCE=2 >>>>> -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables >>>>> -fstack-clash-protection -Werror=return-type -g -O2 -Wall >>>>> -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables >>>>> -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type >>>>> -g -fPIC >>>>> -I/home/tobias/bin/sage-9.2/local/lib64/python3.8/site-packages/cysignals >>>>> -I./sage/cpython -Isage/cpython >>>>> -I/home/tobias/bin/sage-9.2/build/pkgs/sagelib/src >>>>> -I/home/tobias/bin/sage-9.2/build/pkgs/sagelib/src/sage/ext >>>>> -I/usr/include/python3.8 >>>>> -I/home/tobias/bin/sage-9.2/local/lib64/python3.8/site-packages/numpy/core/include >>>>> >>>>> -Ibuild/cythonized -I/home/tobias/bin/sage-9.2/local/include >>>>> -I/usr/include/python3.8 -c build/cythonized/sage/tests/stl_vector.cpp -o >>>>> build/temp.linux-x86_64-3.8/build/cythonized/sage/tests/stl_vector.o >>>>> -fno-strict-aliasing -DCYTHON_CLINE_IN_TRACEBACK=1 -std=c++11 >>>>> [sagelib-9.2] >>>>> build/cythonized/sage/tests/stl_vector.cpp: In function ‘PyObject* >>>>> __pyx_pf_4sage_5tests_10stl_vector_14stl_int_vector_4__getitem__(__pyx_obj_4sage_5tests_10stl_vector_stl_int_vector*, >>>>> >>>>> int)’: [sagelib-9.2] build/cythonized/sage/tests/stl_vector.cpp:2940:30: >>>>> warning: comparison of integer expressions of different signedness: ‘int’ >>>>> and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} >>>>> [-Wsign-compare] [sagelib-9.2] 2940 | __pyx_t_1 = (__pyx_v_i < >>>>> __pyx_v_self->data->size()); [sagelib-9.2] | >>>>> ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ [sagelib-9.2] >>>>> build/cythonized/sage/tests/stl_vector.cpp: At global scope: >>>>> [sagelib-9.2] >>>>> build/cythonized/sage/tests/stl_vector.cpp:5744:18: warning: ‘PyObject* >>>>> __pyx_pw_4sage_7cpython_6string_3str_to_bytes(PyObject*, PyObject*, >>>>> PyObject*)’ defined but not used [-Wunused-function] [sagelib-9.2] 5744 >>>>> | >>>>> static PyObject *__pyx_pw_4sage_7cpython_6string_3str_to_bytes(PyObject >>>>> *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { [sagelib-9.2] >>>>> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >>>>> [sagelib-9.2] build/cythonized/sage/tests/stl_vector.cpp:5743:13: >>>>> warning: >>>>> ‘__pyx_doc_4sage_7cpython_6string_2str_to_bytes’ defined but not used >>>>> [-Wunused-variable] [sagelib-9.2] 5743 | static char >>>>> __pyx_doc_4sage_7cpython_6string_2str_to_bytes[] = "str_to_bytes(s, >>>>> encoding=None, errors=None) -> bytes\nFile: sage/cpython/string.pxd >>>>> (starting at line 55)\n\n Convert ``str`` or ``unicode`` to >>>>> ``bytes``.\n\n It encodes the given ``str`` to a Python 3 ``bytes``\n >>>>> using the specified encoding. It is a no-op on ``bytes`` input.\n\n >>>>> EXAMPLES::\n\n sage: from sage.cpython.string import >>>>> str_to_bytes\n sage: bs = [str_to_bytes(u'\317\200')]\n >>>>> sage: >>>>> all(b == b'\\xcf\\x80' for b in bs)\n True\n sage: >>>>> str_to_bytes([])\n Traceback (most recent call last):\n >>>>> ...\n >>>>> TypeError: expected str... list found\n "; [sagelib-9.2] >>>>> | >>>>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [sagelib-9.2] >>>>> build/cythonized/sage/tests/stl_vector.cpp:5539:18: warning: ‘PyObject* >>>>> __pyx_pw_4sage_7cpython_6string_1bytes_to_str(PyObject*, PyObject*, >>>>> PyObject*)’ defined but not used [-Wunused-function] [sagelib-9.2] 5539 >>>>> | >>>>> static PyObject *__pyx_pw_4sage_7cpython_6string_1bytes_to_str(PyObject >>>>> *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { [sagelib-9.2] >>>>> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >>>>> [sagelib-9.2] build/cythonized/sage/tests/stl_vector.cpp:5538:13: >>>>> warning: >>>>> ‘__pyx_doc_4sage_7cpython_6string_bytes_to_str’ defined but not used >>>>> [-Wunused-variable] [sagelib-9.2] 5538 | static char >>>>> __pyx_doc_4sage_7cpython_6string_bytes_to_str[] = "bytes_to_str(b, >>>>> encoding=None, errors=None) -> str\nFile: sage/cpython/string.pxd >>>>> (starting >>>>> at line 29)\n\n Convert ``bytes`` to ``str``.\n\n This decodes the >>>>> given ``bytes`` to a Python 3 unicode ``str`` using\n the specified >>>>> encoding. It is a no-op on ``str`` input.\n\n EXAMPLES::\n\n >>>>> sage: from sage.cpython.string import bytes_to_str\n sage: >>>>> s >>>>> = bytes_to_str(b'\\xcf\\x80')\n sage: s == u'\317\200'\n >>>>> True\n sage: bytes_to_str([])\n Traceback (most >>>>> recent >>>>> call last):\n ...\n TypeError: expected bytes, list found\n >>>>> "; [sagelib-9.2] | >>>>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [sagelib-9.2] >>>>> build/cythonized/sage/tests/stl_vector.cpp:5259:18: warning: ‘PyObject* >>>>> __pyx_pw_4sage_9structure_7richcmp_9revop(PyObject*, PyObject*)’ defined >>>>> but not used [-Wunused-function] [sagelib-9.2] 5259 | static PyObject >>>>> *__pyx_pw_4sage_9structure_7richcmp_9revop(PyObject *__pyx_self, PyObject >>>>> *__pyx_arg_op) { [sagelib-9.2] | >>>>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [sagelib-9.2] >>>>> build/cythonized/sage/tests/stl_vector.cpp:5258:13: warning: >>>>> ‘__pyx_doc_4sage_9structure_7richcmp_8revop’ defined but not used >>>>> [-Wunused-variable] [sagelib-9.2] 5258 | static char >>>>> __pyx_doc_4sage_9structure_7richcmp_8revop[] = "revop(int op) -> >>>>> int\nFile: >>>>> sage/structure/richcmp.pxd (starting at line 199)\n\n Return the >>>>> reverse >>>>> operation of ``op``.\n\n For example, <= becomes >=, etc.\n\n >>>>> EXAMPLES::\n\n sage: from sage.structure.richcmp import revop\n >>>>> sage: [revop(i) for i in range(6)]\n [4, 5, 2, 3, 0, 1]\n >>>>> "; [sagelib-9.2] | >>>>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [sagelib-9.2] >>>>> build/cythonized/sage/tests/stl_vector.cpp:5132:18: warning: ‘PyObject* >>>>> __pyx_pw_4sage_9structure_7richcmp_7rich_to_bool_sgn(PyObject*, >>>>> PyObject*, >>>>> PyObject*)’ defined but not used [-Wunused-function] [sagelib-9.2] 5132 >>>>> | >>>>> static PyObject >>>>> *__pyx_pw_4sage_9structure_7richcmp_7rich_to_bool_sgn(PyObject >>>>> *__pyx_self, >>>>> PyObject *__pyx_args, PyObject *__pyx_kwds) { [sagelib-9.2] | >>>>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >>>>> [sagelib-9.2] build/cythonized/sage/tests/stl_vector.cpp:5131:13: >>>>> warning: >>>>> ‘__pyx_doc_4sage_9structure_7richcmp_6rich_to_bool_sgn’ defined but not >>>>> used [-Wunused-variable] [sagelib-9.2] 5131 | static char >>>>> __pyx_doc_4sage_9structure_7richcmp_6rich_to_bool_sgn[] = >>>>> "rich_to_bool_sgn(int op, Py_ssize_t c) -> bool\nFile: >>>>> sage/structure/richcmp.pxd (starting at line 187)\n\n Same as >>>>> ``rich_to_bool``, but allow any `c < 0` and `c > 0`\n instead of only >>>>> `-1` and `1`.\n\n .. NOTE::\n\n This is in particular needed >>>>> for >>>>> ``mpz_cmp()``.\n "; [sagelib-9.2] | >>>>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >>>>> [sagelib-9.2] build/cythonized/sage/tests/stl_vector.cpp:5003:18: >>>>> warning: >>>>> ‘PyObject* __pyx_pw_4sage_9structure_7richcmp_5rich_to_bool(PyObject*, >>>>> PyObject*, PyObject*)’ defined but not used [-Wunused-function] >>>>> [sagelib-9.2] 5003 | static PyObject >>>>> *__pyx_pw_4sage_9structure_7richcmp_5rich_to_bool(PyObject *__pyx_self, >>>>> PyObject *__pyx_args, PyObject *__pyx_kwds) { [sagelib-9.2] | >>>>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >>>>> [sagelib-9.2] build/cythonized/sage/tests/stl_vector.cpp:5002:13: >>>>> warning: >>>>> ‘__pyx_doc_4sage_9structure_7richcmp_4rich_to_bool’ defined but not used >>>>> [-Wunused-variable] [sagelib-9.2] 5002 | static char >>>>> __pyx_doc_4sage_9structure_7richcmp_4rich_to_bool[] = "rich_to_bool(int >>>>> op, >>>>> int c) -> bool\nFile: sage/structure/richcmp.pxd (starting at line >>>>> 120)\n\n >>>>> Return the corresponding ``True`` or ``False`` value for a rich\n >>>>> comparison, given the result of an old-style comparison.\n\n >>>>> INPUT:\n\n - ``op`` -- a rich comparison operation (e.g. >>>>> ``Py_EQ``)\n\n - ``c`` -- the result of an old-style comparison: -1, 0 >>>>> or 1.\n\n OUTPUT: 1 or 0 (corresponding to ``True`` and ``False``)\n\n >>>>> .. SEEALSO::\n\n :func:`rich_to_bool_sgn` if ``c`` could be >>>>> outside the\n [-1, 0, 1] range.\n\n EXAMPLES::\n\n sage: >>>>> from sage.structure.richcmp import (rich_to_bool,\n ....: >>>>> op_EQ, >>>>> op_NE, op_LT, op_LE, op_GT, op_GE)\n sage: for op in (op_LT, >>>>> op_LE, >>>>> op_EQ, op_NE, op_GT, op_GE):\n ....: for c in (-1,0,1):\n >>>>> ....: print(rich_to_bool(op, c))\n True False False\n >>>>> True True False\n False True False\n True False >>>>> True\n >>>>> False False True\n False True True\n\n Indirect tests >>>>> using integers::\n\n sage: 0 < 5, 5 < 5, 5 < -8\n (True, >>>>> False, False)\n sage: 0 <= 5, 5 <= 5, 5 <= -8\n (True, >>>>> True, >>>>> False)\n sage: 0 >= 5, 5 >= 5, 5 >= -8\n (False, True, >>>>> True)\n sage: 0 > 5, 5 > 5, 5 > -8\n (False, False, True)\n >>>>> sage: 0 == 5, 5 == 5, 5 == -8\n (False, True, False)\n >>>>> sage: 0 != 5, 5 != 5, 5 != -8\n (True, False, True)\n "; >>>>> [sagelib-9.2] | >>>>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >>>>> [sagelib-9.2] >>>>> build/cythonized/sage/tests/stl_vector.cpp:4813:18: warning: ‘PyObject* >>>>> __pyx_pw_4sage_9structure_7richcmp_3richcmp_not_equal(PyObject*, >>>>> PyObject*, >>>>> PyObject*)’ defined but not used [-Wunused-function] [sagelib-9.2] 4813 >>>>> | >>>>> static PyObject >>>>> *__pyx_pw_4sage_9structure_7richcmp_3richcmp_not_equal(PyObject >>>>> *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { [sagelib-9.2] >>>>> | >>>>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >>>>> [sagelib-9.2] build/cythonized/sage/tests/stl_vector.cpp:4812:13: >>>>> warning: >>>>> ‘__pyx_doc_4sage_9structure_7richcmp_2richcmp_not_equal’ defined but not >>>>> used [-Wunused-variable] [sagelib-9.2] 4812 | static char >>>>> __pyx_doc_4sage_9structure_7richcmp_2richcmp_not_equal[] = >>>>> "richcmp_not_equal(x, y, int op)\nFile: sage/structure/richcmp.pxd >>>>> (starting at line 56)\n\n Like ``richcmp(x, y, op)`` but assuming that >>>>> `x` is not equal to `y`.\n\n INPUT:\n\n - ``op`` -- a rich >>>>> comparison >>>>> operation (e.g. ``Py_EQ``)\n\n OUTPUT:\n\n If ``op`` is not >>>>> ``op_EQ`` >>>>> or ``op_NE``, the result of\n ``richcmp(x, y, op)``. If ``op`` is >>>>> ``op_EQ``, return\n ``False``. If ``op`` is ``op_NE``, return >>>>> ``True``.\n\n This is useful to compare lazily two objects A and B >>>>> according to 2\n (or more) different parameters, say width and height >>>>> for example.\n One could use::\n\n return richcmp((A.width(), >>>>> A.height()), (B.width(), B.height()), op)\n\n but this will compute >>>>> both >>>>> width and height in all cases, even if\n A.width() and B.width() are >>>>> enough to decide the comparison.\n\n Instead one can do::\n\n >>>>> wA >>>>> = A.width()\n wB = B.width()\n if wA != wB:\n >>>>> return richcmp_not_equal(wA, wB, op)\n return >>>>> richcmp(A.height(), B.height(), op)\n\n The difference with >>>>> ``richcmp`` >>>>> is that ``richcmp_not_equal``\n assumes that its arguments are not >>>>> equal, which is excluding the case\n where the comparison cannot be >>>>> decided so far, without\n knowing the rest of the parameters.\n\n >>>>> EXAMPLES::\n\n sage: from sage.structure.richcmp import >>>>> (richcmp_not_equal,\n ....: op_EQ, op_NE, op_LT, op_LE, op_GT, >>>>> op_GE)\n sage: for op in (op_LT, op_LE, op_EQ, op_NE, op_GT, >>>>> op_GE):\n ....: print(richcmp_not_equal(3, 4, op))\n >>>>> True\n True\n False\n True\n False\n >>>>> False\n sage: for op in (op_LT, op_LE, op_EQ, op_NE, op_GT, >>>>> op_GE):\n ....: print(richcmp_not_equal(5, 4, op))\n >>>>> False\n False\n False\n True\n True\n >>>>> True\n "; [sagelib-9.2] | >>>>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >>>>> [sagelib-9.2] build/cythonized/sage/tests/stl_vector.cpp:4597:18: >>>>> warning: >>>>> ‘PyObject* __pyx_pw_4sage_9structure_7richcmp_1richcmp(PyObject*, >>>>> PyObject*, PyObject*)’ defined but not used [-Wunused-function] >>>>> [sagelib-9.2] 4597 | static PyObject >>>>> *__pyx_pw_4sage_9structure_7richcmp_1richcmp(PyObject *__pyx_self, >>>>> PyObject >>>>> *__pyx_args, PyObject *__pyx_kwds) { [sagelib-9.2] | >>>>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >>>>> [sagelib-9.2] >>>>> build/cythonized/sage/tests/stl_vector.cpp:4596:13: warning: >>>>> ‘__pyx_doc_4sage_9structure_7richcmp_richcmp’ defined but not used >>>>> [-Wunused-variable] [sagelib-9.2] 4596 | static char >>>>> __pyx_doc_4sage_9structure_7richcmp_richcmp[] = "richcmp(x, y, int >>>>> op)\nFile: sage/structure/richcmp.pxd (starting at line 6)\n\n Return >>>>> the result of the rich comparison of ``x`` and ``y`` with\n operator >>>>> ``op``.\n\n INPUT:\n\n - ``x``, ``y`` -- arbitrary Python >>>>> objects\n\n >>>>> - ``op`` -- comparison operator (one of ``op_LT`, ``op_LE``,\n >>>>> ``op_EQ``, ``op_NE``, ``op_GT``, ``op_GE``).\n\n EXAMPLES::\n\n >>>>> sage: from sage.structure.richcmp import *\n sage: >>>>> richcmp(3, >>>>> 4, op_LT)\n True\n sage: richcmp(x, x^2, op_EQ)\n x >>>>> == >>>>> x^2\n\n The two examples above are completely equivalent to ``3 < >>>>> 4``\n >>>>> and ``x == x^2``. For this reason, it only makes sense in practice\n >>>>> to call ``richcmp`` with a non-constant value for ``op``.\n\n We >>>>> can >>>>> write a custom ``Element`` class which shows a more\n realistic >>>>> example >>>>> of how to use this::\n\n sage: from sage.structure.element import >>>>> Element\n sage: class MyElement(Element):\n ....: def >>>>> __init__(self, parent, value):\n ....: >>>>> Element.__init__(self, parent)\n ....: self.v = >>>>> value\n ....: def _richcmp_(self, other, op):\n ....: >>>>> return richcmp(self.v, other.v, op)\n sage: P = Parent()\n >>>>> sage: x = MyElement(P, 3)\n sage: y = MyElement(P, 3)\n >>>>> sage: x < y\n False\n sage: x == y\n True\n >>>>> sage: x > y\n False\n "; [sagelib-9.2] | >>>>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [sagelib-9.2] >>>>> build/cythonized/sage/tests/stl_vector.cpp:4383:18: warning: ‘PyObject* >>>>> __pyx_pw_4sage_9structure_7element_3have_same_parent(PyObject*, >>>>> PyObject*, >>>>> PyObject*)’ defined but not used [-Wunused-function] [sagelib-9.2] 4383 >>>>> | >>>>> static PyObject >>>>> *__pyx_pw_4sage_9structure_7element_3have_same_parent(PyObject >>>>> *__pyx_self, >>>>> PyObject *__pyx_args, PyObject *__pyx_kwds) { [sagelib-9.2] | >>>>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >>>>> [sagelib-9.2] build/cythonized/sage/tests/stl_vector.cpp:4382:13: >>>>> warning: >>>>> ‘__pyx_doc_4sage_9structure_7element_2have_same_parent’ defined but not >>>>> used [-Wunused-variable] [sagelib-9.2] 4382 | static char >>>>> __pyx_doc_4sage_9structure_7element_2have_same_parent[] = >>>>> "have_same_parent(left, right) -> bool\nFile: sage/structure/element.pxd >>>>> (starting at line 111)\n\n Return ``True`` if and only if ``left`` and >>>>> ``right`` have the\n same parent.\n\n .. WARNING::\n\n This >>>>> function assumes that at least one of the arguments is a\n Sage >>>>> :class:`Element`. When in doubt, use the slower\n ``parent(left) >>>>> is >>>>> parent(right)`` instead.\n\n EXAMPLES::\n\n sage: from >>>>> sage.structure.element import have_same_parent\n sage: >>>>> have_same_parent(1, 3)\n True\n sage: have_same_parent(1, >>>>> 1/2)\n False\n sage: have_same_parent(gap(1), gap(1/2))\n >>>>> True\n\n These have different types but the same parent::\n\n >>>>> sage: a = RLF(2)\n sage: b = exp(a)\n sage: >>>>> type(a)\n >>>>> <... 'sage.rings.real_lazy.LazyWrapper'>\n sage: type(b)\n >>>>> <... 'sage.rings.real_lazy.LazyNamedUnop'>\n sage: >>>>> have_same_parent(a, b)\n True\n "; [sagelib-9.2] | >>>>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >>>>> [sagelib-9.2] build/cythonized/sage/tests/stl_vector.cpp:4038:18: >>>>> warning: >>>>> ‘PyObject* __pyx_pw_4sage_9structure_7element_1parent(PyObject*, >>>>> PyObject*)’ defined but not used [-Wunused-function] [sagelib-9.2] 4038 >>>>> | >>>>> static PyObject *__pyx_pw_4sage_9structure_7element_1parent(PyObject >>>>> *__pyx_self, PyObject *__pyx_v_x) { [sagelib-9.2] | >>>>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [sagelib-9.2] >>>>> build/cythonized/sage/tests/stl_vector.cpp:4037:13: warning: >>>>> ‘__pyx_doc_4sage_9structure_7element_parent’ defined but not used >>>>> [-Wunused-variable] [sagelib-9.2] 4037 | static char >>>>> __pyx_doc_4sage_9structure_7element_parent[] = "parent(x)\nFile: >>>>> sage/structure/element.pxd (starting at line 6)\n\n Return the parent >>>>> of >>>>> the element ``x``.\n\n Usually, this means the mathematical object of >>>>> which ``x`` is an\n element.\n\n INPUT:\n\n - ``x`` -- an >>>>> element\n\n OUTPUT:\n\n - If ``x`` is a Sage :class:`Element`, >>>>> return >>>>> ``x.parent()``.\n\n - Otherwise, return ``type(x)``.\n\n .. >>>>> SEEALSO::\n\n `Parents, Conversion and Coercion >>>>> <http://doc.sagemath.org/html/en/tutorial/tour_coercion.html >>>>> <http://doc.sagemath.org/html/en/tutorial/tour_coercion.html>>`_\n >>>>> Section in the Sage Tutorial\n\n EXAMPLES::\n\n sage: a >>>>> = >>>>> 42\n sage: parent(a)\n Integer Ring\n sage: b = >>>>> 42/1\n >>>>> sage: parent(b)\n Rational Field\n sage: c = 42.0\n >>>>> sage: parent(c)\n Real Field with 53 bits of precision\n\n >>>>> Some more complicated examples::\n\n sage: x = >>>>> Partition([3,2,1,1,1])\n sage: parent(x)\n Partitions\n >>>>> sage: v = vector(RDF, [1,2,3])\n sage: parent(v)\n >>>>> Vector space of dimension 3 over Real Double Field\n\n The >>>>> following are not considered to be elements, so the type is\n >>>>> returned::\n\n sage: d = int(42) # Python int\n sage: >>>>> parent(d)\n <... 'int'>\n sage: L = list(range(10))\n >>>>> >>>>> sage: parent(L)\n <... 'list'>\n "; [sagelib-9.2] | >>>>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [sagelib-9.2] g++ >>>>> -pthread -shared -Wl,-rpath-link,/home/tobias/bin/sage-9.2/local/lib >>>>> -L/home/tobias/bin/sage-9.2/local/lib >>>>> -Wl,-rpath,/home/tobias/bin/sage-9.2/local/lib >>>>> build/temp.linux-x86_64-3.8/build/cythonized/sage/tests/stl_vector.o >>>>> -L/usr/lib64 -lgmp -o >>>>> build/lib.linux-x86_64-3.8/sage/tests/stl_vector.cpython-38-x86_64-linux-gnu.so >>>>> >>>>> <http://stl_vector.cpython-38-x86_64-linux-gnu.so> -lpari [sagelib-9.2] >>>>> error: command 'gcc' failed with exit status 1 [sagelib-9.2] >>>>> [sagelib-9.2] >>>>> real 45m29,250s [sagelib-9.2] user 43m28,680s [sagelib-9.2] sys >>>>> 1m14,383s make[4]: *** [Makefile:2163: sagelib-no-deps] Fehler 1 >>>>> make[3]: *** [Makefile:2163: >>>>> /home/tobias/bin/sage-9.2/local/var/lib/sage/installed/sagelib-9.2] >>>>> Fehler >>>>> 2 make[2]: *** [Makefile:1766: all-start] Fehler 2 make[2]: Verzeichnis >>>>> „/home/tobias/bin/sage-9.2/build/make“ wird verlassen real 45m37,045s >>>>> user 43m33,440s sys 1m16,757s >>>>> *************************************************************** Error >>>>> building Sage. The following package(s) may have failed to build (not >>>>> necessarily during this run of 'make all-start'): It is safe to delete >>>>> any >>>>> log files and build directories, but they contain information that is >>>>> helpful for debugging build problems. WARNING: If you now run 'make' >>>>> again, >>>>> the build directory of the same version of the package will, by default, >>>>> be >>>>> deleted. Set the environment variable SAGE_KEEP_BUILT_SPKGS=yes to >>>>> prevent >>>>> this. make[1]: *** [Makefile:33: all-start] Fehler 1 make[1]: Verzeichnis >>>>> „/home/tobias/bin/sage-9.2“ wird verlassen make: *** [Makefile:13: all] >>>>> Fehler 2* >>>>> >>>> -- 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/d1b693a0-ca43-4150-90e3-932fc5e97fcan%40googlegroups.com.
