Commit 3af7c500 authored by Julian Rüth's avatar Julian Rüth

Merge remote-tracking branch 'trac/develop' into HEAD

parents 6fa8bc6a 23a2b10d
Pipeline #28074983 passed with stages
in 337 minutes and 6 seconds
SageMath version 8.4.beta0, Release Date: 2018-08-05
SageMath version 8.4.beta1, Release Date: 2018-08-14
......@@ -17,7 +17,10 @@
# This also disables pip's version self-check.
# --isolated : Don't read configuration files such as
# ~/.pydistutils.cfg
pip_install_flags="--ignore-installed --verbose --no-deps --no-index --isolated"
# --no-build-isolation:Build the package in the usual Python environment
# (containing the dependencies) instead of an
# "isolated" environment
pip_install_flags="--ignore-installed --verbose --no-deps --no-index --isolated --no-build-isolation"
# Consume any additional pip install arguments except the last one
while [ $# -gt 1 ]; do
......@@ -66,19 +69,18 @@ LOCK="$SAGE_LOCAL/var/lock/$PIP.lock"
while true; do
out=$(sage-flock -x $LOCK $PIP uninstall --disable-pip-version-check -y "$name" 2>&1)
if [ $? -ne 0 ]; then
# Uninstall failed
echo >&2 "$out"
exit 1
fi
# Uninstall succeeded, which may mean that the package was not
# installed to begin with.
if [[ "$out" != *"not installed" ]]; then
break
fi
echo "$out"
done
# Not ideal, but this is the easiest way to check if the package
# was not installed to begin with (which pip2/3 treats as an error).
# If it wasn't, then we proceed quietly; if it was installed show the
# uninstallation output and error out.
if [[ "$out" != *"not installed" ]]; then
echo >&2 "$out"
exit 1
fi
# Finally actually do the installation (the "SHARED" tells pip2/3-lock
# to apply a shared lock)
......
......@@ -869,9 +869,12 @@ fi
# case DESTDIR=$SAGE_DESTDIR installation was not used
echo "Copying package files from temporary location $SAGE_DESTDIR to $SAGE_LOCAL"
if [ -d "$SAGE_DESTDIR" ]; then
PREFIX="${SAGE_DESTDIR_LOCAL%/}/"
# Some `find` implementations will put superfluous slashes in the
# output if we give them a directory name with a slash; so make sure
# any trailing slash is removed; https://trac.sagemath.org/ticket/26013
PREFIX="${SAGE_DESTDIR_LOCAL%/}"
rm -f "$PREFIX"lib/*.la
rm -f "$PREFIX"/lib/*.la
if [ $? -ne 0 ]; then
error_msg "Error deleting unnecessary libtool archive files"
exit 1
......@@ -882,7 +885,7 @@ if [ -d "$SAGE_DESTDIR" ]; then
FIRST=1
old_IFS="$IFS"; IFS=$'\n'
for filename in $(find "$PREFIX" -type f -o -type l | sort); do
filename="${filename#$PREFIX}"
filename="${filename#$PREFIX/}"
if [ $FIRST -eq 1 ]; then
FILE_LIST="\"$filename\""
FIRST=0
......@@ -893,7 +896,7 @@ if [ -d "$SAGE_DESTDIR" ]; then
if [ ! -d "$SAGE_LOCAL/$(dirname "$filename")" ]; then
$SAGE_SUDO mkdir -p "$SAGE_LOCAL/$(dirname "$filename")"
fi
$SAGE_SUDO mv "$PREFIX$filename" "${SAGE_LOCAL%/}/$filename"
$SAGE_SUDO mv "$PREFIX/$filename" "${SAGE_LOCAL%/}/$filename"
if [ $? -ne 0 ]; then
error_msg "Error moving files for $PKG_NAME."
exit 1
......
......@@ -141,7 +141,9 @@ sagelib: \
$(inst_jupyter_core) \
$(inst_lcalc) \
$(inst_lrcalc) \
$(inst_libbraiding) \
$(inst_libgap) \
$(inst_libhomfly) \
$(inst_libpng) \
$(inst_linbox) \
$(inst_m4ri) \
......
tarball=arb-VERSION.tar.gz
sha1=44eda7bf8eaa666c45b1fc2c1b5bd08756d94b58
md5=fa24de9fffe4394fb6a7a6792e2ecc5f
cksum=3689220688
sha1=94680f32c3ccd40cc8ef417cc18d7b74b0c6c522
md5=8f9a8d57417466080cfd1358bbb41efd
cksum=3846267256
diff --git a/acb/acos.c b/acb/acos.c
index 31650a01..ae42708c 100644
--- a/acb/acos.c
+++ b/acb/acos.c
@@ -22,6 +22,22 @@ acb_acos(acb_t res, const acb_t z, slong prec)
{
acb_t t;
acb_init(t);
+ if (arb_is_zero(acb_imagref(z)))
+ {
+ arb_t one;
+ arb_init(one);
+ arb_one(one);
+ if (arb_gt(acb_realref(z), one))
+ {
+ acb_asin(res, z, prec);
+ acb_neg(res, res);
+ arb_zero(acb_realref(res));
+ arb_clear(one);
+ arb_clear(t);
+ return;
+ }
+ arb_clear(one);
+ }
acb_asin(res, z, prec);
acb_const_pi(t, prec);
acb_mul_2exp_si(t, t, -1);
diff --git a/acb/acosh.c b/acb/acosh.c
index e0c12306..cc807e45 100644
--- a/acb/acosh.c
+++ b/acb/acosh.c
@@ -30,10 +30,28 @@ acb_acosh(acb_t res, const acb_t z, slong prec)
acb_sqrt(u, u, prec);
acb_mul(t, t, u, prec);
acb_add(t, t, z, prec);
- acb_log(res, t, prec);
+ if (!arb_is_zero(acb_imagref(z)))
+ {
+ acb_log(res, t, prec);
+ acb_clear(t);
+ acb_clear(u);
+ return;
+ }
+ arb_t one, abs;
+ arb_init(one);
+ arb_init(abs);
+ arb_one(one);
+ arb_abs(abs, acb_realref(z));
+ acb_log(res, t, prec);
+ if (arb_lt(abs, one))
+ {
+ arb_zero(acb_realref(res));
+ }
acb_clear(t);
acb_clear(u);
+ arb_clear(one);
+ arb_clear(abs);
}
}
tarball=configure-VERSION.tar.gz
sha1=46818a6751e8f22f80cbc3e4a8b098556574ee02
md5=326ca93c96320a6fbb44058f7c1966bc
cksum=506204676
sha1=667d7519a357ef427d102680ec7c6cdd3eecfa31
md5=7481b39886ab0931671be11b2c0a7aba
cksum=1575778832
tarball=ipython-VERSION.tar.gz
sha1=bd8b3f8dab9522e6f5b581945a056a39efc69739
md5=61f627b9365f630887beb30a002f76fd
cksum=1322213863
sha1=987b66cc662db8bd2ae96eee2f2237266d0c92dc
md5=7014b8824981eef2cb893ea5398d6b8d
cksum=2260693848
See https://github.com/ipython/ipython/pull/11139
commit 98e7ddd43bab127de68a3c66870b8e17a5b50eeb
Author: Jeroen Demeyer <jdemeyer@cage.ugent.be>
Date: Wed May 16 14:32:15 2018 +0200
Use inspect instead of type checks
diff --git a/IPython/utils/_signatures.py b/IPython/utils/_signatures.py
index 3b53e89..20f52b9 100644
--- a/IPython/utils/_signatures.py
+++ b/IPython/utils/_signatures.py
@@ -21,6 +21,7 @@
import functools
import re
import types
+import inspect
# patch for single-file
@@ -71,7 +72,7 @@ def signature(obj):
if not callable(obj):
raise TypeError('{0!r} is not a callable object'.format(obj))
- if isinstance(obj, types.MethodType):
+ if inspect.ismethod(obj):
if obj.__self__ is None:
# Unbound method - treat it as a function (no distinction in Py 3)
obj = obj.__func__
@@ -96,7 +97,7 @@ def signature(obj):
else:
return signature(wrapped)
- if isinstance(obj, types.FunctionType):
+ if inspect.isfunction(obj):
return Signature.from_function(obj)
if isinstance(obj, functools.partial):
@@ -511,7 +512,7 @@ def __init__(self, parameters=None, return_annotation=_empty,
def from_function(cls, func):
'''Constructs Signature for the given python function'''
- if not isinstance(func, types.FunctionType):
+ if not inspect.isfunction(func):
raise TypeError('{0!r} is not a Python function'.format(func))
Parameter = cls._parameter_cls
if [ "$SAGE_LOCAL" = "" ]; then
echo >&2 "SAGE_LOCAL undefined ... exiting";
exit 1
fi
cd src
# OpenBlas has no proper configure script
......@@ -13,9 +8,6 @@ cd src
# We could also patch the Makefile to use a generic symlink pointing
# to the archive with a specific name
# See #22021 for issues with multithreading
OPENBLAS_CONFIGURE="$OPENBLAS_CONFIGURE USE_THREAD=0"
if [ `python -c "from __future__ import print_function; import platform; print(platform.architecture()[0])"` = "32bit" ]; then
OPENBLAS_CONFIGURE="$OPENBLAS_CONFIGURE BINARY=32"
fi
......@@ -27,23 +19,20 @@ fi
echo "Running OpenBLAS testsuite"
$MAKE tests $OPENBLAS_CONFIGURE
sdh_make tests $OPENBLAS_CONFIGURE
if [ $? -ne 0 ]; then
# First make sure we already didn't set a target
if [[ $OPENBLAS_CONFIGURE == *"TARGET"* ]]; then
echo >&2 "Error while running the OpenBlas testsuite ... exiting"
exit 1
sdh_die "Error while running the OpenBlas testsuite ... exiting"
else
# The recommended TARGET is ATOM if CPU fails
# See https://github.com/xianyi/OpenBLAS/issues/1204
OPENBLAS_CONFIGURE="$OPENBLAS_CONFIGURE TARGET=ATOM"
echo "Error while testing the OpenBLAS testsuite"
echo "Retrying the OpenBAS testsuit with TARGET=ATOM"
$MAKE tests $OPENBLAS_CONFIGURE
sdh_make tests $OPENBLAS_CONFIGURE
if [ $? -ne 0 ]; then
echo >&2 "Error while running the OpenBLAS testsuite ... exiting"
exit 1
sdh_die "Error while running the OpenBLAS testsuite ... exiting"
fi
fi
fi
cd src
# See #22021 for issues with multithreading
OPENBLAS_CONFIGURE="$OPENBLAS_CONFIGURE USE_THREAD=0"
# OpenBLAS does not build on 32bit Haswell. Upstream suggests to pass BINARY=32 to default to NEHALEM kernels
# See https://github.com/xianyi/OpenBLAS/issues/657
# Right now this affect all 32bit CPUs.
......
......@@ -11,37 +11,25 @@ if [ "$UNAME" = "CYGWIN" ] ; then
CFLAGS="$CFLAGS -Wl,--stack,8000000"
fi
BIN="$SAGE_LOCAL/bin"
for dim in 4 5 6 11; do
echo Building PALP optimized for $dim dimensions
sed "s/^#define[^a-zA-Z]*POLY_Dmax.*/#define POLY_Dmax $dim/" Global.h-template > Global.h
$MAKE CC="$CC" CFLAGS="$CFLAGS"
if [ $? -ne 0 ]; then
echo "Error building PALP."
exit 1
fi
sdh_make CC="$CC" CFLAGS="$CFLAGS"
for file in poly class cws nef mori; do
cp -p ${file}.x "$SAGE_LOCAL"/bin/${file}-${dim}d.x
if [ $? -ne 0 ]; then
echo "Error installing PALP."
exit 1
fi
sdh_install -T "${file}.x" "${BIN}/${file}-${dim}d.x"
done
# the next step is important to avert races on older file systems
# for example, ext3 has 1-second timestamp granularity!
$MAKE cleanall
if [ $? -ne 0 ]; then
echo "Error building PALP."
exit 1
fi
sdh_make cleanall
done
# symlinks for the default dimension
cd "$SAGE_LOCAL"/bin
cd "${SAGE_DESTDIR}${BIN}"
for file in poly class cws nef mori; do
ln -sf ${file}-6d.x ${file}.x
done
tarball=pip-VERSION.tar.gz
sha1=1f5f44d433ca599d40f8e46f440479b2c73802d8
md5=b15b33f9aad61f88d0f8c866d16c55d8
cksum=3941571893
sha1=337f4694bfcd4d698d9b02b38a7520fabc42a1d9
md5=52f75ceb21e96c258f289859a2996b60
cksum=3433326775
cd src
# pip can install itself!
#
# pip can install itself! But first we need to ensure that the pip
# source directory in on the PYTHONPATH
export PYTHONPATH=`cd src && pwd`
# need to use --upgrade or --ignore-installed; Otherwise pip, which is
# importing itself, will think itself is already installed
#
# Install pip3 first so pip2 overwrites local/bin/pip
for vers in 3 2; do
python${vers} -m pip install --verbose --no-index --ignore-installed \
--isolated --root="$SAGE_DESTDIR" . || \
--no-build-isolation --isolated --root="$SAGE_DESTDIR" . || \
sdh_die "Error building / installing pip${vers}"
done
tarball=pyzmq-VERSION.tar.gz
sha1=507480d9ca99d2b2b139719852a86bbde5e5f50e
md5=f4b607d633233318edf2766d1a848322
cksum=2425144830
sha1=95e87324075adbcd69f28017c2a12e16e176db6e
md5=aecdfc328193fbd81f6dc23228319943
cksum=1545898385
tarball=setuptools-VERSION.zip
sha1=37328c5a707856eb0fb086da6cf60ceb85a493c2
md5=e8e05d4f8162c9341e1089c80f742f64
cksum=1301272111
sha1=dac21f957c047b1b222a54fd2b2a3053c59cbfce
md5=260630ae1a64bafa39dcc53404d63829
cksum=2213770058
cd src
./configure --prefix="$SAGE_LOCAL" --libdir="$SAGE_LOCAL/lib"
if [ $? -ne 0 ]; then
echo >&2 "Error configuring TIDES."
exit 1
fi
sdh_configure
# Use $SAGE_LOCAL/include instead of hardcoded /usr/local/include
$MAKE AM_CPPFLAGS="-I '$SAGE_LOCAL/include'" install
if [ $? -ne 0 ]; then
echo >&2 "Error installing TIDES."
exit 1
fi
# * Use $SAGE_LOCAL/include instead of hardcoded /usr/local/include
# * Disable -m64 from CFLAGS and FFLAGS (which may be set even on 32-bit
# systems)
sdh_make_install AM_CPPFLAGS="-I '$SAGE_LOCAL/include'" AM_CFLAGS="" AM_FFLAGS=""
tarball=zeromq-VERSION.tar.gz
sha1=a664ec63661a848ef46114029156a0a6006feecd
md5=73c39f5eb01b9d7eaf74a5d899f1d03d
cksum=667919094
sha1=1132f839d703486c4ee1cf22f056585dfbb329c2
md5=a1c95b34384257e986842f4d006957b8
cksum=136261411
Compile C++ files with a C++ compiler.
diff -druN zeromq-4.0.4.old/tools/curve_keygen.c zeromq-4.0.4.new/tools/curve_keygen.c
--- zeromq-4.0.4.old/tools/curve_keygen.c 2013-11-13 09:57:50.000000000 -0800
+++ zeromq-4.0.4.new/tools/curve_keygen.c 1969-12-31 16:00:00.000000000 -0800
@@ -1,58 +0,0 @@
-/*
- Copyright (c) 2007-2013 Contributors as noted in the AUTHORS file
-
- This file is part of 0MQ.
-
- This tool generates a CurveZMQ keypair, as two printable strings you can
- use in configuration files or source code. The encoding uses Z85, which
- is a base-85 format that is described in 0MQ RFC 32, and which has an
- implementation in the z85_codec.h source used by this tool. The keypair
- always works with the secret key held by one party and the public key
- distributed (securely!) to peers wishing to connect to it.
-
- 0MQ is free software; you can redistribute it and/or modify it under
- the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- 0MQ is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include <assert.h>
-#include <platform.hpp>
-#include <zmq.h>
-#include <zmq_utils.h>
-
-int main (void)
-{
- puts ("This tool generates a CurveZMQ keypair, as two printable strings you can");
- puts ("use in configuration files or source code. The encoding uses Z85, which");
- puts ("is a base-85 format that is described in 0MQ RFC 32, and which has an");
- puts ("implementation in the z85_codec.h source used by this tool. The keypair");
- puts ("always works with the secret key held by one party and the public key");
- puts ("distributed (securely!) to peers wishing to connect to it.");
-
- char public_key [41];
- char secret_key [41];
- int rc = zmq_curve_keypair (public_key, secret_key);
- if (rc != 0) {
- if (zmq_errno () == ENOTSUP) {
- puts ("To use curve_keygen, please install libsodium and then rebuild libzmq.");
- }
- exit (1);
- }
-
- puts ("\n== CURVE PUBLIC KEY ==");
- puts (public_key);
-
- puts ("\n== CURVE SECRET KEY ==");
- puts (secret_key);
-
- exit (0);
-}
diff -druN zeromq-4.0.4.old/tools/curve_keygen.cpp zeromq-4.0.4.new/tools/curve_keygen.cpp
--- zeromq-4.0.4.old/tools/curve_keygen.cpp 1969-12-31 16:00:00.000000000 -0800