about summary refs log tree commit diff
path: root/pkgs/development/compilers
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/compilers')
-rw-r--r--pkgs/development/compilers/adobe-flex-sdk/default.nix2
-rw-r--r--pkgs/development/compilers/agda/2.4.0.2.nix (renamed from pkgs/development/compilers/agda/2.4.0.1.nix)6
-rw-r--r--pkgs/development/compilers/ats2/default.nix4
-rw-r--r--pkgs/development/compilers/bigloo/default.nix2
-rw-r--r--pkgs/development/compilers/gcc/4.3/default.nix2
-rw-r--r--pkgs/development/compilers/gcc/4.4/default.nix4
-rw-r--r--pkgs/development/compilers/gcc/4.5/default.nix4
-rw-r--r--pkgs/development/compilers/gcc/4.6/default.nix4
-rw-r--r--pkgs/development/compilers/gcc/4.8/default.nix2
-rw-r--r--pkgs/development/compilers/gcc/4.9/default.nix2
-rw-r--r--pkgs/development/compilers/ghdl/default.nix2
-rw-r--r--pkgs/development/compilers/gnatboot/default.nix2
-rw-r--r--pkgs/development/compilers/idris/default.nix6
-rw-r--r--pkgs/development/compilers/idris/trifecta-fix.patch15
-rw-r--r--pkgs/development/compilers/ikarus/default.nix2
-rw-r--r--pkgs/development/compilers/llvm/3.4/dragonegg.nix2
-rw-r--r--pkgs/development/compilers/mit-scheme/default.nix2
-rw-r--r--pkgs/development/compilers/opendylan/bin.nix2
-rw-r--r--pkgs/development/compilers/opendylan/default.nix2
-rw-r--r--pkgs/development/compilers/openjdk/default.nix2
-rw-r--r--pkgs/development/compilers/oraclejdk/jdk-linux-base.nix2
-rw-r--r--pkgs/development/compilers/oraclejdk/jdk6-linux.nix2
-rw-r--r--pkgs/development/compilers/rustc/0.11.nix (renamed from pkgs/development/compilers/rust/default.nix)44
-rw-r--r--pkgs/development/compilers/rustc/common.nix36
-rw-r--r--pkgs/development/compilers/rustc/hardcode_paths.patch (renamed from pkgs/development/compilers/rust/hardcode_paths.patch)0
-rw-r--r--pkgs/development/compilers/rustc/head.nix73
-rw-r--r--pkgs/development/compilers/rustc/local_stage0.patch (renamed from pkgs/development/compilers/rust/local_stage0.patch)0
-rw-r--r--pkgs/development/compilers/sbcl/default.nix13
-rw-r--r--pkgs/development/compilers/sbcl/default.upstream9
-rw-r--r--pkgs/development/compilers/stalin/default.nix2
-rw-r--r--pkgs/development/compilers/tinycc/default.nix2
31 files changed, 168 insertions, 84 deletions
diff --git a/pkgs/development/compilers/adobe-flex-sdk/default.nix b/pkgs/development/compilers/adobe-flex-sdk/default.nix
index fc4511d896e2..69557019f15d 100644
--- a/pkgs/development/compilers/adobe-flex-sdk/default.nix
+++ b/pkgs/development/compilers/adobe-flex-sdk/default.nix
@@ -35,6 +35,6 @@ stdenv.mkDerivation rec {
   meta = { 
     description = "Flex SDK for Adobe Flash / ActionScript";
     homepage = "http://www.adobe.com/support/documentation/en/flex/3/releasenotes_flex3_sdk.html#installation";
-    license = "MPLv1.1"; #  Mozilla Public License Version 1.1
+    license = stdenv.lib.licenses.mpl11;
   };
 }
diff --git a/pkgs/development/compilers/agda/2.4.0.1.nix b/pkgs/development/compilers/agda/2.4.0.2.nix
index e472eb1c276b..6705419add9b 100644
--- a/pkgs/development/compilers/agda/2.4.0.1.nix
+++ b/pkgs/development/compilers/agda/2.4.0.2.nix
@@ -1,3 +1,5 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
 { cabal, alex, binary, boxes, dataHash, deepseq, emacs, equivalence
 , filepath, geniplate, happy, hashable, hashtables, haskeline
 , haskellSrcExts, mtl, parallel, QuickCheck, STMonadTrans, strict
@@ -6,8 +8,8 @@
 
 cabal.mkDerivation (self: {
   pname = "Agda";
-  version = "2.4.0.1";
-  sha256 = "11my5k606zvra3w3m1wllc4dy5mfv4lr32fqd579vqcks6wpirjq";
+  version = "2.4.0.2";
+  sha256 = "13c4ipscnlnbv94k93yajrp32mwzikqa8rhc95h8pmqzhjgwyh8b";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/compilers/ats2/default.nix b/pkgs/development/compilers/ats2/default.nix
index 1f6a8b6c6e08..8c71138ab78e 100644
--- a/pkgs/development/compilers/ats2/default.nix
+++ b/pkgs/development/compilers/ats2/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name    = "ats2-${version}";
-  version = "0.0.7";
+  version = "0.1.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/ats2-lang/ATS2-Postiats-${version}.tgz";
-    sha256 = "1cv7caaf9fj6z3kln02ikkbmcy42324v39lzx3cf6qcsywwpm8fx";
+    sha256 = "0i7b9v7xki9j2jjjpydz0gl33af94b4jjmk75b9w20bs003v8vd4";
   };
 
   buildInputs = [ gmp ];
diff --git a/pkgs/development/compilers/bigloo/default.nix b/pkgs/development/compilers/bigloo/default.nix
index b7dcb806b017..16dfa580a193 100644
--- a/pkgs/development/compilers/bigloo/default.nix
+++ b/pkgs/development/compilers/bigloo/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
     '';
 
     homepage = http://www-sop.inria.fr/indes/fp/Bigloo/;
-    license = "GPLv2+";
+    license = stdenv.lib.licenses.gpl2Plus;
 
     maintainers = [ stdenv.lib.maintainers.ludo ];
     platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
diff --git a/pkgs/development/compilers/gcc/4.3/default.nix b/pkgs/development/compilers/gcc/4.3/default.nix
index 4446876ab1f8..45040c2f3753 100644
--- a/pkgs/development/compilers/gcc/4.3/default.nix
+++ b/pkgs/development/compilers/gcc/4.3/default.nix
@@ -173,7 +173,7 @@ stdenv.mkDerivation ({
 
   meta = {
     homepage = "http://ghdl.free.fr/";
-    license = "GPLv2+";
+    license = stdenv.lib.licenses.gpl2Plus;
     description = "Complete VHDL simulator, using the GCC technology";
     maintainers = with stdenv.lib.maintainers; [viric];
     platforms = with stdenv.lib.platforms; linux;
diff --git a/pkgs/development/compilers/gcc/4.4/default.nix b/pkgs/development/compilers/gcc/4.4/default.nix
index 99c342da780f..be2f323fde1c 100644
--- a/pkgs/development/compilers/gcc/4.4/default.nix
+++ b/pkgs/development/compilers/gcc/4.4/default.nix
@@ -251,7 +251,7 @@ stdenv.mkDerivation ({
 
   meta = {
     homepage = http://gcc.gnu.org/;
-    license = "GPLv3+";  # runtime support libraries are typically LGPLv3+
+    license = stdenv.lib.licenses.gpl3Plus;  # runtime support libraries are typically LGPLv3+
     description = "GNU Compiler Collection, version ${version}";
 
     longDescription = ''
@@ -302,7 +302,7 @@ stdenv.mkDerivation ({
 
   meta = {
     homepage = "http://ghdl.free.fr/";
-    license = "GPLv2+";
+    license = stdenv.lib.licenses.gpl2Plus;
     description = "Complete VHDL simulator, using the GCC technology (gcc ${version})";
     maintainers = with stdenv.lib.maintainers; [viric];
     platforms = with stdenv.lib.platforms; linux;
diff --git a/pkgs/development/compilers/gcc/4.5/default.nix b/pkgs/development/compilers/gcc/4.5/default.nix
index 9713164711f1..fbeea0768ad3 100644
--- a/pkgs/development/compilers/gcc/4.5/default.nix
+++ b/pkgs/development/compilers/gcc/4.5/default.nix
@@ -364,7 +364,7 @@ stdenv.mkDerivation ({
 
   meta = {
     homepage = http://gcc.gnu.org/;
-    license = "GPLv3+";  # runtime support libraries are typically LGPLv3+
+    license = stdenv.lib.licenses.gpl3Plus;  # runtime support libraries are typically LGPLv3+
     description = "GNU Compiler Collection, version ${version}"
       + (if stripped then "" else " (with debugging info)");
 
@@ -432,7 +432,7 @@ stdenv.mkDerivation ({
 
   meta = {
     homepage = "http://ghdl.free.fr/";
-    license = "GPLv2+";
+    license = stdenv.lib.licenses.gpl2Plus;
     description = "Complete VHDL simulator, using the GCC technology (gcc ${version})";
     maintainers = with stdenv.lib.maintainers; [viric];
     platforms = with stdenv.lib.platforms; linux;
diff --git a/pkgs/development/compilers/gcc/4.6/default.nix b/pkgs/development/compilers/gcc/4.6/default.nix
index ef75cf71f581..8528be077295 100644
--- a/pkgs/development/compilers/gcc/4.6/default.nix
+++ b/pkgs/development/compilers/gcc/4.6/default.nix
@@ -438,7 +438,7 @@ stdenv.mkDerivation ({
 
   meta = {
     homepage = http://gcc.gnu.org/;
-    license = "GPLv3+";  # runtime support libraries are typically LGPLv3+
+    license = stdenv.lib.licenses.gpl3Plus;  # runtime support libraries are typically LGPLv3+
     description = "GNU Compiler Collection, version ${version}"
       + (if stripped then "" else " (with debugging info)");
 
@@ -501,7 +501,7 @@ stdenv.mkDerivation ({
 
   meta = {
     homepage = "http://ghdl.free.fr/";
-    license = "GPLv2+";
+    license = stdenv.lib.licenses.gpl2Plus;
     description = "Complete VHDL simulator, using the GCC technology (gcc ${version})";
     maintainers = with stdenv.lib.maintainers; [viric];
     platforms = with stdenv.lib.platforms; linux;
diff --git a/pkgs/development/compilers/gcc/4.8/default.nix b/pkgs/development/compilers/gcc/4.8/default.nix
index 0664cc0ebd51..2fb8f9d73b5e 100644
--- a/pkgs/development/compilers/gcc/4.8/default.nix
+++ b/pkgs/development/compilers/gcc/4.8/default.nix
@@ -508,7 +508,7 @@ stdenv.mkDerivation ({
 
   meta = {
     homepage = http://gcc.gnu.org/;
-    license = "GPLv3+";  # runtime support libraries are typically LGPLv3+
+    license = stdenv.lib.licenses.gpl3Plus;  # runtime support libraries are typically LGPLv3+
     description = "GNU Compiler Collection, version ${version}"
       + (if stripped then "" else " (with debugging info)");
 
diff --git a/pkgs/development/compilers/gcc/4.9/default.nix b/pkgs/development/compilers/gcc/4.9/default.nix
index ab7732a68eb2..8b185d00bcc0 100644
--- a/pkgs/development/compilers/gcc/4.9/default.nix
+++ b/pkgs/development/compilers/gcc/4.9/default.nix
@@ -495,7 +495,7 @@ stdenv.mkDerivation ({
 
   meta = {
     homepage = http://gcc.gnu.org/;
-    license = "GPLv3+";  # runtime support libraries are typically LGPLv3+
+    license = stdenv.lib.licenses.gpl3Plus;  # runtime support libraries are typically LGPLv3+
     description = "GNU Compiler Collection, version ${version}"
       + (if stripped then "" else " (with debugging info)");
 
diff --git a/pkgs/development/compilers/ghdl/default.nix b/pkgs/development/compilers/ghdl/default.nix
index 7b103805def3..7b2e03f8d573 100644
--- a/pkgs/development/compilers/ghdl/default.nix
+++ b/pkgs/development/compilers/ghdl/default.nix
@@ -59,6 +59,6 @@ stdenv.mkDerivation rec {
     description = "Free VHDL simulator, mcode flavour";
     maintainers = with stdenv.lib.maintainers; [viric];
     platforms = with stdenv.lib.platforms; linux;
-    license = "GPLv2+";
+    license = stdenv.lib.licenses.gpl2Plus;
   };
 }
diff --git a/pkgs/development/compilers/gnatboot/default.nix b/pkgs/development/compilers/gnatboot/default.nix
index 1de0c88a6bc7..3cab8379720e 100644
--- a/pkgs/development/compilers/gnatboot/default.nix
+++ b/pkgs/development/compilers/gnatboot/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = http://gentoo.org;
-    license = "GPLv3+";  # runtime support libraries are typically LGPLv3+
+    license = stdenv.lib.licenses.gpl3Plus;  # runtime support libraries are typically LGPLv3+
     maintainers = [
       stdenv.lib.maintainers.viric
     ];
diff --git a/pkgs/development/compilers/idris/default.nix b/pkgs/development/compilers/idris/default.nix
index df57364fa085..f0b07f9d0fa3 100644
--- a/pkgs/development/compilers/idris/default.nix
+++ b/pkgs/development/compilers/idris/default.nix
@@ -11,8 +11,8 @@
 
 cabal.mkDerivation (self: {
   pname = "idris";
-  version = "0.9.14";
-  sha256 = "0kfzp89sass93p9zsxq616zfix7ipi1rmjqmcjixihi01k7c0b8b";
+  version = "0.9.14.1";
+  sha256 = "11x4f0hvd51m9rlf9r0i5xsjmc73kjsayny4xyv0wgb88v9v737b";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
@@ -26,7 +26,7 @@ cabal.mkDerivation (self: {
   buildTools = [ happy ];
   extraLibraries = [ boehmgc gmp ];
   configureFlags = "-fllvm -fgmp -fffi";
-  patches = [ ./trifecta-fix.patch ];
+  jailbreak = true;
   meta = {
     homepage = "http://www.idris-lang.org/";
     description = "Functional Programming Language with Dependent Types";
diff --git a/pkgs/development/compilers/idris/trifecta-fix.patch b/pkgs/development/compilers/idris/trifecta-fix.patch
deleted file mode 100644
index a20e482d2c41..000000000000
--- a/pkgs/development/compilers/idris/trifecta-fix.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/src/Idris/AbsSyntaxTree.hs b/src/Idris/AbsSyntaxTree.hs
-index 76df969..076f1ff 100644
---- a/src/Idris/AbsSyntaxTree.hs
-+++ b/src/Idris/AbsSyntaxTree.hs
-@@ -194,6 +194,10 @@ data IState = IState {
-     idris_callswho :: Maybe (M.Map Name [Name])
-    }
-
-+-- Required for parsers library, and therefore trifecta
-+instance Show IState where
-+  show = const "{internal state}"
-+
- data SizeChange = Smaller | Same | Bigger | Unknown
-     deriving (Show, Eq)
- {-!
diff --git a/pkgs/development/compilers/ikarus/default.nix b/pkgs/development/compilers/ikarus/default.nix
index 4c3845f9ee56..070f29e16f64 100644
--- a/pkgs/development/compilers/ikarus/default.nix
+++ b/pkgs/development/compilers/ikarus/default.nix
@@ -14,6 +14,6 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Ikarus - a Scheme compiler, aiming at R6RS";
     homepage = http://ikarus-scheme.org/;
-    license = "GPLv3";
+    license = stdenv.lib.licenses.gpl3;
   };
 }
diff --git a/pkgs/development/compilers/llvm/3.4/dragonegg.nix b/pkgs/development/compilers/llvm/3.4/dragonegg.nix
index 577533c2e528..a34fa965f066 100644
--- a/pkgs/development/compilers/llvm/3.4/dragonegg.nix
+++ b/pkgs/development/compilers/llvm/3.4/dragonegg.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = http://dragonegg.llvm.org/;
     description = "gcc plugin that replaces gcc's optimizers and code generators by those in LLVM";
-    license = "GPLv2+";
+    license = stdenv.lib.licenses.gpl2Plus;
     maintainers = with stdenv.lib.maintainers; [viric shlevy];
     platforms = with stdenv.lib.platforms; linux;
   };
diff --git a/pkgs/development/compilers/mit-scheme/default.nix b/pkgs/development/compilers/mit-scheme/default.nix
index 29950aa9e3dd..f6a52b52e1d5 100644
--- a/pkgs/development/compilers/mit-scheme/default.nix
+++ b/pkgs/development/compilers/mit-scheme/default.nix
@@ -78,7 +78,7 @@ stdenv.mkDerivation {
 
     homepage = http://www.gnu.org/software/mit-scheme/;
 
-    license = "GPLv2+";
+    license = stdenv.lib.licenses.gpl2Plus;
 
     maintainers = [ stdenv.lib.maintainers.ludo ];
 
diff --git a/pkgs/development/compilers/opendylan/bin.nix b/pkgs/development/compilers/opendylan/bin.nix
index bab8e66799b7..19f8eab482cb 100644
--- a/pkgs/development/compilers/opendylan/bin.nix
+++ b/pkgs/development/compilers/opendylan/bin.nix
@@ -36,6 +36,6 @@ stdenv.mkDerivation {
   meta = {
     homepage = http://opendylan.org;
     description = "Dylan is a multi-paradigm functional and object-oriented programming language.";
-    license = "MIT";
+    license = stdenv.lib.licenses.mit;
   };
 }
diff --git a/pkgs/development/compilers/opendylan/default.nix b/pkgs/development/compilers/opendylan/default.nix
index b1ee1d000c4c..e4bdcf7889bb 100644
--- a/pkgs/development/compilers/opendylan/default.nix
+++ b/pkgs/development/compilers/opendylan/default.nix
@@ -32,6 +32,6 @@ stdenv.mkDerivation {
   meta = {
     homepage = http://opendylan.org;
     description = "Dylan is a multi-paradigm functional and object-oriented programming language.";
-    license = "MIT";
+    license = stdenv.lib.licenses.mit;
   };
 }
diff --git a/pkgs/development/compilers/openjdk/default.nix b/pkgs/development/compilers/openjdk/default.nix
index 6fd7ad9d65b1..6a07c7af69e2 100644
--- a/pkgs/development/compilers/openjdk/default.nix
+++ b/pkgs/development/compilers/openjdk/default.nix
@@ -165,7 +165,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = http://openjdk.java.net/;
-    license = "GPLv2";
+    license = stdenv.lib.licenses.gpl2;
     description = "The open-source Java Development Kit";
     maintainers = [ stdenv.lib.maintainers.eelco stdenv.lib.maintainers.shlevy ];
     platforms = stdenv.lib.platforms.linux;
diff --git a/pkgs/development/compilers/oraclejdk/jdk-linux-base.nix b/pkgs/development/compilers/oraclejdk/jdk-linux-base.nix
index 90a64ecd5217..657d18070e96 100644
--- a/pkgs/development/compilers/oraclejdk/jdk-linux-base.nix
+++ b/pkgs/development/compilers/oraclejdk/jdk-linux-base.nix
@@ -180,6 +180,6 @@ let result = stdenv.mkDerivation rec {
 
   passthru.jre = result; # FIXME: use multiple outputs or return actual JRE package
 
-  meta.license = "unfree";
+  meta.license = stdenv.lib.licenses.unfree;
 
 }; in result
diff --git a/pkgs/development/compilers/oraclejdk/jdk6-linux.nix b/pkgs/development/compilers/oraclejdk/jdk6-linux.nix
index 97ec6b56305c..9b384c5ae460 100644
--- a/pkgs/development/compilers/oraclejdk/jdk6-linux.nix
+++ b/pkgs/development/compilers/oraclejdk/jdk6-linux.nix
@@ -80,5 +80,5 @@ stdenv.mkDerivation {
 
   mozillaPlugin = if installjdk then "/jre/lib/${architecture}/plugins" else "/lib/${architecture}/plugins";
 
-  meta.license = "unfree";
+  meta.license = stdenv.lib.licenses.unfree;
 }
diff --git a/pkgs/development/compilers/rust/default.nix b/pkgs/development/compilers/rustc/0.11.nix
index 2c27cf778a14..1c3b09b0985a 100644
--- a/pkgs/development/compilers/rust/default.nix
+++ b/pkgs/development/compilers/rustc/0.11.nix
@@ -14,23 +14,25 @@
 
 */
 
-with if stdenv.system == "i686-linux" then {
-  platform = "linux-i386";
-  snapshot = "84339ea0f796ae468ef86797ef4587274bec19ea";
-  target = "i686-unknown-linux-gnu";
-} else if stdenv.system == "x86_64-linux" then {
-  platform = "linux-x86_64";
-  snapshot = "bd8a6bc1f28845b7f4b768f6bfa06e7fbdcfcaae";
-  target = "x86_64-unknown-linux-gnu";
-} else if stdenv.system == "x86_64-darwin" then {
-  platform = "macos-x86_64";
-  snapshot = "4a8c2e1b7634d73406bac32a1a97893ec3ed818d";
-} else {};
-let snapshotDate = "2014-06-21";
+with ((import ./common.nix) {inherit stdenv; version = "0.11.0"; });
+
+let snapshot = if stdenv.system == "i686-linux"
+      then "84339ea0f796ae468ef86797ef4587274bec19ea"
+      else if stdenv.system == "x86_64-linux"
+      then "bd8a6bc1f28845b7f4b768f6bfa06e7fbdcfcaae"
+      else if stdenv.system == "i686-darwin"
+      then "3f25b2680efbab16ad074477a19d49dcce475977"
+      else if stdenv.system == "x86_64-darwin"
+      then "4a8c2e1b7634d73406bac32a1a97893ec3ed818d"
+      else abort "no-snapshot for platform ${stdenv.system}";
+    snapshotDate = "2014-06-21";
     snapshotRev = "db9af1d";
-    snapshotName = "rust-stage0-${snapshotDate}-${snapshotRev}-${platform}-${snapshot}.tar.bz2"; in
-stdenv.mkDerivation {
-  name = "rust-0.11.0";
+    snapshotName = "rust-stage0-${snapshotDate}-${snapshotRev}-${platform}-${snapshot}.tar.bz2";
+
+in stdenv.mkDerivation {
+  inherit name;
+  inherit version;
+  inherit meta;
 
   src = fetchurl {
     url = http://static.rust-lang.org/dist/rust-0.11.0.tar.gz;
@@ -67,14 +69,4 @@ stdenv.mkDerivation {
 
   buildInputs = [ which file perl curl python27 makeWrapper ];
   enableParallelBuilding = true;
-
-  meta = with stdenv.lib; {
-    homepage = http://www.rust-lang.org/;
-    description = "A safe, concurrent, practical language";
-    maintainers = with maintainers; [ madjar cstrahan ];
-    license = map (builtins.getAttr "shortName") [ licenses.mit licenses.asl20 ];
-    # platforms as per http://static.rust-lang.org/doc/master/tutorial.html#getting-started
-    platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ];
-  };
 }
-
diff --git a/pkgs/development/compilers/rustc/common.nix b/pkgs/development/compilers/rustc/common.nix
new file mode 100644
index 000000000000..7af19a40c790
--- /dev/null
+++ b/pkgs/development/compilers/rustc/common.nix
@@ -0,0 +1,36 @@
+{stdenv, version}:
+
+{
+  inherit version;
+
+  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 boostrap 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"
+    then "x86_64-unknown-linux-gnu"
+    else if stdenv.system == "i686-darwin"
+    then "i686-apple-darwin"
+    else if stdenv.system == "x86_64-darwin"
+    then "x86_64-apple-darwin"
+    else abort "no snapshot to boostrap for this platform (missing target triple";
+
+  meta = with stdenv.lib; {
+    homepage = http://www.rust-lang.org/;
+    description = "A safe, concurrent, practical language";
+    maintainers = with maintainers; [ madjar cstrahan ];
+    license = map (builtins.getAttr "shortName") [ licenses.mit licenses.asl20 ];
+    # platforms as per http://static.rust-lang.org/doc/master/tutorial.html#getting-started
+    platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ];
+  };
+
+  name = "rustc-${version}";
+}
diff --git a/pkgs/development/compilers/rust/hardcode_paths.patch b/pkgs/development/compilers/rustc/hardcode_paths.patch
index 77e4c3f37887..77e4c3f37887 100644
--- a/pkgs/development/compilers/rust/hardcode_paths.patch
+++ b/pkgs/development/compilers/rustc/hardcode_paths.patch
diff --git a/pkgs/development/compilers/rustc/head.nix b/pkgs/development/compilers/rustc/head.nix
new file mode 100644
index 000000000000..ad33906ae6e9
--- /dev/null
+++ b/pkgs/development/compilers/rustc/head.nix
@@ -0,0 +1,73 @@
+{stdenv, fetchurl, fetchgit, which, file, perl, curl, python27, makeWrapper}:
+
+/* Rust's build process has a few quirks :
+
+- It requires some patched in llvm that haven't landed upstream, so it
+  compiles its own llvm. This might change in the future, so at some
+  point we may be able to switch to nix's llvm.
+
+- The Rust compiler is written is Rust, so it requires a bootstrap
+  compiler, which is downloaded during the build. To make the build
+  pure, we download it ourself before and put it where it is
+  expected. Once the language is stable (1.0) , we might want to
+  switch it to use nix's packaged rust compiler.
+
+*/
+
+with ((import ./common.nix) {inherit stdenv; version = "0.12.0-pre-7a25cf3f3"; });
+
+let snapshot = if stdenv.system == "i686-linux"
+      then "a5e1bb723020ac35173d49600e76b0935e257a6a"
+      else if stdenv.system == "x86_64-linux"
+      then "1a2407df17442d93d1c34c916269a345658045d7"
+      else if stdenv.system == "i686-darwin"
+      then "6648fa88e41ad7c0991a085366e36d56005873ca"
+      else if stdenv.system == "x86_64-darwin"
+      then "71b2d1dfd0abe1052908dc091e098ed22cf272c6"
+      else abort "no-snapshot for platform ${stdenv.system}";
+    snapshotDate = "2014-07-17";
+    snapshotRev = "9fc8394";
+    snapshotName = "rust-stage0-${snapshotDate}-${snapshotRev}-${platform}-${snapshot}.tar.bz2";
+
+in stdenv.mkDerivation {
+  inherit name;
+  inherit version;
+  inherit meta;
+
+  src = fetchgit {
+    url = https://github.com/rust-lang/rust;
+    rev = "7a25cf3f30fa5fae2e868fa910ecc850f5e9ee65";
+    sha256 = "1hx8vd4gn5plbdvr0zvdvqyw9x9r2vbmh112h2f5d2xxsf9p7rf1";
+  };
+
+  # 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 = snapshot;
+    };
+    dontStrip = true;
+    installPhase = ''
+      mkdir -p "$out"
+      cp -r bin "$out/bin"
+    '' + (if stdenv.isLinux then ''
+      patchelf --interpreter "${stdenv.glibc}/lib/${stdenv.gcc.dynamicLinker}" \
+               --set-rpath "${stdenv.gcc.gcc}/lib/:${stdenv.gcc.gcc}/lib64/" \
+               "$out/bin/rustc"
+    '' else "");
+  };
+
+  configureFlags = [ "--enable-local-rust" "--local-rust-root=$snapshot" ];
+
+  # The compiler requires cc, so we patch the source to tell it where to find it
+  patches = [ ./hardcode_paths.patch ./local_stage0.patch ];
+  postPatch = ''
+    substituteInPlace src/librustc/back/link.rs \
+      --subst-var-by "ccPath" "${stdenv.gcc}/bin/cc" \
+      --subst-var-by "arPath" "${stdenv.gcc.binutils}/bin/ar"
+  '';
+
+  buildInputs = [ which file perl curl python27 makeWrapper ];
+  enableParallelBuilding = true;
+}
diff --git a/pkgs/development/compilers/rust/local_stage0.patch b/pkgs/development/compilers/rustc/local_stage0.patch
index 1261b2d458da..1261b2d458da 100644
--- a/pkgs/development/compilers/rust/local_stage0.patch
+++ b/pkgs/development/compilers/rustc/local_stage0.patch
diff --git a/pkgs/development/compilers/sbcl/default.nix b/pkgs/development/compilers/sbcl/default.nix
index 8133ae3ffd38..5ab692ce34e6 100644
--- a/pkgs/development/compilers/sbcl/default.nix
+++ b/pkgs/development/compilers/sbcl/default.nix
@@ -2,14 +2,17 @@
 
 stdenv.mkDerivation rec {
   name    = "sbcl-${version}";
-  version = "1.2.0";
+  version = "1.2.2";
 
   src = fetchurl {
-    url    = mirror://sourceforge/project/sbcl/sbcl/1.2.0/sbcl-1.2.0-source.tar.bz2;
-    sha256 = "13k20sys1v4lvgis8cnbczww6zs93rw176vz07g4jx06418k53x2";
+    url    = "mirror://sourceforge/project/sbcl/sbcl/${version}/${name}-source.tar.bz2";
+    sha256 = "08jk1bjk7087gq4ibzs1d27r0c6pigbvmff351j9a03kvl652b2v";
   };
 
-  buildInputs = [ sbclBootstrap ] ++ stdenv.lib.optional stdenv.isLinux clisp;
+  buildInputs = [ ]
+    ++ (stdenv.lib.optional stdenv.isDarwin sbclBootstrap)
+    ++ (stdenv.lib.optional stdenv.isLinux clisp)
+    ;
 
   patchPhase = ''
     echo '"${version}.nixos"' > version.lisp-expr
@@ -70,5 +73,7 @@ stdenv.mkDerivation rec {
     license = stdenv.lib.licenses.bsd3;
     maintainers = [stdenv.lib.maintainers.raskin];
     platforms = stdenv.lib.platforms.all;
+    inherit version;
+    updateWalker = true;
   };
 }
diff --git a/pkgs/development/compilers/sbcl/default.upstream b/pkgs/development/compilers/sbcl/default.upstream
deleted file mode 100644
index de69a2828c61..000000000000
--- a/pkgs/development/compilers/sbcl/default.upstream
+++ /dev/null
@@ -1,9 +0,0 @@
-name sbcl
-target default.nix
-url http://sf.net/projects/sbcl/files/sbcl/
-version_link '/sbcl/[0-9.]+/$'
-link "source.tar.bz2"
-version '.*/sbcl-([0-9.]+)-source.*' '\1'
-redirect
-process 'http://[a-z]+[.]dl[.]sourceforge[.]net/' 'mirror://sourceforge/'
-process '[?].*' ''
diff --git a/pkgs/development/compilers/stalin/default.nix b/pkgs/development/compilers/stalin/default.nix
index b488308f5c4e..faa281efc7a6 100644
--- a/pkgs/development/compilers/stalin/default.nix
+++ b/pkgs/development/compilers/stalin/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = http://www.ece.purdue.edu/~qobi/software.html;
-    license = "GPLv2+";
+    license = stdenv.lib.licenses.gpl2Plus;
     description = "Stalin, an optimizing Scheme compiler";
 
     maintainers = [ ];
diff --git a/pkgs/development/compilers/tinycc/default.nix b/pkgs/development/compilers/tinycc/default.nix
index 7ad7348925b5..1e82e03f16c0 100644
--- a/pkgs/development/compilers/tinycc/default.nix
+++ b/pkgs/development/compilers/tinycc/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
       '';
 
     homepage = http://www.tinycc.org/;
-    license = "LGPLv2+";
+    license = stdenv.lib.licenses.lgpl2Plus;
 
     platforms = stdenv.lib.platforms.unix;
     maintainers = [ ];