mirror of
https://src.fedoraproject.org/rpms/sagemath.git
synced 2025-04-10 23:18:51 -04:00
Version 9.1.
- Drop upstreamed -nauty patch. - Drop -cbc patch; upstream uses the system Cbc now. - Add -ecl patch for ecl 20.4.24.
This commit is contained in:
parent
4556e3ebb0
commit
eb706cd5f8
15 changed files with 838 additions and 732 deletions
|
@ -1,14 +0,0 @@
|
|||
diff -up src/sage/numerical/backends/coin_backend.pyx.orig src/sage/numerical/backends/coin_backend.pyx
|
||||
--- src/sage/numerical/backends/coin_backend.pyx.orig 2018-12-22 16:37:09.000000000 -0700
|
||||
+++ src/sage/numerical/backends/coin_backend.pyx 2019-01-16 09:45:52.386577640 -0700
|
||||
@@ -780,8 +780,8 @@ cdef class CoinBackend(GenericBackend):
|
||||
model.setLogLevel(old_logLevel)
|
||||
|
||||
# multithreading
|
||||
- import multiprocessing
|
||||
- model.setNumberThreads(ncpus())
|
||||
+ #import multiprocessing
|
||||
+ #model.setNumberThreads(ncpus())
|
||||
|
||||
model.branchAndBound()
|
||||
|
88
sagemath-ecl.patch
Normal file
88
sagemath-ecl.patch
Normal file
|
@ -0,0 +1,88 @@
|
|||
diff -up src/sage/libs/ecl.pxd.orig src/sage/libs/ecl.pxd
|
||||
--- src/sage/libs/ecl.pxd.orig 2020-05-20 16:33:41.000000000 -0600
|
||||
+++ src/sage/libs/ecl.pxd 2020-07-07 09:05:47.078665548 -0600
|
||||
@@ -39,7 +39,6 @@ cdef extern from "ecl/ecl.h":
|
||||
ECL_OPT_TRAP_SIGINT,
|
||||
ECL_OPT_TRAP_SIGILL,
|
||||
ECL_OPT_TRAP_SIGBUS,
|
||||
- ECL_OPT_TRAP_SIGCHLD,
|
||||
ECL_OPT_TRAP_SIGPIPE,
|
||||
ECL_OPT_TRAP_INTERRUPT_SIGNAL,
|
||||
ECL_OPT_SIGNAL_HANDLING_THREAD,
|
||||
@@ -53,7 +52,6 @@ cdef extern from "ecl/ecl.h":
|
||||
ECL_OPT_LISP_STACK_SAFETY_AREA,
|
||||
ECL_OPT_C_STACK_SIZE,
|
||||
ECL_OPT_C_STACK_SAFETY_AREA,
|
||||
- ECL_OPT_SIGALTSTACK_SIZE,
|
||||
ECL_OPT_HEAP_SIZE,
|
||||
ECL_OPT_HEAP_SAFETY_AREA,
|
||||
ECL_OPT_THREAD_INTERRUPT_SIGNAL,
|
||||
diff -up src/sage/libs/ecl.pyx.orig src/sage/libs/ecl.pyx
|
||||
--- src/sage/libs/ecl.pyx.orig 2020-05-20 16:33:41.000000000 -0600
|
||||
+++ src/sage/libs/ecl.pyx 2020-07-07 09:07:43.622621879 -0600
|
||||
@@ -15,7 +15,7 @@ Library interface to Embeddable Common L
|
||||
#adapted to work with pure Python types.
|
||||
|
||||
from libc.stdlib cimport abort
|
||||
-from libc.signal cimport SIGINT, SIGBUS, SIGSEGV, SIGCHLD
|
||||
+from libc.signal cimport SIGINT, SIGBUS, SIGSEGV
|
||||
from libc.signal cimport raise_ as signal_raise
|
||||
from posix.signal cimport sigaction, sigaction_t
|
||||
cimport cysignals.signals
|
||||
@@ -139,7 +139,6 @@ def test_ecl_options():
|
||||
ECL_OPT_TRAP_SIGINT = 1
|
||||
ECL_OPT_TRAP_SIGILL = 1
|
||||
ECL_OPT_TRAP_SIGBUS = 1
|
||||
- ECL_OPT_TRAP_SIGCHLD = 0
|
||||
ECL_OPT_TRAP_SIGPIPE = 1
|
||||
ECL_OPT_TRAP_INTERRUPT_SIGNAL = 1
|
||||
ECL_OPT_SIGNAL_HANDLING_THREAD = 0
|
||||
@@ -153,7 +152,6 @@ def test_ecl_options():
|
||||
ECL_OPT_LISP_STACK_SAFETY_AREA = ...
|
||||
ECL_OPT_C_STACK_SIZE = ...
|
||||
ECL_OPT_C_STACK_SAFETY_AREA = ...
|
||||
- ECL_OPT_SIGALTSTACK_SIZE = 1
|
||||
ECL_OPT_HEAP_SIZE = ...
|
||||
ECL_OPT_HEAP_SAFETY_AREA = ...
|
||||
ECL_OPT_THREAD_INTERRUPT_SIGNAL = ...
|
||||
@@ -171,8 +169,6 @@ def test_ecl_options():
|
||||
ecl_get_option(ECL_OPT_TRAP_SIGILL)))
|
||||
print('ECL_OPT_TRAP_SIGBUS = {0}'.format(
|
||||
ecl_get_option(ECL_OPT_TRAP_SIGBUS)))
|
||||
- print('ECL_OPT_TRAP_SIGCHLD = {0}'.format(
|
||||
- ecl_get_option(ECL_OPT_TRAP_SIGCHLD)))
|
||||
print('ECL_OPT_TRAP_SIGPIPE = {0}'.format(
|
||||
ecl_get_option(ECL_OPT_TRAP_SIGPIPE)))
|
||||
print('ECL_OPT_TRAP_INTERRUPT_SIGNAL = {0}'.format(
|
||||
@@ -199,8 +195,6 @@ def test_ecl_options():
|
||||
ecl_get_option(ECL_OPT_C_STACK_SIZE)))
|
||||
print('ECL_OPT_C_STACK_SAFETY_AREA = {0}'.format(
|
||||
ecl_get_option(ECL_OPT_C_STACK_SAFETY_AREA)))
|
||||
- print('ECL_OPT_SIGALTSTACK_SIZE = {0}'.format(
|
||||
- ecl_get_option(ECL_OPT_SIGALTSTACK_SIZE)))
|
||||
print('ECL_OPT_HEAP_SIZE = {0}'.format(
|
||||
ecl_get_option(ECL_OPT_HEAP_SIZE)))
|
||||
print('ECL_OPT_HEAP_SAFETY_AREA = {0}'.format(
|
||||
@@ -243,9 +237,6 @@ def init_ecl():
|
||||
if ecl_has_booted:
|
||||
raise RuntimeError("ECL is already initialized")
|
||||
|
||||
- # we need it to stop handling SIGCHLD
|
||||
- ecl_set_option(ECL_OPT_TRAP_SIGCHLD, 0);
|
||||
-
|
||||
#we keep our own GMP memory functions. ECL should not claim them
|
||||
ecl_set_option(ECL_OPT_SET_GMP_MEMORY_FUNCTIONS,0);
|
||||
|
||||
@@ -266,12 +257,6 @@ def init_ecl():
|
||||
sigaction(SIGBUS, NULL, &ecl_sigbus_handler)
|
||||
sigaction(SIGSEGV, NULL, &ecl_sigsegv_handler)
|
||||
|
||||
- #verify that no SIGCHLD handler was installed
|
||||
- cdef sigaction_t sig_test
|
||||
- sigaction(SIGCHLD, NULL, &sig_test)
|
||||
- assert sage_action[SIGCHLD].sa_handler == NULL # Sage does not set SIGCHLD handler
|
||||
- assert sig_test.sa_handler == NULL # And ECL bootup did not set one
|
||||
-
|
||||
#and put the Sage signal handlers back
|
||||
for i in range(1,32):
|
||||
sigaction(i, &sage_action[i], NULL)
|
|
@ -1,6 +1,7 @@
|
|||
--- src/sage/env.py.orig 2020-03-13 09:03:58.705213254 -0600
|
||||
+++ src/sage/env.py 2020-03-13 09:06:42.148502755 -0600
|
||||
@@ -151,11 +151,11 @@ var('SAGE_DATE', version.date)
|
||||
diff -up src/sage/env.py.orig src/sage/env.py
|
||||
--- src/sage/env.py.orig 2020-07-06 16:59:20.179973650 -0600
|
||||
+++ src/sage/env.py 2020-07-06 17:03:47.991916151 -0600
|
||||
@@ -158,14 +158,14 @@ var('SAGE_DATE', version.date)
|
||||
var('SAGE_VERSION_BANNER', version.banner)
|
||||
|
||||
# bunch of sage directories and files
|
||||
|
@ -16,17 +17,12 @@
|
|||
+var('SAGE_DOC', join('/usr', 'share', 'doc', 'sagemath'))
|
||||
var('SAGE_SPKG_INST', join(SAGE_LOCAL, 'var', 'lib', 'sage', 'installed'))
|
||||
var('SAGE_LIB', os.path.dirname(os.path.dirname(sage.__file__)))
|
||||
-var('SAGE_EXTCODE', join(SAGE_LIB, 'sage', 'ext_data'))
|
||||
+var('SAGE_EXTCODE', join('/usr', 'share', 'sagemath', 'etc'))
|
||||
|
||||
@@ -169,7 +169,7 @@ var('DOT_SAGE', join(os.envir
|
||||
var('SAGE_STARTUP_FILE', join(DOT_SAGE, 'init.sage'))
|
||||
|
||||
# installation directories for various packages
|
||||
-var('SAGE_EXTCODE', join(SAGE_SHARE, 'sage', 'ext'))
|
||||
+var('SAGE_EXTCODE', join('/usr', 'share', 'sagemath', 'etc'))
|
||||
var('CONWAY_POLYNOMIALS_DATA_DIR', join(SAGE_SHARE, 'conway_polynomials'))
|
||||
var('GRAPHS_DATA_DIR', join(SAGE_SHARE, 'graphs'))
|
||||
var('ELLCURVE_DATA_DIR', join(SAGE_SHARE, 'ellcurves'))
|
||||
@@ -179,13 +179,13 @@ var('THEBE_DIR', joi
|
||||
var('SAGE_ROOT', '@@SAGE_ROOT@@')
|
||||
var('SAGE_SRC', join(SAGE_ROOT, 'src'), SAGE_LIB)
|
||||
@@ -186,13 +186,13 @@ var('THEBE_DIR', joi
|
||||
var('COMBINATORIAL_DESIGN_DATA_DIR', join(SAGE_SHARE, 'combinatorial_designs'))
|
||||
var('CREMONA_MINI_DATA_DIR', join(SAGE_SHARE, 'cremona'))
|
||||
var('CREMONA_LARGE_DATA_DIR', join(SAGE_SHARE, 'cremona'))
|
||||
|
@ -42,6 +38,6 @@
|
|||
var('SINGULARPATH', join(SAGE_SHARE, 'singular'))
|
||||
-var('PPLPY_DOCS', join(SAGE_SHARE, 'doc', 'pplpy'))
|
||||
+var('PPLPY_DOCS', join('/usr', 'share', 'doc', 'python3-pplpy'))
|
||||
var('MAXIMA', 'maxima')
|
||||
var('MAXIMA_FAS')
|
||||
|
||||
# misc
|
||||
var('SAGE_NAUTY_BINS_PREFIX', '')
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,7 +1,7 @@
|
|||
diff -up src/module_list.py.orig src/module_list.py
|
||||
--- src/module_list.py.orig 2020-01-01 04:03:10.000000000 -0700
|
||||
+++ src/module_list.py 2020-02-25 13:38:22.980350735 -0700
|
||||
@@ -389,16 +389,16 @@ ext_modules = [
|
||||
--- src/module_list.py.orig 2020-05-20 16:33:41.000000000 -0600
|
||||
+++ src/module_list.py 2020-07-06 16:38:17.108266850 -0600
|
||||
@@ -401,16 +401,16 @@ ext_modules = [
|
||||
Extension('sage.graphs.matchpoly',
|
||||
sources = ['sage/graphs/matchpoly.pyx']),
|
||||
|
||||
|
@ -23,7 +23,7 @@ diff -up src/module_list.py.orig src/module_list.py
|
|||
|
||||
Extension('sage.graphs.planarity',
|
||||
sources = ['sage/graphs/planarity.pyx'],
|
||||
@@ -417,10 +417,9 @@ ext_modules = [
|
||||
@@ -429,10 +429,9 @@ ext_modules = [
|
||||
Extension('sage.graphs.graph_decompositions.cutwidth',
|
||||
sources = ['sage/graphs/graph_decompositions/cutwidth.pyx']),
|
||||
|
||||
|
@ -34,9 +34,9 @@ diff -up src/module_list.py.orig src/module_list.py
|
|||
- package = 'tdlib'),
|
||||
+ language="c++"),
|
||||
|
||||
Extension('sage.graphs.spanning_tree',
|
||||
sources = ['sage/graphs/spanning_tree.pyx']),
|
||||
@@ -479,9 +478,9 @@ ext_modules = [
|
||||
Extension('sage.graphs.graph_decompositions.clique_separators',
|
||||
sources = ['sage/graphs/graph_decompositions/clique_separators.pyx']),
|
||||
@@ -494,9 +493,9 @@ ext_modules = [
|
||||
##
|
||||
################################
|
||||
|
||||
|
@ -48,7 +48,7 @@ diff -up src/module_list.py.orig src/module_list.py
|
|||
|
||||
Extension('*', ['sage/interfaces/*.pyx']),
|
||||
|
||||
@@ -500,21 +499,19 @@ ext_modules = [
|
||||
@@ -515,21 +514,19 @@ ext_modules = [
|
||||
##
|
||||
################################
|
||||
|
||||
|
@ -75,7 +75,7 @@ diff -up src/module_list.py.orig src/module_list.py
|
|||
|
||||
Extension('sage.libs.flint.flint',
|
||||
sources = ["sage/libs/flint/flint.pyx"],
|
||||
@@ -543,13 +540,14 @@ ext_modules = [
|
||||
@@ -558,13 +555,14 @@ ext_modules = [
|
||||
sources = ["sage/libs/homfly.pyx"],
|
||||
libraries = ["homfly", "gc"]),
|
||||
|
||||
|
@ -93,7 +93,7 @@ diff -up src/module_list.py.orig src/module_list.py
|
|||
|
||||
Extension('sage.libs.lcalc.lcalc_Lfunction',
|
||||
sources = ['sage/libs/lcalc/lcalc_Lfunction.pyx'],
|
||||
@@ -566,10 +564,9 @@ ext_modules = [
|
||||
@@ -581,10 +579,9 @@ ext_modules = [
|
||||
Extension('sage.libs.lrcalc.lrcalc',
|
||||
sources = ["sage/libs/lrcalc/lrcalc.pyx"]),
|
||||
|
||||
|
@ -106,7 +106,7 @@ diff -up src/module_list.py.orig src/module_list.py
|
|||
|
||||
Extension('*', ['sage/libs/pari/*.pyx']),
|
||||
|
||||
@@ -815,7 +812,8 @@ ext_modules = [
|
||||
@@ -830,7 +827,8 @@ ext_modules = [
|
||||
include_dirs = cblas_include_dirs),
|
||||
|
||||
Extension('sage.matrix.matrix_integer_sparse',
|
||||
|
@ -116,7 +116,7 @@ diff -up src/module_list.py.orig src/module_list.py
|
|||
|
||||
Extension('sage.matrix.matrix_mod2_dense',
|
||||
sources = ['sage/matrix/matrix_mod2_dense.pyx'],
|
||||
@@ -834,20 +832,21 @@ ext_modules = [
|
||||
@@ -849,20 +847,21 @@ ext_modules = [
|
||||
Extension('sage.matrix.matrix_modn_dense_float',
|
||||
sources = ['sage/matrix/matrix_modn_dense_float.pyx'],
|
||||
language="c++",
|
||||
|
@ -141,7 +141,7 @@ diff -up src/module_list.py.orig src/module_list.py
|
|||
|
||||
Extension('sage.matrix.matrix_mpolynomial_dense',
|
||||
sources = ['sage/matrix/matrix_mpolynomial_dense.pyx']),
|
||||
@@ -877,10 +876,9 @@ ext_modules = [
|
||||
@@ -892,10 +891,9 @@ ext_modules = [
|
||||
Extension('sage.matrix.matrix_window',
|
||||
sources = ['sage/matrix/matrix_window.pyx']),
|
||||
|
||||
|
@ -154,42 +154,3 @@ diff -up src/module_list.py.orig src/module_list.py
|
|||
|
||||
Extension('sage.matrix.misc',
|
||||
sources = ['sage/matrix/misc.pyx']),
|
||||
@@ -1056,26 +1054,25 @@ ext_modules = [
|
||||
Extension("sage.numerical.backends.interactivelp_backend",
|
||||
["sage/numerical/backends/interactivelp_backend.pyx"]),
|
||||
|
||||
- OptionalExtension("sage.numerical.backends.gurobi_backend",
|
||||
- ["sage/numerical/backends/gurobi_backend.pyx"],
|
||||
- libraries = ["gurobi"],
|
||||
- condition = os.path.isfile(SAGE_INC + "/gurobi_c.h") and
|
||||
- os.path.isfile(SAGE_LOCAL + "/lib/libgurobi.so")),
|
||||
+# OptionalExtension("sage.numerical.backends.gurobi_backend",
|
||||
+# ["sage/numerical/backends/gurobi_backend.pyx"],
|
||||
+# libraries = ["gurobi"],
|
||||
+# condition = os.path.isfile(SAGE_INC + "/gurobi_c.h") and
|
||||
+# os.path.isfile(SAGE_LOCAL + "/lib/libgurobi.so")),
|
||||
|
||||
- OptionalExtension("sage.numerical.backends.cplex_backend",
|
||||
- ["sage/numerical/backends/cplex_backend.pyx"],
|
||||
- libraries = ["cplex"],
|
||||
- condition = os.path.isfile(SAGE_INC + "/cplex.h") and
|
||||
- os.path.isfile(SAGE_LOCAL + "/lib/libcplex.a")),
|
||||
+# OptionalExtension("sage.numerical.backends.cplex_backend",
|
||||
+# ["sage/numerical/backends/cplex_backend.pyx"],
|
||||
+# libraries = ["cplex"],
|
||||
+# condition = os.path.isfile(SAGE_INC + "/cplex.h") and
|
||||
+# os.path.isfile(SAGE_LOCAL + "/lib/libcplex.a")),
|
||||
|
||||
- OptionalExtension("sage.numerical.backends.coin_backend",
|
||||
+ Extension("sage.numerical.backends.coin_backend",
|
||||
["sage/numerical/backends/coin_backend.pyx"],
|
||||
language = 'c++',
|
||||
libraries = ["Cbc", "CbcSolver", "Cgl", "Clp", "CoinUtils",
|
||||
"OsiCbc", "OsiClp", "Osi"] + lapack_libs,
|
||||
library_dirs = lapack_library_dirs,
|
||||
- include_dirs = lapack_include_dirs,
|
||||
- package = 'cbc'),
|
||||
+ include_dirs = lapack_include_dirs),
|
||||
|
||||
################################
|
||||
##
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
diff -up src/sage/modular/arithgroup/farey.cpp.orig src/sage/modular/arithgroup/farey.cpp
|
||||
--- src/sage/modular/arithgroup/farey.cpp.orig 2017-11-08 06:03:07.383885084 -0500
|
||||
+++ src/sage/modular/arithgroup/farey.cpp 2017-11-08 06:03:18.271885501 -0500
|
||||
@@ -136,6 +136,7 @@ operator*(const SL2Z& M, const vector<mp
|
||||
return result;
|
||||
}
|
||||
|
||||
+#if 0
|
||||
inline
|
||||
mpz_class
|
||||
floor(const mpq_class r) {
|
||||
@@ -146,6 +147,7 @@ floor(const mpq_class r) {
|
||||
return result - 1;
|
||||
}
|
||||
}
|
||||
+#endif
|
||||
|
||||
inline
|
||||
mpz_class lcm(const mpz_class& a, const mpz_class& b) {
|
|
@ -1,6 +1,7 @@
|
|||
--- src/sage/env.py.orig 2020-01-01 04:03:10.000000000 -0700
|
||||
+++ src/sage/env.py 2020-03-13 09:51:49.255840082 -0600
|
||||
@@ -174,7 +174,7 @@ var('CONWAY_POLYNOMIALS_DATA_DIR', joi
|
||||
diff -up src/sage/env.py.orig src/sage/env.py
|
||||
--- src/sage/env.py.orig 2020-05-20 16:33:41.000000000 -0600
|
||||
+++ src/sage/env.py 2020-07-06 16:57:04.139002833 -0600
|
||||
@@ -181,7 +181,7 @@ var('CONWAY_POLYNOMIALS_DATA_DIR', joi
|
||||
var('GRAPHS_DATA_DIR', join(SAGE_SHARE, 'graphs'))
|
||||
var('ELLCURVE_DATA_DIR', join(SAGE_SHARE, 'ellcurves'))
|
||||
var('POLYTOPE_DATA_DIR', join(SAGE_SHARE, 'reflexive_polytopes'))
|
||||
|
@ -9,8 +10,9 @@
|
|||
var('THEBE_DIR', join(SAGE_SHARE, 'thebe'))
|
||||
var('COMBINATORIAL_DESIGN_DATA_DIR', join(SAGE_SHARE, 'combinatorial_designs'))
|
||||
var('CREMONA_MINI_DATA_DIR', join(SAGE_SHARE, 'cremona'))
|
||||
--- src/sage/libs/gap/element.pyx.orig 2020-01-01 04:03:10.000000000 -0700
|
||||
+++ src/sage/libs/gap/element.pyx 2020-03-13 10:38:15.632637753 -0600
|
||||
diff -up src/sage/libs/gap/element.pyx.orig src/sage/libs/gap/element.pyx
|
||||
--- src/sage/libs/gap/element.pyx.orig 2020-05-20 16:33:41.000000000 -0600
|
||||
+++ src/sage/libs/gap/element.pyx 2020-07-06 16:57:04.140002833 -0600
|
||||
@@ -264,7 +264,7 @@ cdef Obj make_gap_string(sage_string) ex
|
||||
try:
|
||||
GAP_Enter()
|
||||
|
@ -101,20 +103,21 @@
|
|||
cdef Obj obj = self.value
|
||||
|
||||
if isinstance(i, tuple):
|
||||
--- src/sage/libs/gap/gap_includes.pxd.orig 2020-01-01 04:03:10.000000000 -0700
|
||||
+++ src/sage/libs/gap/gap_includes.pxd 2020-03-13 10:32:21.845358454 -0600
|
||||
@@ -12,8 +12,8 @@
|
||||
diff -up src/sage/libs/gap/gap_includes.pxd.orig src/sage/libs/gap/gap_includes.pxd
|
||||
--- src/sage/libs/gap/gap_includes.pxd.orig 2020-05-20 16:33:41.000000000 -0600
|
||||
+++ src/sage/libs/gap/gap_includes.pxd 2020-07-06 16:58:14.358987770 -0600
|
||||
@@ -13,8 +13,8 @@ from libc.stdint cimport uintptr_t, uint
|
||||
|
||||
cdef extern from "gap/system.h" nogil:
|
||||
ctypedef char Char
|
||||
- ctypedef int Int
|
||||
- ctypedef unsigned int UInt
|
||||
- ctypedef uintptr_t UInt
|
||||
+ ctypedef long Int
|
||||
+ ctypedef unsigned long UInt
|
||||
ctypedef void* Obj
|
||||
|
||||
|
||||
@@ -24,8 +24,8 @@ cdef extern from "gap/ariths.h" nogil:
|
||||
ctypedef uint8_t UInt1
|
||||
ctypedef uint16_t UInt2
|
||||
ctypedef uint32_t UInt4
|
||||
@@ -29,8 +29,8 @@ cdef extern from "gap/ariths.h" nogil:
|
||||
Obj QUO(Obj, Obj)
|
||||
Obj POW(Obj, Obj)
|
||||
Obj MOD(Obj, Obj)
|
||||
|
@ -125,7 +128,7 @@
|
|||
|
||||
|
||||
cdef extern from "gap/bool.h" nogil:
|
||||
@@ -34,7 +34,7 @@ cdef extern from "gap/bool.h" nogil:
|
||||
@@ -39,7 +39,7 @@ cdef extern from "gap/bool.h" nogil:
|
||||
|
||||
|
||||
cdef extern from "gap/calls.h" nogil:
|
||||
|
@ -134,7 +137,7 @@
|
|||
Obj CALL_0ARGS(Obj f) # 0 arguments
|
||||
Obj CALL_1ARGS(Obj f, Obj a1) # 1 argument
|
||||
Obj CALL_2ARGS(Obj f, Obj a1, Obj a2)
|
||||
@@ -56,7 +56,7 @@ cdef extern from "gap/gasman_intern.h" n
|
||||
@@ -61,7 +61,7 @@ cdef extern from "gap/gasman_intern.h" n
|
||||
|
||||
|
||||
cdef extern from "gap/gvars.h" nogil:
|
||||
|
@ -143,7 +146,7 @@
|
|||
void AssGVar "AssGVar"(UInt gvar, Obj val)
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ cdef extern from "gap/integer.h" nogil:
|
||||
@@ -70,7 +70,7 @@ cdef extern from "gap/integer.h" nogil:
|
||||
|
||||
|
||||
cdef extern from "gap/intobj.h" nogil:
|
||||
|
@ -152,7 +155,7 @@
|
|||
Obj INTOBJ_INT(Int)
|
||||
Int INT_INTOBJ(Obj)
|
||||
|
||||
@@ -95,11 +95,11 @@ cdef extern from "gap/libgap-api.h" nogi
|
||||
@@ -100,11 +100,11 @@ cdef extern from "gap/libgap-api.h" nogi
|
||||
|
||||
|
||||
cdef extern from "gap/lists.h" nogil:
|
||||
|
@ -169,7 +172,7 @@
|
|||
|
||||
|
||||
cdef extern from "gap/listfunc.h" nogil:
|
||||
@@ -111,13 +111,13 @@ cdef extern from "gap/macfloat.h" nogil:
|
||||
@@ -116,13 +116,13 @@ cdef extern from "gap/macfloat.h" nogil:
|
||||
|
||||
|
||||
cdef extern from "gap/objects.h" nogil:
|
||||
|
@ -186,7 +189,7 @@
|
|||
|
||||
cdef enum TNUM:
|
||||
T_INT
|
||||
@@ -147,23 +147,23 @@ cdef extern from "gap/objects.h" nogil:
|
||||
@@ -163,23 +163,23 @@ cdef extern from "gap/permutat.h" nogil:
|
||||
|
||||
|
||||
cdef extern from "gap/precord.h" nogil:
|
||||
|
@ -221,8 +224,9 @@
|
|||
+ Int IsStringConv(Obj obj)
|
||||
+ Obj NEW_STRING(Int len)
|
||||
+ Obj MakeStringWithLen(const char *buf, size_t len)
|
||||
--- src/sage/libs/gap/util.pyx.orig 2020-01-01 04:03:10.000000000 -0700
|
||||
+++ src/sage/libs/gap/util.pyx 2020-03-13 10:23:13.675207968 -0600
|
||||
diff -up src/sage/libs/gap/util.pyx.orig src/sage/libs/gap/util.pyx
|
||||
--- src/sage/libs/gap/util.pyx.orig 2020-05-20 16:33:41.000000000 -0600
|
||||
+++ src/sage/libs/gap/util.pyx 2020-07-06 16:57:04.142002832 -0600
|
||||
@@ -386,7 +386,7 @@ cdef Obj gap_eval(str gap_string) except
|
||||
"""
|
||||
initialize()
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
diff -up src/bin/sage-maxima.lisp.orig src/bin/sage-maxima.lisp
|
||||
--- src/bin/sage-maxima.lisp.orig 2018-12-22 16:37:06.000000000 -0700
|
||||
+++ src/bin/sage-maxima.lisp 2019-01-16 09:43:18.550338178 -0700
|
||||
--- src/bin/sage-maxima.lisp.orig 2020-05-20 16:33:41.000000000 -0600
|
||||
+++ src/bin/sage-maxima.lisp 2020-07-06 16:43:41.194184363 -0600
|
||||
@@ -4,3 +4,8 @@
|
||||
|
||||
(setf *prompt-prefix* "<sage-display>")
|
||||
|
@ -11,14 +11,14 @@ diff -up src/bin/sage-maxima.lisp.orig src/bin/sage-maxima.lisp
|
|||
+ *standard-input* (open "/dev/stdin" :direction :input)
|
||||
+ *standard-output* (open "/dev/stdout" :direction :output))
|
||||
diff -up src/sage/interfaces/maxima.py.orig src/sage/interfaces/maxima.py
|
||||
--- src/sage/interfaces/maxima.py.orig 2018-12-22 16:37:08.000000000 -0700
|
||||
+++ src/sage/interfaces/maxima.py 2019-01-16 09:43:18.552338143 -0700
|
||||
--- src/sage/interfaces/maxima.py.orig 2020-05-20 16:33:41.000000000 -0600
|
||||
+++ src/sage/interfaces/maxima.py 2020-07-06 16:44:55.895165348 -0600
|
||||
@@ -546,7 +546,7 @@ class Maxima(MaximaAbstract, Expect):
|
||||
Expect.__init__(self,
|
||||
name = 'maxima',
|
||||
prompt = r'\(\%i[0-9]+\) ',
|
||||
- command = 'maxima -p "{0}"'.format(STARTUP),
|
||||
+ command = 'maxima --disable-readline -p "{0}"'.format(STARTUP),
|
||||
- command = '"{0}" -p "{1}"'.format(MAXIMA, STARTUP),
|
||||
+ command = '"{0}" --disable-readline -p "{1}"'.format(MAXIMA, STARTUP),
|
||||
env = {'TMPDIR': str(ECL_TMP)},
|
||||
script_subdirectory = script_subdirectory,
|
||||
restart_on_ctrlc = False,
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
diff -up src/sage/graphs/graph_generators.py.orig src/sage/graphs/graph_generators.py
|
||||
--- src/sage/graphs/graph_generators.py.orig 2019-06-26 14:41:04.000000000 -0600
|
||||
+++ src/sage/graphs/graph_generators.py 2019-06-27 11:37:46.100759559 -0600
|
||||
@@ -907,7 +907,7 @@ class GraphGenerators():
|
||||
else:
|
||||
enc_kwargs = {'encoding': 'latin-1'}
|
||||
|
||||
- sp = subprocess.Popen("geng {0}".format(options), shell=True,
|
||||
+ sp = subprocess.Popen("nauty-geng {0}".format(options), shell=True,
|
||||
stdin=subprocess.PIPE, stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE, close_fds=True,
|
||||
**enc_kwargs)
|
|
@ -112,10 +112,10 @@ diff -up build/pkgs/sagetex/src/sagetexparse.py.orig build/pkgs/sagetex/src/sage
|
|||
self.result += t.code[1:-1] + '\n\n'
|
||||
|
||||
diff -up src/sage/combinat/finite_state_machine.py.orig src/sage/combinat/finite_state_machine.py
|
||||
--- src/sage/combinat/finite_state_machine.py.orig 2020-01-01 04:03:10.000000000 -0700
|
||||
+++ src/sage/combinat/finite_state_machine.py 2020-02-25 13:42:46.676646848 -0700
|
||||
@@ -936,7 +936,7 @@ from six.moves import range, zip_longest
|
||||
from six import itervalues
|
||||
--- src/sage/combinat/finite_state_machine.py.orig 2020-05-20 16:33:41.000000000 -0600
|
||||
+++ src/sage/combinat/finite_state_machine.py 2020-07-06 16:47:19.198130202 -0600
|
||||
@@ -935,7 +935,7 @@ import six
|
||||
from six.moves import range, zip_longest, zip
|
||||
|
||||
from IPython.lib.pretty import pretty
|
||||
-import collections
|
||||
|
@ -123,7 +123,7 @@ diff -up src/sage/combinat/finite_state_machine.py.orig src/sage/combinat/finite
|
|||
import itertools
|
||||
from copy import copy, deepcopy
|
||||
|
||||
@@ -14161,7 +14161,7 @@ def is_FSMProcessIterator(PI):
|
||||
@@ -14159,7 +14159,7 @@ def is_FSMProcessIterator(PI):
|
||||
|
||||
|
||||
class FSMProcessIterator(SageObject,
|
||||
|
@ -132,21 +132,47 @@ diff -up src/sage/combinat/finite_state_machine.py.orig src/sage/combinat/finite
|
|||
"""
|
||||
This class takes an input, feeds it into a finite state machine
|
||||
(automaton or transducer, in particular), tests whether this was
|
||||
diff -up src/sage/combinat/root_system/branching_rules.py.orig src/sage/combinat/root_system/branching_rules.py
|
||||
--- src/sage/combinat/root_system/branching_rules.py.orig 2020-01-01 04:03:10.000000000 -0700
|
||||
+++ src/sage/combinat/root_system/branching_rules.py 2020-02-25 13:42:46.678646812 -0700
|
||||
@@ -1750,7 +1750,7 @@ def branching_rule(Rtype, Stype, rule="d
|
||||
elif rule == "tensor" or rule == "tensor-debug":
|
||||
if not Stype.is_compound():
|
||||
raise ValueError("Tensor product requires more than one factor")
|
||||
- if len(stypes) is not 2:
|
||||
+ if len(stypes) != 2:
|
||||
raise ValueError("Not implemented")
|
||||
if Rtype[0] == 'A':
|
||||
nr = Rtype[1]+1
|
||||
diff -up src/sage/cpython/debugimpl.c.orig src/sage/cpython/debugimpl.c
|
||||
--- src/sage/cpython/debugimpl.c.orig 2020-05-20 16:33:41.000000000 -0600
|
||||
+++ src/sage/cpython/debugimpl.c 2020-07-07 13:56:17.121624915 -0600
|
||||
@@ -155,6 +155,7 @@ static void _type_debug(PyTypeObject* tp
|
||||
printf(" tp_basicsize: %ld\n", (long)tp->tp_basicsize);
|
||||
printf(" tp_itemsize: %ld\n", (long)tp->tp_itemsize);
|
||||
printf(" tp_dictoffset: %ld\n", (long)tp->tp_dictoffset);
|
||||
+ printf(" tp_vectorcall_offset: %ld\n", (long)tp->tp_vectorcall_offset);
|
||||
if HAVE_WEAKREFS(tp)
|
||||
{
|
||||
printf(" tp_weaklistoffset: %ld\n", (long)tp->tp_weaklistoffset);
|
||||
@@ -185,7 +186,6 @@ static void _type_debug(PyTypeObject* tp
|
||||
attr_pointer(tp_free);
|
||||
|
||||
attr_pointer_meth(tp_repr, "__repr__");
|
||||
- attr_pointer(tp_print);
|
||||
attr_pointer_meth(tp_hash, "__hash__");
|
||||
attr_pointer_meth(tp_call, "__call__");
|
||||
attr_pointer_meth(tp_str, "__str__");
|
||||
diff -up src/sage/cpython/debug.pyx.orig src/sage/cpython/debug.pyx
|
||||
--- src/sage/cpython/debug.pyx.orig 2020-05-20 16:33:41.000000000 -0600
|
||||
+++ src/sage/cpython/debug.pyx 2020-07-07 13:57:49.169641697 -0600
|
||||
@@ -232,6 +232,7 @@ def type_debug(cls):
|
||||
tp_basicsize: 16
|
||||
tp_itemsize: 0
|
||||
tp_dictoffset: 0
|
||||
+ tp_vectorcall_offset: 0
|
||||
tp_weaklistoffset: 0
|
||||
tp_base (__base__): NULL
|
||||
tp_bases (__bases__): tuple:
|
||||
@@ -259,7 +260,6 @@ def type_debug(cls):
|
||||
tp_dealloc (__dealloc__): 0x7fc57d757010
|
||||
tp_free: PyObject_Del
|
||||
tp_repr (__repr__): 0x7fc57d75b990
|
||||
- tp_print: NULL
|
||||
tp_hash (__hash__): _Py_HashPointer
|
||||
tp_call (__call__): NULL
|
||||
tp_str (__str__): 0x7fc57d757020
|
||||
diff -up src/sage/geometry/triangulation/point_configuration.py.orig src/sage/geometry/triangulation/point_configuration.py
|
||||
--- src/sage/geometry/triangulation/point_configuration.py.orig 2020-01-01 04:03:10.000000000 -0700
|
||||
+++ src/sage/geometry/triangulation/point_configuration.py 2020-02-26 14:41:58.109624057 -0700
|
||||
--- src/sage/geometry/triangulation/point_configuration.py.orig 2020-05-20 16:33:41.000000000 -0600
|
||||
+++ src/sage/geometry/triangulation/point_configuration.py 2020-07-06 16:48:01.176121036 -0600
|
||||
@@ -619,11 +619,11 @@ class PointConfiguration(UniqueRepresent
|
||||
['{{0,1,2,4},{1,2,3,4}}']
|
||||
"""
|
||||
|
@ -162,8 +188,8 @@ diff -up src/sage/geometry/triangulation/point_configuration.py.orig src/sage/ge
|
|||
if verbose:
|
||||
print("#### TOPCOM input ####")
|
||||
diff -up src/sage/graphs/graph_latex.py.orig src/sage/graphs/graph_latex.py
|
||||
--- src/sage/graphs/graph_latex.py.orig 2020-01-01 04:03:10.000000000 -0700
|
||||
+++ src/sage/graphs/graph_latex.py 2020-02-25 13:42:46.679646794 -0700
|
||||
--- src/sage/graphs/graph_latex.py.orig 2020-05-20 16:33:41.000000000 -0600
|
||||
+++ src/sage/graphs/graph_latex.py 2020-07-06 16:48:01.177121036 -0600
|
||||
@@ -1156,7 +1156,7 @@ class GraphLatex(SageObject):
|
||||
#
|
||||
elif name in color_dicts:
|
||||
|
@ -223,8 +249,8 @@ diff -up src/sage/graphs/graph_latex.py.orig src/sage/graphs/graph_latex.py
|
|||
for key, p in value.items():
|
||||
if not((isinstance(p, tuple)) and (len(p) == 2) and (p[0] >= 0) and (p[1] in compass_points)):
|
||||
diff -up src/sage/interfaces/frobby.py.orig src/sage/interfaces/frobby.py
|
||||
--- src/sage/interfaces/frobby.py.orig 2020-01-01 04:03:10.000000000 -0700
|
||||
+++ src/sage/interfaces/frobby.py 2020-02-26 14:41:07.262562710 -0700
|
||||
--- src/sage/interfaces/frobby.py.orig 2020-05-20 16:33:41.000000000 -0600
|
||||
+++ src/sage/interfaces/frobby.py 2020-07-06 16:48:01.178121036 -0600
|
||||
@@ -79,7 +79,7 @@ class Frobby:
|
||||
print("Frobby command: ", repr(command))
|
||||
print("Frobby input:\n", input)
|
||||
|
@ -235,8 +261,8 @@ diff -up src/sage/interfaces/frobby.py.orig src/sage/interfaces/frobby.py
|
|||
frinput = str_to_bytes(input)
|
||||
else:
|
||||
diff -up src/sage/interfaces/gfan.py.orig src/sage/interfaces/gfan.py
|
||||
--- src/sage/interfaces/gfan.py.orig 2020-01-01 04:03:10.000000000 -0700
|
||||
+++ src/sage/interfaces/gfan.py 2020-02-25 13:42:46.679646794 -0700
|
||||
--- src/sage/interfaces/gfan.py.orig 2020-05-20 16:33:41.000000000 -0600
|
||||
+++ src/sage/interfaces/gfan.py 2020-07-06 16:48:01.178121036 -0600
|
||||
@@ -66,7 +66,7 @@ class Gfan(object):
|
||||
if six.PY2:
|
||||
enc_kwargs = {}
|
||||
|
@ -247,8 +273,8 @@ diff -up src/sage/interfaces/gfan.py.orig src/sage/interfaces/gfan.py
|
|||
gfan_processes = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE,
|
||||
**enc_kwargs)
|
||||
diff -up src/sage/interfaces/gp.py.orig src/sage/interfaces/gp.py
|
||||
--- src/sage/interfaces/gp.py.orig 2020-01-01 04:03:10.000000000 -0700
|
||||
+++ src/sage/interfaces/gp.py 2020-02-25 13:42:46.680646776 -0700
|
||||
--- src/sage/interfaces/gp.py.orig 2020-05-20 16:33:41.000000000 -0600
|
||||
+++ src/sage/interfaces/gp.py 2020-07-06 16:48:01.179121036 -0600
|
||||
@@ -934,17 +934,6 @@ class GpElement(ExpectElement):
|
||||
"""
|
||||
return repr(self.type()) == 't_STR'
|
||||
|
@ -268,8 +294,8 @@ diff -up src/sage/interfaces/gp.py.orig src/sage/interfaces/gp.py
|
|||
"""
|
||||
Return Python float.
|
||||
diff -up src/sage/interfaces/latte.py.orig src/sage/interfaces/latte.py
|
||||
--- src/sage/interfaces/latte.py.orig 2020-01-01 04:03:10.000000000 -0700
|
||||
+++ src/sage/interfaces/latte.py 2020-02-25 13:42:46.680646776 -0700
|
||||
--- src/sage/interfaces/latte.py.orig 2020-05-20 16:33:41.000000000 -0600
|
||||
+++ src/sage/interfaces/latte.py 2020-07-06 16:48:01.180121036 -0600
|
||||
@@ -152,6 +152,7 @@ def count(arg, ehrhart_polynomial=False,
|
||||
latte_proc = Popen(args,
|
||||
stdin=PIPE, stdout=PIPE,
|
||||
|
@ -287,8 +313,8 @@ diff -up src/sage/interfaces/latte.py.orig src/sage/interfaces/latte.py
|
|||
|
||||
ans, err = latte_proc.communicate(arg)
|
||||
diff -up src/sage/interfaces/sagespawn.pyx.orig src/sage/interfaces/sagespawn.pyx
|
||||
--- src/sage/interfaces/sagespawn.pyx.orig 2020-01-01 04:03:10.000000000 -0700
|
||||
+++ src/sage/interfaces/sagespawn.pyx 2020-02-25 13:42:46.680646776 -0700
|
||||
--- src/sage/interfaces/sagespawn.pyx.orig 2020-05-20 16:33:41.000000000 -0600
|
||||
+++ src/sage/interfaces/sagespawn.pyx 2020-07-06 16:48:01.180121036 -0600
|
||||
@@ -1,6 +1,6 @@
|
||||
"""
|
||||
Sage wrapper around pexpect's ``spawn`` class and
|
||||
|
@ -336,9 +362,10 @@ diff -up src/sage/interfaces/sagespawn.pyx.orig src/sage/interfaces/sagespawn.py
|
|||
except (OSError, IOError):
|
||||
pass
|
||||
self.fileobj.close()
|
||||
diff -up src/sage/lfunctions/lcalc.py.orig src/sage/lfunctions/lcalc.py
|
||||
diff -up src/sage/libs/coxeter3/coxeter.pyx.orig src/sage/libs/coxeter3/coxeter.pyx
|
||||
--- src/sage/libs/coxeter3/coxeter.pyx.orig 2020-01-01 04:03:10.000000000 -0700
|
||||
+++ src/sage/libs/coxeter3/coxeter.pyx 2020-02-25 13:42:46.680646776 -0700
|
||||
--- src/sage/libs/coxeter3/coxeter.pyx.orig 2020-05-20 16:33:41.000000000 -0600
|
||||
+++ src/sage/libs/coxeter3/coxeter.pyx 2020-07-06 16:48:01.181121035 -0600
|
||||
@@ -33,7 +33,7 @@ cdef class String:
|
||||
EXAMPLES::
|
||||
|
||||
|
@ -472,8 +499,8 @@ diff -up src/sage/libs/coxeter3/coxeter.pyx.orig src/sage/libs/coxeter3/coxeter.
|
|||
if rank == 0:
|
||||
raise NotImplementedError("Coxeter group of type ['A',0] using Coxeter 3 not yet implemented")
|
||||
diff -up src/sage/misc/parser.pyx.orig src/sage/misc/parser.pyx
|
||||
--- src/sage/misc/parser.pyx.orig 2020-01-01 04:03:10.000000000 -0700
|
||||
+++ src/sage/misc/parser.pyx 2020-02-25 13:42:46.681646759 -0700
|
||||
--- src/sage/misc/parser.pyx.orig 2020-05-20 16:33:41.000000000 -0600
|
||||
+++ src/sage/misc/parser.pyx 2020-07-06 16:48:01.182121035 -0600
|
||||
@@ -95,7 +95,7 @@ def token_to_str(int token):
|
||||
|
||||
|
||||
|
@ -772,9 +799,137 @@ diff -up src/sage/misc/parser.pyx.orig src/sage/misc/parser.pyx
|
|||
tokens.backtrack()
|
||||
return self.p_list(tokens)
|
||||
else:
|
||||
diff -up src/sage/misc/sageinspect.py.orig src/sage/misc/sageinspect.py
|
||||
--- src/sage/misc/sageinspect.py.orig 2020-05-20 16:33:41.000000000 -0600
|
||||
+++ src/sage/misc/sageinspect.py 2020-07-09 16:11:23.134895309 -0600
|
||||
@@ -485,35 +485,46 @@ class SageArgSpecVisitor(ast.NodeVisitor
|
||||
return False
|
||||
return node.id
|
||||
|
||||
- if six.PY3:
|
||||
- def visit_NameConstant(self, node):
|
||||
- """
|
||||
- Visit a Python AST :class:`ast.NameConstant` node.
|
||||
+ def visit_Constant(self, node):
|
||||
+ r"""
|
||||
+ Visit a Python AST :class:`ast.Constant` node.
|
||||
|
||||
- This is an optimization added in Python 3.4 for the special cases
|
||||
- of True, False, and None.
|
||||
+ INPUT:
|
||||
|
||||
- INPUT:
|
||||
+ - ``node`` - the node instance to visit
|
||||
|
||||
- - ``node`` - the node instance to visit
|
||||
+ OUTPUT:
|
||||
|
||||
- OUTPUT:
|
||||
+ - the boolean, number, or string the ``node`` represents
|
||||
|
||||
- - None, True, False.
|
||||
+ EXAMPLES::
|
||||
|
||||
- EXAMPLES::
|
||||
+ sage: import ast, sage.misc.sageinspect as sms
|
||||
+ sage: visitor = sms.SageArgSpecVisitor()
|
||||
+ sage: vis = lambda x: visitor.visit_Constant(ast.parse(x).body[0].value)
|
||||
+ sage: [vis(n) for n in ['True', 'False', 'None']]
|
||||
+ [True, False, None]
|
||||
+ sage: [type(vis(n)) for n in ['True', 'False', 'None']]
|
||||
+ [<type 'bool'>, <type 'bool'>, <type 'NoneType'>]
|
||||
|
||||
- sage: import ast, sage.misc.sageinspect as sms # py3
|
||||
- sage: visitor = sms.SageArgSpecVisitor() # py3
|
||||
- sage: vis = lambda x: visitor.visit_NameConstant(ast.parse(x).body[0].value) # py3
|
||||
- sage: [vis(n) for n in ['True', 'False', 'None']] # py3
|
||||
- [True, False, None]
|
||||
- sage: [type(vis(n)) for n in ['True', 'False', 'None']] # py3
|
||||
- [<type 'bool'>, <type 'bool'>, <type 'NoneType'>]
|
||||
- """
|
||||
+ sage: vis = lambda x: visitor.visit_Constant(ast.parse(x).body[0].value)
|
||||
+ sage: [vis(s) for s in ['"abstract"', "u'syntax'", r'''r"tr\ee"''']]
|
||||
+ ['abstract', u'syntax', 'tr\\ee']
|
||||
|
||||
- return node.value
|
||||
+ sage: vis = lambda x: visitor.visit_Constant(ast.parse(x).body[0].value)
|
||||
+ sage: [vis(n) for n in ['123', '0.0', str(-pi.n())]] # py2
|
||||
+ [123, 0.0, -3.14159265358979]
|
||||
+ sage: [vis(n) for n in ['123', '0.0']] # py3
|
||||
+ [123, 0.0]
|
||||
+
|
||||
+ .. NOTE::
|
||||
|
||||
+ On Python 3 negative numbers are parsed first, for some reason, as
|
||||
+ a UnaryOp node.
|
||||
+ """
|
||||
+ return node.value
|
||||
+
|
||||
+ if six.PY3:
|
||||
def visit_arg(self, node):
|
||||
r"""
|
||||
Visit a Python AST :class:`ast.arg` node.
|
||||
@@ -543,57 +554,6 @@ class SageArgSpecVisitor(ast.NodeVisitor
|
||||
"""
|
||||
return node.arg
|
||||
|
||||
- def visit_Num(self, node):
|
||||
- """
|
||||
- Visit a Python AST :class:`ast.Num` node.
|
||||
-
|
||||
- INPUT:
|
||||
-
|
||||
- - ``node`` - the node instance to visit
|
||||
-
|
||||
- OUTPUT:
|
||||
-
|
||||
- - the number the ``node`` represents
|
||||
-
|
||||
- EXAMPLES::
|
||||
-
|
||||
- sage: import ast, sage.misc.sageinspect as sms
|
||||
- sage: visitor = sms.SageArgSpecVisitor()
|
||||
- sage: vis = lambda x: visitor.visit_Num(ast.parse(x).body[0].value)
|
||||
- sage: [vis(n) for n in ['123', '0.0', str(-pi.n())]] # py2
|
||||
- [123, 0.0, -3.14159265358979]
|
||||
- sage: [vis(n) for n in ['123', '0.0']] # py3
|
||||
- [123, 0.0]
|
||||
-
|
||||
- .. NOTE::
|
||||
-
|
||||
- On Python 3 negative numbers are parsed first, for some reason, as
|
||||
- a UnaryOp node.
|
||||
- """
|
||||
- return node.n
|
||||
-
|
||||
- def visit_Str(self, node):
|
||||
- r"""
|
||||
- Visit a Python AST :class:`ast.Str` node.
|
||||
-
|
||||
- INPUT:
|
||||
-
|
||||
- - ``node`` - the node instance to visit
|
||||
-
|
||||
- OUTPUT:
|
||||
-
|
||||
- - the string the ``node`` represents
|
||||
-
|
||||
- EXAMPLES::
|
||||
-
|
||||
- sage: import ast, sage.misc.sageinspect as sms
|
||||
- sage: visitor = sms.SageArgSpecVisitor()
|
||||
- sage: vis = lambda x: visitor.visit_Str(ast.parse(x).body[0].value)
|
||||
- sage: [vis(s) for s in ['"abstract"', "u'syntax'", r'''r"tr\ee"''']]
|
||||
- ['abstract', u'syntax', 'tr\\ee']
|
||||
- """
|
||||
- return node.s
|
||||
-
|
||||
def visit_List(self, node):
|
||||
"""
|
||||
Visit a Python AST :class:`ast.List` node.
|
||||
diff -up src/sage/plot/plot3d/plot3d.py.orig src/sage/plot/plot3d/plot3d.py
|
||||
--- src/sage/plot/plot3d/plot3d.py.orig 2020-01-01 04:03:10.000000000 -0700
|
||||
+++ src/sage/plot/plot3d/plot3d.py 2020-02-25 13:42:46.681646759 -0700
|
||||
--- src/sage/plot/plot3d/plot3d.py.orig 2020-05-20 16:33:41.000000000 -0600
|
||||
+++ src/sage/plot/plot3d/plot3d.py 2020-07-06 16:48:01.183121035 -0600
|
||||
@@ -188,7 +188,8 @@ class _Coordinates(object):
|
||||
sage: arb((x+z,y*z,z), z, (x,y))
|
||||
Arbitrary Coordinates coordinate transform (z in terms of x, y)
|
||||
|
@ -786,8 +941,8 @@ diff -up src/sage/plot/plot3d/plot3d.py.orig src/sage/plot/plot3d/plot3d.py
|
|||
raise ValueError('variables were specified incorrectly for this coordinate system; incorrect variables were %s'%list(set(all_vars).symmetric_difference(set(indep_vars+[dep_var]))))
|
||||
self.dep_var = dep_var
|
||||
diff -up src/sage/plot/point.py.orig src/sage/plot/point.py
|
||||
--- src/sage/plot/point.py.orig 2020-01-01 04:03:10.000000000 -0700
|
||||
+++ src/sage/plot/point.py 2020-02-25 13:42:46.681646759 -0700
|
||||
--- src/sage/plot/point.py.orig 2020-05-20 16:33:41.000000000 -0600
|
||||
+++ src/sage/plot/point.py 2020-07-06 16:48:01.184121035 -0600
|
||||
@@ -29,7 +29,7 @@ TESTS::
|
||||
from sage.misc.decorators import options, rename_keyword
|
||||
from sage.plot.colors import to_mpl_color
|
||||
|
@ -807,9 +962,9 @@ diff -up src/sage/plot/point.py.orig src/sage/plot/point.py
|
|||
|
||||
try:
|
||||
diff -up src/sage/repl/display/fancy_repr.py.orig src/sage/repl/display/fancy_repr.py
|
||||
--- src/sage/repl/display/fancy_repr.py.orig 2020-01-01 04:03:10.000000000 -0700
|
||||
+++ src/sage/repl/display/fancy_repr.py 2020-02-25 13:42:46.682646741 -0700
|
||||
@@ -15,7 +15,7 @@ Representations of objects.
|
||||
--- src/sage/repl/display/fancy_repr.py.orig 2020-05-20 16:33:41.000000000 -0600
|
||||
+++ src/sage/repl/display/fancy_repr.py 2020-07-06 16:48:01.184121035 -0600
|
||||
@@ -15,7 +15,7 @@ Representations of objects
|
||||
import types
|
||||
|
||||
from IPython.lib.pretty import (
|
||||
|
@ -828,8 +983,8 @@ diff -up src/sage/repl/display/fancy_repr.py.orig src/sage/repl/display/fancy_re
|
|||
else:
|
||||
# A user-provided repr. Find newlines and replace them with p.break_()
|
||||
diff -up src/sage/repl/ipython_kernel/interact.py.orig src/sage/repl/ipython_kernel/interact.py
|
||||
--- src/sage/repl/ipython_kernel/interact.py.orig 2020-01-01 04:03:10.000000000 -0700
|
||||
+++ src/sage/repl/ipython_kernel/interact.py 2020-02-25 13:42:46.682646741 -0700
|
||||
--- src/sage/repl/ipython_kernel/interact.py.orig 2020-05-20 16:33:41.000000000 -0600
|
||||
+++ src/sage/repl/ipython_kernel/interact.py 2020-07-06 16:48:01.185121034 -0600
|
||||
@@ -35,7 +35,8 @@ EXAMPLES::
|
||||
|
||||
from ipywidgets.widgets import SelectionSlider, ValueWidget, ToggleButtons
|
||||
|
@ -841,9 +996,9 @@ diff -up src/sage/repl/ipython_kernel/interact.py.orig src/sage/repl/ipython_ker
|
|||
from .widgets_sagenb import input_grid
|
||||
from sage.structure.element import parent
|
||||
diff -up src/sage/rings/integer.pyx.orig src/sage/rings/integer.pyx
|
||||
--- src/sage/rings/integer.pyx.orig 2020-02-27 10:29:19.004788998 -0700
|
||||
+++ src/sage/rings/integer.pyx 2020-02-27 15:48:31.176289587 -0700
|
||||
@@ -7123,7 +7123,7 @@ cdef int mpz_set_str_python(mpz_ptr z, c
|
||||
--- src/sage/rings/integer.pyx.orig 2020-05-20 16:33:41.000000000 -0600
|
||||
+++ src/sage/rings/integer.pyx 2020-07-06 16:48:01.187121034 -0600
|
||||
@@ -7135,7 +7135,7 @@ cdef int mpz_set_str_python(mpz_ptr z, c
|
||||
while x[0] == c' ': x += 1 # Strip spaces
|
||||
|
||||
# Disallow a sign here
|
||||
|
@ -853,8 +1008,8 @@ diff -up src/sage/rings/integer.pyx.orig src/sage/rings/integer.pyx
|
|||
|
||||
assert base >= 2
|
||||
diff -up src/sage/rings/polynomial/pbori.pyx.orig src/sage/rings/polynomial/pbori.pyx
|
||||
--- src/sage/rings/polynomial/pbori.pyx.orig 2020-02-27 10:58:59.991311061 -0700
|
||||
+++ src/sage/rings/polynomial/pbori.pyx 2020-02-27 15:48:31.177289568 -0700
|
||||
--- src/sage/rings/polynomial/pbori.pyx.orig 2020-07-06 16:13:17.464497408 -0600
|
||||
+++ src/sage/rings/polynomial/pbori.pyx 2020-07-06 16:48:01.190121033 -0600
|
||||
@@ -4764,8 +4764,7 @@ cdef class PolynomialConstruct:
|
||||
# So, it is just a conversion. [Simon King]
|
||||
return (<BooleanPolynomialRing>ring)._element_constructor_(x)
|
||||
|
@ -866,8 +1021,8 @@ diff -up src/sage/rings/polynomial/pbori.pyx.orig src/sage/rings/polynomial/pbor
|
|||
|
||||
cdef class MonomialConstruct:
|
||||
diff -up src/sage/rings/real_mpfi.pyx.orig src/sage/rings/real_mpfi.pyx
|
||||
--- src/sage/rings/real_mpfi.pyx.orig 2020-02-27 10:14:36.381371499 -0700
|
||||
+++ src/sage/rings/real_mpfi.pyx 2020-02-27 15:48:31.178289550 -0700
|
||||
--- src/sage/rings/real_mpfi.pyx.orig 2020-07-06 16:19:17.719457638 -0600
|
||||
+++ src/sage/rings/real_mpfi.pyx 2020-07-06 16:48:01.192121033 -0600
|
||||
@@ -1941,12 +1941,12 @@ cdef class RealIntervalFieldElement(Ring
|
||||
|
||||
cdef long digits
|
||||
|
@ -893,9 +1048,9 @@ diff -up src/sage/rings/real_mpfi.pyx.orig src/sage/rings/real_mpfi.pyx
|
|||
mant_string = bytes_to_str(tmp_cstr+1)
|
||||
sign_string = bytes_to_str(b'-')
|
||||
diff -up src/sage/rings/real_mpfr.pyx.orig src/sage/rings/real_mpfr.pyx
|
||||
--- src/sage/rings/real_mpfr.pyx.orig 2020-02-27 10:16:40.188177426 -0700
|
||||
+++ src/sage/rings/real_mpfr.pyx 2020-02-27 15:48:31.179289531 -0700
|
||||
@@ -2037,7 +2037,7 @@ cdef class RealNumber(sage.structure.ele
|
||||
--- src/sage/rings/real_mpfr.pyx.orig 2020-07-06 16:19:17.720457638 -0600
|
||||
+++ src/sage/rings/real_mpfr.pyx 2020-07-06 16:48:01.194121032 -0600
|
||||
@@ -2045,7 +2045,7 @@ cdef class RealNumber(sage.structure.ele
|
||||
if s is NULL:
|
||||
raise RuntimeError("unable to convert an mpfr number to a string")
|
||||
# t contains just digits (no sign, decimal point or exponent)
|
||||
|
@ -905,9 +1060,9 @@ diff -up src/sage/rings/real_mpfr.pyx.orig src/sage/rings/real_mpfr.pyx
|
|||
t = char_to_str(s + 1)
|
||||
else:
|
||||
diff -up src/sage/structure/sage_object.pyx.orig src/sage/structure/sage_object.pyx
|
||||
--- src/sage/structure/sage_object.pyx.orig 2020-01-01 04:03:10.000000000 -0700
|
||||
+++ src/sage/structure/sage_object.pyx 2020-02-25 13:42:56.898464506 -0700
|
||||
@@ -671,7 +671,7 @@ cdef class SageObject:
|
||||
--- src/sage/structure/sage_object.pyx.orig 2020-05-20 16:33:41.000000000 -0600
|
||||
+++ src/sage/structure/sage_object.pyx 2020-07-06 16:48:01.194121032 -0600
|
||||
@@ -680,7 +680,7 @@ cdef class SageObject:
|
||||
try:
|
||||
s = self._interface_init_(I)
|
||||
except Exception:
|
||||
|
@ -917,9 +1072,9 @@ diff -up src/sage/structure/sage_object.pyx.orig src/sage/structure/sage_object.
|
|||
if c:
|
||||
try:
|
||||
diff -up src/sage/symbolic/expression.pyx.orig src/sage/symbolic/expression.pyx
|
||||
--- src/sage/symbolic/expression.pyx.orig 2020-02-27 09:30:14.669819391 -0700
|
||||
+++ src/sage/symbolic/expression.pyx 2020-02-27 15:48:31.182289476 -0700
|
||||
@@ -12945,7 +12945,7 @@ cdef class hold_class:
|
||||
--- src/sage/symbolic/expression.pyx.orig 2020-07-06 16:22:36.515435688 -0600
|
||||
+++ src/sage/symbolic/expression.pyx 2020-07-06 16:48:01.198121032 -0600
|
||||
@@ -12990,7 +12990,7 @@ cdef class hold_class:
|
||||
sage: SR(2)^5
|
||||
32
|
||||
"""
|
||||
|
@ -928,7 +1083,7 @@ diff -up src/sage/symbolic/expression.pyx.orig src/sage/symbolic/expression.pyx
|
|||
|
||||
def __exit__(self, *args):
|
||||
"""
|
||||
@@ -12958,7 +12958,7 @@ cdef class hold_class:
|
||||
@@ -13003,7 +13003,7 @@ cdef class hold_class:
|
||||
sage: SR(2)^5
|
||||
32
|
||||
"""
|
||||
|
@ -937,3 +1092,25 @@ diff -up src/sage/symbolic/expression.pyx.orig src/sage/symbolic/expression.pyx
|
|||
|
||||
def start(self):
|
||||
"""
|
||||
diff -up src/sage/symbolic/ring.pyx.orig src/sage/symbolic/ring.pyx
|
||||
--- src/sage/symbolic/ring.pyx.orig 2020-07-06 16:20:02.592452688 -0600
|
||||
+++ src/sage/symbolic/ring.pyx 2020-07-10 09:09:09.512400345 -0600
|
||||
@@ -32,7 +32,6 @@ from sage.rings.all import RR, CC, ZZ
|
||||
|
||||
import keyword
|
||||
import operator
|
||||
-import parser
|
||||
|
||||
# Do not allow any of these keywords as identifiers for symbolic variables
|
||||
KEYWORDS = set(keyword.kwlist).union(['exec', 'print', 'None', 'True',
|
||||
@@ -1405,8 +1404,8 @@ def isidentifier(x):
|
||||
pass # py2
|
||||
|
||||
try:
|
||||
- code = parser.expr(x).compile()
|
||||
+ code = compile(x, '<string>', 'eval')
|
||||
except (MemoryError, OverflowError, SyntaxError,
|
||||
- SystemError, parser.ParserError):
|
||||
+ SystemError, ValueError):
|
||||
return False
|
||||
return len(code.co_names) == 1 and code.co_names[0] == x
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
diff -up src/bin/sage.orig src/bin/sage
|
||||
--- src/bin/sage.orig 2020-01-01 04:03:10.000000000 -0700
|
||||
+++ src/bin/sage 2020-02-25 13:37:42.510072662 -0700
|
||||
--- src/bin/sage.orig 2020-05-20 16:33:41.000000000 -0600
|
||||
+++ src/bin/sage 2020-07-06 16:33:49.015329159 -0600
|
||||
@@ -26,13 +26,10 @@ usage() {
|
||||
echo " file.[sage|py|spyx] -- run given .sage, .py or .spyx file"
|
||||
echo " -advanced -- list all command line options"
|
||||
|
@ -74,7 +74,7 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
echo " -python [...] -- run the Python interpreter"
|
||||
echo " -python2 [...] -- run the Python 2 interpreter"
|
||||
echo " -python3 [...] -- run the Python 3 interpreter"
|
||||
@@ -144,55 +125,7 @@ usage_advanced() {
|
||||
@@ -147,55 +128,7 @@ usage_advanced() {
|
||||
echo
|
||||
#### 1.......................26..................................................78
|
||||
#### |.....................--.|...................................................|
|
||||
|
@ -131,7 +131,7 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
echo " -startuptime [module] -- display how long each component of Sage takes to"
|
||||
echo " start up; optionally specify a module to get more"
|
||||
echo " details about that particular module"
|
||||
@@ -226,7 +159,6 @@ usage_advanced() {
|
||||
@@ -229,7 +162,6 @@ usage_advanced() {
|
||||
echo " -coverage <files> -- give info about doctest coverage of files"
|
||||
echo " -coverageall -- give summary info about doctest coverage of all"
|
||||
echo " files in the Sage library"
|
||||
|
@ -139,14 +139,12 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
echo " -search_src <string> -- search through all the Sage library code for string"
|
||||
echo " -search_doc <string> -- search through the Sage documentation for string"
|
||||
echo " -grep <string> -- same as -search_src"
|
||||
@@ -252,16 +184,6 @@ usage_advanced() {
|
||||
@@ -255,14 +187,6 @@ usage_advanced() {
|
||||
echo
|
||||
#### 1.......................26..................................................78
|
||||
#### |.....................--.|...................................................|
|
||||
- echo "Making Sage packages or distributions:"
|
||||
- echo " -sdist -- build a source distribution of Sage"
|
||||
- echo " -pkg <dir> -- create Sage package dir.spkg from a given directory"
|
||||
- echo " -pkg_nc <dir> -- as -pkg, but do not compress the package"
|
||||
- echo " -fix-pkg-checksums -- fix the checksums from build/pkgs directories from "
|
||||
- echo " the packages located in upstream/"
|
||||
-
|
||||
|
@ -156,7 +154,7 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
echo "Valgrind memory debugging:"
|
||||
echo " -cachegrind -- run Sage using Valgrind's cachegrind tool. The log"
|
||||
echo " files are named sage-cachegrind.PID can be found in"
|
||||
@@ -275,9 +197,6 @@ usage_advanced() {
|
||||
@@ -276,9 +200,6 @@ usage_advanced() {
|
||||
echo " -memcheck -- run Sage using Valgrind's memcheck tool. The log"
|
||||
echo " files are named sage-memcheck.PID can be found in"
|
||||
echo " $DOT_SAGE"
|
||||
|
@ -166,7 +164,7 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
echo " -valgrind -- this is an alias for -memcheck"
|
||||
echo
|
||||
echo "You can also use -- before a long option, e.g., 'sage --optional'."
|
||||
@@ -287,116 +206,6 @@ usage_advanced() {
|
||||
@@ -288,115 +209,6 @@ usage_advanced() {
|
||||
|
||||
|
||||
#####################################################################
|
||||
|
@ -262,7 +260,7 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
- # Now install the packages
|
||||
- for PKG in $PACKAGES; do
|
||||
- echo
|
||||
- # First check that $PKG is actually a Makefile target
|
||||
- # Check that $PKG is actually a Makefile target
|
||||
- # See https://trac.sagemath.org/ticket/25078
|
||||
- if ! echo "$ALL_TARGETS" | grep "^${PKG}$" >/dev/null; then
|
||||
- echo >&2 "Error: package '$PKG' not found"
|
||||
|
@ -271,7 +269,6 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
- fi
|
||||
- $MAKE SAGE_SPKG="sage-spkg $INSTALL_OPTIONS" "$PKG"
|
||||
- done
|
||||
-
|
||||
- echo "New packages may have been installed."
|
||||
- echo "Re-running configure and make in case any dependent packages need updating."
|
||||
- touch "$SAGE_ROOT/configure" && $MAKE all-build
|
||||
|
@ -283,7 +280,7 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
# Report information about the Sage environment
|
||||
#####################################################################
|
||||
|
||||
@@ -445,20 +254,6 @@ fi
|
||||
@@ -445,20 +257,6 @@ fi
|
||||
|
||||
# Prepare for running Sage, either interactively or non-interactively.
|
||||
sage_setup() {
|
||||
|
@ -304,7 +301,7 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
if [ ! -d "$IPYTHONDIR" ]; then
|
||||
# make sure that $DOT_SAGE exists so that ipython will happily
|
||||
# create its config directories there. If DOT_SAGE doesn't
|
||||
@@ -469,20 +264,6 @@ sage_setup() {
|
||||
@@ -469,20 +267,6 @@ sage_setup() {
|
||||
}
|
||||
|
||||
|
||||
|
@ -325,7 +322,7 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
# Start an interactive Sage session, this function never returns.
|
||||
interactive_sage() {
|
||||
sage_setup
|
||||
@@ -566,16 +347,6 @@ if [ "$1" = '-lisp' -o "$1" = '--lisp' ]
|
||||
@@ -566,16 +350,6 @@ if [ "$1" = '-lisp' -o "$1" = '--lisp' ]
|
||||
exec ecl "$@"
|
||||
fi
|
||||
|
||||
|
@ -342,8 +339,8 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
if [ "$1" = '-maxima' -o "$1" = '--maxima' ]; then
|
||||
shift
|
||||
exec maxima "$@"
|
||||
@@ -606,11 +377,6 @@ if [ "$1" = '--pip3' ]; then
|
||||
exec python3 -m pip "$@"
|
||||
@@ -606,11 +380,6 @@ if [ "$1" = '--pip3' ]; then
|
||||
exec "$SAGE_LOCAL"/bin/python3 -m pip "$@"
|
||||
fi
|
||||
|
||||
-if [ "$1" = '-fix-pkg-checksums' -o "$1" = '--fix-pkg-checksums' ]; then
|
||||
|
@ -354,8 +351,8 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
if [ "$1" = '-python' -o "$1" = '--python' ]; then
|
||||
shift
|
||||
if [ "$SAGE_PYTHON3" = 'yes' ]; then
|
||||
@@ -650,16 +416,6 @@ if [ "$1" = '-jupyter' -o "$1" = '--jupy
|
||||
exec jupyter "$@"
|
||||
@@ -650,16 +419,6 @@ if [ "$1" = '-jupyter' -o "$1" = '--jupy
|
||||
exec "$SAGE_LOCAL"/bin/jupyter "$@"
|
||||
fi
|
||||
|
||||
-if [ "$1" = '-git' -o "$1" = '--git' ]; then
|
||||
|
@ -368,10 +365,10 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
- exec git --git-dir="$SAGE_ROOT"/.git rev-parse --abbrev-ref HEAD
|
||||
-fi
|
||||
-
|
||||
if [ "$1" = '-sh' -o "$1" = '--sh' ]; then
|
||||
if [ "$1" = '-sh' -o "$1" = '--sh' -o "$1" = '-buildsh' -o "$1" = '--buildsh' ]; then
|
||||
# AUTHORS:
|
||||
# - Carl Witty and William Stein: initial version
|
||||
@@ -779,20 +535,6 @@ EOF
|
||||
@@ -792,20 +551,6 @@ EOF
|
||||
fi
|
||||
|
||||
#####################################################################
|
||||
|
@ -392,7 +389,7 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
# File conversion
|
||||
#####################################################################
|
||||
|
||||
@@ -823,11 +565,6 @@ fi
|
||||
@@ -836,11 +581,6 @@ fi
|
||||
# Run Sage's versions of the standard Algebra/Geometry etc. software
|
||||
#####################################################################
|
||||
|
||||
|
@ -404,7 +401,7 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
if [[ "$1" =~ ^--notebook=.* || "$1" =~ ^-n=.* || "$1" =~ ^-notebook=.* ]] ; then
|
||||
sage-cleaner &>/dev/null &
|
||||
exec sage-notebook "$@"
|
||||
@@ -838,13 +575,6 @@ if [ "$1" = "-notebook" -o "$1" = '--not
|
||||
@@ -851,13 +591,6 @@ if [ "$1" = "-notebook" -o "$1" = '--not
|
||||
exec sage-notebook "$@"
|
||||
fi
|
||||
|
||||
|
@ -418,7 +415,7 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
if [ "$1" = "-inotebook" -o "$1" = '--inotebook' ]; then
|
||||
shift
|
||||
sage-cleaner &>/dev/null &
|
||||
@@ -863,31 +593,12 @@ if [ "$1" = '-grepdoc' -o "$1" = "--grep
|
||||
@@ -876,31 +609,12 @@ if [ "$1" = '-grepdoc' -o "$1" = "--grep
|
||||
exit 0
|
||||
fi
|
||||
|
||||
|
@ -451,7 +448,7 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
sage_setup
|
||||
export PYTHONIOENCODING="utf-8" # Fix encoding for doctests
|
||||
if [ "$1" = '-tp' -o "$1" = '-btp' ]; then
|
||||
@@ -899,16 +610,6 @@ if [ "$1" = '-t' -o "$1" = '-bt' -o "$1"
|
||||
@@ -912,16 +626,6 @@ if [ "$1" = '-t' -o "$1" = '-bt' -o "$1"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
@ -468,7 +465,7 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
if [ "$1" = '-testall' -o "$1" = "--testall" ]; then
|
||||
shift
|
||||
sage_setup
|
||||
@@ -923,122 +624,6 @@ if [ "$1" = '-c' ]; then
|
||||
@@ -936,112 +640,6 @@ if [ "$1" = '-c' ]; then
|
||||
exec sage-eval "$@"
|
||||
fi
|
||||
|
||||
|
@ -555,16 +552,6 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
- exit 0
|
||||
-fi
|
||||
-
|
||||
-if [ "$1" = '-pkg' -o "$1" = '-spkg' -o "$1" = "--pkg" -o "$1" = "--spkg" ]; then
|
||||
- shift
|
||||
- exec sage-pkg "$@"
|
||||
-fi
|
||||
-
|
||||
-if [ "$1" = '-pkg_nc' -o "$1" = "--pkg_nc" ]; then
|
||||
- shift
|
||||
- exec sage-pkg -n "$@"
|
||||
-fi
|
||||
-
|
||||
-if [ "$1" = '-sdist' -o "$1" = "--sdist" ]; then
|
||||
- maybe_sage_location
|
||||
- shift
|
||||
|
@ -591,7 +578,7 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
if [ "$1" = '-gdb' -o "$1" = "--gdb" ]; then
|
||||
shift
|
||||
sage_setup
|
||||
@@ -1088,12 +673,6 @@ if [ "$1" = '-callgrind' -o "$1" = "--ca
|
||||
@@ -1091,12 +689,6 @@ if [ "$1" = '-callgrind' -o "$1" = "--ca
|
||||
exec sage-callgrind "$@"
|
||||
fi
|
||||
|
||||
|
@ -605,18 +592,29 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
exec sage-startuptime.py "$@"
|
||||
fi
|
||||
diff -up src/bin/sage-valgrind.orig src/bin/sage-valgrind
|
||||
--- src/bin/sage-valgrind.orig 2020-01-01 04:03:10.000000000 -0700
|
||||
+++ src/bin/sage-valgrind 2020-02-25 13:36:02.973848216 -0700
|
||||
@@ -4,17 +4,7 @@ if [ -z $SAGE_EXTCODE ]; then
|
||||
--- src/bin/sage-valgrind.orig 2020-05-20 16:33:41.000000000 -0600
|
||||
+++ src/bin/sage-valgrind 2020-07-07 08:59:38.369847693 -0600
|
||||
@@ -4,28 +4,7 @@ if [ -z $SAGE_EXTCODE ]; then
|
||||
SAGE_EXTCODE=`${0/-valgrind} -c "from sage.env import SAGE_EXTCODE; print(SAGE_EXTCODE)"`
|
||||
fi
|
||||
|
||||
-SUPP=""
|
||||
-if [ -f "$SAGE_EXTCODE/valgrind/python.supp" ]; then
|
||||
- SUPP+=" --suppressions=$SAGE_EXTCODE/valgrind/python.supp"
|
||||
-# Our python2/3 spkgs and also Debian install these files as python.supp and python3.supp
|
||||
-if [ "$SAGE_PYTHON_VERSION" = 2 ]; then
|
||||
- PYTHON_SUPP_FILENAME="python.supp"
|
||||
-else
|
||||
- PYTHON_SUPP_FILENAME="python$SAGE_PYTHON_VERSION.supp"
|
||||
-fi
|
||||
-for dir in "$SAGE_LOCAL/lib/valgrind" "/usr/local/lib/valgrind" "/usr/lib64/valgrind" "/usr/lib/valgrind" ; do
|
||||
- if [ -f "$dir"/"$PYTHON_SUPP_FILENAME" ]; then
|
||||
- SUPP=" --suppressions=$dir/$PYTHON_SUPP_FILENAME"
|
||||
- break
|
||||
- fi
|
||||
-done
|
||||
-if [ -z "$SUPP" ] ; then
|
||||
- echo "Python suppressions not found (not installed?), skipping"
|
||||
-fi
|
||||
-
|
||||
-SUPP+=" --suppressions=$SAGE_EXTCODE/valgrind/pyalloc.supp"
|
||||
-SUPP+=" --suppressions=$SAGE_EXTCODE/valgrind/sage.supp"
|
||||
-SUPP+=" --suppressions=$SAGE_EXTCODE/valgrind/sage-additional.supp"
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
diff -up src/sage/libs/ecl.pyx.orig src/sage/libs/ecl.pyx
|
||||
--- src/sage/libs/ecl.pyx.orig 2018-12-22 16:37:08.000000000 -0700
|
||||
+++ src/sage/libs/ecl.pyx 2019-01-17 10:00:52.554236288 -0700
|
||||
@@ -16,7 +16,7 @@ from __future__ import print_function, a
|
||||
--- src/sage/libs/ecl.pyx.orig 2020-07-07 09:07:43.622621879 -0600
|
||||
+++ src/sage/libs/ecl.pyx 2020-07-09 10:04:16.260992211 -0600
|
||||
@@ -15,7 +15,7 @@ Library interface to Embeddable Common L
|
||||
#adapted to work with pure Python types.
|
||||
|
||||
from libc.stdlib cimport abort
|
||||
-from libc.signal cimport SIGINT, SIGBUS, SIGSEGV, SIGCHLD
|
||||
+from libc.signal cimport SIGINT, SIGBUS, SIGSEGV, SIGCHLD, SIGFPE
|
||||
-from libc.signal cimport SIGINT, SIGBUS, SIGSEGV
|
||||
+from libc.signal cimport SIGINT, SIGBUS, SIGSEGV, SIGFPE
|
||||
from libc.signal cimport raise_ as signal_raise
|
||||
from posix.signal cimport sigaction, sigaction_t
|
||||
cimport cysignals.signals
|
||||
@@ -48,9 +48,14 @@ cdef extern from "eclsig.h":
|
||||
@@ -47,9 +47,14 @@ cdef extern from "eclsig.h":
|
||||
void ecl_sig_off()
|
||||
cdef sigaction_t ecl_sigint_handler
|
||||
cdef sigaction_t ecl_sigbus_handler
|
||||
|
@ -25,7 +25,7 @@ diff -up src/sage/libs/ecl.pyx.orig src/sage/libs/ecl.pyx
|
|||
|
||||
cdef cl_object string_to_object(char * s):
|
||||
return ecl_read_from_cstring(s)
|
||||
@@ -239,6 +244,7 @@ def init_ecl():
|
||||
@@ -232,6 +237,7 @@ def init_ecl():
|
||||
global ecl_has_booted
|
||||
cdef char *argv[1]
|
||||
cdef sigaction_t sage_action[32]
|
||||
|
@ -33,7 +33,7 @@ diff -up src/sage/libs/ecl.pyx.orig src/sage/libs/ecl.pyx
|
|||
cdef int i
|
||||
|
||||
if ecl_has_booted:
|
||||
@@ -258,6 +264,8 @@ def init_ecl():
|
||||
@@ -248,6 +254,8 @@ def init_ecl():
|
||||
for i in range(1,32):
|
||||
sigaction(i, NULL, &sage_action[i])
|
||||
|
||||
|
@ -42,7 +42,7 @@ diff -up src/sage/libs/ecl.pyx.orig src/sage/libs/ecl.pyx
|
|||
#initialize ECL
|
||||
ecl_set_option(ECL_OPT_SIGNAL_HANDLING_THREAD, 0)
|
||||
cl_boot(1, argv)
|
||||
@@ -265,8 +273,12 @@ def init_ecl():
|
||||
@@ -255,12 +263,19 @@ def init_ecl():
|
||||
#save signal handler from ECL
|
||||
sigaction(SIGINT, NULL, &ecl_sigint_handler)
|
||||
sigaction(SIGBUS, NULL, &ecl_sigbus_handler)
|
||||
|
@ -52,10 +52,7 @@ diff -up src/sage/libs/ecl.pyx.orig src/sage/libs/ecl.pyx
|
|||
+ #save ECL's floating point exception flags
|
||||
+ ecl_feflags = fegetexcept()
|
||||
+
|
||||
#verify that no SIGCHLD handler was installed
|
||||
cdef sigaction_t sig_test
|
||||
sigaction(SIGCHLD, NULL, &sig_test)
|
||||
@@ -277,6 +289,9 @@ def init_ecl():
|
||||
#and put the Sage signal handlers back
|
||||
for i in range(1,32):
|
||||
sigaction(i, &sage_action[i], NULL)
|
||||
|
||||
|
@ -66,8 +63,8 @@ diff -up src/sage/libs/ecl.pyx.orig src/sage/libs/ecl.pyx
|
|||
# *SAGE-LIST-OF-OBJECTS* to make it rooted in the reachable tree for the GC
|
||||
list_of_objects=cl_cons(Cnil,cl_cons(Cnil,Cnil))
|
||||
diff -up src/sage/libs/eclsig.h.orig src/sage/libs/eclsig.h
|
||||
--- src/sage/libs/eclsig.h.orig 2018-12-22 16:37:08.000000000 -0700
|
||||
+++ src/sage/libs/eclsig.h 2019-01-17 10:07:23.060570460 -0700
|
||||
--- src/sage/libs/eclsig.h.orig 2020-05-20 16:33:41.000000000 -0600
|
||||
+++ src/sage/libs/eclsig.h 2020-07-09 10:01:25.618299374 -0600
|
||||
@@ -9,25 +9,59 @@
|
||||
|
||||
|
||||
|
@ -129,9 +126,9 @@ diff -up src/sage/libs/eclsig.h.orig src/sage/libs/eclsig.h
|
|||
|
||||
/* This MUST be a macro because sig_on() must be in the same
|
||||
diff -up src/sage/libs/mpmath/ext_impl.pyx.orig src/sage/libs/mpmath/ext_impl.pyx
|
||||
--- src/sage/libs/mpmath/ext_impl.pyx.orig 2018-12-22 16:37:08.000000000 -0700
|
||||
+++ src/sage/libs/mpmath/ext_impl.pyx 2019-01-17 09:53:24.350937873 -0700
|
||||
@@ -164,9 +164,9 @@ opts_double_precision.rounding = ROUND_N
|
||||
--- src/sage/libs/mpmath/ext_impl.pyx.orig 2020-05-20 16:33:41.000000000 -0600
|
||||
+++ src/sage/libs/mpmath/ext_impl.pyx 2020-07-09 10:01:25.620299371 -0600
|
||||
@@ -162,9 +162,9 @@ opts_double_precision.rounding = ROUND_N
|
||||
opts_mini_prec.prec = 5
|
||||
opts_mini_prec.rounding = ROUND_D
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
diff -up src/sage/env.py.orig src/sage/env.py
|
||||
--- src/sage/env.py.orig 2019-10-03 16:07:45.910528067 -0300
|
||||
+++ src/sage/env.py 2019-10-03 16:08:40.659874228 -0300
|
||||
@@ -159,9 +159,9 @@ var('SAGE_DOC', join(SAGE_SHA
|
||||
var('SAGE_SPKG_INST', join(SAGE_LOCAL, 'var', 'lib', 'sage', 'installed'))
|
||||
--- src/sage/env.py.orig 2020-07-06 16:57:04.139002833 -0600
|
||||
+++ src/sage/env.py 2020-07-06 16:59:20.179973650 -0600
|
||||
@@ -167,9 +167,9 @@ var('SAGE_SPKG_INST', join(SAGE_LOC
|
||||
var('SAGE_LIB', os.path.dirname(os.path.dirname(sage.__file__)))
|
||||
var('SAGE_EXTCODE', join(SAGE_LIB, 'sage', 'ext_data'))
|
||||
|
||||
-var('SAGE_ROOT') # no fallback for SAGE_ROOT
|
||||
+var('SAGE_ROOT', '@@SAGE_ROOT@@')
|
||||
|
|
|
@ -76,7 +76,7 @@
|
|||
%endif
|
||||
|
||||
# Spkg equivalents of required rpms; we pretend they are installed as spkgs.
|
||||
%global SAGE_REQUIRED_PKGS 4ti2-1.6.9 bliss-0.73 cbc-2.10.4 CoCoALib-0.99650 coxeter3-3.1 cryptominisat-5.6.8 database_cremona_ellcurve-%{cremona_ver} gap_packages-4.10.2 gmp-6.1.2 libsirocco-2.0.2 lrslib-070 mcqd-1.0 meataxe-1.0 primecount-5.3 qepcad-B.1.72 saclib-2.2.7 surf-1.0.6-gcc6 tdlib-0.9.0
|
||||
%global SAGE_REQUIRED_PKGS 4ti2-1.6.9 bliss-0.73 CoCoALib-0.99710 coxeter3-3.1 cryptominisat-5.7.1 database_cremona_ellcurve-%{cremona_ver} gap_packages-4.11.0 libsirocco-2.0.2 lrslib-071 mcqd-1.0 meataxe-1.0 primecount-6.0 qepcad-B.1.72 saclib-2.2.7 surf-1.0.6-gcc6 tdlib-0.9.0
|
||||
|
||||
%ifarch %{ix86} x86_64
|
||||
%global SAGE_REQUIRED_PKGS %{SAGE_REQUIRED_PKGS} fes-0.2
|
||||
|
@ -93,8 +93,8 @@
|
|||
|
||||
Name: sagemath
|
||||
Summary: A free open-source mathematics software system
|
||||
Version: 9.0
|
||||
Release: 8%{?dist}
|
||||
Version: 9.1
|
||||
Release: 1%{?dist}
|
||||
# The file ${SAGE_ROOT}/COPYING.txt is the upstream license breakdown file
|
||||
# Additionally, every $files section has a comment with the license name
|
||||
# before files with that license
|
||||
|
@ -152,8 +152,8 @@ Patch10: %{name}-cremona.patch
|
|||
# adapt to python 3 and cython running in python 3 mode
|
||||
Patch11: %{name}-python3.patch
|
||||
|
||||
# correct path to the nauty geng program
|
||||
Patch12: %{name}-nauty.patch
|
||||
# adapt to ecl 20.4.24
|
||||
Patch12: %{name}-ecl.patch
|
||||
|
||||
# remove the buildroot path from Cython output
|
||||
Patch13: %{name}-buildroot.patch
|
||||
|
@ -161,9 +161,6 @@ Patch13: %{name}-buildroot.patch
|
|||
# update c++ standard to fix FTBFS
|
||||
Patch14: %{name}-lcalc.patch
|
||||
|
||||
# avoid assertion in coin backend
|
||||
Patch15: %{name}-cbc.patch
|
||||
|
||||
# Use system gap directories and modernize libgap interface
|
||||
Patch16: %{name}-libgap.patch
|
||||
|
||||
|
@ -218,6 +215,7 @@ BuildRequires: arb-devel
|
|||
BuildRequires: bliss-devel
|
||||
BuildRequires: boost-devel
|
||||
BuildRequires: brial-devel
|
||||
BuildRequires: cddlib-devel
|
||||
BuildRequires: cddlib-tools
|
||||
BuildRequires: cliquer-devel
|
||||
BuildRequires: coin-or-Cbc-devel
|
||||
|
@ -231,7 +229,7 @@ BuildRequires: factory-devel
|
|||
BuildRequires: fes-devel
|
||||
%endif
|
||||
BuildRequires: flint-devel
|
||||
BuildRequires: gap
|
||||
BuildRequires: gap-devel
|
||||
BuildRequires: gap-pkg-cohomolo
|
||||
BuildRequires: gap-pkg-corelg
|
||||
BuildRequires: gap-pkg-crime
|
||||
|
@ -281,7 +279,7 @@ BuildRequires: lapack-devel
|
|||
BuildRequires: latte-integrale
|
||||
BuildRequires: libbraiding-devel
|
||||
BuildRequires: libfplll-devel
|
||||
BuildRequires: libgap-devel
|
||||
BuildRequires: libgap
|
||||
BuildRequires: libhomfly-devel
|
||||
BuildRequires: libmpc-devel
|
||||
BuildRequires: libpng-devel
|
||||
|
@ -359,7 +357,6 @@ BuildRequires: python3dist(setuptools)
|
|||
BuildRequires: python3dist(simplegeneric)
|
||||
%endif
|
||||
BuildRequires: python3dist(six)
|
||||
BuildRequires: python3dist(speaklater)
|
||||
BuildRequires: python3dist(sphinx)
|
||||
BuildRequires: python3dist(sympy)
|
||||
BuildRequires: python3dist(zodb3)
|
||||
|
@ -896,7 +893,6 @@ popd
|
|||
%patch12
|
||||
%patch13
|
||||
%patch14
|
||||
%patch15
|
||||
%patch16
|
||||
|
||||
%if %{with fes}
|
||||
|
@ -962,6 +958,7 @@ sed -i 's,%{_bindir}/python,&3,' src/sage/misc/dev_tools.py
|
|||
sed -e 's,local/bin/python,bin/python,' \
|
||||
-e 's,#!%{_bindir}/python,&3,' \
|
||||
-i src/sage/repl/preparse.py
|
||||
sed -i 's,"$SAGE_LOCAL"/bin/python,%{_bindir}/python,g' src/bin/sage
|
||||
%if %{with bundled_ipython}
|
||||
sed -e "s|'%{_bindir}/env', 'which'|'%{_bindir}/which'|" \
|
||||
-i build/pkgs/ipython/src/IPython/utils/_process_posix.py
|
||||
|
@ -973,6 +970,7 @@ sed -i 's/64m/256m/' src/sage/interfaces/gap.py
|
|||
|
||||
########################################################################
|
||||
%build
|
||||
export LC_ALL=C.UTF-8
|
||||
export CC=%{__cc}
|
||||
export CFLAGS="%{optflags}"
|
||||
export CXXFLAGS="%{optflags}"
|
||||
|
@ -1130,8 +1128,7 @@ ln -sf %{_includedir} $SAGE_LOCAL/include
|
|||
ln -sf %{_datadir} $SAGE_LOCAL/share
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
cp -a src/ext $SAGE_ETC
|
||||
rm -fr $SAGE_ETC/doctest
|
||||
cp -a src/sage/ext_data $SAGE_ETC
|
||||
cp -p %{SOURCE2} $SAGE_ETC
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
|
@ -1241,8 +1238,8 @@ popd
|
|||
|
||||
#------------------------------------------------------------------------
|
||||
pushd build/pkgs/combinatorial_designs
|
||||
chmod a+x spkg-install
|
||||
bash -c '. ../../../src/bin/sage-dist-helpers; ./spkg-install'
|
||||
mkdir -p $SAGE_SHARE/combinatorial_designs
|
||||
cp -fa src/* $SAGE_SHARE/combinatorial_designs
|
||||
popd
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
|
@ -1286,13 +1283,13 @@ popd
|
|||
#------------------------------------------------------------------------
|
||||
%if %{with bundled_ipython}
|
||||
mv %{_builddir}%{python3_sitelib}/IPython %{buildroot}%{SAGE_PYTHONPATH}
|
||||
mv %{_builddir}%{python3_sitelib}/prompt_toolkit %{buildroot}%{SAGE_PYTHONPATH}
|
||||
mv %{_builddir}%{python3_sitelib}/prompt_toolkit* %{buildroot}%{SAGE_PYTHONPATH}
|
||||
mv %{_builddir}%{_bindir}/ip* %{buildroot}%{SAGE_LOCAL}/bin
|
||||
%endif
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
%if %{with bundled_ipywidgets}
|
||||
mv %{_builddir}%{python3_sitelib}/ipywidgets %{buildroot}%{SAGE_PYTHONPATH}
|
||||
mv %{_builddir}%{python3_sitelib}/ipywidgets* %{buildroot}%{SAGE_PYTHONPATH}
|
||||
%endif
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
|
@ -1454,7 +1451,7 @@ ln -sf %{SAGE_SHARE} $SAGE_ROOT/share
|
|||
ln -sf src $SAGE_ROOT/devel
|
||||
|
||||
# Install menu and icons
|
||||
install -p -m644 -D src/ext/notebook-ipython/logo.svg \
|
||||
install -p -m644 -D src/sage/ext_data/notebook-ipython/logo.svg \
|
||||
%{buildroot}%{_datadir}/icons/hicolor/scalable/apps/sagemath.svg
|
||||
mkdir -p %{buildroot}%{_datadir}/applications
|
||||
cat > %{buildroot}%{_datadir}/applications/%{name}.desktop << EOF
|
||||
|
@ -1659,10 +1656,10 @@ rm -fr %{SAGE_LOCAL}/var/lib/sage/installed/database_cremona_ellcurve-%{cremona_
|
|||
%endif
|
||||
%if %{with bundled_ipython}
|
||||
%{SAGE_PYTHONPATH}/IPython
|
||||
%{SAGE_PYTHONPATH}/prompt_toolkit
|
||||
%{SAGE_PYTHONPATH}/prompt_toolkit*
|
||||
%endif
|
||||
%if %{with bundled_ipywidgets}
|
||||
%{SAGE_PYTHONPATH}/ipywidgets
|
||||
%{SAGE_PYTHONPATH}/ipywidgets*
|
||||
%endif
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
|
@ -1698,12 +1695,14 @@ rm -fr %{SAGE_LOCAL}/var/lib/sage/installed/database_cremona_ellcurve-%{cremona_
|
|||
#------------------------------------------------------------------------
|
||||
%files data-etc
|
||||
# GPLv2+
|
||||
%{SAGE_ETC}/doctest
|
||||
%{SAGE_ETC}/gap
|
||||
%{SAGE_ETC}/images
|
||||
%{SAGE_ETC}/kenzo
|
||||
%{SAGE_ETC}/magma
|
||||
%{SAGE_ETC}/mwrank
|
||||
%{SAGE_ETC}/nbconvert
|
||||
%{SAGE_ETC}/nodoctest
|
||||
%{SAGE_ETC}/pari
|
||||
%{SAGE_ETC}/singular
|
||||
%{SAGE_ETC}/threejs
|
||||
|
@ -1817,6 +1816,12 @@ rm -fr %{SAGE_LOCAL}/var/lib/sage/installed/database_cremona_ellcurve-%{cremona_
|
|||
|
||||
########################################################################
|
||||
%changelog
|
||||
* Fri Jul 10 2020 Jerry James <loganjerry@gmail.com> - 9.1-1
|
||||
- Version 9.1
|
||||
- Drop upstreamed -nauty patch
|
||||
- Drop -cbc patch; upstream uses the system Cbc now
|
||||
- Add -ecl patch for ecl 20.4.24
|
||||
|
||||
* Wed May 27 2020 Miro Hrončok <mhroncok@redhat.com> - 9.0-8
|
||||
- Rebuilt for Python 3.9
|
||||
|
||||
|
|
2
sources
2
sources
|
@ -1,2 +1,2 @@
|
|||
SHA512 (cremona-2019-10-29.tar.gz) = 32fbb828f26f87191e39123762cfbd796aac9abf346f0dc981e8e3f390435b22d281be3031ea92ae7e18f4ce41af8054784ca0d550a08f17b05c54ca08b4c9c8
|
||||
SHA512 (sage-9.0.tar.gz) = b0d3af3e8e9dd587314a33ec2f68e901dcd18cdd2cce4444fea5f04669dab6bb3e7db7642ff3e9ef1b1ffaf7a6f3c26272f889e1f5fb8fd63d5f5b68b5d168ed
|
||||
SHA512 (sage-9.1.tar.gz) = 6df64ce9fadab4cf4b955c704d143b591a02264e85d6dfab1c50872a50cfab804310aad6a46b553d861294acac29dc65729666f251a64cbe648d020af1f411d1
|
||||
|
|
Loading…
Add table
Reference in a new issue