Skip to content

Allow system python 3.13#39381

Merged
vbraun merged 2 commits intosagemath:developfrom
antonio-rojas:system-python-3.13
Feb 21, 2025
Merged

Allow system python 3.13#39381
vbraun merged 2 commits intosagemath:developfrom
antonio-rojas:system-python-3.13

Conversation

@antonio-rojas
Copy link
Copy Markdown
Contributor

Fixes archlinux CI

Fixes archlinux CI
@github-actions
Copy link
Copy Markdown

github-actions bot commented Jan 26, 2025

Documentation preview for this PR (built with commit aca1905; changes) is ready! 🎉
This preview will update shortly after each push to this PR.

@dimpase
Copy link
Copy Markdown
Member

dimpase commented Feb 12, 2025

are we supporting 3.13 well enough?

@antonio-rojas
Copy link
Copy Markdown
Contributor Author

antonio-rojas commented Feb 12, 2025

are we supporting 3.13 well enough?

From a quick look I don't see any CI failure that could be blamed on this (didn't check all of them since there are tons of failing jobs due to multiple random issues)

@dimpase
Copy link
Copy Markdown
Member

dimpase commented Feb 13, 2025

From a quick look I don't see any CI

I checked that the arch CI job did run with python 3.13.1 and went well module some test failures, most of them not relevant to this PR.

vbraun pushed a commit to vbraun/sage that referenced this pull request Feb 18, 2025
sagemathgh-39381: Allow system python 3.13
    
Fixes archlinux CI
    
URL: sagemath#39381
Reported by: Antonio Rojas
Reviewer(s): Dima Pasechnik
@vbraun vbraun merged commit e6975be into sagemath:develop Feb 21, 2025
5 checks passed
@antonio-rojas antonio-rojas deleted the system-python-3.13 branch February 21, 2025 23:28
@jhpalmieri
Copy link
Copy Markdown
Member

This has broken building on OS X + homebrew, as reported by several people on sage-release. Please back it out and implement it (and test it!) properly.

@dimpase
Copy link
Copy Markdown
Member

dimpase commented Feb 25, 2025

This has broken building on OS X + homebrew, as reported by several people on sage-release. Please back it out and implement it (and test it!) properly.

detailed error reports welcome. I don't have your hardware and software

@jhpalmieri
Copy link
Copy Markdown
Member

jhpalmieri commented Feb 25, 2025

I'm using OS X 15.3.1 on an Apple M1 machine. Homebrew packages:

aom			gnutls			libvmaf			pari-galpol
arpack			gpatch			libx11			pari-seadata
assimp			gpgme			libxau			patchelf
autoconf		graphite2		libxcb			pcre2
automake		graphviz		libxdmcp		pdf2svg
bdw-gc			gsl			libxext			pinentry
bison			gts			libxrender		pixman
boost			harfbuzz		little-cms2		pkgconf
brotli			highway			llvm			pmix
ca-certificates		hunspell		lua			poetry
cairo			hwloc			lz4			poppler
cbc			icu4c@75		lzo			ppl
cddlib			icu4c@76		m4			primecount
certifi			igraph			make			primesieve
cffi			imath			maxima			pycparser
cgl			isl			md4c			python-packaging
clp			ispell			meson			python-setuptools
cmake			jasper			metis			python@3.12
coinutils		jpeg-turbo		mpdecimal		python@3.13
cpanminus		jpeg-xl			mpfi			qhull
dbus			libassuan		mpfr			qt
double-conversion	libatomic_ops		nasm			r
ecl			libavif			nauty			readline
eigen			libb2			netpbm			rlwrap
flake			libcerf			nettle			sbcl
flint			libdeflate		ninja			singular
fontconfig		libevent		npth			sqlite
fplll			libgcrypt		nspr			suite-sparse
freetype		libgpg-error		nss			symengine
fribidi			libidn2			ntl			tbb
gcc			libksba			open-mpi		tcl-tk@8
gcc@13			libmng			openblas		texinfo
gd			libmpc			openexr			tox
gdk-pixbuf		libnghttp2		openjpeg		unbound
gengetopt		libomp			openldap		webp
gettext			libpng			openssl@3		xorgproto
gh			librsvg			osi			xz
giflib			libsodium		p11-kit			z3
glib			libtasn1		pandoc			zeromq
glpk			libtiff			pango			zstd
gmp			libtool			pari
gnupg			libunistring		pari-elldata
gnuplot			libusb			pari-galdata

I'm attaching the top-level config.log as well as the logs for the failed builds of pillow and cffi.
config.log
pillow-10.1.0.log
cffi-1.15.1.log

I built with a fresh copy of 10.6.beta7 + #39570. I used make distclean && ./bootstrap && ./configure. If I instead use

./configure --with-python=`which python3.12`

then the build succeeds.

@dimpase
Copy link
Copy Markdown
Member

dimpase commented Feb 26, 2025

I'm using OS X 15.3.1 on an Apple M1 machine. Homebrew packages:
[...]

I'm attaching the top-level config.log as well as the logs for the failed builds of pillow and cffi. config.log pillow-10.1.0.log cffi-1.15.1.log

I built with a fresh copy of 10.6.beta7 + #39570. I used make distclean && ./bootstrap && ./configure. If I instead use

./configure --with-python=`which python3.12`

then the build succeeds.

I think this is fixed by #39571

Could you please try #39571 with python3.13 (and 3.12?)

Sorry, it has not crossed my mind that you didn't take #39571 - as I was telling other people in this thread on sage-release that the latter is needed to fix the latest beta.

@jhpalmieri
Copy link
Copy Markdown
Member

I'm using OS X 15.3.1 on an Apple M1 machine. Homebrew packages:
[...]
I'm attaching the top-level config.log as well as the logs for the failed builds of pillow and cffi. config.log pillow-10.1.0.log cffi-1.15.1.log
I built with a fresh copy of 10.6.beta7 + #39570. I used make distclean && ./bootstrap && ./configure. If I instead use

./configure --with-python=`which python3.12`

then the build succeeds.

I think this is fixed by #39571

Could you please try #39571 with python3.13 (and 3.12?)

Sorry, it has not crossed my mind that you didn't take #39571 - as I was telling other people in this thread on sage-release that the latter is needed to fix the latest beta.

Thank you, #39571 fixes the build problems with pillow and cffi. I am seeing several new doctest failures, present when I build with Python 3.13, not present when I force Sage to use 3.12:

sage -t --long --warn-long 30.0 --random-seed=266591211446680205638834841842271765705 src/sage/repl/ipython_extension.py  # 1 doctest failed
sage -t --long --warn-long 30.0 --random-seed=266591211446680205638834841842271765705 src/sage/rings/integer.pyx  # 1 doctest failed
sage -t --long --warn-long 30.0 --random-seed=266591211446680205638834841842271765705 src/sage/interfaces/expect.py  # 1 doctest failed

In detail:

File "src/sage/repl/ipython_extension.py", line 472, in sage.repl.ipython_extension.SageMagics.cython
Failed example:
    shell.run_cell('''
    %%cython --a='
    print(1)
    ''')
Expected:
    ...
    ValueError...Traceback (most recent call last)
    ...
    ValueError: No closing quotation
Got:
    Unexpected exception formatting exception. Falling back to standard exception
    Traceback (most recent call last):
      File "/Users/jpalmier/Sage/TESTING/sage-10.6.beta7/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/IPython/core/interactiveshell.py", line 3550, in run_code
        exec(code_obj, self.user_global_ns, self.user_ns)
        ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "<ipython-input-1-fffe1cbd1723>", line 1, in <module>
        get_ipython().run_cell_magic('cython', "--a='", 'print(1)\n')
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/Users/jpalmier/Sage/TESTING/sage-10.6.beta7/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/IPython/core/interactiveshell.py", line 2517, in run_cell_magic
        result = fn(*args, **kwargs)
      File "/Users/jpalmier/Sage/TESTING/sage-10.6.beta7/src/sage/repl/ipython_extension.py", line 504, in cython
        args = parser.parse_args(shlex.split(line))
                                 ~~~~~~~~~~~^^^^^^
      File "/opt/homebrew/Cellar/python@3.13/3.13.2/Frameworks/Python.framework/Versions/3.13/lib/python3.13/shlex.py", line 313, in split
        return list(lex)
      File "/opt/homebrew/Cellar/python@3.13/3.13.2/Frameworks/Python.framework/Versions/3.13/lib/python3.13/shlex.py", line 300, in __next__
        token = self.get_token()
      File "/opt/homebrew/Cellar/python@3.13/3.13.2/Frameworks/Python.framework/Versions/3.13/lib/python3.13/shlex.py", line 109, in get_token
        raw = self.read_token()
      File "/opt/homebrew/Cellar/python@3.13/3.13.2/Frameworks/Python.framework/Versions/3.13/lib/python3.13/shlex.py", line 191, in read_token
        raise ValueError("No closing quotation")
    ValueError: No closing quotation
    <BLANKLINE>
    During handling of the above exception, another exception occurred:
    <BLANKLINE>
    Traceback (most recent call last):
      File "/Users/jpalmier/Sage/TESTING/sage-10.6.beta7/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/IPython/core/interactiveshell.py", line 2144, in showtraceback
        stb = self.InteractiveTB.structured_traceback(
            etype, value, tb, tb_offset=tb_offset
        )
      File "/Users/jpalmier/Sage/TESTING/sage-10.6.beta7/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/IPython/core/ultratb.py", line 1435, in structured_traceback
        return FormattedTB.structured_traceback(
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
            self, etype, evalue, etb, tb_offset, number_of_lines_of_context
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        )
        ^
      File "/Users/jpalmier/Sage/TESTING/sage-10.6.beta7/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/IPython/core/ultratb.py", line 1326, in structured_traceback
        return VerboseTB.structured_traceback(
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
            self, etype, value, tb, tb_offset, number_of_lines_of_context
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        )
        ^
      File "/Users/jpalmier/Sage/TESTING/sage-10.6.beta7/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/IPython/core/ultratb.py", line 1173, in structured_traceback
        formatted_exception = self.format_exception_as_a_whole(etype, evalue, etb, number_of_lines_of_context,
                                                               tb_offset)
      File "/Users/jpalmier/Sage/TESTING/sage-10.6.beta7/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/IPython/core/ultratb.py", line 1063, in format_exception_as_a_whole
        self.get_records(etb, number_of_lines_of_context, tb_offset) if etb else []
        ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/Users/jpalmier/Sage/TESTING/sage-10.6.beta7/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/IPython/core/ultratb.py", line 1160, in get_records
        res = list(stack_data.FrameInfo.stack_data(etb, options=options))[tb_offset:]
              ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/Users/jpalmier/Sage/TESTING/sage-10.6.beta7/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/stack_data/core.py", line 597, in stack_data
        yield from collapse_repeated(
        ...<4 lines>...
        )
      File "/Users/jpalmier/Sage/TESTING/sage-10.6.beta7/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/stack_data/utils.py", line 83, in collapse_repeated
        yield from map(mapper, original_group)
      File "/Users/jpalmier/Sage/TESTING/sage-10.6.beta7/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/stack_data/core.py", line 587, in mapper
        return cls(f, options)
      File "/Users/jpalmier/Sage/TESTING/sage-10.6.beta7/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/stack_data/core.py", line 551, in __init__
        self.executing = Source.executing(frame_or_tb)
                         ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
      File "/Users/jpalmier/Sage/TESTING/sage-10.6.beta7/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/executing/executing.py", line 283, in executing
        assert_(new_stmts <= stmts)
        ~~~~~~~^^^^^^^^^^^^^^^^^^^^
      File "/Users/jpalmier/Sage/TESTING/sage-10.6.beta7/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/executing/executing.py", line 80, in assert_
        raise AssertionError(str(message))
    AssertionError

and

File "src/sage/rings/integer.pyx", line 3074, in sage.rings.integer.Integer.divisors
Failed example:
    for i in range(20):           # long time                             # needs sage.libs.pari
        try:
            alarm(RDF.random_element(1e-3, 0.5))
            _ = n.divisors()
            cancel_alarm()  # we never get here
        except AlarmInterrupt:
            pass
Expected nothing
Got:
    Traceback (most recent call last):
      File "<frozen importlib._bootstrap>", line 653, in has_location
      File "src/cysignals/signals.pyx", line 341, in cysignals.signals.python_check_interrupt
    cysignals.signals.AlarmInterrupt
    Exception ignored in: 'cysignals.signals.verify_exc_value'
    Traceback (most recent call last):
      File "<frozen importlib._bootstrap>", line 653, in has_location
      File "src/cysignals/signals.pyx", line 341, in cysignals.signals.python_check_interrupt
    cysignals.signals.AlarmInterrupt: 
    Traceback (most recent call last):
      File "<frozen importlib._bootstrap>", line 653, in has_location
      File "src/cysignals/signals.pyx", line 341, in cysignals.signals.python_check_interrupt
    cysignals.signals.AlarmInterrupt
    Exception ignored in: 'cysignals.signals.verify_exc_value'
    Traceback (most recent call last):
      File "<frozen importlib._bootstrap>", line 653, in has_location
      File "src/cysignals/signals.pyx", line 341, in cysignals.signals.python_check_interrupt
    cysignals.signals.AlarmInterrupt: 
    Traceback (most recent call last):
      File "<frozen importlib._bootstrap>", line 653, in has_location
      File "src/cysignals/signals.pyx", line 341, in cysignals.signals.python_check_interrupt
    cysignals.signals.AlarmInterrupt
    Exception ignored in: 'cysignals.signals.verify_exc_value'
    Traceback (most recent call last):
      File "<frozen importlib._bootstrap>", line 653, in has_location
      File "src/cysignals/signals.pyx", line 341, in cysignals.signals.python_check_interrupt
    cysignals.signals.AlarmInterrupt: 
    Traceback (most recent call last):
      File "<frozen importlib._bootstrap>", line 653, in has_location
      File "src/cysignals/signals.pyx", line 341, in cysignals.signals.python_check_interrupt
    cysignals.signals.AlarmInterrupt
    Exception ignored in: 'cysignals.signals.verify_exc_value'
    Traceback (most recent call last):
      File "<frozen importlib._bootstrap>", line 653, in has_location
      File "src/cysignals/signals.pyx", line 341, in cysignals.signals.python_check_interrupt
    cysignals.signals.AlarmInterrupt: 
    Traceback (most recent call last):
      File "<frozen importlib._bootstrap>", line 653, in has_location
      File "src/cysignals/signals.pyx", line 341, in cysignals.signals.python_check_interrupt
    cysignals.signals.AlarmInterrupt
    Exception ignored in: 'cysignals.signals.verify_exc_value'
    Traceback (most recent call last):
      File "<frozen importlib._bootstrap>", line 653, in has_location
      File "src/cysignals/signals.pyx", line 341, in cysignals.signals.python_check_interrupt
    cysignals.signals.AlarmInterrupt: 
    Traceback (most recent call last):
      File "<frozen importlib._bootstrap>", line 653, in has_location
      File "src/cysignals/signals.pyx", line 341, in cysignals.signals.python_check_interrupt
    cysignals.signals.AlarmInterrupt
    Exception ignored in: 'cysignals.signals.verify_exc_value'
    Traceback (most recent call last):
      File "<frozen importlib._bootstrap>", line 653, in has_location
      File "src/cysignals/signals.pyx", line 341, in cysignals.signals.python_check_interrupt
    cysignals.signals.AlarmInterrupt: 
    Traceback (most recent call last):
      File "<frozen importlib._bootstrap>", line 653, in has_location
      File "src/cysignals/signals.pyx", line 341, in cysignals.signals.python_check_interrupt
    cysignals.signals.AlarmInterrupt
    Exception ignored in: 'cysignals.signals.verify_exc_value'
    Traceback (most recent call last):
      File "<frozen importlib._bootstrap>", line 653, in has_location
      File "src/cysignals/signals.pyx", line 341, in cysignals.signals.python_check_interrupt
    cysignals.signals.AlarmInterrupt: 
    Traceback (most recent call last):
      File "<frozen importlib._bootstrap>", line 653, in has_location
      File "src/cysignals/signals.pyx", line 341, in cysignals.signals.python_check_interrupt
    cysignals.signals.AlarmInterrupt
    Exception ignored in: 'cysignals.signals.verify_exc_value'
    Traceback (most recent call last):
      File "<frozen importlib._bootstrap>", line 653, in has_location
      File "src/cysignals/signals.pyx", line 341, in cysignals.signals.python_check_interrupt
    cysignals.signals.AlarmInterrupt: 
    Traceback (most recent call last):
      File "<frozen importlib._bootstrap>", line 653, in has_location
      File "src/cysignals/signals.pyx", line 341, in cysignals.signals.python_check_interrupt
    cysignals.signals.AlarmInterrupt
    Exception ignored in: 'cysignals.signals.verify_exc_value'
    Traceback (most recent call last):
      File "<frozen importlib._bootstrap>", line 653, in has_location
      File "src/cysignals/signals.pyx", line 341, in cysignals.signals.python_check_interrupt
    cysignals.signals.AlarmInterrupt: 
    Traceback (most recent call last):
      File "<frozen importlib._bootstrap>", line 653, in has_location
      File "src/cysignals/signals.pyx", line 341, in cysignals.signals.python_check_interrupt
    cysignals.signals.AlarmInterrupt
    Exception ignored in: 'cysignals.signals.verify_exc_value'
    Traceback (most recent call last):
      File "<frozen importlib._bootstrap>", line 653, in has_location
      File "src/cysignals/signals.pyx", line 341, in cysignals.signals.python_check_interrupt
    cysignals.signals.AlarmInterrupt: 

and

File "src/sage/interfaces/expect.py", line 1238, in sage.interfaces.expect.Expect._expect_expr
Failed example:
    print(sage0.eval("dummy=gp.eval('0'); alarm(1); gp._expect_expr('1')"))  # long time
Expected:
    ...Interrupting PARI/GP interpreter. Please wait a few seconds...
    ...
    AlarmInterrupt:
Got:
    Control-C pressed. Interrupting PARI/GP interpreter. Please wait a few seconds...
    Unexpected exception formatting exception. Falling back to standard exception
    Traceback (most recent call last):
      File "/Users/jpalmier/Sage/TESTING/sage-10.6.beta7/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/IPython/core/interactiveshell.py", line 3550, in run_code
        exec(code_obj, self.user_global_ns, self.user_ns)
        ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "<ipython-input-4-4f7dfb765e60>", line 1, in <module>
        dummy=gp.eval('0'); alarm(Integer(Integer(1))); gp._expect_expr('1')
                                                        ~~~~~~~~~~~~~~~^^^^^
      File "/Users/jpalmier/Sage/TESTING/sage-10.6.beta7/src/sage/interfaces/expect.py", line 1252, in _expect_expr
        i = self._expect.expect(expr)
      File "/Users/jpalmier/Sage/TESTING/sage-10.6.beta7/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/pexpect/spawnbase.py", line 354, in expect
        return self.expect_list(compiled_pattern_list,
               ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
                timeout, searchwindowsize, async_)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/Users/jpalmier/Sage/TESTING/sage-10.6.beta7/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/pexpect/spawnbase.py", line 383, in expect_list
        return exp.expect_loop(timeout)
               ~~~~~~~~~~~~~~~^^^^^^^^^
      File "/Users/jpalmier/Sage/TESTING/sage-10.6.beta7/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/pexpect/expect.py", line 169, in expect_loop
        incoming = spawn.read_nonblocking(spawn.maxread, timeout)
      File "/Users/jpalmier/Sage/TESTING/sage-10.6.beta7/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/pexpect/pty_spawn.py", line 500, in read_nonblocking
        if (timeout != 0) and select(timeout):
                              ~~~~~~^^^^^^^^^
      File "/Users/jpalmier/Sage/TESTING/sage-10.6.beta7/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/pexpect/pty_spawn.py", line 450, in select
        return select_ignore_interrupts([self.child_fd], [], [], timeout)[0]
               ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/Users/jpalmier/Sage/TESTING/sage-10.6.beta7/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/pexpect/utils.py", line 143, in select_ignore_interrupts
        return select.select(iwtd, owtd, ewtd, timeout)
               ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "src/cysignals/signals.pyx", line 341, in cysignals.signals.python_check_interrupt
    cysignals.signals.AlarmInterrupt
    <BLANKLINE>
    During handling of the above exception, another exception occurred:
    <BLANKLINE>
    Traceback (most recent call last):
      File "/Users/jpalmier/Sage/TESTING/sage-10.6.beta7/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/IPython/core/interactiveshell.py", line 2144, in showtraceback
        stb = self.InteractiveTB.structured_traceback(
            etype, value, tb, tb_offset=tb_offset
        )
      File "/Users/jpalmier/Sage/TESTING/sage-10.6.beta7/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/IPython/core/ultratb.py", line 1435, in structured_traceback
        return FormattedTB.structured_traceback(
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
            self, etype, evalue, etb, tb_offset, number_of_lines_of_context
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        )
        ^
      File "/Users/jpalmier/Sage/TESTING/sage-10.6.beta7/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/IPython/core/ultratb.py", line 1326, in structured_traceback
        return VerboseTB.structured_traceback(
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
            self, etype, value, tb, tb_offset, number_of_lines_of_context
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        )
        ^
      File "/Users/jpalmier/Sage/TESTING/sage-10.6.beta7/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/IPython/core/ultratb.py", line 1173, in structured_traceback
        formatted_exception = self.format_exception_as_a_whole(etype, evalue, etb, number_of_lines_of_context,
                                                               tb_offset)
      File "/Users/jpalmier/Sage/TESTING/sage-10.6.beta7/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/IPython/core/ultratb.py", line 1063, in format_exception_as_a_whole
        self.get_records(etb, number_of_lines_of_context, tb_offset) if etb else []
        ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/Users/jpalmier/Sage/TESTING/sage-10.6.beta7/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/IPython/core/ultratb.py", line 1160, in get_records
        res = list(stack_data.FrameInfo.stack_data(etb, options=options))[tb_offset:]
              ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/Users/jpalmier/Sage/TESTING/sage-10.6.beta7/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/stack_data/core.py", line 597, in stack_data
        yield from collapse_repeated(
        ...<4 lines>...
        )
      File "/Users/jpalmier/Sage/TESTING/sage-10.6.beta7/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/stack_data/utils.py", line 83, in collapse_repeated
        yield from map(mapper, original_group)
      File "/Users/jpalmier/Sage/TESTING/sage-10.6.beta7/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/stack_data/core.py", line 587, in mapper
        return cls(f, options)
      File "/Users/jpalmier/Sage/TESTING/sage-10.6.beta7/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/stack_data/core.py", line 551, in __init__
        self.executing = Source.executing(frame_or_tb)
                         ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
      File "/Users/jpalmier/Sage/TESTING/sage-10.6.beta7/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/executing/executing.py", line 283, in executing
        assert_(new_stmts <= stmts)
        ~~~~~~~^^^^^^^^^^^^^^^^^^^^
      File "/Users/jpalmier/Sage/TESTING/sage-10.6.beta7/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/executing/executing.py", line 80, in assert_
        raise AssertionError(str(message))
    AssertionError

@dimpase
Copy link
Copy Markdown
Member

dimpase commented Feb 26, 2025

@jhpalmieri - this looks like an issue with ipython, probably fixable by updating executing spkg, as mentioned elsewhere by @tobiasdiez

@jhpalmieri
Copy link
Copy Markdown
Member

Updating executing fixed two of the three problems, but the error with rings/integer.pyx remains.

@dimpase
Copy link
Copy Markdown
Member

dimpase commented Feb 27, 2025

rings/integer.pyx have this test dependent on pari, and I don't get this error with #38749 (upgrade pari to 2.17)

@jhpalmieri
Copy link
Copy Markdown
Member

jhpalmieri commented Feb 27, 2025

rings/integer.pyx have this test dependent on pari, and I don't get this error with #38749 (upgrade pari to 2.17)

I don't get this with Python 3.12, only 3.13. Any ideas why? (I built separately, using the same PRs and changes (but not yet #38749) — all of the ones necessary to build with 3.13 plus the PR making giac optional. I then used Python 3.12 with one build, 3.13 with the other.)

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants