diff --git a/.travis.yml b/.travis.yml index 291e609ed7af2..2963901d0bf9d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -84,19 +84,18 @@ before_install: contrib/travis_fastfail.sh || exit 1; brew tap staticfloat/julia > /dev/null; brew rm --force $(brew deps --HEAD julia); - brew install -v gcc gmp mpfr pcre2 staticfloat/julia/openblas-julia staticfloat/julia/arpack-julia staticfloat/julia/suite-sparse-julia staticfloat/juliadeps/libgfortran; + brew install -v gcc gmp mpfr pcre2 staticfloat/julia/openblas-julia staticfloat/julia/suite-sparse-julia staticfloat/juliadeps/libgfortran; BUILDOPTS="-j3 USECLANG=1 USECCACHE=1 BINARYBUILDER_TRIPLET=x86_64-apple-darwin14"; BUILDOPTS="$BUILDOPTS USE_BINARYBUILDER_LLVM=1 LLVM_CONFIG=$TRAVIS_BUILD_DIR/usr/tools/llvm-config LLVM_SIZE=$TRAVIS_BUILD_DIR/usr/tools/llvm-size"; BUILDOPTS="$BUILDOPTS VERBOSE=1 USE_BLAS64=0 SUITESPARSE_INC=-I$(brew --prefix suite-sparse-julia)/include FORCE_ASSERTIONS=1"; BUILDOPTS="$BUILDOPTS LIBBLAS=-lopenblas LIBBLASNAME=libopenblas LIBLAPACK=-lopenblas LIBLAPACKNAME=libopenblas"; - for lib in SUITESPARSE ARPACK BLAS LAPACK GMP MPFR PCRE LIBUNWIND; do + for lib in SUITESPARSE BLAS LAPACK GMP MPFR PCRE LIBUNWIND; do BUILDOPTS="$BUILDOPTS USE_SYSTEM_$lib=1"; done; export LDFLAGS="-L$(brew --prefix openblas-julia)/lib -L$(brew --prefix suite-sparse-julia)/lib"; spawn_DYLD_FALLBACK_LIBRARY_PATH="/usr/local/lib:/lib:/usr/lib"; spawn_DYLD_FALLBACK_LIBRARY_PATH+=":$(brew --prefix openblas-julia)/lib"; spawn_DYLD_FALLBACK_LIBRARY_PATH+=":$(brew --prefix suite-sparse-julia)/lib"; - spawn_DYLD_FALLBACK_LIBRARY_PATH+=":$(brew --prefix arpack-julia)/lib"; export JULIA_MACOS_SPAWN="DYLD_FALLBACK_LIBRARY_PATH=\"$spawn_DYLD_FALLBACK_LIBRARY_PATH\" \$1"; export BUILDOPTS="$BUILDOPTS spawn=\$(JULIA_MACOS_SPAWN)"; make $BUILDOPTS -C contrib -f repackage_system_suitesparse4.make; diff --git a/Make.inc b/Make.inc index bf77060badb75..e8f2ec5fdfe37 100644 --- a/Make.inc +++ b/Make.inc @@ -38,7 +38,6 @@ USE_SYSTEM_BLAS:=0 USE_SYSTEM_LAPACK:=0 USE_SYSTEM_GMP:=0 USE_SYSTEM_MPFR:=0 -USE_SYSTEM_ARPACK:=0 USE_SYSTEM_SUITESPARSE:=0 USE_SYSTEM_LIBUV:=0 USE_SYSTEM_UTF8PROC:=0 @@ -1075,16 +1074,9 @@ MKLLIB := $(MKLROOT)/lib/ia32 endif USE_SYSTEM_BLAS:=1 USE_SYSTEM_LAPACK:=1 -ifeq ($(OS), WINNT) -LIBBLASNAME := mkl_rt -LIBLAPACKNAME := mkl_rt -# work around libtool issue with arpack -MKL_LDFLAGS := -L$(MKLLIB) -Wl,-lmkl_rt -else LIBBLASNAME := libmkl_rt LIBLAPACKNAME := libmkl_rt MKL_LDFLAGS := -L$(MKLLIB) -lmkl_rt -endif ifneq ($(strip $(MKLLIB)),) ifeq ($(OS), Linux) RPATH_MKL := -Wl,-rpath,$(MKLLIB) diff --git a/Makefile b/Makefile index 2841439a69576..33079548ad3a5 100644 --- a/Makefile +++ b/Makefile @@ -225,7 +225,6 @@ JL_PRIVATE_LIBS-$(USE_SYSTEM_LIBSSH2) += libssh2 JL_PRIVATE_LIBS-$(USE_SYSTEM_MBEDTLS) += libmbedtls libmbedcrypto libmbedx509 JL_PRIVATE_LIBS-$(USE_SYSTEM_CURL) += libcurl JL_PRIVATE_LIBS-$(USE_SYSTEM_LIBGIT2) += libgit2 -JL_PRIVATE_LIBS-$(USE_SYSTEM_ARPACK) += libarpack ifeq ($(USE_LLVM_SHLIB),1) JL_PRIVATE_LIBS-$(USE_SYSTEM_LLVM) += libLLVM endif diff --git a/NEWS.md b/NEWS.md index 359ad8f0fdd5a..f39553297c7ae 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1130,9 +1130,6 @@ Deprecated or removed `normalize`, and moved to the new `Unicode` standard library module. `graphemes` has also been moved to that module ([#25021]). - * The functions `eigs` and `svds` have been moved to the `IterativeEigensolvers` standard - library module ([#24714]). - * Sparse array functionality has moved to the `SparseArrays` standard library module ([#25249]). * Linear algebra functionality, and specifically the `LinAlg` module has moved to the @@ -1272,6 +1269,8 @@ Deprecated or removed * `atan2` is now a 2-argument method of `atan` ([#27248]). + * The functions `eigs` and `svds` have been moved to the `Arpack.jl` package ([#27616]). + Command-line option changes --------------------------- diff --git a/README.arm.md b/README.arm.md index 9de38fdeee94e..577d034c82a89 100644 --- a/README.arm.md +++ b/README.arm.md @@ -29,13 +29,12 @@ override USE_SYSTEM_LAPACK=1 override USE_SYSTEM_LIBM=1 override USE_SYSTEM_GMP=1 override USE_SYSTEM_MPFR=1 -override USE_SYSTEM_ARPACK=1 ```` The following command will install all the necessary libraries on Ubuntu: ```` -sudo apt-get install libblas3gf liblapack3gf libarpack2 libgmp3-dev \ +sudo apt-get install libblas3gf liblapack3gf libgmp3-dev \ libmpfr-dev libblas-dev liblapack-dev cmake gcc-4.8 \ g++-4.8 gfortran libgfortran3 m4 libedit-dev ```` diff --git a/README.md b/README.md index 09300bb4524e7..174d5837707e4 100644 --- a/README.md +++ b/README.md @@ -309,7 +309,6 @@ Julia uses the following external libraries, which are automatically downloaded - **[LAPACK]** (>= 3.5) — library of linear algebra routines for solving systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular value problems. - **[MKL]** (optional) – OpenBLAS and LAPACK may be replaced by Intel's MKL library. - **[SuiteSparse]** (>= 4.1) — library of linear algebra routines for sparse matrices (see [note below](#suitesparse)). -- **[ARPACK]** — collection of subroutines designed to solve large, sparse eigenvalue problems. - **[PCRE]** (>= 10.00) — Perl-compatible regular expressions library. - **[GMP]** (>= 5.0) — GNU multiple precision arithmetic library, needed for `BigInt` support. - **[MPFR]** (>= 3.0) — GNU multiple precision floating point library, needed for arbitrary precision floating point (`BigFloat`) support. @@ -339,7 +338,6 @@ Julia uses the following external libraries, which are automatically downloaded [LAPACK]: http://www.netlib.org/lapack [MKL]: http://software.intel.com/en-us/articles/intel-mkl [SuiteSparse]: http://faculty.cse.tamu.edu/davis/suitesparse.html -[ARPACK]: http://forge.scilab.org/index.php/p/arpack-ng [PCRE]: http://www.pcre.org [LLVM]: http://www.llvm.org [FemtoLisp]: https://github.com/JeffBezanson/femtolisp diff --git a/base/Makefile b/base/Makefile index 17cce740971bc..21c7ad457a140 100644 --- a/base/Makefile +++ b/base/Makefile @@ -180,7 +180,6 @@ $(eval $(call symlink_system_library,$(LIBLAPACKNAME),LAPACK)) endif $(eval $(call symlink_system_library,libgmp,GMP)) $(eval $(call symlink_system_library,libmpfr,MPFR)) -$(eval $(call symlink_system_library,libarpack,ARPACK)) $(eval $(call symlink_system_library,libmbedtls,MBEDTLS)) $(eval $(call symlink_system_library,libssh2,LIBSSH2)) $(eval $(call symlink_system_library,libcurl,CURL)) diff --git a/base/deprecated.jl b/base/deprecated.jl index e7cf77c928a78..8c93747d6090d 100644 --- a/base/deprecated.jl +++ b/base/deprecated.jl @@ -1720,6 +1720,8 @@ end @deprecate atan2(y, x) atan(y, x) +@deprecate_moved eigs "Arpack" +@deprecate_moved svds "Arpack" # END 0.7 deprecations diff --git a/base/sysimg.jl b/base/sysimg.jl index b4faa6019f831..3b0d1aefabb07 100644 --- a/base/sysimg.jl +++ b/base/sysimg.jl @@ -520,7 +520,6 @@ let :Future, :OldPkg, :LinearAlgebra, - :IterativeEigensolvers, :SparseArrays, :SuiteSparse, :SharedArrays, @@ -647,9 +646,6 @@ end @eval @deprecate_stdlib $(Symbol("@dateformat_str")) Dates true @deprecate_stdlib now Dates true - @deprecate_stdlib eigs IterativeEigensolvers true - @deprecate_stdlib svds IterativeEigensolvers true - @eval @deprecate_stdlib $(Symbol("@printf")) Printf true @eval @deprecate_stdlib $(Symbol("@sprintf")) Printf true diff --git a/contrib/fixup-libgfortran.sh b/contrib/fixup-libgfortran.sh index 131cbc3836571..07e3a33fe25c2 100755 --- a/contrib/fixup-libgfortran.sh +++ b/contrib/fixup-libgfortran.sh @@ -29,11 +29,6 @@ fi private_libdir=$1 -if [ ! -f "$private_libdir/libarpack.$SHLIB_EXT" ]; then - echo "ERROR: Could not open $private_libdir/libarpack.$SHLIB_EXT" >&2 - exit 2 -fi - find_shlib() { lib_path="$1" @@ -52,7 +47,7 @@ private_libname() } # First, discover all the places where libgfortran/libgcc is, as well as their true SONAMES -for lib in arpack lapack; do +for lib in lapack; do if [ -f "$private_libdir/lib$lib.$SHLIB_EXT" ]; then # Find the paths to the libraries we're interested in. These are almost # always within the same directory, but we like to be general. @@ -125,11 +120,11 @@ change_linkage() } # For every library that remotely touches libgfortran stuff (the libraries we -# have copied in ourselves as well as arpack, etc...) we must +# have copied in ourselves) we must # update the linkage to point to @rpath (on OSX) or $ORIGIN (on Linux) so # that direct links to the old libgfortran directories are instead directed # to the proper location, which is our $private_libdir. -for lib in libopenblas libarpack libcholmod liblapack $SONAMES; do +for lib in libopenblas libcholmod liblapack $SONAMES; do # Grab every incarnation of that library that exists within $private_libdir # (e.g. "libopenblas.so", and "libopenblas.so.0", etc...) for lib_path in $private_libdir/$lib*; do diff --git a/contrib/vagrant/Vagrantfile b/contrib/vagrant/Vagrantfile index d59ce3ee39a07..a693cd81235e1 100644 --- a/contrib/vagrant/Vagrantfile +++ b/contrib/vagrant/Vagrantfile @@ -5,7 +5,7 @@ $script = <