Skip to content

Commit ac70a56

Browse files
authored
Merge branch 'master' into nl/cov
2 parents 6b1166a + da68c52 commit ac70a56

File tree

485 files changed

+21826
-17592
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

485 files changed

+21826
-17592
lines changed

.travis.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ before_install:
8686
BUILDOPTS="-j3 USECLANG=1 LLVM_CONFIG=$(brew --prefix llvm39-julia)/bin/llvm-config LLVM_SIZE=$(brew --prefix llvm39-julia)/bin/llvm-size";
8787
BUILDOPTS="$BUILDOPTS VERBOSE=1 USE_BLAS64=0 SUITESPARSE_INC=-I$(brew --prefix suite-sparse-julia)/include FORCE_ASSERTIONS=1";
8888
BUILDOPTS="$BUILDOPTS LIBBLAS=-lopenblas LIBBLASNAME=libopenblas LIBLAPACK=-lopenblas LIBLAPACKNAME=libopenblas";
89-
for lib in LLVM SUITESPARSE ARPACK BLAS FFTW LAPACK GMP MPFR PCRE LIBUNWIND; do
89+
for lib in LLVM SUITESPARSE ARPACK BLAS LAPACK GMP MPFR PCRE LIBUNWIND; do
9090
BUILDOPTS="$BUILDOPTS USE_SYSTEM_$lib=1";
9191
done;
9292
export LDFLAGS="-L$(brew --prefix openblas-julia)/lib -L$(brew --prefix suite-sparse-julia)/lib";
@@ -147,3 +147,5 @@ script:
147147
rm -f julia/deps/scratch/libgit2-*/CMakeFiles/CMakeOutput.log
148148
# uncomment the following if failures are suspected to be due to the out-of-memory killer
149149
# - dmesg
150+
after_success:
151+
- cd julia && make -C doc deploy

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ A useful bug report filed as a GitHub issue provides information about how to re
4848
3. When filing a bug report, provide where possible:
4949
- The full error message, including the backtrace.
5050
- A minimal working example, i.e. the smallest chunk of code that triggers the error. Ideally, this should be code that can be pasted into a REPL or run from a source file. If the code is larger than (say) 50 lines, consider putting it in a [gist](https://gist.github.com).
51-
- The version of Julia as provided by the `versioninfo()` command. Occasionally, the longer output produced by `versioninfo(true)` may be useful also, especially if the issue is related to a specific package.
51+
- The version of Julia as provided by the `versioninfo()` command. Occasionally, the longer output produced by `versioninfo(verbose = true)` may be useful also, especially if the issue is related to a specific package.
5252

5353
4. When pasting code blocks or output, put triple backquotes (\`\`\`) around the text so GitHub will format it nicely. Code statements should be surrounded by single backquotes (\`). Be aware that the `@` sign tags users on GitHub, so references to macros should always be in single backquotes. See [GitHub's guide on Markdown](https://guides.github.com/features/mastering-markdown) for more formatting tricks.
5454

DISTRIBUTING.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,8 @@ separated most of the notes by OS.
1212
Note that while the code for Julia is
1313
[MIT-licensed, with a few exceptions](https://github.com/JuliaLang/julia/blob/master/LICENSE.md),
1414
the distribution created by the techniques described herein will be
15-
GPL licensed, as various dependent libraries such as `FFTW` and
16-
`SuiteSparse` are GPL licensed. We do hope to have a
17-
non-GPL distribution of Julia in the future.
15+
GPL licensed, as various dependent libraries such as `SuiteSparse` are
16+
GPL licensed. We do hope to have a non-GPL distribution of Julia in the future.
1817

1918
Versioning and Git
2019
------------------

LICENSE.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ their own licenses:
5656
- [OPENLIBM](https://github.com/JuliaLang/openlibm/blob/master/LICENSE.md) [MIT, BSD-2, ISC]
5757
- [OPENSPECFUN](https://github.com/JuliaLang/openspecfun) [MIT, public domain]
5858
- [FADDEEVA](http://ab-initio.mit.edu/Faddeeva) [MIT]
59-
- [FFTW](http://fftw.org/doc/License-and-Copyright.html) [GPL2+]
6059
- [GMP](http://gmplib.org/manual/Copying.html#Copying) [LGPL3+ or GPL2+]
6160
- [LIBGIT2](https://github.com/libgit2/libgit2/blob/development/COPYING) [GPL2+ with unlimited linking exception]
6261
- [CURL](https://curl.haxx.se/docs/copyright.html) [MIT/X derivative]

Make.inc

Lines changed: 49 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ OPENBLAS_USE_THREAD:=1
2626
# Use libraries available on the system instead of building them
2727
USE_SYSTEM_LLVM:=0
2828
USE_SYSTEM_LIBUNWIND:=0
29+
DISABLE_LIBUNWIND:=0
2930
USE_SYSTEM_PCRE:=0
3031
USE_SYSTEM_LIBM:=0
3132
USE_SYSTEM_OPENLIBM:=0
@@ -34,7 +35,6 @@ USE_SYSTEM_OPENSPECFUN:=0
3435
USE_SYSTEM_DSFMT:=0
3536
USE_SYSTEM_BLAS:=0
3637
USE_SYSTEM_LAPACK:=0
37-
USE_SYSTEM_FFTW:=0
3838
USE_SYSTEM_GMP:=0
3939
USE_SYSTEM_MPFR:=0
4040
USE_SYSTEM_ARPACK:=0
@@ -53,8 +53,6 @@ USE_LLVM_SHLIB := 1
5353
## Settings for various Intel tools
5454
# Set to 1 to use MKL
5555
USE_INTEL_MKL ?= 0
56-
# Set to 1 to use MKL FFT
57-
USE_INTEL_MKL_FFT ?= 0
5856
# Set to 1 to use Intel LIBM
5957
USE_INTEL_LIBM ?= 0
6058
# Set to 1 to enable profiling with Intel VTune Amplifier
@@ -231,14 +229,16 @@ INSTALL_M := $(JULIAHOME)/contrib/install.sh 755
231229
LLVMROOT := $(build_prefix)
232230
LLVM_ASSERTIONS := 0
233231
LLVM_DEBUG := 0
234-
#LLVM_USE_CMAKE: defined in deps/llvm-ver.mk as it depends on LLVM_VER_SHORT
235232
# set to 1 to get clang and compiler-rt
236233
BUILD_LLVM_CLANG := 0
237234
# set to 1 to get lldb (often does not work, no chance with llvm3.2 and earlier)
238235
# see http://lldb.llvm.org/build.html for dependencies
239236
BUILD_LLDB := 0
237+
238+
# Options to enable Polly and its code-generation options
240239
USE_POLLY := 0
241-
USE_POLLY_OPENMP := 0
240+
USE_POLLY_OPENMP := 0 # Enable OpenMP code-generation
241+
USE_POLLY_ACC := 0 # Enable GPU code-generation
242242

243243
# Cross-compile
244244
#XC_HOST := i686-w64-mingw32
@@ -520,6 +520,36 @@ ifeq (exists, $(shell [ -e $(BUILDROOT)/Make.user ] && echo exists ))
520520
include $(BUILDROOT)/Make.user
521521
endif
522522

523+
# A bit of a kludge to work around libraries linking to FreeBSD's outdated system libgcc_s
524+
# Instead, let's link to the libgcc_s corresponding to the installation of gfortran
525+
ifeq ($(OS),FreeBSD)
526+
ifneq (,$(findstring gfortran,$(FC)))
527+
528+
# First let's figure out what version of GCC we're dealing with
529+
_GCCMAJOR := $(shell $(FC) -dumpversion | cut -d'.' -f1)
530+
_GCCMINOR := $(shell $(FC) -dumpversion | cut -d'.' -f2)
531+
532+
# The ports system uses major and minor for GCC < 5 (e.g. gcc49 for GCC 4.9), otherwise major only
533+
ifeq ($(_GCCMAJOR),4)
534+
_GCCVER := $(_GCCMAJOR)$(_GCCMINOR)
535+
else
536+
_GCCVER := $(_GCCMAJOR)
537+
endif
538+
539+
# Allow the user to specify this in Make.user
540+
GCCPATH ?= $(LOCALBASE)/lib/gcc$(_GCCVER)
541+
542+
LDFLAGS += -L$(build_libdir) -L$(GCCPATH) -Wl,-rpath,$(build_libdir) -Wl,-rpath,$(GCCPATH)
543+
544+
# This ensures we get the right RPATH even if we're missing FFLAGS somewhere
545+
FC += -Wl,-rpath=$(GCCPATH)
546+
547+
# Build our own libc++ and libc++abi because otherwise /usr/lib/libc++.so and /lib/libcxxrt.so will
548+
# be linked in when building LLVM, and those link to /lib/libgcc_s.so
549+
BUILD_CUSTOM_LIBCXX ?= 1
550+
endif # gfortran
551+
endif # FreeBSD
552+
523553
ifneq ($(CC_BASE)$(CXX_BASE),$(shell echo $(CC) | cut -d' ' -f1)$(shell echo $(CXX) | cut -d' ' -f1))
524554
$(error Forgot override directive on CC or CXX in Make.user? Cowardly refusing to build)
525555
endif
@@ -733,6 +763,8 @@ endif
733763

734764
ifeq ($(OS),WINNT)
735765
LIBUNWIND:=
766+
else ifneq ($(DISABLE_LIBUNWIND), 0)
767+
LIBUNWIND:=
736768
else
737769
ifeq ($(USE_SYSTEM_LIBUNWIND), 1)
738770
ifneq ($(OS),Darwin)
@@ -828,14 +860,6 @@ LIBLAPACKNAME := liblapack
828860
endif
829861
endif
830862

831-
ifeq ($(OS), WINNT)
832-
LIBFFTWNAME := libfftw3
833-
LIBFFTWFNAME := libfftw3f
834-
else
835-
LIBFFTWNAME := libfftw3_threads
836-
LIBFFTWFNAME := libfftw3f_threads
837-
endif
838-
839863
ifeq ($(USE_SYSTEM_LIBM), 1)
840864
LIBM := -lm
841865
LIBMNAME := libm
@@ -981,6 +1005,10 @@ ifeq ($(USE_OPROFILE_JITEVENTS), 1)
9811005
JCPPFLAGS += -DJL_USE_OPROFILE_JITEVENTS
9821006
endif
9831007

1008+
ifeq ($(DISABLE_LIBUNWIND), 1)
1009+
JCPPFLAGS += -DJL_DISABLE_LIBUNWIND
1010+
endif
1011+
9841012
# Intel libraries
9851013

9861014
ifeq ($(USE_INTEL_LIBM), 1)
@@ -1019,12 +1047,6 @@ LIBBLAS := $(MKL_LDFLAGS)
10191047
LIBLAPACK := $(MKL_LDFLAGS)
10201048
endif
10211049

1022-
ifeq ($(USE_INTEL_MKL_FFT), 1)
1023-
USE_SYSTEM_FFTW := 1
1024-
LIBFFTWNAME := libmkl_rt
1025-
LIBFFTWFNAME := libmkl_rt
1026-
endif
1027-
10281050
ifeq ($(HAVE_SSP),1)
10291051
JCPPFLAGS += -DHAVE_SSP=1
10301052
ifeq ($(USEGCC),1)
@@ -1065,8 +1087,14 @@ endif
10651087
# Custom libcxx
10661088
ifeq ($(BUILD_CUSTOM_LIBCXX),1)
10671089
LDFLAGS += -L$(build_libdir)
1068-
CXXLDFLAGS += -L$(build_libdir) -lc++abi -stdlib=libc++ -lc++
1069-
CPPFLAGS += -I$(build_includedir)/c++/v1
1090+
CXXLDFLAGS += -L$(build_libdir) -lc++abi -lc++
1091+
ifeq ($(USECLANG),1)
1092+
CXXLDFLAGS += -stdlib=libc++
1093+
else
1094+
ifeq ($(USEGCC),1)
1095+
$(error BUILD_CUSTOM_LIBCXX is currently only supported with Clang. Try setting BUILD_CUSTOM_LIBCXX=0)
1096+
endif
1097+
endif # Clang
10701098
CUSTOM_LD_LIBRARY_PATH := LD_LIBRARY_PATH="$(build_libdir)"
10711099
ifeq ($(USEICC),1)
10721100
CXXFLAGS += -cxxlib-nostd -static-intel

Makefile

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,7 @@ $(build_private_libdir)/%.$(SHLIB_EXT): $(build_private_libdir)/%.o
186186

187187
CORE_SRCS := $(addprefix $(JULIAHOME)/, \
188188
base/boot.jl base/coreimg.jl \
189+
base/docs/core.jl \
189190
base/abstractarray.jl \
190191
base/array.jl \
191192
base/bool.jl \
@@ -245,11 +246,6 @@ JL_PRIVATE_LIBS := ccalltest
245246
ifeq ($(USE_GPL_LIBS), 1)
246247
JL_PRIVATE_LIBS += suitesparse_wrapper
247248
endif
248-
ifeq ($(USE_SYSTEM_FFTW),0)
249-
ifeq ($(USE_GPL_LIBS), 1)
250-
JL_PRIVATE_LIBS += fftw3 fftw3f fftw3_threads fftw3f_threads
251-
endif
252-
endif
253249
ifeq ($(USE_SYSTEM_PCRE),0)
254250
JL_PRIVATE_LIBS += pcre
255251
endif
@@ -460,7 +456,7 @@ endif
460456

461457
ifeq ($(OS), WINNT)
462458
[ ! -d $(JULIAHOME)/dist-extras ] || ( cd $(JULIAHOME)/dist-extras && \
463-
cp 7z.exe 7z.dll libexpat-1.dll zlib1.dll libgfortran-3.dll libquadmath-0.dll libstdc++-6.dll libgcc_s_s*-1.dll libssp-0.dll libwinpthread-1.dll $(BUILDROOT)/julia-$(JULIA_COMMIT)/bin )
459+
cp 7z.exe 7z.dll libexpat-1.dll zlib1.dll $(BUILDROOT)/julia-$(JULIA_COMMIT)/bin )
464460
ifeq ($(USE_GPL_LIBS), 1)
465461
[ ! -d $(JULIAHOME)/dist-extras ] || ( cd $(JULIAHOME)/dist-extras && \
466462
cp busybox.exe $(BUILDROOT)/julia-$(JULIA_COMMIT)/bin )
@@ -590,17 +586,17 @@ ifneq (,$(filter $(ARCH), i386 i486 i586 i686))
590586
cd $(JULIAHOME)/dist-extras && \
591587
$(JLDOWNLOAD) http://downloads.sourceforge.net/sevenzip/7z920.exe && \
592588
7z x -y 7z920.exe 7z.exe 7z.dll && \
593-
../contrib/windows/winrpm.sh http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_42.2 \
594-
"mingw32-libgfortran3 mingw32-libquadmath0 mingw32-libstdc++6 mingw32-libgcc_s_sjlj1 mingw32-libssp0 mingw32-libwinpthread1 mingw32-libexpat1 mingw32-zlib1" && \
589+
../contrib/windows/winrpm.sh http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_Leap_42.2 \
590+
"mingw32-libexpat1 mingw32-zlib1" && \
595591
cp usr/i686-w64-mingw32/sys-root/mingw/bin/*.dll .
596592
else ifeq ($(ARCH),x86_64)
597593
cd $(JULIAHOME)/dist-extras && \
598594
$(JLDOWNLOAD) 7z920-x64.msi http://downloads.sourceforge.net/sevenzip/7z920-x64.msi && \
599595
7z x -y 7z920-x64.msi _7z.exe _7z.dll && \
600596
mv _7z.dll 7z.dll && \
601597
mv _7z.exe 7z.exe && \
602-
../contrib/windows/winrpm.sh http://download.opensuse.org/repositories/windows:/mingw:/win64/openSUSE_42.2 \
603-
"mingw64-libgfortran3 mingw64-libquadmath0 mingw64-libstdc++6 mingw64-libgcc_s_seh1 mingw64-libssp0 mingw64-libwinpthread1 mingw64-libexpat1 mingw64-zlib1" && \
598+
../contrib/windows/winrpm.sh http://download.opensuse.org/repositories/windows:/mingw:/win64/openSUSE_Leap_42.2 \
599+
"mingw64-libexpat1 mingw64-zlib1" && \
604600
cp usr/x86_64-w64-mingw32/sys-root/mingw/bin/*.dll .
605601
else
606602
$(error no win-extras target for ARCH=$(ARCH))

0 commit comments

Comments
 (0)