Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Python 3.9 #30184

Closed
slel opened this issue Jul 20, 2020 · 87 comments
Closed

Support Python 3.9 #30184

slel opened this issue Jul 20, 2020 · 87 comments

Comments

@slel
Copy link
Member

slel commented Jul 20, 2020

We should support Python 3.9 (expected to be released 2020-10-05) in Sage 9.2.

The present ticket is for the patches necessary to support Python 3.9 in addition to 3.7 and 3.8.

It does not include the actual upgrade to Python 3.9 - to test, merge #30589.

Depends on #27754
Depends on #28012
Depends on #30590
Depends on #30053
Depends on #30595
Depends on #30576
Depends on #29500
Depends on #30546

CC: @antonio-rojas @embray @kiwifb @kliem @timokau @isuruf @jhpalmieri @mkoeppe @slel @tobihan @tscrim @jdemeyer @dimpase

Component: packages: standard

Keywords: upgrade, python

Author: Matthias Koeppe

Branch: 9d06080

Reviewer: John Palmieri, Dima Pasechnik

Issue created by migration from https://trac.sagemath.org/ticket/30184

@slel slel added this to the sage-9.3 milestone Jul 20, 2020
@slel
Copy link
Member Author

slel commented Jul 20, 2020

comment:1

Python 3.9.0.beta5, the last of five planned beta release previews,
was released on 2020-07-20.

It would be nice to test and report any issues to the Python bug tracker.

@jhpalmieri
Copy link
Member

comment:2

I can't even get 3.8 to work (#27754). :(

@slel
Copy link
Member Author

slel commented Aug 11, 2020

comment:3

Python 3.9.0 is almost ready, with 3.9.0rc1,
the penultimate release preview, released.

@mkoeppe

This comment has been minimized.

@mkoeppe
Copy link
Member

mkoeppe commented Aug 17, 2020

Dependencies: #27754

@mkoeppe

This comment has been minimized.

@mkoeppe
Copy link
Member

mkoeppe commented Aug 20, 2020

Changed dependencies from #27754 to #27754, #28012

@slel
Copy link
Member Author

slel commented Sep 17, 2020

comment:7

Python 3.9.0rc2 announced today on python-announce:

Python 3.9.0 is almost ready. This release, 3.9.0rc2,
is the last planned preview before the final release
of Python 3.9.0 on 2020-10-05. Get it here:

https://www.python.org/downloads/release/python-390rc2/

In the mean time, we strongly encourage maintainers of
third-party Python projects to prepare their projects
for 3.9 compatibility during this phase. As always,
report any issues to the Python bug tracker
https://bugs.python.org/.

@mkoeppe

This comment has been minimized.

@mkoeppe
Copy link
Member

mkoeppe commented Sep 17, 2020

comment:9

With #30589 (Python 3.9.0rc2), the build goes smoothly up to here:

[sagelib-9.2.beta12] [1/1] gcc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wno-unused -I/Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src -I/Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/ext -I/Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/local/include/python3.9 -I/Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/local/lib/python3.9/site-packages/numpy/core/include -Ibuild/cythonized -I/Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/local/include/python3.9 -c build/cythonized/sage/cpython/debug.c -o build/temp.macosx-10.9-x86_64-3.9/build/cythonized/sage/cpython/debug.o -fno-strict-aliasing -DCYTHON_CLINE_IN_TRACEBACK=1 -std=c99
[sagelib-9.2.beta12] In file included from build/cythonized/sage/cpython/debug.c:1446:
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:188:18: error: no member named 'tp_print' in 'struct _typeobject'
[sagelib-9.2.beta12]     attr_pointer(tp_print);
[sagelib-9.2.beta12]     ~~~~~~~~~~~~~^~~~~~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:123:24: note: expanded from macro 'attr_pointer'
[sagelib-9.2.beta12]     attr_pointer_value(attr);
[sagelib-9.2.beta12]     ~~~~~~~~~~~~~~~~~~~^~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:119:65: note: expanded from macro 'attr_pointer_value'
[sagelib-9.2.beta12] #define attr_pointer_value(attr) subattr_pointer_value(tp_name, attr);
[sagelib-9.2.beta12]                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:86:32: note: expanded from macro 'subattr_pointer_value'
[sagelib-9.2.beta12]     pointer_check_constant(tp->attr, NULL) \
[sagelib-9.2.beta12]                            ~~  ^
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:78:9: note: expanded from macro 'pointer_check_constant'
[sagelib-9.2.beta12]     if (ptr == (void*)(val)) \
[sagelib-9.2.beta12]         ^~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:188:18: error: no member named 'tp_print' in 'struct _typeobject'
[sagelib-9.2.beta12]     attr_pointer(tp_print);
[sagelib-9.2.beta12]     ~~~~~~~~~~~~~^~~~~~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:123:24: note: expanded from macro 'attr_pointer'
[sagelib-9.2.beta12]     attr_pointer_value(attr);
[sagelib-9.2.beta12]     ~~~~~~~~~~~~~~~~~~~^~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:119:65: note: expanded from macro 'attr_pointer_value'
[sagelib-9.2.beta12] #define attr_pointer_value(attr) subattr_pointer_value(tp_name, attr);
[sagelib-9.2.beta12]                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:87:37: note: expanded from macro 'subattr_pointer_value'
[sagelib-9.2.beta12]     else pointer_check_constant(tp->attr, PyType_GenericAlloc) \
[sagelib-9.2.beta12]                                 ~~  ^
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:78:9: note: expanded from macro 'pointer_check_constant'
[sagelib-9.2.beta12]     if (ptr == (void*)(val)) \
[sagelib-9.2.beta12]         ^~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:188:18: error: no member named 'tp_print' in 'struct _typeobject'
[sagelib-9.2.beta12]     attr_pointer(tp_print);
[sagelib-9.2.beta12]     ~~~~~~~~~~~~~^~~~~~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:123:24: note: expanded from macro 'attr_pointer'
[sagelib-9.2.beta12]     attr_pointer_value(attr);
[sagelib-9.2.beta12]     ~~~~~~~~~~~~~~~~~~~^~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:119:65: note: expanded from macro 'attr_pointer_value'
[sagelib-9.2.beta12] #define attr_pointer_value(attr) subattr_pointer_value(tp_name, attr);
[sagelib-9.2.beta12]                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:88:37: note: expanded from macro 'subattr_pointer_value'
[sagelib-9.2.beta12]     else pointer_check_constant(tp->attr, PyType_GenericNew) \
[sagelib-9.2.beta12]                                 ~~  ^
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:78:9: note: expanded from macro 'pointer_check_constant'
[sagelib-9.2.beta12]     if (ptr == (void*)(val)) \
[sagelib-9.2.beta12]         ^~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:188:18: error: no member named 'tp_print' in 'struct _typeobject'
[sagelib-9.2.beta12]     attr_pointer(tp_print);
[sagelib-9.2.beta12]     ~~~~~~~~~~~~~^~~~~~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:123:24: note: expanded from macro 'attr_pointer'
[sagelib-9.2.beta12]     attr_pointer_value(attr);
[sagelib-9.2.beta12]     ~~~~~~~~~~~~~~~~~~~^~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:119:65: note: expanded from macro 'attr_pointer_value'
[sagelib-9.2.beta12] #define attr_pointer_value(attr) subattr_pointer_value(tp_name, attr);
[sagelib-9.2.beta12]                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:89:37: note: expanded from macro 'subattr_pointer_value'
[sagelib-9.2.beta12]     else pointer_check_constant(tp->attr, PyObject_Del) \
[sagelib-9.2.beta12]                                 ~~  ^
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:78:9: note: expanded from macro 'pointer_check_constant'
[sagelib-9.2.beta12]     if (ptr == (void*)(val)) \
[sagelib-9.2.beta12]         ^~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:188:18: error: no member named 'tp_print' in 'struct _typeobject'
[sagelib-9.2.beta12]     attr_pointer(tp_print);
[sagelib-9.2.beta12]     ~~~~~~~~~~~~~^~~~~~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:123:24: note: expanded from macro 'attr_pointer'
[sagelib-9.2.beta12]     attr_pointer_value(attr);
[sagelib-9.2.beta12]     ~~~~~~~~~~~~~~~~~~~^~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:119:65: note: expanded from macro 'attr_pointer_value'
[sagelib-9.2.beta12] #define attr_pointer_value(attr) subattr_pointer_value(tp_name, attr);
[sagelib-9.2.beta12]                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:90:37: note: expanded from macro 'subattr_pointer_value'
[sagelib-9.2.beta12]     else pointer_check_constant(tp->attr, PyObject_GC_Del) \
[sagelib-9.2.beta12]                                 ~~  ^
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:78:9: note: expanded from macro 'pointer_check_constant'
[sagelib-9.2.beta12]     if (ptr == (void*)(val)) \
[sagelib-9.2.beta12]         ^~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:188:18: error: no member named 'tp_print' in 'struct _typeobject'
[sagelib-9.2.beta12]     attr_pointer(tp_print);
[sagelib-9.2.beta12]     ~~~~~~~~~~~~~^~~~~~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:123:24: note: expanded from macro 'attr_pointer'
[sagelib-9.2.beta12]     attr_pointer_value(attr);
[sagelib-9.2.beta12]     ~~~~~~~~~~~~~~~~~~~^~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:119:65: note: expanded from macro 'attr_pointer_value'
[sagelib-9.2.beta12] #define attr_pointer_value(attr) subattr_pointer_value(tp_name, attr);
[sagelib-9.2.beta12]                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:91:37: note: expanded from macro 'subattr_pointer_value'
[sagelib-9.2.beta12]     else pointer_check_constant(tp->attr, PyObject_GenericGetAttr) \
[sagelib-9.2.beta12]                                 ~~  ^
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:78:9: note: expanded from macro 'pointer_check_constant'
[sagelib-9.2.beta12]     if (ptr == (void*)(val)) \
[sagelib-9.2.beta12]         ^~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:188:18: error: no member named 'tp_print' in 'struct _typeobject'
[sagelib-9.2.beta12]     attr_pointer(tp_print);
[sagelib-9.2.beta12]     ~~~~~~~~~~~~~^~~~~~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:123:24: note: expanded from macro 'attr_pointer'
[sagelib-9.2.beta12]     attr_pointer_value(attr);
[sagelib-9.2.beta12]     ~~~~~~~~~~~~~~~~~~~^~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:119:65: note: expanded from macro 'attr_pointer_value'
[sagelib-9.2.beta12] #define attr_pointer_value(attr) subattr_pointer_value(tp_name, attr);
[sagelib-9.2.beta12]                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:92:37: note: expanded from macro 'subattr_pointer_value'
[sagelib-9.2.beta12]     else pointer_check_constant(tp->attr, PyObject_GenericSetAttr) \
[sagelib-9.2.beta12]                                 ~~  ^
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:78:9: note: expanded from macro 'pointer_check_constant'
[sagelib-9.2.beta12]     if (ptr == (void*)(val)) \
[sagelib-9.2.beta12]         ^~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:188:18: error: no member named 'tp_print' in 'struct _typeobject'
[sagelib-9.2.beta12]     attr_pointer(tp_print);
[sagelib-9.2.beta12]     ~~~~~~~~~~~~~^~~~~~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:123:24: note: expanded from macro 'attr_pointer'
[sagelib-9.2.beta12]     attr_pointer_value(attr);
[sagelib-9.2.beta12]     ~~~~~~~~~~~~~~~~~~~^~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:119:65: note: expanded from macro 'attr_pointer_value'
[sagelib-9.2.beta12] #define attr_pointer_value(attr) subattr_pointer_value(tp_name, attr);
[sagelib-9.2.beta12]                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:93:37: note: expanded from macro 'subattr_pointer_value'
[sagelib-9.2.beta12]     else pointer_check_constant(tp->attr, _Py_HashPointer) \
[sagelib-9.2.beta12]                                 ~~  ^
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:78:9: note: expanded from macro 'pointer_check_constant'
[sagelib-9.2.beta12]     if (ptr == (void*)(val)) \
[sagelib-9.2.beta12]         ^~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:188:18: error: no member named 'tp_print' in 'struct _typeobject'
[sagelib-9.2.beta12]     attr_pointer(tp_print);
[sagelib-9.2.beta12]     ~~~~~~~~~~~~~^~~~~~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:123:24: note: expanded from macro 'attr_pointer'
[sagelib-9.2.beta12]     attr_pointer_value(attr);
[sagelib-9.2.beta12]     ~~~~~~~~~~~~~~~~~~~^~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:119:65: note: expanded from macro 'attr_pointer_value'
[sagelib-9.2.beta12] #define attr_pointer_value(attr) subattr_pointer_value(tp_name, attr);
[sagelib-9.2.beta12]                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:94:37: note: expanded from macro 'subattr_pointer_value'
[sagelib-9.2.beta12]     else pointer_check_constant(tp->attr, PyObject_HashNotImplemented) \
[sagelib-9.2.beta12]                                 ~~  ^
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:78:9: note: expanded from macro 'pointer_check_constant'
[sagelib-9.2.beta12]     if (ptr == (void*)(val)) \
[sagelib-9.2.beta12]         ^~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:188:18: error: no member named 'tp_print' in 'struct _typeobject'
[sagelib-9.2.beta12]     attr_pointer(tp_print);
[sagelib-9.2.beta12]     ~~~~~~~~~~~~~^~~~~~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:123:24: note: expanded from macro 'attr_pointer'
[sagelib-9.2.beta12]     attr_pointer_value(attr);
[sagelib-9.2.beta12]     ~~~~~~~~~~~~~~~~~~~^~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:119:65: note: expanded from macro 'attr_pointer_value'
[sagelib-9.2.beta12] #define attr_pointer_value(attr) subattr_pointer_value(tp_name, attr);
[sagelib-9.2.beta12]                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:95:37: note: expanded from macro 'subattr_pointer_value'
[sagelib-9.2.beta12]     else pointer_check_constant(tp->attr, subtype_traverse) \
[sagelib-9.2.beta12]                                 ~~  ^
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:78:9: note: expanded from macro 'pointer_check_constant'
[sagelib-9.2.beta12]     if (ptr == (void*)(val)) \
[sagelib-9.2.beta12]         ^~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:188:18: error: no member named 'tp_print' in 'struct _typeobject'
[sagelib-9.2.beta12]     attr_pointer(tp_print);
[sagelib-9.2.beta12]     ~~~~~~~~~~~~~^~~~~~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:123:24: note: expanded from macro 'attr_pointer'
[sagelib-9.2.beta12]     attr_pointer_value(attr);
[sagelib-9.2.beta12]     ~~~~~~~~~~~~~~~~~~~^~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:119:65: note: expanded from macro 'attr_pointer_value'
[sagelib-9.2.beta12] #define attr_pointer_value(attr) subattr_pointer_value(tp_name, attr);
[sagelib-9.2.beta12]                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:96:37: note: expanded from macro 'subattr_pointer_value'
[sagelib-9.2.beta12]     else pointer_check_constant(tp->attr, subtype_clear) \
[sagelib-9.2.beta12]                                 ~~  ^
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:78:9: note: expanded from macro 'pointer_check_constant'
[sagelib-9.2.beta12]     if (ptr == (void*)(val)) \
[sagelib-9.2.beta12]         ^~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:188:18: error: no member named 'tp_print' in 'struct _typeobject'
[sagelib-9.2.beta12]     attr_pointer(tp_print);
[sagelib-9.2.beta12]     ~~~~~~~~~~~~~^~~~~~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:123:24: note: expanded from macro 'attr_pointer'
[sagelib-9.2.beta12]     attr_pointer_value(attr);
[sagelib-9.2.beta12]     ~~~~~~~~~~~~~~~~~~~^~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:119:65: note: expanded from macro 'attr_pointer_value'
[sagelib-9.2.beta12] #define attr_pointer_value(attr) subattr_pointer_value(tp_name, attr);
[sagelib-9.2.beta12]                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:97:37: note: expanded from macro 'subattr_pointer_value'
[sagelib-9.2.beta12]     else pointer_check_constant(tp->attr, subtype_dealloc) \
[sagelib-9.2.beta12]                                 ~~  ^
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:78:9: note: expanded from macro 'pointer_check_constant'
[sagelib-9.2.beta12]     if (ptr == (void*)(val)) \
[sagelib-9.2.beta12]         ^~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:188:18: error: no member named 'tp_print' in 'struct _typeobject'
[sagelib-9.2.beta12]     attr_pointer(tp_print);
[sagelib-9.2.beta12]     ~~~~~~~~~~~~~^~~~~~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:123:24: note: expanded from macro 'attr_pointer'
[sagelib-9.2.beta12]     attr_pointer_value(attr);
[sagelib-9.2.beta12]     ~~~~~~~~~~~~~~~~~~~^~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:119:65: note: expanded from macro 'attr_pointer_value'
[sagelib-9.2.beta12] #define attr_pointer_value(attr) subattr_pointer_value(tp_name, attr);
[sagelib-9.2.beta12]                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:108:39: note: expanded from macro 'subattr_pointer_value'
[sagelib-9.2.beta12]                 if (subtp->sub && tp->attr == subtp->attr) \
[sagelib-9.2.beta12]                                   ~~  ^
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:188:18: error: no member named 'tp_print' in 'struct _typeobject'
[sagelib-9.2.beta12]     attr_pointer(tp_print);
[sagelib-9.2.beta12]     ~~~~~~~~~~~~~^~~~~~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:123:24: note: expanded from macro 'attr_pointer'
[sagelib-9.2.beta12]     attr_pointer_value(attr);
[sagelib-9.2.beta12]     ~~~~~~~~~~~~~~~~~~~^~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:119:65: note: expanded from macro 'attr_pointer_value'
[sagelib-9.2.beta12] #define attr_pointer_value(attr) subattr_pointer_value(tp_name, attr);
[sagelib-9.2.beta12]                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:108:54: note: expanded from macro 'subattr_pointer_value'
[sagelib-9.2.beta12]                 if (subtp->sub && tp->attr == subtp->attr) \
[sagelib-9.2.beta12]                                               ~~~~~  ^
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:188:18: error: no member named 'tp_print' in 'struct _typeobject'
[sagelib-9.2.beta12]     attr_pointer(tp_print);
[sagelib-9.2.beta12]     ~~~~~~~~~~~~~^~~~~~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:123:24: note: expanded from macro 'attr_pointer'
[sagelib-9.2.beta12]     attr_pointer_value(attr);
[sagelib-9.2.beta12]     ~~~~~~~~~~~~~~~~~~~^~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:119:65: note: expanded from macro 'attr_pointer_value'
[sagelib-9.2.beta12] #define attr_pointer_value(attr) subattr_pointer_value(tp_name, attr);
[sagelib-9.2.beta12]                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
[sagelib-9.2.beta12] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/build/pkgs/sagelib/src/sage/cpython/debugimpl.c:117:37: note: expanded from macro 'subattr_pointer_value'
[sagelib-9.2.beta12]     if (special) printf("%p\n", tp->attr);
[sagelib-9.2.beta12]                                 ~~  ^
[sagelib-9.2.beta12] 15 errors generated.
[sagelib-9.2.beta12] error: command '/usr/bin/gcc' failed with exit code 1
[sagelib-9.2.beta12] Exception ignored in: <function Pool.__del__ at 0x1196803a0>
[sagelib-9.2.beta12] Traceback (most recent call last):
[sagelib-9.2.beta12]   File "/Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/local/lib/python3.9/multiprocessing/pool.py", line 268, in __del__
[sagelib-9.2.beta12]     self._change_notifier.put(None)
[sagelib-9.2.beta12]   File "/Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/local/lib/python3.9/multiprocessing/queues.py", line 378, in put
[sagelib-9.2.beta12]     self._writer.send_bytes(obj)
[sagelib-9.2.beta12]   File "/Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/local/lib/python3.9/multiprocessing/connection.py", line 205, in send_bytes
[sagelib-9.2.beta12]     self._send_bytes(m[offset:offset + size])
[sagelib-9.2.beta12]   File "/Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/local/lib/python3.9/multiprocessing/connection.py", line 416, in _send_bytes
[sagelib-9.2.beta12]     self._send(header + buf)
[sagelib-9.2.beta12]   File "/Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/local/lib/python3.9/multiprocessing/connection.py", line 373, in _send
[sagelib-9.2.beta12]     n = write(self._handle, buf)
[sagelib-9.2.beta12] OSError: [Errno 9] Bad file descriptor
[sagelib-9.2.beta12] 
[sagelib-9.2.beta12] real	0m7.479s
[sagelib-9.2.beta12] user	0m4.042s
[sagelib-9.2.beta12] sys	0m2.327s

@mkoeppe
Copy link
Member

mkoeppe commented Sep 17, 2020

comment:11

There is little evidence that anyone but the author of type_debug has used this facility. Candidate for removal. Surely there must be something like this on PyPI somewhere?

@mkoeppe
Copy link
Member

mkoeppe commented Sep 17, 2020

Changed dependencies from #27754, #28012 to #27754, #28012, #30590

@mkoeppe
Copy link
Member

mkoeppe commented Sep 17, 2020

Branch: u/mkoeppe/support_python_3_9

@mkoeppe
Copy link
Member

mkoeppe commented Sep 17, 2020

Commit: 0d00d0a

@mkoeppe
Copy link
Member

mkoeppe commented Sep 17, 2020

comment:14

Deprecation warnings in docbuild:

[dochtml] <frozen importlib._bootstrap>:228: DeprecationWarning: The parser module is deprecated and will be removed in future versions of Python
[dochtml] [arithgrou] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/local/lib/python3.9/ast.py:407: DeprecationWarning: visit_NameConstant is deprecated; add visit_Constant
[dochtml] [arithgrou]   return visitor(node)
[dochtml] [plot3d   ] /Users/mkoeppe/s/sage/sage-rebasing/worktree-py39/local/lib/python3.9/ast.py:407: DeprecationWarning: visit_Str is deprecated; add visit_Constant

New commits:

3e3c0eabuild/pkgs/python3: Update to 3.9.0rc2
8f71b29src/sage/cpython/debugimpl.c: Remove python2 code
25b2b05Merge branch 't/30590/src_sage_cpython_debugimpl_c__remove_python2_code' into t/30184/support_python_3_9
0d00d0asrc/sage/cpython/debugimpl.c: Disable _type_debug for Python 3.9

@mkoeppe
Copy link
Member

mkoeppe commented Sep 17, 2020

Changed dependencies from #27754, #28012, #30590 to #27754, #28012, #30590, #30053

@mkoeppe
Copy link
Member

mkoeppe commented Sep 17, 2020

comment:16

make ptestlong also has various failures due to new warnings DeprecationWarning: visit_Str is deprecated; add visit_Constant and similar

@mkoeppe
Copy link
Member

mkoeppe commented Sep 17, 2020

comment:17

Any warning-suppression specialists here?

@jhpalmieri
Copy link
Member

comment:18

Can you add to the relevant section of src/sage/all.py? There are lines like

# scipy 1.18 introduced reprecation warnings on a number of things they are moving to
# numpy, e.g. DeprecationWarning: scipy.array is deprecated
#             and will be removed in SciPy 2.0.0, use numpy.array instead
# This affects networkx 2.2 up and including 2.4 (cf. :trac:29766)
warnings.filterwarnings('ignore', category=DeprecationWarning,
    module='.*(scipy|networkx)')

@mkoeppe
Copy link
Member

mkoeppe commented Sep 17, 2020

comment:19

Thanks!

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Sep 17, 2020

Changed commit from 0d00d0a to 4a8c191

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Sep 17, 2020

Branch pushed to git repo; I updated commit sha1. New commits:

4a8c191src/sage/all.py: Filter out Python 3.9 deprecation warnings from ast

@mkoeppe
Copy link
Member

mkoeppe commented Sep 17, 2020

comment:21

Replying to @mkoeppe:

Deprecation warnings in docbuild:

[dochtml] <frozen importlib._bootstrap>:228: DeprecationWarning: The parser module is deprecated and will be removed in future versions of Python

This one also shows up on normal startup. Coming from here:

$ git grep 'import parser'
src/sage/symbolic/ring.pyx:import parser

(Implementation of isidentifier.)

@mkoeppe
Copy link
Member

mkoeppe commented Sep 17, 2020

comment:22

Looks like we can simplify isidentifier now that we are py3-only, similar to https://stackoverflow.com/questions/12700893/how-to-check-if-a-string-is-a-valid-python-identifier-including-keyword-check

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Sep 18, 2020

Changed commit from 4a8c191 to c3d0805

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Sep 18, 2020

Branch pushed to git repo; I updated commit sha1. New commits:

c3d0805src/sage/symbolic/ring.pyx (isidentifier): Remove py2-only code, use of deprecated parser module

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Sep 18, 2020

Changed commit from c3d0805 to 463e90d

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Sep 30, 2020

Changed commit from 4f7d588 to 9d06080

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Sep 30, 2020

Branch pushed to git repo; I updated commit sha1. New commits:

9d06080src/sage/misc/sageinspect.py: Fix doctest pattern

@mkoeppe
Copy link
Member

mkoeppe commented Sep 30, 2020

comment:58

See comment 45.

@dimpase
Copy link
Member

dimpase commented Oct 1, 2020

comment:59

Replying to @mkoeppe:

See comment 45.

oops, sorry, I was somewhat late to the party. Another problem I'm investigating is that this upgrade seems to lead to zombie Maxima and ECL processes.

@dimpase
Copy link
Member

dimpase commented Oct 1, 2020

comment:60

ok, good (Zombies have nothing to do with this update)

@mkoeppe
Copy link
Member

mkoeppe commented Oct 1, 2020

comment:61

Thanks.

@vbraun
Copy link
Member

vbraun commented Oct 3, 2020

Changed branch from u/mkoeppe/support_python_3_9 to 9d06080

@slel
Copy link
Member Author

slel commented Oct 8, 2020

comment:63

Replying to @kiwifb:

Replying to @mkoeppe:

Only these two remain. Perhaps "good enough for 9.2"?

sage -t --long --random-seed=0 src/sage/functions/other.py  # 1 doctest failed
sage -t --long --random-seed=0 src/sage/rings/polynomial/pbori/randompoly.py  # 1 doctest failed

I can take ownership of the pbori one, I'll see what I can do.

Should a follow-up ticket for each of these two issues be opened?

Meta-ticket for all Python 3.9 issues?

Too early for a ticket for Python 3.10 support? Python 3.10.0a1 is out:

@slel
Copy link
Member Author

slel commented Oct 8, 2020

Changed commit from 9d06080 to none

@mkoeppe
Copy link
Member

mkoeppe commented Oct 13, 2020

comment:64

Replying to @slel:

Replying to @kiwifb:

Replying to @mkoeppe:

Only these two remain. Perhaps "good enough for 9.2"?

sage -t --long --random-seed=0 src/sage/functions/other.py  # 1 doctest failed
sage -t --long --random-seed=0 src/sage/rings/polynomial/pbori/randompoly.py  # 1 doctest failed

I can take ownership of the pbori one, I'll see what I can do.

Should a follow-up ticket for each of these two issues be opened?

Yes please

Meta-ticket for all Python 3.9 issues?

I don't think this is necessary

Too early for a ticket for Python 3.10 support? Python 3.10.0a1 is out:

Sure, please open a ticket

@slel
Copy link
Member Author

slel commented Oct 13, 2020

comment:65

Follow-up tickets:

@dimpase
Copy link
Member

dimpase commented Oct 20, 2020

comment:66

you might have seen this:
python/cpython#22670 - a critical incompatibility with pybind11

@dimpase
Copy link
Member

dimpase commented Oct 20, 2020

comment:67

From https://pybind11.readthedocs.io/en/latest/

Warning

Combining older versions of pybind11 (< 2.6.0) with the brand-new Python 3.9.0 will trigger undefined behavior that typically manifests as crashes during interpreter shutdown (but could also destroy your data. You have been warned.)

We recommend that you wait for Python 3.9.1 slated for release in December, which will include a fix that resolves this problem. In the meantime, please update to the latest version of pybind11 (2.6.0 or newer), which includes a temporary workaround specifically when Python 3.9.0 is detected at runtime.

should we hold off 3.9.0 (in spkg-configure.m4 of python3) ?

@mkoeppe
Copy link
Member

mkoeppe commented Oct 20, 2020

comment:68

We can do the pybind11 upgrade

@mkoeppe
Copy link
Member

mkoeppe commented Oct 20, 2020

comment:69

Replying to @mkoeppe:

We can do the pybind11 upgrade

Created #30803 for this

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants