about summary refs log tree commit diff
path: root/pkgs/development/compilers
diff options
context:
space:
mode:
authorVladimír Čunát <v@cunat.cz>2020-04-18 07:42:26 +0200
committerVladimír Čunát <v@cunat.cz>2020-04-18 07:42:26 +0200
commitd96487b9cadb27aba64cb05c2e4962fb3c9e1890 (patch)
tree901e2d0a53fd23b7579ca3dddfbd8b533c46d39c /pkgs/development/compilers
parent312e9037f49bf0b163d071dc68fe76c2b5d77319 (diff)
parenteb4acb6ca9c4482e7a65d4b1aaf4ec7c48ea6641 (diff)
downloadnixlib-d96487b9cadb27aba64cb05c2e4962fb3c9e1890.tar
nixlib-d96487b9cadb27aba64cb05c2e4962fb3c9e1890.tar.gz
nixlib-d96487b9cadb27aba64cb05c2e4962fb3c9e1890.tar.bz2
nixlib-d96487b9cadb27aba64cb05c2e4962fb3c9e1890.tar.lz
nixlib-d96487b9cadb27aba64cb05c2e4962fb3c9e1890.tar.xz
nixlib-d96487b9cadb27aba64cb05c2e4962fb3c9e1890.tar.zst
nixlib-d96487b9cadb27aba64cb05c2e4962fb3c9e1890.zip
Merge branch 'master' into staging-next
Hydra nixpkgs: ?compare=1582510
Diffstat (limited to 'pkgs/development/compilers')
-rw-r--r--pkgs/development/compilers/crystal/default.nix66
-rw-r--r--pkgs/development/compilers/ghc/head.nix48
-rw-r--r--pkgs/development/compilers/halide/default.nix5
-rw-r--r--pkgs/development/compilers/julia/1.3.nix24
-rw-r--r--pkgs/development/compilers/julia/shared.nix20
-rw-r--r--pkgs/development/compilers/zig/default.nix34
-rw-r--r--pkgs/development/compilers/zig/llvm10_polly.patch10
7 files changed, 100 insertions, 107 deletions
diff --git a/pkgs/development/compilers/crystal/default.nix b/pkgs/development/compilers/crystal/default.nix
index 9491a545a784..db22b668cf5e 100644
--- a/pkgs/development/compilers/crystal/default.nix
+++ b/pkgs/development/compilers/crystal/default.nix
@@ -178,33 +178,6 @@ let
   }));
 
 in rec {
-  binaryCrystal_0_27 = genericBinary {
-    version = "0.27.2";
-    sha256s = {
-      x86_64-linux  = "05l5x7kx2acgnv42fj3rr17z73ix06zvi05h7d7vf3kw0izxrasm";
-      i686-linux    = "1iwizkvn6pglc0azkyfhlmk9ap793krdgcnbihd1kvrvs4cz0mm9";
-      x86_64-darwin = "14c69ac2dmfwmb5q56ps3xyxxb0mrbc91ahk9h07c8fiqfii3k9g";
-    };
-  };
-
-  binaryCrystal_0_29 = genericBinary {
-    version = "0.29.0";
-    sha256s = {
-      x86_64-linux  = "1wrk29sfx35akg7hxwpdiikvl18wd40gq1kwirw7x522hnq7vlna";
-      i686-linux    = "1nx0piis2k3nn7kqiijqazzbvlaavhgvsln0l3dxmpfa4i4dz5h2";
-      x86_64-darwin = "1fd0fbyf05abivnp3igjlrm2axf65n2wdmg4aq6nqj60ipc01rvd";
-    };
-  };
-
-  binaryCrystal_0_30 = genericBinary {
-    version = "0.30.1";
-    sha256s = {
-      x86_64-linux  = "1k2mb74jh3ns3m7y73j4wpf571sayn73zbn6d7q81d09r280zrma";
-      i686-linux    = "0vsq1ayf922spydp2g2mmimc797jmm7nl5nljhfppcclrwygdyk2";
-      x86_64-darwin = "1p3s4lwdgykb7h7aysjhrs7vm0zhinzw5d7rfv6jsyin4j8yxhzz";
-    };
-  };
-
   binaryCrystal_0_31 = genericBinary {
     version = "0.31.1";
     sha256s = {
@@ -214,32 +187,11 @@ in rec {
     };
   };
 
-  crystal_0_27 = generic {
-    version = "0.27.2";
-    sha256  = "0vxqnpqi85yh0167nrkbksxsni476iwbh6y3znbvbjbbfhsi3nsj";
-    doCheck = false; # about 20 tests out of more than 15000 are failing
-    binary = binaryCrystal_0_27;
-  };
-
-  crystal_0_29 = generic {
-    version = "0.29.0";
-    sha256  = "0v9l253b2x8yw6a43vvalywpwciwr094l3g5wakmndfrzak2s3zr";
-    doCheck = false; # 6 checks are failing now
-    binary = binaryCrystal_0_29;
-  };
-
-  crystal_0_30 = generic {
-    version = "0.30.1";
-    sha256  = "0fbk784zjflsl3hys5a1xmn8mda8kb2z7ql58wpyfavivswxanbs";
-    doCheck = false; # 6 checks are failing now
-    binary = binaryCrystal_0_29;
-  };
-
   crystal_0_31 = generic {
     version = "0.31.1";
     sha256  = "1dswxa32w16gnc6yjym12xj7ibg0g6zk3ngvl76lwdjqb1h6lwz8";
     doCheck = false; # 5 checks are failing now
-    binary = binaryCrystal_0_30;
+    binary = binaryCrystal_0_31;
   };
 
   crystal_0_32 = generic {
@@ -248,7 +200,21 @@ in rec {
     binary = binaryCrystal_0_31;
   };
 
-  crystal = crystal_0_32;
+  crystal_0_33 = generic {
+    version = "0.33.0";
+    sha256  = "1zg0qixcws81s083wrh54hp83ng2pa8iyyafaha55mzrh8293jbi";
+    binary = binaryCrystal_0_31;
+    doCheck = false; # 4 checks are failing now
+  };
+
+  crystal_0_34 = generic {
+    version = "0.34.0";
+    sha256  = "110lfpxk9jnqyznbfnilys65ixj5sdmy8pvvnlhqhc3ccvrlnmq4";
+    binary = crystal_0_33;
+    doCheck = false; # 4 checks are failing now
+  };
+
+  crystal = crystal_0_34;
 
   crystal2nix = callPackage ./crystal2nix.nix {};
 }
diff --git a/pkgs/development/compilers/ghc/head.nix b/pkgs/development/compilers/ghc/head.nix
index be8fd73a6be0..d7fe37d1103f 100644
--- a/pkgs/development/compilers/ghc/head.nix
+++ b/pkgs/development/compilers/ghc/head.nix
@@ -2,13 +2,17 @@
 
 # build-tools
 , bootPkgs
-, autoconf, autoreconfHook, automake, coreutils, fetchgit, fetchpatch, perl, python3, m4, sphinx
+, autoconf, autoreconfHook, automake, coreutils, fetchgit, perl, python3, m4, sphinx
 , bash
 
 , libiconv ? null, ncurses
 
+, # GHC can be built with system libffi or a bundled one.
+  libffi ? null
+
 , enableDwarf ? !stdenv.targetPlatform.isDarwin &&
-                !stdenv.targetPlatform.isWindows, elfutils # for DWARF support
+                !stdenv.targetPlatform.isWindows
+, elfutils # for DWARF support
 
 , useLLVM ? !stdenv.targetPlatform.isx86 || stdenv.targetPlatform.isiOS
 , # LLVM is conceptually a run-time-only depedendency, but for
@@ -18,7 +22,8 @@
 
 , # If enabled, GHC will be built with the GPL-free but slower integer-simple
   # library instead of the faster but GPLed integer-gmp library.
-  enableIntegerSimple ? !(stdenv.lib.any (stdenv.lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), gmp
+  enableIntegerSimple ? !(stdenv.lib.any (stdenv.lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms)
+, gmp
 
 , # If enabled, use -fPIC when compiling static libs.
   enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
@@ -30,7 +35,7 @@
 , # Whetherto build terminfo.
   enableTerminfo ? !stdenv.targetPlatform.isWindows
 
-, version ? "8.10.20191119"
+, version ? "8.11.20200403"
 , # What flavour to build. An empty string indicates no
   # specific flavour and falls back to ghc default values.
   ghcFlavour ? stdenv.lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
@@ -75,6 +80,7 @@ let
 
   # Splicer will pull out correct variations
   libDeps = platform: stdenv.lib.optional enableTerminfo ncurses
+    ++ [libffi]
     ++ stdenv.lib.optional (!enableIntegerSimple) gmp
     ++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv
     ++ stdenv.lib.optional enableDwarf elfutils;
@@ -97,17 +103,14 @@ stdenv.mkDerivation (rec {
 
   src = fetchgit {
     url = "https://gitlab.haskell.org/ghc/ghc.git/";
-    rev = "0418c38d55c7a47967187dce2db5ea2ab1021b1e";
-    sha256 = "1d8g30ii0w4xh6fh61bxbalsqqyanny99nn3p727fx7favnhgvxi";
+    rev = "4291bddaea3148908c55f235ee8978e1d9aa6f20";
+    sha256 = "1gs3mxmsdpsgsp7vnawx8mys0qwg4x2zhfrbciy3wv8nv13ar1af";
   };
 
   enableParallelBuilding = true;
 
   outputs = [ "out" "doc" ];
 
-  patches = [
-  ];
-
   postPatch = "patchShebangs .";
 
   # GHC is a bit confused on its cross terminology.
@@ -130,8 +133,8 @@ stdenv.mkDerivation (rec {
     export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
 
     echo -n "${buildMK}" > mk/build.mk
-    echo ${version} >VERSION
-    echo ${src.rev} >GIT_COMMIT_ID
+    echo ${version} > VERSION
+    echo ${src.rev} > GIT_COMMIT_ID
     ./boot
     sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
   '' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
@@ -161,31 +164,40 @@ stdenv.mkDerivation (rec {
   # TODO(@Ericson2314): Always pass "--target" and always prefix.
   configurePlatforms = [ "build" "host" ]
     ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
+
   # `--with` flags for libraries needed for RTS linker
   configureFlags = [
     "--datadir=$doc/share/doc/ghc"
-    "--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
+    "--with-curses-libraries=${ncurses.out}/lib"
+  ] ++ stdenv.lib.optionals (libffi != null) [
+    "--with-system-libffi"
+    "--with-ffi-includes=${targetPackages.libffi.dev}/include"
+    "--with-ffi-libraries=${targetPackages.libffi.out}/lib"
   ] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
-    "--with-gmp-includes=${targetPackages.gmp.dev}/include" "--with-gmp-libraries=${targetPackages.gmp.out}/lib"
+    "--with-gmp-includes=${targetPackages.gmp.dev}/include"
+    "--with-gmp-libraries=${targetPackages.gmp.out}/lib"
   ] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
-    "--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib"
+    "--with-iconv-includes=${libiconv}/include"
+    "--with-iconv-libraries=${libiconv}/lib"
   ] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [
     "--enable-bootstrap-with-devel-snapshot"
   ] ++ stdenv.lib.optionals useLdGold [
     "CFLAGS=-fuse-ld=gold"
     "CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
     "CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
-  ] ++ stdenv.lib.optionals (disableLargeAddressSpace) [
-    "--disable-large-address-space"
-  ] ++ stdenv.lib.optionals enableDwarf [
+  ] ++ stdenv.lib.optional disableLargeAddressSpace "--disable-large-address-space"
+    ++ stdenv.lib.optionals enableDwarf [
     "--enable-dwarf-unwind"
     "--with-libdw-includes=${stdenv.lib.getDev elfutils}/include"
     "--with-libdw-libraries=${stdenv.lib.getLib elfutils}/lib"
   ];
 
-  # Make sure we never relax`$PATH` and hooks support for compatability.
+  # Make sure we never relax`$PATH` and hooks support for compatibility.
   strictDeps = true;
 
+  # Don’t add -liconv to LDFLAGS automatically so that GHC will add it itself.
+	dontAddExtraLibs = true;
+
   nativeBuildInputs = [
     perl autoconf autoreconfHook automake m4 python3 sphinx
     ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
diff --git a/pkgs/development/compilers/halide/default.nix b/pkgs/development/compilers/halide/default.nix
index 44c079af9263..356ebe231729 100644
--- a/pkgs/development/compilers/halide/default.nix
+++ b/pkgs/development/compilers/halide/default.nix
@@ -1,7 +1,10 @@
 { llvmPackages, lib, fetchFromGitHub, cmake
-, libpng, libjpeg, mesa, eigen, openblas
+, libpng, libjpeg, mesa, eigen
+, openblas, blas, lapack
 }:
 
+assert blas.implementation == "openblas" && lapack.implementation == "openblas";
+
 let
   version = "2019_08_27";
 
diff --git a/pkgs/development/compilers/julia/1.3.nix b/pkgs/development/compilers/julia/1.3.nix
index 48034920e283..49dc17a27f45 100644
--- a/pkgs/development/compilers/julia/1.3.nix
+++ b/pkgs/development/compilers/julia/1.3.nix
@@ -7,28 +7,22 @@
 # standard library dependencies
 , curl, fftwSinglePrec, fftw, gmp, libgit2, mpfr, openlibm, openspecfun, pcre2
 # linear algebra
-, openblas, arpack
+, blas, lapack, arpack
 # Darwin frameworks
 , CoreServices, ApplicationServices
 }:
 
+assert (!blas.is64bit) && (!lapack.is64bit);
+
 with stdenv.lib;
 
-# All dependencies must use the same OpenBLAS.
-let
-  arpack_ = arpack;
-in
 let
-  arpack = arpack_.override { inherit openblas; };
-in
-
-let 
   majorVersion = "1";
   minorVersion = "3";
   maintenanceVersion = "1";
   src_sha256 = "0q9a7yc3b235psrwl5ghyxgwly25lf8n818l8h6bkf2ymdbsv5p6";
   version = "${majorVersion}.${minorVersion}.${maintenanceVersion}";
-in 
+in
 
 stdenv.mkDerivation rec {
   pname = "julia";
@@ -67,7 +61,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     arpack fftw fftwSinglePrec gmp libgit2 libunwind mpfr
-    pcre2.dev openblas openlibm openspecfun readline utf8proc
+    pcre2.dev blas lapack openlibm openspecfun readline utf8proc
     zlib
   ]
   ++ stdenv.lib.optionals stdenv.isDarwin [CoreServices ApplicationServices]
@@ -94,13 +88,9 @@ stdenv.mkDerivation rec {
       "SHELL=${stdenv.shell}"
 
       "USE_SYSTEM_BLAS=1"
-      "USE_BLAS64=${if openblas.blas64 then "1" else "0"}"
-      "LIBBLAS=-lopenblas"
-      "LIBBLASNAME=libopenblas"
+      "USE_BLAS64=${if blas.is64bit then "1" else "0"}"
 
       "USE_SYSTEM_LAPACK=1"
-      "LIBLAPACK=-lopenblas"
-      "LIBLAPACKNAME=libopenblas"
 
       "USE_SYSTEM_ARPACK=1"
       "USE_SYSTEM_FFTW=1"
@@ -123,7 +113,7 @@ stdenv.mkDerivation rec {
     ];
 
   LD_LIBRARY_PATH = makeLibraryPath [
-    arpack fftw fftwSinglePrec gmp libgit2 mpfr openblas openlibm
+    arpack fftw fftwSinglePrec gmp libgit2 mpfr blas openlibm
     openspecfun pcre2
   ];
 
diff --git a/pkgs/development/compilers/julia/shared.nix b/pkgs/development/compilers/julia/shared.nix
index ec1818f99890..92e3d4a5c14b 100644
--- a/pkgs/development/compilers/julia/shared.nix
+++ b/pkgs/development/compilers/julia/shared.nix
@@ -15,20 +15,14 @@
 # standard library dependencies
 , curl, fftwSinglePrec, fftw, gmp, libgit2, mpfr, openlibm, openspecfun, pcre2
 # linear algebra
-, openblas, arpack
+, blas, lapack, arpack
 # Darwin frameworks
 , CoreServices, ApplicationServices
 }:
 
 with stdenv.lib;
 
-# All dependencies must use the same OpenBLAS.
-let
-  arpack_ = arpack;
-in
-let
-  arpack = arpack_.override { inherit openblas; };
-in
+assert (!blas.is64bit) && (!lapack.is64bit);
 
 let
   dsfmtVersion = "2.2.3";
@@ -118,7 +112,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     arpack fftw fftwSinglePrec gmp libgit2 libunwind mpfr
-    pcre2.dev openblas openlibm openspecfun readline utf8proc
+    pcre2.dev blas lapack openlibm openspecfun readline utf8proc
     zlib
   ]
   ++ stdenv.lib.optionals stdenv.isDarwin [CoreServices ApplicationServices]
@@ -143,13 +137,9 @@ stdenv.mkDerivation rec {
       "SHELL=${stdenv.shell}"
 
       "USE_SYSTEM_BLAS=1"
-      "USE_BLAS64=${if openblas.blas64 then "1" else "0"}"
-      "LIBBLAS=-lopenblas"
-      "LIBBLASNAME=libopenblas"
+      "USE_BLAS64=${if blas.is64bit then "1" else "0"}"
 
       "USE_SYSTEM_LAPACK=1"
-      "LIBLAPACK=-lopenblas"
-      "LIBLAPACKNAME=libopenblas"
 
       "USE_SYSTEM_ARPACK=1"
       "USE_SYSTEM_FFTW=1"
@@ -173,7 +163,7 @@ stdenv.mkDerivation rec {
     ];
 
   LD_LIBRARY_PATH = makeLibraryPath [
-    arpack fftw fftwSinglePrec gmp libgit2 mpfr openblas openlibm
+    arpack fftw fftwSinglePrec gmp libgit2 mpfr blas lapack openlibm
     openspecfun pcre2
   ];
 
diff --git a/pkgs/development/compilers/zig/default.nix b/pkgs/development/compilers/zig/default.nix
index d547535c54be..20ce0b5ff5ee 100644
--- a/pkgs/development/compilers/zig/default.nix
+++ b/pkgs/development/compilers/zig/default.nix
@@ -1,25 +1,47 @@
-{ stdenv, fetchFromGitHub, cmake, llvmPackages, libxml2, zlib }:
+{ stdenv, fetchFromGitHub, cmake, llvmPackages, libxml2, zlib, substituteAll }:
 
-stdenv.mkDerivation rec {
-  version = "0.5.0";
+llvmPackages.stdenv.mkDerivation rec {
+  version = "0.6.0";
   pname = "zig";
 
   src = fetchFromGitHub {
     owner = "ziglang";
     repo = pname;
     rev = version;
-    sha256 = "0xyl0riakh6kwb3yvxihb451kqs4ai4q0aygqygnlb2rlr1dn1zb";
+    sha256 = "13dwm2zpscn4n0p5x8ggs9n7mwmq9cgip383i3qqphg7m3pkls8z";
   };
 
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ llvmPackages.clang-unwrapped llvmPackages.llvm libxml2 zlib ];
+  buildInputs = [
+    llvmPackages.clang-unwrapped
+    llvmPackages.llvm
+    llvmPackages.lld
+    libxml2
+    zlib
+  ];
+
+  patches = [
+    (substituteAll {
+        src = ./llvm10_polly.patch;
+        llvm_extras = "-Wl,${llvmPackages.llvm}/lib/LLVMPolly.so";
+    })
+  ];
 
   preBuild = ''
     export HOME=$TMPDIR;
   '';
 
+  checkPhase = ''
+    runHook preCheck
+    ./zig test $src/test/stage1/behavior.zig
+    runHook postCheck
+  '';
+
+  doCheck = true;
+
   meta = with stdenv.lib; {
-    description = "Programming languaged designed for robustness, optimality, and clarity";
+    description =
+      "General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software";
     homepage = "https://ziglang.org/";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/pkgs/development/compilers/zig/llvm10_polly.patch b/pkgs/development/compilers/zig/llvm10_polly.patch
new file mode 100644
index 000000000000..72449c35d91f
--- /dev/null
+++ b/pkgs/development/compilers/zig/llvm10_polly.patch
@@ -0,0 +1,10 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 97608cddf..e451c0711 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -369,4 +369,5 @@ target_link_libraries(zig_cpp LINK_PUBLIC
+     ${CLANG_LIBRARIES}
+     ${LLD_LIBRARIES}
+     ${LLVM_LIBRARIES}
++    @llvm_extras@
+ )