summary refs log tree commit diff
path: root/pkgs/development/compilers
diff options
context:
space:
mode:
authorRobin Gloster <mail@glob.in>2016-06-10 09:27:04 +0000
committerRobin Gloster <mail@glob.in>2016-06-10 09:27:04 +0000
commit8031cba2ab3146977141fc504bea2a1e03b5c126 (patch)
tree0cd68c0007851dfed7d7f8247754b5c4b356704e /pkgs/development/compilers
parent2a5e64b69c83592caf900cb0b7213235e96368de (diff)
parent656c48f141be5886c515a1a874a47472cbbac6bd (diff)
downloadnixlib-8031cba2ab3146977141fc504bea2a1e03b5c126.tar
nixlib-8031cba2ab3146977141fc504bea2a1e03b5c126.tar.gz
nixlib-8031cba2ab3146977141fc504bea2a1e03b5c126.tar.bz2
nixlib-8031cba2ab3146977141fc504bea2a1e03b5c126.tar.lz
nixlib-8031cba2ab3146977141fc504bea2a1e03b5c126.tar.xz
nixlib-8031cba2ab3146977141fc504bea2a1e03b5c126.tar.zst
nixlib-8031cba2ab3146977141fc504bea2a1e03b5c126.zip
Merge remote-tracking branch 'upstream/master' into hardened-stdenv
Diffstat (limited to 'pkgs/development/compilers')
-rw-r--r--pkgs/development/compilers/aldor/default.nix2
-rw-r--r--pkgs/development/compilers/aliceml/default.nix2
-rw-r--r--pkgs/development/compilers/chez/default.nix2
-rw-r--r--pkgs/development/compilers/dtc/default.nix2
-rw-r--r--pkgs/development/compilers/ecl/default.nix2
-rw-r--r--pkgs/development/compilers/edk2/default.nix2
-rw-r--r--pkgs/development/compilers/elm/packages/elm-compiler.nix2
-rw-r--r--pkgs/development/compilers/elm/packages/elm-make.nix2
-rw-r--r--pkgs/development/compilers/elm/packages/elm-package.nix2
-rw-r--r--pkgs/development/compilers/elm/packages/elm-reactor.nix2
-rw-r--r--pkgs/development/compilers/elm/packages/elm-repl.nix2
-rw-r--r--pkgs/development/compilers/eql/default.nix2
-rw-r--r--pkgs/development/compilers/factor-lang/default.nix94
-rw-r--r--pkgs/development/compilers/go/1.5.nix12
-rw-r--r--pkgs/development/compilers/haxe/default.nix2
-rw-r--r--pkgs/development/compilers/hhvm/default.nix2
-rw-r--r--pkgs/development/compilers/julia/git.nix2
-rw-r--r--pkgs/development/compilers/lessc/default.nix2
-rw-r--r--pkgs/development/compilers/llvm/3.6/llvm.nix4
-rw-r--r--pkgs/development/compilers/llvm/3.7/llvm.nix4
-rw-r--r--pkgs/development/compilers/llvm/3.8/llvm.nix4
-rw-r--r--pkgs/development/compilers/mkcl/default.nix2
-rw-r--r--pkgs/development/compilers/opa/default.nix2
-rw-r--r--pkgs/development/compilers/opendylan/default.nix2
-rw-r--r--pkgs/development/compilers/rustc/beta.nix12
-rw-r--r--pkgs/development/compilers/rustc/bootstrap.nix58
-rw-r--r--pkgs/development/compilers/rustc/default.nix27
-rw-r--r--pkgs/development/compilers/rustc/generic.nix84
-rw-r--r--pkgs/development/compilers/rustc/head.nix32
-rw-r--r--pkgs/development/compilers/rustc/patches/disable-lockfile-check.patch25
-rw-r--r--pkgs/development/compilers/rustc/patches/use-rustc-1.9.0.patch25
-rw-r--r--pkgs/development/compilers/rustc/stable.nix13
-rw-r--r--pkgs/development/compilers/sbcl/default.nix4
-rw-r--r--pkgs/development/compilers/serpent/default.nix37
-rw-r--r--pkgs/development/compilers/tinycc/default.nix78
-rw-r--r--pkgs/development/compilers/uhc/default.nix4
-rw-r--r--pkgs/development/compilers/vala/0.32.nix30
37 files changed, 395 insertions, 190 deletions
diff --git a/pkgs/development/compilers/aldor/default.nix b/pkgs/development/compilers/aldor/default.nix
index bcdeb2f19e81..352dde6d9e19 100644
--- a/pkgs/development/compilers/aldor/default.nix
+++ b/pkgs/development/compilers/aldor/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation {
 
   src = fetchgit {
     url = "https://github.com/pippijn/aldor";
-    sha256 = "1l9fc2cgwabifwbijcp293abc8hcv40nzx2w31jkxh8n0plbiczn";
+    sha256 = "19v07ffq4r1gjnmg7a8ifgjkwan9a3rwbj0qjz8fycwy221844m6";
     rev = "15471e75f3d65b93150f414ebcaf59a03054b68d";
   };
 
diff --git a/pkgs/development/compilers/aliceml/default.nix b/pkgs/development/compilers/aliceml/default.nix
index 01a8a337fc0a..a5900f2ce25a 100644
--- a/pkgs/development/compilers/aliceml/default.nix
+++ b/pkgs/development/compilers/aliceml/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation {
   src = fetchgit {
     url = "https://github.com/aliceml/aliceml";
     rev = "7d44dc8e4097c6f85888bbf4ff86d51fe05b0a08";
-    sha256 = "ab2d5bf05c40905b02cb1ec975d4980ae4437757856eeb1f587ede2c45a1917f";
+    sha256 = "1xpvia00cpig0i7qvz29sx7xjic6kd472ng722x4rapz8mjnf8bk";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/compilers/chez/default.nix b/pkgs/development/compilers/chez/default.nix
index 65200dce71ef..e4ceb40cad6e 100644
--- a/pkgs/development/compilers/chez/default.nix
+++ b/pkgs/development/compilers/chez/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
   src = fetchgit {
     url    = "https://github.com/cisco/chezscheme.git";
     rev    = "65df1d1f7c37f5b5a93cd7e5b475dda9dbafe03c";
-    sha256 = "024x79xcdqp665xjyccpn02w6dmdvnhw0h0vdc42g9s5wv5ry92m";
+    sha256 = "1b273il3njnn04z55w1hnygvcqllc6p5qg9mcwh10w39fwsd8fbs";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/compilers/dtc/default.nix b/pkgs/development/compilers/dtc/default.nix
index 6daf7a6115a3..4adcb995bde4 100644
--- a/pkgs/development/compilers/dtc/default.nix
+++ b/pkgs/development/compilers/dtc/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   src = fetchgit {
     url = "git://git.kernel.org/pub/scm/utils/dtc/dtc.git";
     rev = "refs/tags/v${version}";
-    sha256 = "0z7yrv0sdhsh5wwy7yd1fvs4pqaq0n9m5i8w65lyibg77ahkasdg";
+    sha256 = "0wcn9x2vynwlfxk5c6jrf8lz7qvm1sbb9gh27drk1mx8msdh5hd5";
   };
 
   nativeBuildInputs = [ flex bison ];
diff --git a/pkgs/development/compilers/ecl/default.nix b/pkgs/development/compilers/ecl/default.nix
index 4edfaa715123..61737004e6fb 100644
--- a/pkgs/development/compilers/ecl/default.nix
+++ b/pkgs/development/compilers/ecl/default.nix
@@ -10,7 +10,7 @@ let
     version="16.1.2";
     name="${baseName}-${version}";
     hash="16ab8qs3awvdxy8xs8jy82v8r04x4wr70l9l2j45vgag18d2nj1d";
-    url="https://common-lisp.net/project/ecl/files/release/16.1.2/ecl-16.1.2.tgz";
+    url="https://common-lisp.net/project/ecl/static/files/release/ecl-16.1.2.tgz";
     sha256="16ab8qs3awvdxy8xs8jy82v8r04x4wr70l9l2j45vgag18d2nj1d";
   };
   buildInputs = [
diff --git a/pkgs/development/compilers/edk2/default.nix b/pkgs/development/compilers/edk2/default.nix
index da178e80a1a4..4ddf580fae5d 100644
--- a/pkgs/development/compilers/edk2/default.nix
+++ b/pkgs/development/compilers/edk2/default.nix
@@ -15,7 +15,7 @@ edk2 = stdenv.mkDerivation {
   src = fetchgit {
     url = git://github.com/tianocore/edk2;
     rev = "684a565a04";
-    sha256 = "1l46396f48v91z5b8lh3b0f0lcd7z5f86i1nrpc7l5gf7gx3117j";
+    sha256 = "0s9ywb8w7xzlnmm4kwzykxkrdaw53b7pky121cc9wjkllzqwyxrb";
   };
 
   buildInputs = [ libuuid pythonFull ];
diff --git a/pkgs/development/compilers/elm/packages/elm-compiler.nix b/pkgs/development/compilers/elm/packages/elm-compiler.nix
index ac0e2c236322..8bebdf4315a3 100644
--- a/pkgs/development/compilers/elm/packages/elm-compiler.nix
+++ b/pkgs/development/compilers/elm/packages/elm-compiler.nix
@@ -10,7 +10,7 @@ mkDerivation {
   version = "0.17";
   src = fetchgit {
     url = "https://github.com/elm-lang/elm-compiler";
-    sha256 = "185mh53yyxh9m0z8808fxpds3vqyrbhahf587nnw6qzyzv63m7px";
+    sha256 = "1vx4jp20nj4s41zsqnwyh80dvg7b7kd9fh6agl99v1xx9d3i6ws1";
     rev = "c9c7e72c424a13255f8ee84c719f7ef48b689c1a";
   };
   isLibrary = true;
diff --git a/pkgs/development/compilers/elm/packages/elm-make.nix b/pkgs/development/compilers/elm/packages/elm-make.nix
index 862adb460e3e..1fe4acc9e3b9 100644
--- a/pkgs/development/compilers/elm/packages/elm-make.nix
+++ b/pkgs/development/compilers/elm/packages/elm-make.nix
@@ -8,7 +8,7 @@ mkDerivation {
   version = "0.17";
   src = fetchgit {
     url = "https://github.com/elm-lang/elm-make";
-    sha256 = "0y8a67y8jhnhbcqzgjymyf1ffs75vyfpyb8as2bi0mkhb7fvzi6q";
+    sha256 = "0ywi6iq2a3rb8a68ryqpq9y22536aa9k71wy7fcmrd5nwkmpwd2r";
     rev = "5f7b74567c43eff341048c7caceb247b51cdb8bb";
   };
   isLibrary = false;
diff --git a/pkgs/development/compilers/elm/packages/elm-package.nix b/pkgs/development/compilers/elm/packages/elm-package.nix
index 5d2b4f8baba9..7df5516b27ad 100644
--- a/pkgs/development/compilers/elm/packages/elm-package.nix
+++ b/pkgs/development/compilers/elm/packages/elm-package.nix
@@ -9,7 +9,7 @@ mkDerivation {
   version = "0.17";
   src = fetchgit {
     url = "https://github.com/elm-lang/elm-package";
-    sha256 = "1x9jczby38ax3rbjq6hbyr593dhxazm39gy9jv00k6508dzvfg2l";
+    sha256 = "0z86560a2f7w3ywqvzqghgz100z0yn8zsiixkw4lp5168krp4axg";
     rev = "fc0924210fe5a7c0af543769b1353dbb2ddf2f0c";
   };
   isLibrary = true;
diff --git a/pkgs/development/compilers/elm/packages/elm-reactor.nix b/pkgs/development/compilers/elm/packages/elm-reactor.nix
index 18bb428a7a6a..55b6b9ae416c 100644
--- a/pkgs/development/compilers/elm/packages/elm-reactor.nix
+++ b/pkgs/development/compilers/elm/packages/elm-reactor.nix
@@ -8,7 +8,7 @@ mkDerivation {
   version = "0.17";
   src = fetchgit {
     url = "https://github.com/elm-lang/elm-reactor";
-    sha256 = "14hb16qwx1f4bfngh87pwjavgz6njbwdxlsy218rw3xydy3s1cn3";
+    sha256 = "03lb6fcc5d02gflarxc54l71hbwdb73v423ffjz5hvlha6ixglv7";
     rev = "4781ad2fbb6cbcde0d659dec293bbed9c847ba71";
   };
   isLibrary = false;
diff --git a/pkgs/development/compilers/elm/packages/elm-repl.nix b/pkgs/development/compilers/elm/packages/elm-repl.nix
index 4be7b023fa0f..030378e1811b 100644
--- a/pkgs/development/compilers/elm/packages/elm-repl.nix
+++ b/pkgs/development/compilers/elm/packages/elm-repl.nix
@@ -8,7 +8,7 @@ mkDerivation {
   version = "0.17";
   src = fetchgit {
     url = "https://github.com/elm-lang/elm-repl";
-    sha256 = "1mxg99w36b8i43kl1nxp7fd86igi5wyj08m9mraiq58vpcgyqnzq";
+    sha256 = "0bpmkm7q3a0h4hwlbwcnzaqgf6n5p1qw65z8kw84f52s5bndc0wc";
     rev = "95b4555cff6b6e2a55a4ea3dab00bfb39dfebf0d";
   };
   isLibrary = false;
diff --git a/pkgs/development/compilers/eql/default.nix b/pkgs/development/compilers/eql/default.nix
index de531e901d98..1128fbe64ec3 100644
--- a/pkgs/development/compilers/eql/default.nix
+++ b/pkgs/development/compilers/eql/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
   src = fetchgit {
     rev = "9097bf98446ee33c07bb155d800395775ce0d9b2";
     url = "https://gitlab.com/eql/eql.git";
-    sha256 = "1fp88xmmk1sa0iqxahfiv818bp2sbf66vqrd4xq9jb731ybdvsb8";
+    sha256 = "17h23qr7fyr9hvjgiq0yhacmjs43x06vh8978aq42ymcgipxdcww";
   };
 
   buildInputs = [ ecl qt4 xorgserver xkbcomp xkeyboard_config ];
diff --git a/pkgs/development/compilers/factor-lang/default.nix b/pkgs/development/compilers/factor-lang/default.nix
new file mode 100644
index 000000000000..ca3e9c6956d8
--- /dev/null
+++ b/pkgs/development/compilers/factor-lang/default.nix
@@ -0,0 +1,94 @@
+{ stdenv, fetchurl, fetchFromGitHub, glib, glibc, git,
+  rlwrap, curl, pkgconfig, perl, makeWrapper, tzdata, ncurses,
+  libX11, pango, cairo, gtk2, gdk_pixbuf, gtkglext,
+  mesa, libXmu, libXt, libICE, libSM }:
+
+stdenv.mkDerivation rec {
+  name = "factor-lang-${version}";
+  version = "0.97";
+  rev = "eb3ca179740e6cfba696b55a999caa13369e6182";
+
+  src = fetchFromGitHub {
+    owner = "factor";
+    repo = "factor";
+    rev = rev;
+    sha256 = "16zlbxbad3d19jq01nk824i19bypqzn8l3yfxys40z06vjjncapd";
+  };
+
+  factorimage = fetchurl {
+    url = http://downloads.factorcode.org/releases/0.97/factor-linux-x86-64-0.97.tar.gz;
+    sha256 = "06y125c8vbng54my5fxdr3crpxkvhhcng2n35cxddd3wcg6vhxhp";
+    name = "factorimage";
+  };
+
+  buildInputs = [ git rlwrap curl pkgconfig perl makeWrapper
+    libX11 pango cairo gtk2 gdk_pixbuf gtkglext
+    mesa libXmu libXt libICE libSM ];
+
+  buildPhase = ''
+    make $(bash ./build-support/factor.sh make-target) GIT_LABEL=heads/master-${rev}
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin $out/lib/factor
+    # First, get a workable image. Unfortunately, no boot-image
+    # is available with release info. So fetch a released image.
+    # The released image has library path info embedded, so we
+    # have to first recreate the boot image with Nix paths, and
+    # then use it to build the Nix release image.
+    zcat ${factorimage} | (cd $out/lib && tar -xvpf - factor/factor.image )
+
+    cp -r basis core extra unmaintained $out/lib/factor
+
+    # Factor uses the home directory for cache during compilation.
+    # We cant have that. So set it to $TMPDIR/.home
+    export HOME=$TMPDIR/.home && mkdir -p $HOME
+
+    # there is no ld.so.cache in NixOS so we construct one
+    # out of known libraries. The side effect is that find-lib
+    # will work only on the known libraries. There does not seem
+    # to be a generic solution here.
+    find $(echo ${stdenv.lib.makeLibraryPath [
+        glib libX11 pango cairo gtk2 gdk_pixbuf gtkglext
+        mesa libXmu libXt libICE libSM ]} | sed -e 's#:# #g') -name \*.so.\* > $TMPDIR/so.lst
+
+    (echo $(cat $TMPDIR/so.lst | wc -l) "libs found in cache \`/etc/ld.so.cache'";
+    for l in $(<$TMPDIR/so.lst);
+    do
+      echo "	$(basename $l) (libc6,x86-64) => $l";
+    done)> $out/lib/factor/ld.so.cache
+
+    sed -ie "s#/sbin/ldconfig -p#cat $out/lib/factor/ld.so.cache#g" \
+      $out/lib/factor/basis/alien/libraries/finder/linux/linux.factor
+
+    sed -ie 's#/usr/share/zoneinfo/#${tzdata}/share/zoneinfo/#g' \
+      $out/lib/factor/extra/tzinfo/tzinfo.factor
+
+    sed -ie 's#/usr/share/terminfo#${ncurses}/share/terminfo#g' \
+      $out/lib/factor/extra/terminfo/terminfo.factor
+
+    cp ./factor $out/bin
+    wrapProgram $out/bin/factor --prefix LD_LIBRARY_PATH : \
+      "${stdenv.lib.makeLibraryPath [ glib
+        libX11 pango cairo gtk2 gdk_pixbuf gtkglext
+        mesa libXmu libXt libICE libSM ]}"
+
+    sed -ie 's#/bin/.factor-wrapped#/lib/factor/factor#g' $out/bin/factor
+    mv $out/bin/.factor-wrapped $out/lib/factor/factor
+
+    # make a new bootstrap image
+    (cd $out/bin && ./factor  -script -e='"unix-x86.64" USING: system bootstrap.image memory ; make-image save 0 exit' )
+    mv $out/lib/factor/boot.unix-x86.64.image $out/lib/factor/factor.image
+    # now make the full system image, it overwrites $out/lib/factor/factor.image
+    $out/bin/factor -i=$out/lib/factor/factor.image
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://factorcode.org;
+    license = licenses.bsd2;
+    description = "A concatenative, stack-based programming language";
+
+    maintainers = [ maintainers.vrthra ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/development/compilers/go/1.5.nix b/pkgs/development/compilers/go/1.5.nix
index 7f7abd8a6e75..e6060f3ecec6 100644
--- a/pkgs/development/compilers/go/1.5.nix
+++ b/pkgs/development/compilers/go/1.5.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, tzdata, iana_etc, go_1_4, runCommand
+{ stdenv, lib, fetchFromGitHub, tzdata, iana_etc, go_1_4, runCommand
 , perl, which, pkgconfig, patch
 , pcre
 , Security, Foundation }:
@@ -15,11 +15,13 @@ in
 
 stdenv.mkDerivation rec {
   name = "go-${version}";
-  version = "1.5.3";
+  version = "1.5.4";
 
-  src = fetchurl {
-    url = "https://github.com/golang/go/archive/go${version}.tar.gz";
-    sha256 = "1n2niq0147pqflqh8j1s5wv8aq3vlh58ni3bp9add261z5q1g50k";
+  src = fetchFromGitHub {
+    owner = "golang";
+    repo = "go";
+    rev = "go${version}";
+    sha256 = "1lvk9awmkjbz5z4snv3q3b3r7ijfz97kig2wkqz6jmr7b0lp1fcy";
   };
 
   # perl is used for testing go vet
diff --git a/pkgs/development/compilers/haxe/default.nix b/pkgs/development/compilers/haxe/default.nix
index 41c7a476b27b..f70fbcf583c2 100644
--- a/pkgs/development/compilers/haxe/default.nix
+++ b/pkgs/development/compilers/haxe/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation {
 
   src = fetchgit {
     url = "https://github.com/HaxeFoundation/haxe.git";
-    sha256 = "1p4yja6flv2r04q9lcrjxia3f3fsmhi3d88s0lz0nf0r4m61bjz0";
+    sha256 = "0d8s9yqsqcbr2lfw4xnmg7vzgb6k1jq6hlwwaf1kmn9wxpvcc6x9";
     fetchSubmodules = true;
 
     # Tag 3.1.3
diff --git a/pkgs/development/compilers/hhvm/default.nix b/pkgs/development/compilers/hhvm/default.nix
index eb9e5f7d3627..59fb90d78cdf 100644
--- a/pkgs/development/compilers/hhvm/default.nix
+++ b/pkgs/development/compilers/hhvm/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   src = fetchgit {
     url    = "https://github.com/facebook/hhvm.git";
     rev    = "f516f1bb9046218f89885a220354c19dda6d8f4d";
-    sha256 = "1jdw6j394z7ksg4wdcnm7lkcs7iam5myx6k18w8hr595s1dfk3sj";
+    sha256 = "0sv856ran15rvnrj4dk0a5jirip5w4336a0aycv9wh77wm4s8xdb";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/compilers/julia/git.nix b/pkgs/development/compilers/julia/git.nix
index 00c4730cf85f..60e71b353e82 100644
--- a/pkgs/development/compilers/julia/git.nix
+++ b/pkgs/development/compilers/julia/git.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
   src = fetchgit {
     url = "https://github.com/JuliaLang/${pname}";
     rev = "cb93e6b70b4b1313b4de8c54e55e85c8eb43daa3";
-    sha256 = "11dmbjqiidlbh8sj5s09zsbfslm3zs0kw7iq40281hl5dfsr7zm6";
+    sha256 = "1xihq66il4wlxfm5fsgcirh76dq936fm887v2ynqkm3kz7ahhssw";
   };
 
   prePatch = ''
diff --git a/pkgs/development/compilers/lessc/default.nix b/pkgs/development/compilers/lessc/default.nix
index 82052b3d3ca9..3d7947dae7b6 100644
--- a/pkgs/development/compilers/lessc/default.nix
+++ b/pkgs/development/compilers/lessc/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   src = fetchgit {
     url = https://github.com/less/less.js.git;
     rev = "refs/tags/v${version}";
-    sha256 = "0r8bcad247v5fyh543a7dppmfbf49ai4my3vcizk42fsbnjs8q2x";
+    sha256 = "1af1xbh1pjpfsx0jp69syji6w9750nigk652yk46jrja3z1scb4s";
   };
 
   phases = [ "installPhase" ];
diff --git a/pkgs/development/compilers/llvm/3.6/llvm.nix b/pkgs/development/compilers/llvm/3.6/llvm.nix
index 5941d7883565..54de4b200f30 100644
--- a/pkgs/development/compilers/llvm/3.6/llvm.nix
+++ b/pkgs/development/compilers/llvm/3.6/llvm.nix
@@ -57,10 +57,6 @@ in stdenv.mkDerivation rec {
     rm -fR $out
 
     paxmark m bin/{lli,llvm-rtdyld}
-
-    paxmark m unittests/ExecutionEngine/JIT/JITTests
-    paxmark m unittests/ExecutionEngine/MCJIT/MCJITTests
-    paxmark m unittests/Support/SupportTests
   '';
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/compilers/llvm/3.7/llvm.nix b/pkgs/development/compilers/llvm/3.7/llvm.nix
index 3a7829eca6df..cc65c69927c5 100644
--- a/pkgs/development/compilers/llvm/3.7/llvm.nix
+++ b/pkgs/development/compilers/llvm/3.7/llvm.nix
@@ -62,10 +62,6 @@ in stdenv.mkDerivation rec {
     rm -fR $out
 
     paxmark m bin/{lli,llvm-rtdyld}
-
-    paxmark m unittests/ExecutionEngine/JIT/JITTests
-    paxmark m unittests/ExecutionEngine/MCJIT/MCJITTests
-    paxmark m unittests/Support/SupportTests
   '';
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/compilers/llvm/3.8/llvm.nix b/pkgs/development/compilers/llvm/3.8/llvm.nix
index ef929dec68ba..fb8266480326 100644
--- a/pkgs/development/compilers/llvm/3.8/llvm.nix
+++ b/pkgs/development/compilers/llvm/3.8/llvm.nix
@@ -67,10 +67,6 @@ in stdenv.mkDerivation rec {
     rm -fR $out
 
     paxmark m bin/{lli,llvm-rtdyld}
-
-    paxmark m unittests/ExecutionEngine/JIT/JITTests
-    paxmark m unittests/ExecutionEngine/MCJIT/MCJITTests
-    paxmark m unittests/Support/SupportTests
   '';
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/compilers/mkcl/default.nix b/pkgs/development/compilers/mkcl/default.nix
index 1678a6e50915..daebf3b284ee 100644
--- a/pkgs/development/compilers/mkcl/default.nix
+++ b/pkgs/development/compilers/mkcl/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   src = fetchgit {
     url = "https://github.com/jcbeaudoin/mkcl.git";
     rev = "86768cc1dfc2cc9caa1fe9696584bb25ea6c1429";
-    sha256 = "0ja7vyp5rjidb2a1gah35jqzqn6zjkikz5sd966p0f0wh26l6n03";
+    sha256 = "1gsvjp9xlnjccg0idi8x8gzkn6hlrqia95jh3zx7snm894503mf1";
   };
 
   buildInputs = [ makeWrapper ];
diff --git a/pkgs/development/compilers/opa/default.nix b/pkgs/development/compilers/opa/default.nix
index f0b503bd0be7..40c719262796 100644
--- a/pkgs/development/compilers/opa/default.nix
+++ b/pkgs/development/compilers/opa/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   src = fetchgit {
     url = https://github.com/MLstate/opalang.git;
     rev = "047f58bfd4be35ee30176156b3718c707a6c0f76";
-    sha256 = "1jbxfrmpbjjk7qvaxdn47044w5m8wr96q9yx65ib3wlapmjbvdvf";
+    sha256 = "1laynwf64713q2vhdkxw679dah6hl3bvmrj8cj836a9k9z7jcc1r";
   };
 
   # Paths so the opa compiler code generation will use the same programs as were
diff --git a/pkgs/development/compilers/opendylan/default.nix b/pkgs/development/compilers/opendylan/default.nix
index 0e26526ba161..9ed85e9c4d40 100644
--- a/pkgs/development/compilers/opendylan/default.nix
+++ b/pkgs/development/compilers/opendylan/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation {
   src = fetchgit {
     url = https://github.com/dylan-lang/opendylan;
     rev = "ce9b14dab6cb9ffedc69fae8c6df524c0c79abd3";
-    sha256 = "cec80980b838ac2581dfb6282e25d208e720d475256b75e24b23dbd30b09d21f";
+    sha256 = "17jvhv0y63fj25ma05k70b7phcwgjyna5qkrirk48z3xapb8bknd";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/compilers/rustc/beta.nix b/pkgs/development/compilers/rustc/beta.nix
new file mode 100644
index 000000000000..7dbd8ae7a695
--- /dev/null
+++ b/pkgs/development/compilers/rustc/beta.nix
@@ -0,0 +1,12 @@
+{ stdenv, callPackage, rustcStable }:
+
+callPackage ./generic.nix {
+  shortVersion = "beta-1.10.0";
+  forceBundledLLVM = false;
+  configureFlags = [ "--release-channel=beta" ];
+  srcRev = "39f3c16cca889ef3f1719d9177e3315258222a65";
+  srcSha = "01bx6616lslp2mbj4h8bb6m042fs0y1z8g0jgpxvbk3fbhzwafrx";
+  patches = [ ./patches/disable-lockfile-check.patch ] ++
+    stdenv.lib.optional stdenv.needsPax ./patches/grsec.patch;
+  rustc = rustcStable;
+}
diff --git a/pkgs/development/compilers/rustc/bootstrap.nix b/pkgs/development/compilers/rustc/bootstrap.nix
new file mode 100644
index 000000000000..8bff511459dc
--- /dev/null
+++ b/pkgs/development/compilers/rustc/bootstrap.nix
@@ -0,0 +1,58 @@
+{ stdenv, fetchurl }:
+
+let
+  platform = if stdenv.system == "i686-linux"
+    then "linux-i386"
+    else if stdenv.system == "x86_64-linux"
+    then "linux-x86_64"
+    else if stdenv.system == "i686-darwin"
+    then "macos-i386"
+    else if stdenv.system == "x86_64-darwin"
+    then "macos-x86_64"
+    else abort "no snapshot to bootstrap for this platform (missing platform url suffix)";
+
+  /* Rust is bootstrapped from an earlier built version. We need
+    to fetch these earlier versions, which vary per platform.
+    The shapshot info you want can be found at
+    https://github.com/rust-lang/rust/blob/{$shortVersion}/src/snapshots.txt
+    with the set you want at the top. Make sure this is the latest snapshot
+    for the tagged release and not a snapshot in the current HEAD.
+    NOTE: Rust 1.9.0 is the last version that uses snapshots
+  */
+
+  snapshotHashLinux686 = "0e0e4448b80d0a12b75485795244bb3857a0a7ef";
+  snapshotHashLinux64 = "1273b6b6aed421c9e40c59f366d0df6092ec0397";
+  snapshotHashDarwin686 = "9f9c0b4a2db09acbce54b792fb8839a735585565";
+  snapshotHashDarwin64 = "52570f6fd915b0210a9be98cfc933148e16a75f8";
+  snapshotDate = "2016-03-18";
+  snapshotRev = "235d774";
+
+  snapshotHash = if stdenv.system == "i686-linux"
+    then snapshotHashLinux686
+    else if stdenv.system == "x86_64-linux"
+    then snapshotHashLinux64
+    else if stdenv.system == "i686-darwin"
+    then snapshotHashDarwin686
+    else if stdenv.system == "x86_64-darwin"
+    then snapshotHashDarwin64
+    else abort "no snapshot for platform ${stdenv.system}";
+
+  snapshotName = "rust-stage0-${snapshotDate}-${snapshotRev}-${platform}-${snapshotHash}.tar.bz2";
+in
+
+stdenv.mkDerivation {
+  name = "rust-bootstrap";
+  src = fetchurl {
+    url = "http://static.rust-lang.org/stage0-snapshots/${snapshotName}";
+    sha1 = snapshotHash;
+  };
+  dontStrip = true;
+  installPhase = ''
+    mkdir -p "$out"
+    cp -r bin "$out/bin"
+  '' + stdenv.lib.optionalString stdenv.isLinux ''
+    patchelf --interpreter "${stdenv.glibc.out}/lib/${stdenv.cc.dynamicLinker}" \
+             --set-rpath "${stdenv.cc.cc.lib}/lib/:${stdenv.cc.cc.lib}/lib64/" \
+             "$out/bin/rustc"
+  '';
+}
diff --git a/pkgs/development/compilers/rustc/default.nix b/pkgs/development/compilers/rustc/default.nix
deleted file mode 100644
index 6c5aa04d7076..000000000000
--- a/pkgs/development/compilers/rustc/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ stdenv, callPackage }:
-
-callPackage ./generic.nix {
-  shortVersion = "1.9.0";
-  isRelease = true;
-  forceBundledLLVM = false;
-  configureFlags = [ "--release-channel=stable" ];
-  srcSha = "0yg5admbypqld0gmxbhrh2yag5kxjklpjgldrp3pd5vczkl13aml";
-
-  /* Rust is bootstrapped from an earlier built version. We need
-  to fetch these earlier versions, which vary per platform.
-  The shapshot info you want can be found at
-  https://github.com/rust-lang/rust/blob/{$shortVersion}/src/snapshots.txt
-  with the set you want at the top. Make sure this is the latest snapshot
-  for the tagged release and not a snapshot in the current HEAD.
-  */
-
-  snapshotHashLinux686 = "0e0e4448b80d0a12b75485795244bb3857a0a7ef";
-  snapshotHashLinux64 = "1273b6b6aed421c9e40c59f366d0df6092ec0397";
-  snapshotHashDarwin686 = "9f9c0b4a2db09acbce54b792fb8839a735585565";
-  snapshotHashDarwin64 = "52570f6fd915b0210a9be98cfc933148e16a75f8";
-  snapshotDate = "2016-03-18";
-  snapshotRev = "235d774";
-
-  patches = [ ./patches/remove-uneeded-git.patch ]
-    ++ stdenv.lib.optional stdenv.needsPax ./patches/grsec.patch;
-}
diff --git a/pkgs/development/compilers/rustc/generic.nix b/pkgs/development/compilers/rustc/generic.nix
index 976c1b932b5a..09d8ad8bf00f 100644
--- a/pkgs/development/compilers/rustc/generic.nix
+++ b/pkgs/development/compilers/rustc/generic.nix
@@ -1,14 +1,11 @@
 { stdenv, fetchurl, fetchgit, fetchzip, file, python2, tzdata, procps
-, llvm, jemalloc, ncurses, darwin, binutils
+, llvm, jemalloc, ncurses, darwin, binutils, rustc
 
-, shortVersion, isRelease
+, isRelease ? false
+, shortVersion
 , forceBundledLLVM ? false
-, srcSha, srcRev ? ""
-, snapshotHashLinux686, snapshotHashLinux64
-, snapshotHashDarwin686, snapshotHashDarwin64
-, snapshotDate, snapshotRev
+, srcSha, srcRev
 , configureFlags ? []
-
 , patches
 } @ args:
 
@@ -26,9 +23,8 @@ sure those derivations still compile. (racer, for example).
 
 */
 
-assert (if isRelease then srcRev == "" else srcRev != "");
-
-let version = if isRelease then
+let
+    version = if isRelease then
         "${shortVersion}"
       else
         "${shortVersion}-g${builtins.substring 0 7 srcRev}";
@@ -39,16 +35,6 @@ let version = if isRelease then
 
     llvmShared = llvm.override { enableSharedLibraries = true; };
 
-    platform = if stdenv.system == "i686-linux"
-      then "linux-i386"
-      else if stdenv.system == "x86_64-linux"
-      then "linux-x86_64"
-      else if stdenv.system == "i686-darwin"
-      then "macos-i386"
-      else if stdenv.system == "x86_64-darwin"
-      then "macos-x86_64"
-      else abort "no snapshot to bootstrap for this platform (missing platform url suffix)";
-
     target = if stdenv.system == "i686-linux"
       then "i686-unknown-linux-gnu"
       else if stdenv.system == "x86_64-linux"
@@ -66,20 +52,9 @@ let version = if isRelease then
       license = [ licenses.mit licenses.asl20 ];
       platforms = platforms.linux ++ platforms.darwin;
     };
-
-    snapshotHash = if stdenv.system == "i686-linux"
-      then snapshotHashLinux686
-      else if stdenv.system == "x86_64-linux"
-      then snapshotHashLinux64
-      else if stdenv.system == "i686-darwin"
-      then snapshotHashDarwin686
-      else if stdenv.system == "x86_64-darwin"
-      then snapshotHashDarwin64
-      else abort "no snapshot for platform ${stdenv.system}";
-    snapshotName = "rust-stage0-${snapshotDate}-${snapshotRev}-${platform}-${snapshotHash}.tar.bz2";
 in
 
-with stdenv.lib; stdenv.mkDerivation {
+stdenv.mkDerivation {
   inherit name;
   inherit version;
   inherit meta;
@@ -88,42 +63,19 @@ with stdenv.lib; stdenv.mkDerivation {
 
   NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-rpath ${llvmShared}/lib";
 
-  src = if isRelease then
-      fetchzip {
-        url = "http://static.rust-lang.org/dist/rustc-${version}-src.tar.gz";
-        sha256 = srcSha;
-      }
-    else
-      fetchgit {
-        url = https://github.com/rust-lang/rust;
-        rev = srcRev;
-        sha256 = srcSha;
-      };
-
-  # We need rust to build rust. If we don't provide it, configure will try to download it.
-  snapshot = stdenv.mkDerivation {
-    name = "rust-stage0";
-    src = fetchurl {
-      url = "http://static.rust-lang.org/stage0-snapshots/${snapshotName}";
-      sha1 = snapshotHash;
-    };
-    dontStrip = true;
-    installPhase = ''
-      mkdir -p "$out"
-      cp -r bin "$out/bin"
-    '' + optionalString stdenv.isLinux ''
-      patchelf --interpreter "${stdenv.glibc.out}/lib/${stdenv.cc.dynamicLinker}" \
-               --set-rpath "${stdenv.cc.cc.lib}/lib/:${stdenv.cc.cc.lib}/lib64/" \
-               "$out/bin/rustc"
-    '';
+  src = fetchgit {
+    url = https://github.com/rust-lang/rust;
+    rev = srcRev;
+    sha256 = srcSha;
   };
 
+  # We need rust to build rust. If we don't provide it, configure will try to download it.
   configureFlags = configureFlags
-                ++ [ "--enable-local-rust" "--local-rust-root=$snapshot" "--enable-rpath" ]
+                ++ [ "--enable-local-rust" "--local-rust-root=${rustc}" "--enable-rpath" ]
                 # ++ [ "--jemalloc-root=${jemalloc}/lib"
                 ++ [ "--default-linker=${stdenv.cc}/bin/cc" "--default-ar=${binutils.out}/bin/ar" ]
-                ++ optional (stdenv.cc.cc ? isClang) "--enable-clang"
-                ++ optional (!forceBundledLLVM) "--llvm-root=${llvmShared}";
+                ++ stdenv.lib.optional (stdenv.cc.cc ? isClang) "--enable-clang"
+                ++ stdenv.lib.optional (!forceBundledLLVM) "--llvm-root=${llvmShared}";
 
   inherit patches;
 
@@ -138,7 +90,7 @@ with stdenv.lib; stdenv.mkDerivation {
       --replace "\$\$(subst  /,//," "\$\$(subst /,/,"
 
     # Fix dynamic linking against llvm
-    ${optionalString (!forceBundledLLVM) ''sed -i 's/, kind = \\"static\\"//g' src/etc/mklldeps.py''}
+    ${stdenv.lib.optionalString (!forceBundledLLVM) ''sed -i 's/, kind = \\"static\\"//g' src/etc/mklldeps.py''}
 
     # Fix the configure script to not require curl as we won't use it
     sed -i configure \
@@ -160,9 +112,9 @@ with stdenv.lib; stdenv.mkDerivation {
   '';
 
   # ps is needed for one of the test cases
-  nativeBuildInputs = [ file python2 procps ];
+  nativeBuildInputs = [ file python2 procps rustc ];
   buildInputs = [ ncurses ]
-    ++ optional (!forceBundledLLVM) llvmShared;
+    ++ stdenv.lib.optional (!forceBundledLLVM) llvmShared;
 
   # https://github.com/rust-lang/rust/issues/30181
   # enableParallelBuilding = false; # missing files during linking, occasionally
diff --git a/pkgs/development/compilers/rustc/head.nix b/pkgs/development/compilers/rustc/head.nix
index bb67b88c4780..8d9373eb3c3d 100644
--- a/pkgs/development/compilers/rustc/head.nix
+++ b/pkgs/development/compilers/rustc/head.nix
@@ -1,27 +1,13 @@
 # Please make sure to check if rustfmt still builds when updating nightly
-{ stdenv, callPackage }:
+{ stdenv, callPackage, rustcStable }:
 
 callPackage ./generic.nix {
-  shortVersion = "2016-03-22";
-  isRelease = false;
-  forceBundledLLVM = true;
-  srcRev = "6cc502c986d42da407e26a49d4f09f21d3072fcb";
-  srcSha = "096lsc8irh9a7w494yaji28kzy9frs2myqrfyj0fzbxkvs3yfhzz";
-
-  /* Rust is bootstrapped from an earlier built version. We need
-  to fetch these earlier versions, which vary per platform.
-  The shapshot info you want can be found at
-  https://github.com/rust-lang/rust/blob/{$shortVersion}/src/snapshots.txt
-  with the set you want at the top.
-  */
-
-  snapshotHashLinux686 = "0e0e4448b80d0a12b75485795244bb3857a0a7ef";
-  snapshotHashLinux64 = "1273b6b6aed421c9e40c59f366d0df6092ec0397";
-  snapshotHashDarwin686 = "9f9c0b4a2db09acbce54b792fb8839a735585565";
-  snapshotHashDarwin64 = "52570f6fd915b0210a9be98cfc933148e16a75f8";
-  snapshotDate = "2016-03-18";
-  snapshotRev = "235d774";
-
-  patches = [ ./patches/remove-uneeded-git.patch ]
-    ++ stdenv.lib.optional stdenv.needsPax ./patches/grsec.patch;
+  shortVersion = "master-1.11.0";
+  forceBundledLLVM = false;
+  srcRev = "298730e7032cd55809423773da397cd5c7d827d4";
+  srcSha = "0hyz5j1z75sjkgsifzgxviv3b1lhgaz8wqwvmq80xx5vd78yd0c1";
+  patches = [ ./patches/disable-lockfile-check.patch
+              ./patches/use-rustc-1.9.0.patch ] ++
+    stdenv.lib.optional stdenv.needsPax ./patches/grsec.patch;
+  rustc = rustcStable;
 }
diff --git a/pkgs/development/compilers/rustc/patches/disable-lockfile-check.patch b/pkgs/development/compilers/rustc/patches/disable-lockfile-check.patch
new file mode 100644
index 000000000000..0c01cb1a7f19
--- /dev/null
+++ b/pkgs/development/compilers/rustc/patches/disable-lockfile-check.patch
@@ -0,0 +1,25 @@
+From e7378e267bba203bd593b49705c24303b0a46cb7 Mon Sep 17 00:00:00 2001
+From: David Craven <david@craven.ch>
+Date: Wed, 1 Jun 2016 01:41:35 +0200
+Subject: [PATCH] disable-lockfile-check
+
+---
+ src/tools/tidy/src/main.rs | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/tools/tidy/src/main.rs b/src/tools/tidy/src/main.rs
+index 2839bbd..50142ff 100644
+--- a/src/tools/tidy/src/main.rs
++++ b/src/tools/tidy/src/main.rs
+@@ -47,7 +47,7 @@ fn main() {
+     errors::check(&path, &mut bad);
+     cargo::check(&path, &mut bad);
+     features::check(&path, &mut bad);
+-    cargo_lock::check(&path, &mut bad);
++    //cargo_lock::check(&path, &mut bad);
+ 
+     if bad {
+         panic!("some tidy checks failed");
+-- 
+2.8.3
+
diff --git a/pkgs/development/compilers/rustc/patches/use-rustc-1.9.0.patch b/pkgs/development/compilers/rustc/patches/use-rustc-1.9.0.patch
new file mode 100644
index 000000000000..150306744be6
--- /dev/null
+++ b/pkgs/development/compilers/rustc/patches/use-rustc-1.9.0.patch
@@ -0,0 +1,25 @@
+From 2710f3c8ae142abe1720b3476cd1ca60cee0c077 Mon Sep 17 00:00:00 2001
+From: David Craven <david@craven.ch>
+Date: Wed, 1 Jun 2016 00:12:35 +0200
+Subject: [PATCH] Patch stage0.txt to use rustc 1.9.0
+
+---
+ src/stage0.txt | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/stage0.txt b/src/stage0.txt
+index 58b7f8f..3c84cab 100644
+--- a/src/stage0.txt
++++ b/src/stage0.txt
+@@ -12,6 +12,6 @@
+ # tarball for a stable release you'll likely see `1.x.0-$date` where `1.x.0` was
+ # released on `$date`
+ 
+-rustc: beta-2016-04-13
+-rustc_key: c2743eb4
++rustc: 1.9.0-2016-05-24
++rustc_key: d16b8f0e
+ cargo: nightly-2016-04-10
+-- 
+2.8.3
+
diff --git a/pkgs/development/compilers/rustc/stable.nix b/pkgs/development/compilers/rustc/stable.nix
new file mode 100644
index 000000000000..596ef2d0cb7a
--- /dev/null
+++ b/pkgs/development/compilers/rustc/stable.nix
@@ -0,0 +1,13 @@
+{ stdenv, callPackage }:
+
+callPackage ./generic.nix {
+  shortVersion = "1.9.0";
+  isRelease = true;
+  forceBundledLLVM = false;
+  configureFlags = [ "--release-channel=stable" ];
+  srcRev = "e4e8b666850a763fdf1c3c2c142856ab51e32779";
+  srcSha = "1pz4qx70mqv78fxm4w1mq7csk5pssq4qmr2vwwb5v8hyx03caff8";
+  patches = [ ./patches/remove-uneeded-git.patch ]
+    ++ stdenv.lib.optional stdenv.needsPax ./patches/grsec.patch;
+  rustc = callPackage ./bootstrap.nix {};
+}
diff --git a/pkgs/development/compilers/sbcl/default.nix b/pkgs/development/compilers/sbcl/default.nix
index 893b6efea77a..e9a1624df1d8 100644
--- a/pkgs/development/compilers/sbcl/default.nix
+++ b/pkgs/development/compilers/sbcl/default.nix
@@ -9,11 +9,11 @@
 
 stdenv.mkDerivation rec {
   name    = "sbcl-${version}";
-  version = "1.3.5";
+  version = "1.3.6";
 
   src = fetchurl {
     url    = "mirror://sourceforge/project/sbcl/sbcl/${version}/${name}-source.tar.bz2";
-    sha256 = "0p3f9bvwdcl84n1l6imww547bdbfsbkvad8iad43jcb2hrpy3wf8";
+    sha256 = "1ndha72ji30qkq3rq76sp0yrka0679agg97x9imda2pyv0dsq5zh";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/compilers/serpent/default.nix b/pkgs/development/compilers/serpent/default.nix
new file mode 100644
index 000000000000..5d0b9052dbae
--- /dev/null
+++ b/pkgs/development/compilers/serpent/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, ... }:
+
+stdenv.mkDerivation rec {
+  name = "serpent-${version}";
+
+  # I can't find any version numbers, so we're just using the date
+  # of the last commit.
+  version = "2016-03-05";
+
+  src = fetchFromGitHub {
+    owner = "ethereum";
+    repo = "serpent";
+    rev = "51ee60857fe53c871fa916ef66fc1b4255bb9433";
+    sha256 = "1bns9wgn5i1ahj19qx7v1wwdy8ca3q3pigxwznm5nywsw7s7lqxs";
+  };
+
+  installPhase = ''
+    mkdir -p $out/bin
+    mv serpent $out/bin
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Compiler for the Serpent language for Ethereum";
+    longDescription = ''
+      Serpent is one of the high-level programming languages used to
+      write Ethereum contracts. The language, as suggested by its name,
+      is designed to be very similar to Python; it is intended to be
+      maximally clean and simple, combining many of the efficiency
+      benefits of a low-level language with ease-of-use in programming
+      style, and at the same time adding special domain-specific
+      features for contract programming.
+    '';
+    homepage = https://github.com/ethereum/wiki/wiki/Serpent;
+    license = with licenses; [ wtfpl ];
+    maintainers = with maintainers; [ chris-martin ];
+  };
+}
diff --git a/pkgs/development/compilers/tinycc/default.nix b/pkgs/development/compilers/tinycc/default.nix
index 40e4d49d51e8..87e09e3231f2 100644
--- a/pkgs/development/compilers/tinycc/default.nix
+++ b/pkgs/development/compilers/tinycc/default.nix
@@ -1,21 +1,27 @@
-{ stdenv, fetchurl, fetchgit, perl, texinfo }:
+{ stdenv, fetchFromRepoOrCz, perl, texinfo }:
 
-assert stdenv ? glibc;
+assert (stdenv.isGlibc);
+
+with stdenv.lib;
+
+let
+  date = "20160525";
+  version = "0.9.27pre-${date}";
+  rev = "1ca685f887310b5cbdc415cdfc3a578dbc8d82d8";
+  sha256 = "149s847jkg2zdmk09h0cp0q69m8kxxci441zyw8b08fy9b87ayd8";
+in
 
 stdenv.mkDerivation rec {
-  #name = "tcc-0.9.26";
-  name = "tcc-git-0.9.27pre-20160328";
-
-  #src = fetchurl {
-  #  url = "mirror://savannah/tinycc/${name}.tar.bz2";
-  #  sha256 = "0wbdbdq6090ayw8bxnbikiv989kykff3m5rzbia05hrnwhd707jj";
-  #};
-  src = fetchgit {
-    url = "git://repo.or.cz/tinycc.git";
-    rev = "80343ab7d829c21c65f8f9a14dd20158d028549f";
-    sha256 = "1bz75aj93ivb2d8hfk2bczsrwa56lv7vprvdi8c1r5phjvawbshy";
+  name = "tcc-${version}";
+
+  src = fetchFromRepoOrCz {
+    repo = "tinycc";
+    inherit rev;
+    inherit sha256;
   };
 
+  outputs = [ "dev" "out" "bin" ];
+
   nativeBuildInputs = [ perl texinfo ];
 
   hardeningDisable = [ "fortify" ];
@@ -35,37 +41,41 @@ stdenv.mkDerivation rec {
   doCheck = true;
   checkTarget = "test";
 
+  postFixup = ''
+    paxmark m $bin/bin/tcc
+  '';
+
   meta = {
     description = "Small, fast, and embeddable C compiler and interpreter";
 
-    longDescription =
-      '' TinyCC (aka TCC) is a small but hyper fast C compiler.  Unlike
-         other C compilers, it is meant to be self-sufficient: you do not
-         need an external assembler or linker because TCC does that for
-         you.
+    longDescription = ''
+      TinyCC (aka TCC) is a small but hyper fast C compiler.  Unlike
+      other C compilers, it is meant to be self-sufficient: you do not
+      need an external assembler or linker because TCC does that for
+      you.
 
-         TCC compiles so fast that even for big projects Makefiles may not
-         be necessary.
+      TCC compiles so fast that even for big projects Makefiles may not
+      be necessary.
 
-         TCC not only supports ANSI C, but also most of the new ISO C99
-         standard and many GNU C extensions.
+      TCC not only supports ANSI C, but also most of the new ISO C99
+      standard and many GNU C extensions.
 
-         TCC can also be used to make C scripts, i.e. pieces of C source
-         that you run as a Perl or Python script.  Compilation is so fast
-         that your script will be as fast as if it was an executable.
+      TCC can also be used to make C scripts, i.e. pieces of C source
+      that you run as a Perl or Python script.  Compilation is so fast
+      that your script will be as fast as if it was an executable.
 
-         TCC can also automatically generate memory and bound checks while
-         allowing all C pointers operations.  TCC can do these checks even
-         if non patched libraries are used.
+      TCC can also automatically generate memory and bound checks while
+      allowing all C pointers operations.  TCC can do these checks even
+      if non patched libraries are used.
 
-         With libtcc, you can use TCC as a backend for dynamic code
-         generation.
-      '';
+      With libtcc, you can use TCC as a backend for dynamic code
+      generation.
+    '';
 
     homepage = http://www.tinycc.org/;
-    license = stdenv.lib.licenses.lgpl2Plus;
+    license = licenses.lgpl2Plus;
 
-    platforms = stdenv.lib.platforms.unix;
-    maintainers = [ ];
+    platforms = platforms.unix;
+    maintainers = [ maintainers.joachifm ];
   };
 }
diff --git a/pkgs/development/compilers/uhc/default.nix b/pkgs/development/compilers/uhc/default.nix
index df79b0ba70ee..d20057916805 100644
--- a/pkgs/development/compilers/uhc/default.nix
+++ b/pkgs/development/compilers/uhc/default.nix
@@ -4,14 +4,14 @@
 
 let wrappedGhc = ghcWithPackages (hpkgs: with hpkgs; [fgl vector syb uulib network binary hashable uhc-util mtl transformers directory containers array process filepath shuffle uuagc] );
 in stdenv.mkDerivation rec {
-  version = "1.1.9.3";
+  version = "1.1.9.4";
   name = "uhc-${version}";
 
   src = fetchFromGitHub {
     owner = "UU-ComputerScience";
     repo = "uhc";
     rev = "v${version}";
-    sha256 = "1r3mja77dqj2ncgp1d9nnc7dhp3gzrb1b1qvml3rq2321mn3m2ad";
+    sha256 = "1s84csk6zgzj09igxgdza7gb52jdn3jsr8lygl5xplshv8yzl34n";
   };
 
   postUnpack = "sourceRoot=\${sourceRoot}/EHC";
diff --git a/pkgs/development/compilers/vala/0.32.nix b/pkgs/development/compilers/vala/0.32.nix
new file mode 100644
index 000000000000..8ae76ec1b05d
--- /dev/null
+++ b/pkgs/development/compilers/vala/0.32.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, pkgconfig, flex, bison, libxslt
+, glib, libiconv, libintlOrEmpty
+}:
+
+let
+  major = "0.32";
+  minor = "0";
+  sha256 = "0vpvq403vdd25irvgk7zibz3nw4x4i17m0dgnns8j1q4vr7am8h7";
+in
+stdenv.mkDerivation rec {
+  name = "vala-${major}.${minor}";
+
+  meta = {
+    description = "Compiler for GObject type system";
+    homepage = "http://live.gnome.org/Vala";
+    license = stdenv.lib.licenses.lgpl21Plus;
+    platforms = stdenv.lib.platforms.unix;
+    maintainers = with stdenv.lib.maintainers; [ antono lethalman ];
+  };
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/vala/${major}/${name}.tar.xz";
+    inherit sha256;
+  };
+
+  nativeBuildInputs = [ pkgconfig flex bison libxslt ];
+
+  buildInputs = [ glib libiconv ]
+    ++ libintlOrEmpty;
+}