julia: add julia-git, a snapshot from mid-February with LLVM-3.7 (so it actually works in fresh NixPkgs)

Changed files
+205
pkgs
development
top-level
+29
pkgs/development/compilers/julia/0001.1-use-system-utf8proc.patch
··· 1 + From 54a66b5728ec98f44a1768f064509be4fd3f2ef6 Mon Sep 17 00:00:00 2001 2 + From: Thomas Tuegel <ttuegel@gmail.com> 3 + Date: Sat, 10 Oct 2015 13:09:48 -0500 4 + Subject: [PATCH 1/3] use system utf8proc 5 + 6 + --- 7 + src/flisp/Makefile | 6 +++--- 8 + 1 file changed, 3 insertions(+), 3 deletions(-) 9 + 10 + diff --git a/src/flisp/Makefile b/src/flisp/Makefile 11 + index bec8624..5437b5c 100644 12 + --- a/src/flisp/Makefile 13 + +++ b/src/flisp/Makefile 14 + @@ -24,9 +24,9 @@ DOBJS = $(SRCS:%.c=$(BUILDDIR)/%.dbg.obj) 15 + LLTDIR := ../support 16 + LLT_release := $(BUILDDIR)/$(LLTDIR)/libsupport.a 17 + LLT_debug := $(BUILDDIR)/$(LLTDIR)/libsupport-debug.a 18 + -LIBFILES_release := $(LLT_release) $(LIBUV) $(LIBUTF8PROC) 19 + -LIBFILES_debug := $(LLT_debug) $(LIBUV) $(LIBUTF8PROC) 20 + -LIBS := 21 + +LIBFILES_release := $(LLT_release) $(LIBUV) 22 + +LIBFILES_debug := $(LLT_debug) $(LIBUV) 23 + +LIBS := $(LIBUTF8PROC) 24 + ifneq ($(OS),WINNT) 25 + LIBS += -lpthread 26 + endif 27 + -- 28 + 2.5.2 29 +
+170
pkgs/development/compilers/julia/git.nix
··· 1 + { stdenv, fetchgit, fetchurl 2 + # build tools 3 + , gfortran, m4, makeWrapper, patchelf, perl, which, python2 4 + # libjulia dependencies 5 + , libunwind, llvm, readline, utf8proc, zlib 6 + # standard library dependencies 7 + , curl, fftwSinglePrec, fftw, gmp, libgit2, mpfr, openlibm, openspecfun, pcre2 8 + # linear algebra 9 + , openblas, arpack, suitesparse 10 + }: 11 + 12 + with stdenv.lib; 13 + 14 + # All dependencies must use the same OpenBLAS. 15 + let 16 + arpack_ = arpack; 17 + suitesparse_ = suitesparse; 18 + in 19 + let 20 + arpack = arpack_.override { inherit openblas; }; 21 + suitesparse = suitesparse_.override { inherit openblas; }; 22 + in 23 + 24 + let 25 + dsfmtVersion = "2.2.3"; 26 + dsfmt = fetchurl { 27 + url = "http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/dSFMT-src-${dsfmtVersion}.tar.gz"; 28 + sha256 = "03kaqbjbi6viz0n33dk5jlf6ayxqlsq4804n7kwkndiga9s4hd42"; 29 + }; 30 + 31 + libuvVersion = "07730c4bd595b4d45a498a8ee0bcd53878ff7c10"; 32 + libuv = fetchurl { 33 + url = "https://api.github.com/repos/JuliaLang/libuv/tarball/${libuvVersion}"; 34 + sha256 = "19nk8vdvx2mxyrwpndb7888c3b237ja5xvxr3jk5ah77ix3srr3h"; 35 + }; 36 + 37 + rmathVersion = "0.1"; 38 + rmath-julia = fetchurl { 39 + url = "https://api.github.com/repos/JuliaLang/Rmath-julia/tarball/v${rmathVersion}"; 40 + sha256 = "0ai5dhjc43zcvangz123ryxmlbm51s21rg13bllwyn98w67arhb4"; 41 + }; 42 + 43 + virtualenvVersion = "1.11.6"; 44 + virtualenv = fetchurl { 45 + url = "https://pypi.python.org/packages/source/v/virtualenv/virtualenv-${virtualenvVersion}.tar.gz"; 46 + sha256 = "1xq4prmg25n9cz5zcvbqx68lmc3kl39by582vd8pzs9f3qalqyiy"; 47 + }; 48 + in 49 + 50 + stdenv.mkDerivation rec { 51 + pname = "julia"; 52 + version = "0.4.4-pre-2016-02-08"; 53 + name = "${pname}-${version}"; 54 + 55 + src = fetchgit { 56 + url = "https://github.com/JuliaLang/${pname}"; 57 + rev = "cb93e6b70b4b1313b4de8c54e55e85c8eb43daa3"; 58 + sha256 = "11dmbjqiidlbh8sj5s09zsbfslm3zs0kw7iq40281hl5dfsr7zm6"; 59 + }; 60 + 61 + prePatch = '' 62 + mkdir deps/srccache 63 + cp "${dsfmt}" "./deps/srccache/dsfmt-${dsfmtVersion}.tar.gz" 64 + cp "${rmath-julia}" "./deps/srccache/Rmath-julia-${rmathVersion}.tar.gz" 65 + cp "${libuv}" "./deps/srccache/libuv-${libuvVersion}.tar.gz" 66 + cp "${virtualenv}" "./deps/srccache/virtualenv-${virtualenvVersion}.tar.gz" 67 + ''; 68 + 69 + patches = [ 70 + ./0001.1-use-system-utf8proc.patch 71 + ./0002-use-system-suitesparse.patch 72 + ]; 73 + 74 + postPatch = '' 75 + patchShebangs . contrib 76 + ''; 77 + 78 + buildInputs = [ 79 + arpack fftw fftwSinglePrec gmp libgit2 libunwind llvm mpfr 80 + pcre2 openblas openlibm openspecfun readline suitesparse utf8proc 81 + zlib 82 + ]; 83 + 84 + nativeBuildInputs = [ curl gfortran m4 makeWrapper patchelf perl python2 which ]; 85 + 86 + makeFlags = 87 + let 88 + arch = head (splitString "-" stdenv.system); 89 + march = { "x86_64" = "x86-64"; "i686" = "i686"; }."${arch}" 90 + or (throw "unsupported architecture: ${arch}"); 91 + # Julia requires Pentium 4 (SSE2) or better 92 + cpuTarget = { "x86_64" = "x86-64"; "i686" = "pentium4"; }."${arch}" 93 + or (throw "unsupported architecture: ${arch}"); 94 + in [ 95 + "ARCH=${arch}" 96 + "MARCH=${march}" 97 + "JULIA_CPU_TARGET=${cpuTarget}" 98 + "PREFIX=$(out)" 99 + "prefix=$(out)" 100 + "SHELL=${stdenv.shell}" 101 + 102 + "USE_SYSTEM_BLAS=1" 103 + "USE_BLAS64=${if openblas.blas64 then "1" else "0"}" 104 + "LIBBLAS=-lopenblas" 105 + "LIBBLASNAME=libopenblas" 106 + 107 + "USE_SYSTEM_LAPACK=1" 108 + "LIBLAPACK=-lopenblas" 109 + "LIBLAPACKNAME=libopenblas" 110 + 111 + "USE_SYSTEM_SUITESPARSE=1" 112 + "SUITESPARSE_LIB=-lsuitesparse" 113 + "SUITESPARSE_INC=-I${suitesparse}/include" 114 + 115 + "USE_SYSTEM_ARPACK=1" 116 + "USE_SYSTEM_FFTW=1" 117 + "USE_SYSTEM_GMP=1" 118 + "USE_SYSTEM_LIBGIT2=1" 119 + "USE_SYSTEM_LIBUNWIND=1" 120 + "USE_SYSTEM_LLVM=1" 121 + "USE_SYSTEM_MPFR=1" 122 + "USE_SYSTEM_OPENLIBM=1" 123 + "USE_SYSTEM_OPENSPECFUN=1" 124 + "USE_SYSTEM_PATCHELF=1" 125 + "USE_SYSTEM_PCRE=1" 126 + "USE_SYSTEM_READLINE=1" 127 + "USE_SYSTEM_UTF8PROC=1" 128 + "USE_SYSTEM_ZLIB=1" 129 + ]; 130 + 131 + NIX_CFLAGS_COMPILE = [ "-fPIC" ]; 132 + 133 + LD_LIBRARY_PATH = makeSearchPath "lib" [ 134 + arpack fftw fftwSinglePrec gmp libgit2 mpfr openblas openlibm 135 + openspecfun pcre2 suitesparse 136 + ]; 137 + 138 + dontStrip = true; 139 + dontPatchELF = true; 140 + 141 + enableParallelBuilding = true; 142 + 143 + doCheck = true; 144 + checkTarget = "testall"; 145 + # Julia's tests require read/write access to $HOME 146 + preCheck = '' 147 + export HOME="$NIX_BUILD_TOP" 148 + ''; 149 + 150 + preBuild = '' 151 + sed -e '/^install:/s@[^ ]*/doc/[^ ]*@@' -i Makefile 152 + sed -e '/[$](DESTDIR)[$](docdir)/d' -i Makefile 153 + ''; 154 + 155 + postInstall = '' 156 + for prog in "$out/bin/julia" "$out/bin/julia-debug"; do 157 + wrapProgram "$prog" \ 158 + --prefix LD_LIBRARY_PATH : "$LD_LIBRARY_PATH" \ 159 + --prefix PATH : "${curl}/bin" 160 + done 161 + ''; 162 + 163 + meta = { 164 + description = "High-level performance-oriented dynamical language for technical computing"; 165 + homepage = "http://julialang.org/"; 166 + license = stdenv.lib.licenses.mit; 167 + maintainers = with stdenv.lib.maintainers; [ raskin ttuegel ]; 168 + platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ]; 169 + }; 170 + }
+6
pkgs/top-level/all-packages.nix
··· 4390 4390 openblas = openblasCompat; 4391 4391 }; 4392 4392 4393 + julia-git = lowPrio (callPackage ../development/compilers/julia/git.nix { 4394 + gmp = gmp6; 4395 + llvm = llvm_37; 4396 + openblas = openblasCompat; 4397 + }); 4398 + 4393 4399 kotlin = callPackage ../development/compilers/kotlin { }; 4394 4400 4395 4401 lazarus = callPackage ../development/compilers/fpc/lazarus.nix {