2011-09-01 14:38:59 +01:00
|
|
|
{stdenv, fetchurl, unzip}:
|
|
|
|
|
2012-05-01 12:39:58 +01:00
|
|
|
stdenv.mkDerivation rec {
|
|
|
|
version = "1.4.0";
|
|
|
|
name = "clojure-binary-${version}";
|
2011-09-01 14:38:59 +01:00
|
|
|
|
|
|
|
src = fetchurl {
|
2012-05-01 12:39:58 +01:00
|
|
|
url = "http://repo1.maven.org/maven2/org/clojure/clojure/${version}/clojure-${version}.zip";
|
|
|
|
sha256 = "27a5a151d5cc1bc3e52dff47c66111e637fefeb42d9bedfa1284a1a31d080171";
|
2011-09-01 14:38:59 +01:00
|
|
|
};
|
|
|
|
|
2012-05-01 12:39:58 +01:00
|
|
|
|
2011-09-01 14:38:59 +01:00
|
|
|
buildInputs = [ unzip ];
|
|
|
|
|
|
|
|
phases = "unpackPhase installPhase";
|
|
|
|
|
|
|
|
installPhase = "
|
2012-01-18 20:16:00 +00:00
|
|
|
mkdir -p $out/lib/java
|
2012-05-01 12:39:58 +01:00
|
|
|
cp clojure-${version}.jar clojure.jar
|
2011-09-01 14:38:59 +01:00
|
|
|
install -t $out/lib/java clojure.jar
|
|
|
|
";
|
|
|
|
|
|
|
|
meta = {
|
|
|
|
description = "a Lisp dialect for the JVM";
|
|
|
|
homepage = http://clojure.org/;
|
|
|
|
license = stdenv.lib.licenses.bsd3;
|
|
|
|
longDescription = ''
|
|
|
|
Clojure is a dynamic programming language that targets the Java
|
|
|
|
Virtual Machine. It is designed to be a general-purpose language,
|
|
|
|
combining the approachability and interactive development of a
|
|
|
|
scripting language with an efficient and robust infrastructure for
|
|
|
|
multithreaded programming. Clojure is a compiled language - it
|
|
|
|
compiles directly to JVM bytecode, yet remains completely
|
|
|
|
dynamic. Every feature supported by Clojure is supported at
|
|
|
|
runtime. Clojure provides easy access to the Java frameworks, with
|
|
|
|
optional type hints and type inference, to ensure that calls to Java
|
|
|
|
can avoid reflection.
|
|
|
|
|
|
|
|
Clojure is a dialect of Lisp, and shares with Lisp the code-as-data
|
|
|
|
philosophy and a powerful macro system. Clojure is predominantly a
|
|
|
|
functional programming language, and features a rich set of immutable,
|
|
|
|
persistent data structures. When mutable state is needed, Clojure
|
|
|
|
offers a software transactional memory system and reactive Agent
|
|
|
|
system that ensure clean, correct, multithreaded designs.
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
}
|