Merge branch 'master' into staging

This commit is contained in:
Vladimír Čunát
2018-01-08 17:33:31 +01:00
73 changed files with 1070 additions and 1763 deletions

View File

@@ -1,4 +1,4 @@
# Temporaririly avoid dependency on dotnetbuildhelpers to avoid rebuilding many times while working on it
# Temporarily avoid dependency on dotnetbuildhelpers to avoid rebuilding many times while working on it
{ stdenv, fetchurl, mono, pkgconfig, dotnetbuildhelpers, autoconf, automake, which }:

View File

@@ -1,7 +1,7 @@
{ stdenv
, fetchurl, perl
, ncurses5, gmp, libiconv
, gcc
, gcc, llvm_35
}:
# Prebuilt only does native
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
or (throw "cannot bootstrap GHC on this platform"));
nativeBuildInputs = [ perl ];
buildInputs = stdenv.lib.optionals stdenv.isArm [ llvm_35 ];
# Cannot patchelf beforehand due to relative RPATHs that anticipate
# the final install location/

View File

@@ -2,7 +2,7 @@
, buildPlatform, hostPlatform, targetPlatform
# build-tools
, bootPkgs, hscolour
, bootPkgs, hscolour, llvm_35
, coreutils, fetchurl, fetchpatch, perl
, docbook_xsl, docbook_xml_dtd_45, docbook_xml_dtd_42, libxml2, libxslt
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
./relocation.patch
];
buildInputs = [ ghc perl libxml2 libxslt docbook_xsl docbook_xml_dtd_45 docbook_xml_dtd_42 hscolour ];
buildInputs = [ ghc perl libxml2 libxslt docbook_xsl docbook_xml_dtd_45 docbook_xml_dtd_42 hscolour ] ++ stdenv.lib.optionals stdenv.isArm [ llvm_35 ];
enableParallelBuilding = true;

View File

@@ -2,7 +2,7 @@
, buildPlatform, hostPlatform, targetPlatform
# build-tools
, bootPkgs, hscolour
, bootPkgs, hscolour, llvm_37
, coreutils, fetchurl, fetchpatch, patchutils, perl, sphinx
, libiconv ? null, ncurses
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
++ stdenv.lib.optional stdenv.isLinux ./ghc-no-madv-free.patch
++ stdenv.lib.optional stdenv.isDarwin ./ghc-8.0.2-no-cpp-warnings.patch;
buildInputs = [ ghc perl hscolour sphinx ];
buildInputs = [ ghc perl hscolour sphinx ] ++ stdenv.lib.optionals (stdenv.isArm || stdenv.isAarch64) [ llvm_37 ];
enableParallelBuilding = true;

View File

@@ -1,5 +1,5 @@
{ stdenv
, fetchurl, perl, gcc
, fetchurl, perl, gcc, llvm_39
, ncurses5, gmp, libiconv
}:
@@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
or (throw "cannot bootstrap GHC on this platform"));
nativeBuildInputs = [ perl ];
buildInputs = stdenv.lib.optionals (stdenv.isArm || stdenv.isAarch64) [ llvm_39 ];
# Cannot patchelf beforehand due to relative RPATHs that anticipate
# the final install location/

View File

@@ -3,7 +3,7 @@
, selfPkgs, cross ? null
# build-tools
, bootPkgs, alex, happy, hscolour
, bootPkgs, alex, happy, hscolour, llvm_39
, autoconf, automake, coreutils, fetchurl, perl, python3, sphinx
, libiconv ? null, ncurses
@@ -46,7 +46,7 @@ stdenv.mkDerivation (rec {
sed 's|#BuildFlavour = quick-cross|BuildFlavour = perf-cross|' mk/build.mk.sample > mk/build.mk
'';
buildInputs = [ alex autoconf automake ghc happy hscolour perl python3 sphinx ];
buildInputs = [ alex autoconf automake ghc happy hscolour perl python3 sphinx ] ++ stdenv.lib.optionals (stdenv.isArm || stdenv.isAarch64) [ llvm_39 ];
enableParallelBuilding = true;
@@ -58,6 +58,8 @@ stdenv.mkDerivation (rec {
"--with-gmp-includes=${gmp.dev}/include" "--with-gmp-libraries=${gmp.out}/lib"
] ++ stdenv.lib.optional stdenv.isDarwin [
"--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib"
] ++ stdenv.lib.optional stdenv.isArm [
"LD=${stdenv.cc}/bin/ld.gold"
];
# required, because otherwise all symbols from HSffi.o are stripped, and

View File

@@ -0,0 +1,40 @@
{ stdenv, fetchurl, makeWrapper, jre }:
stdenv.mkDerivation rec {
version = "0.4.0-RC1";
name = "dotty-bare-${version}";
src = fetchurl {
url = "https://github.com/lampepfl/dotty/releases/download/${version}/dotty-${version}.tar.gz";
sha256 = "1d1ab08b85bd6898ce6273fa50818de0d314fc6e5377fb6ee05494827043321b";
};
propagatedBuildInputs = [ jre ] ;
buildInputs = [ makeWrapper ] ;
installPhase = ''
mkdir -p $out
mv * $out
'';
fixupPhase = ''
bin_files=$(find $out/bin -type f ! -name common)
for f in $bin_files ; do
wrapProgram $f --set JAVA_HOME ${jre}
done
'';
meta = with stdenv.lib; {
description = "Research platform for new language concepts and compiler technologies for Scala.";
longDescription = ''
Dotty is a platform to try out new language concepts and compiler technologies for Scala.
The focus is mainly on simplification. We remove extraneous syntax (e.g. no XML literals),
and try to boil down Scalas types into a smaller set of more fundamental constructs.
The theory behind these constructs is researched in DOT, a calculus for dependent object types.
'';
homepage = http://dotty.epfl.ch/;
license = licenses.bsd3;
platforms = platforms.all;
maintainers = [maintainers.karolchmist];
};
}

View File

@@ -1,46 +1,22 @@
{ stdenv, fetchurl, makeWrapper, jre }:
{ stdenv, fetchurl, makeWrapper, jre, callPackage }:
stdenv.mkDerivation rec {
version = "0.4.0-RC1";
name = "dotty-${version}";
src = fetchurl {
url = "https://github.com/lampepfl/dotty/releases/download/${version}/${name}.tar.gz";
sha256 = "1d1ab08b85bd6898ce6273fa50818de0d314fc6e5377fb6ee05494827043321b";
let
dotty-bare = callPackage ./dotty-bare.nix {
inherit stdenv fetchurl makeWrapper jre;
};
in
propagatedBuildInputs = [ jre ] ;
buildInputs = [ makeWrapper ] ;
stdenv.mkDerivation {
name = "dotty-${dotty-bare.version}";
unpackPhase = ":";
installPhase = ''
mkdir -p $out
mv * $out
mkdir -p $out/shared
mv $out/bin/common $out/shared
mkdir -p $out/bin
ln -s ${dotty-bare}/bin/dotc $out/bin/dotc
ln -s ${dotty-bare}/bin/dotd $out/bin/dotd
ln -s ${dotty-bare}/bin/dotr $out/bin/dotr
'';
fixupPhase = ''
for file in $out/bin/* ; do
substituteInPlace $file \
--replace '$PROG_HOME/bin/common' $out/shared/common
wrapProgram $file \
--set JAVA_HOME ${jre}
done
'';
meta = with stdenv.lib; {
description = "Research platform for new language concepts and compiler technologies for Scala.";
longDescription = ''
Dotty is a platform to try out new language concepts and compiler technologies for Scala.
The focus is mainly on simplification. We remove extraneous syntax (e.g. no XML literals),
and try to boil down Scalas types into a smaller set of more fundamental constructs.
The theory behind these constructs is researched in DOT, a calculus for dependent object types.
'';
homepage = http://dotty.epfl.ch/;
license = licenses.bsd3;
platforms = platforms.all;
maintainers = [maintainers.karolchmist];
};
inherit (dotty-bare) meta;
}