tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
lol
0
fork
atom
overview
issues
pulls
pipelines
Merge #10104: picolisp, ccl and sbcl improvements
Vladimír Čunát
10 years ago
00935b25
d5c92d50
+110
-58
6 changed files
expand all
collapse all
unified
split
pkgs
development
compilers
ccl
default.nix
sbcl
bootstrap.nix
default.nix
interpreters
picolisp
default.nix
lisp-modules
lisp-packages.nix
top-level
all-packages.nix
+35
-10
pkgs/development/compilers/ccl/default.nix
···
1
{ stdenv, fetchsvn, gcc, glibc, m4, coreutils }:
2
3
-
/* TODO: there are also MacOS, FreeBSD and Windows versions */
4
-
assert stdenv.system == "x86_64-linux" || stdenv.system == "i686-linux";
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
6
stdenv.mkDerivation rec {
7
name = "ccl-${version}";
···
9
revision = "16313";
10
11
src = fetchsvn {
12
-
url = http://svn.clozure.com/publicsvn/openmcl/release/1.10/linuxx86/ccl;
13
rev = revision;
14
-
sha256 = "04p77n18cw0bc8i66mp2vfrhlliahrx66lm004a3nw3h0mdk0gd8";
15
};
16
17
buildInputs = [ gcc glibc m4 ];
18
19
-
CCL_RUNTIME = if stdenv.system == "x86_64-linux" then "lx86cl64" else "lx86cl";
20
-
CCL_KERNEL = if stdenv.system == "x86_64-linux" then "linuxx8664" else "linuxx8632";
21
22
patchPhase = ''
23
substituteInPlace lisp-kernel/${CCL_KERNEL}/Makefile \
···
45
chmod a+x "$out"/bin/"${CCL_RUNTIME}"
46
'';
47
48
-
meta = {
49
description = "Clozure Common Lisp";
50
homepage = http://ccl.clozure.com/;
51
-
maintainers = with stdenv.lib.maintainers; [ raskin muflax ];
52
-
platforms = stdenv.lib.platforms.linux;
53
-
license = stdenv.lib.licenses.lgpl21;
54
};
55
}
···
1
{ stdenv, fetchsvn, gcc, glibc, m4, coreutils }:
2
3
+
let
4
+
options = rec {
5
+
/* TODO: there are also MacOS, FreeBSD and Windows versions */
6
+
x86_64-linux = {
7
+
arch = "linuxx86";
8
+
sha256 = "04p77n18cw0bc8i66mp2vfrhlliahrx66lm004a3nw3h0mdk0gd8";
9
+
runtime = "lx86cl64";
10
+
kernel = "linuxx8664";
11
+
};
12
+
i686-linux = {
13
+
arch = "linuxx86";
14
+
sha256 = x86_64-linux.sha256;
15
+
runtime = "lx86cl";
16
+
kernel = "linuxx8632";
17
+
};
18
+
armv7l-linux = {
19
+
arch = "linuxarm";
20
+
sha256 = "0xg9p1q1fpgyfhwjk2hh24vqzddzx5zqff04lycf0vml5qw1gnkv";
21
+
runtime = "armcl";
22
+
kernel = "linuxarm";
23
+
};
24
+
armv6l-linux = armv7l-linux;
25
+
};
26
+
cfg = options.${stdenv.system};
27
+
in
28
+
29
+
assert builtins.hasAttr stdenv.system options;
30
31
stdenv.mkDerivation rec {
32
name = "ccl-${version}";
···
34
revision = "16313";
35
36
src = fetchsvn {
37
+
url = "http://svn.clozure.com/publicsvn/openmcl/release/${version}/${cfg.arch}/ccl";
38
rev = revision;
39
+
sha256 = cfg.sha256;
40
};
41
42
buildInputs = [ gcc glibc m4 ];
43
44
+
CCL_RUNTIME = cfg.runtime;
45
+
CCL_KERNEL = cfg.kernel;
46
47
patchPhase = ''
48
substituteInPlace lisp-kernel/${CCL_KERNEL}/Makefile \
···
70
chmod a+x "$out"/bin/"${CCL_RUNTIME}"
71
'';
72
73
+
meta = with stdenv.lib; {
74
description = "Clozure Common Lisp";
75
homepage = http://ccl.clozure.com/;
76
+
maintainers = with maintainers; [ raskin muflax ];
77
+
platforms = attrNames options;
78
+
license = licenses.lgpl21;
79
};
80
}
+46
-17
pkgs/development/compilers/sbcl/bootstrap.nix
···
1
-
{ stdenv, fetchurl }:
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
stdenv.mkDerivation rec {
4
name = "sbcl-bootstrap-${version}";
5
-
version = "1.1.8";
0
0
0
0
0
6
7
-
src = if stdenv.isDarwin
8
-
then fetchurl {
9
-
url = mirror://sourceforge/project/sbcl/sbcl/1.1.8/sbcl-1.1.8-x86-64-darwin-binary.tar.bz2;
10
-
sha256 = "006pr88053wclvbjfjdypnbiw8wymbzdzi7a6kbkpdfn4zf5943j";
11
-
}
12
-
else fetchurl {
13
-
url = mirror://sourceforge/project/sbcl/sbcl/1.1.8/sbcl-1.1.8-x86-64-linux-binary.tar.bz2;
14
-
sha256 = "0lh1jglxlfwk4cm6sgwk1jnb6ikhbrkx7p5aha2nbmkd6zl96prx";
15
-
};
16
17
installPhase = ''
18
-
mkdir -p $out/bin
19
-
cp -p src/runtime/sbcl $out/bin
20
mkdir -p $out/share/sbcl
0
21
cp -p output/sbcl.core $out/share/sbcl
0
0
0
22
'';
23
24
-
meta = {
0
0
0
0
25
description = "Lisp compiler";
26
homepage = "http://www.sbcl.org";
27
-
license = "bsd";
28
-
maintainers = [stdenv.lib.maintainers.raskin];
29
-
platforms = stdenv.lib.platforms.unix;
30
};
31
}
···
1
+
{ stdenv, fetchurl, makeWrapper }:
2
3
+
let
4
+
options = rec {
5
+
x86_64-darwin = rec {
6
+
version = "1.1.8";
7
+
system = "x86-64-darwin";
8
+
sha256 = "006pr88053wclvbjfjdypnbiw8wymbzdzi7a6kbkpdfn4zf5943j";
9
+
};
10
+
x86_64-linux = rec {
11
+
version = "1.2.15";
12
+
system = "x86-64-linux";
13
+
sha256 = "1bpbfz9x2w73hy2kh8p0kd4m1p6pin90h2zycq52r3bbz8yv47aw";
14
+
};
15
+
i686-linux = rec {
16
+
version = "1.2.7";
17
+
system = "x86-linux";
18
+
sha256 = "07f3bz4br280qvn85i088vpzj9wcz8wmwrf665ypqx181pz2ai3j";
19
+
};
20
+
armv7l-linux = rec {
21
+
version = "1.2.14";
22
+
system = "armhf-linux";
23
+
sha256 = "0sp5445rbvms6qvzhld0kwwvydw51vq5iaf4kdqsf2d9jvaz3yx5";
24
+
};
25
+
armv6l-linux = armv7l-linux;
26
+
};
27
+
cfg = options.${stdenv.system};
28
+
in
29
stdenv.mkDerivation rec {
30
name = "sbcl-bootstrap-${version}";
31
+
version = cfg.version;
32
+
33
+
src = fetchurl {
34
+
url = "mirror://sourceforge/project/sbcl/sbcl/${version}/sbcl-${version}-${cfg.system}-binary.tar.bz2";
35
+
sha256 = cfg.sha256;
36
+
};
37
38
+
buildInputs = [ makeWrapper ];
0
0
0
0
0
0
0
0
39
40
installPhase = ''
0
0
41
mkdir -p $out/share/sbcl
42
+
cp -p src/runtime/sbcl $out/share/sbcl
43
cp -p output/sbcl.core $out/share/sbcl
44
+
mkdir -p $out/bin
45
+
makeWrapper $out/share/sbcl/sbcl $out/bin/sbcl \
46
+
--add-flags "--core $out/share/sbcl/sbcl.core"
47
'';
48
49
+
postFixup = stdenv.lib.optionalString (!stdenv.isArm) ''
50
+
patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) $out/share/sbcl/sbcl
51
+
'';
52
+
53
+
meta = with stdenv.lib; {
54
description = "Lisp compiler";
55
homepage = "http://www.sbcl.org";
56
+
license = licenses.publicDomain; # and FreeBSD
57
+
maintainers = [maintainers.raskin];
58
+
platforms = attrNames options;
59
};
60
}
+12
-21
pkgs/development/compilers/sbcl/default.nix
···
1
-
{ stdenv, fetchurl, sbclBootstrap, clisp, which}:
2
3
stdenv.mkDerivation rec {
4
name = "sbcl-${version}";
5
-
version = "1.2.14";
6
7
src = fetchurl {
8
url = "mirror://sourceforge/project/sbcl/sbcl/${version}/${name}-source.tar.bz2";
9
-
sha256 = "01jw1w5siv6q16y1vmgd7s1i22aq0cqaipgn12jvq18c8vb6s55r";
10
};
11
12
-
buildInputs = [ which ]
13
-
++ (stdenv.lib.optional stdenv.isDarwin sbclBootstrap)
14
-
++ (stdenv.lib.optional stdenv.isLinux clisp)
15
-
;
16
17
patchPhase = ''
18
echo '"${version}.nixos"' > version.lisp-expr
···
22
(pushnew x features))
23
(disable (x)
24
(setf features (remove x features))))
25
-
(enable :sb-thread))) " > customize-target-features.lisp
0
0
0
26
27
pwd
28
···
64
export HOME=$PWD/test-home
65
'';
66
67
-
buildPhase = if stdenv.isLinux
68
-
then ''
69
-
sh make.sh clisp --prefix=$out
70
-
''
71
-
else ''
72
-
sh make.sh --prefix=$out --xc-host='${sbclBootstrap}/bin/sbcl --core ${sbclBootstrap}/share/sbcl/sbcl.core --disable-debugger --no-userinit --no-sysinit'
73
-
'';
74
75
installPhase = ''
76
INSTALL_ROOT=$out sh install.sh
77
'';
78
79
-
meta = {
80
-
description = "Lisp compiler";
81
-
homepage = http://www.sbcl.org;
82
-
license = stdenv.lib.licenses.bsd3;
83
-
maintainers = [stdenv.lib.maintainers.raskin];
84
-
platforms = stdenv.lib.platforms.all;
85
inherit version;
86
updateWalker = true;
87
};
···
1
+
{ stdenv, fetchurl, sbclBootstrap, sbclBootstrapHost ? "${sbclBootstrap}/bin/sbcl --disable-debugger --no-userinit --no-sysinit", which }:
2
3
stdenv.mkDerivation rec {
4
name = "sbcl-${version}";
5
+
version = "1.2.15";
6
7
src = fetchurl {
8
url = "mirror://sourceforge/project/sbcl/sbcl/${version}/${name}-source.tar.bz2";
9
+
sha256 = "0l8nrf5qnr8c9hr6bn1kd86mnr2s37b493azh9rrk3v59f56wnnr";
10
};
11
12
+
buildInputs = [ which ];
0
0
0
13
14
patchPhase = ''
15
echo '"${version}.nixos"' > version.lisp-expr
···
19
(pushnew x features))
20
(disable (x)
21
(setf features (remove x features))))
22
+
#-arm
23
+
(enable :sb-thread)
24
+
#+arm
25
+
(enable :arm))) " > customize-target-features.lisp
26
27
pwd
28
···
64
export HOME=$PWD/test-home
65
'';
66
67
+
buildPhase = ''
68
+
sh make.sh --prefix=$out --xc-host="${sbclBootstrapHost}"
69
+
'';
0
0
0
0
70
71
installPhase = ''
72
INSTALL_ROOT=$out sh install.sh
73
'';
74
75
+
meta = sbclBootstrap.meta // {
0
0
0
0
0
76
inherit version;
77
updateWalker = true;
78
};
+12
-3
pkgs/development/interpreters/picolisp/default.nix
···
3
4
stdenv.mkDerivation rec {
5
name = "picoLisp-${version}";
6
-
version = "3.1.10";
7
src = fetchurl {
8
url = "http://www.software-lab.de/${name}.tgz";
9
-
sha256 = "1pn5c0d81rz1fazsdijhw4cqybaad2wn6qramdj2qqkzxa3vvll1";
10
};
11
-
buildInputs = [ jdk ];
0
0
0
0
0
0
0
0
0
12
sourceRoot = ''picoLisp/src${optionalString stdenv.is64bit "64"}'';
13
installPhase = ''
14
cd ..
···
3
4
stdenv.mkDerivation rec {
5
name = "picoLisp-${version}";
6
+
version = "3.1.11";
7
src = fetchurl {
8
url = "http://www.software-lab.de/${name}.tgz";
9
+
sha256 = "01kgyz0lkz36lxvibv07qd06gwdxvvbain9f9cnya7a12kq3009i";
10
};
11
+
buildInputs = optional stdenv.is64bit jdk;
12
+
patchPhase = optionalString stdenv.isArm ''
13
+
sed -i s/-m32//g Makefile
14
+
cat >>Makefile <<EOF
15
+
ext.o: ext.c
16
+
\$(CC) \$(CFLAGS) -fPIC -D_OS='"\$(OS)"' \$*.c
17
+
ht.o: ht.c
18
+
\$(CC) \$(CFLAGS) -fPIC -D_OS='"\$(OS)"' \$*.c
19
+
EOF
20
+
'';
21
sourceRoot = ''picoLisp/src${optionalString stdenv.is64bit "64"}'';
22
installPhase = ''
23
cd ..
+4
-4
pkgs/development/lisp-modules/lisp-packages.nix
···
196
# Source type: git
197
src = pkgs.fetchgit {
198
url =
199
-
#''http://git.b9.com/clsql.git''
200
"http://repo.or.cz/r/clsql.git"
201
;
202
sha256 = "1wzc7qsnq8hk0j0h9jmj4xczmh7h6njafwab2zylh8wxmfzwp2nw";
···
217
deps = [];
218
# Source type: git
219
src = pkgs.fetchgit {
220
-
url = ''http://git.b9.com/uffi.git'';
221
sha256 = "219e4cfebfac251c922bcb9d517980b0988d765bd18b7f5cc765a43913aaacc6";
222
rev = ''a63da5b764b6fa30e32fcda4ddac88de385c9d5b'';
223
};
···
467
deps = [];
468
# Source type: git
469
src = pkgs.fetchgit {
470
-
url = ''http://git.b9.com/cl-base64.git'';
471
sha256 = "a34196544cc67d54aef74e31eff2cee62a7861a5675d010fcd925f1c61c23e81";
472
rev = ''f375d1fc3a6616e95ae88bb33493bb99f920ba13'';
473
};
···
480
deps = [];
481
# Source type: git
482
src = pkgs.fetchgit {
483
-
url = ''http://git.b9.com/puri.git'';
484
sha256 = "71804698e7f3009fb7f570656af5d952465bfe77f72e9c41f7e2dda8a5b45c5e";
485
rev = ''68260dbf320c01089c8cee54ef32c800eefcde7f'';
486
};
···
196
# Source type: git
197
src = pkgs.fetchgit {
198
url =
199
+
#''http://git.kpe.io/clsql.git''
200
"http://repo.or.cz/r/clsql.git"
201
;
202
sha256 = "1wzc7qsnq8hk0j0h9jmj4xczmh7h6njafwab2zylh8wxmfzwp2nw";
···
217
deps = [];
218
# Source type: git
219
src = pkgs.fetchgit {
220
+
url = ''http://git.kpe.io/uffi.git'';
221
sha256 = "219e4cfebfac251c922bcb9d517980b0988d765bd18b7f5cc765a43913aaacc6";
222
rev = ''a63da5b764b6fa30e32fcda4ddac88de385c9d5b'';
223
};
···
467
deps = [];
468
# Source type: git
469
src = pkgs.fetchgit {
470
+
url = ''http://git.kpe.io/cl-base64.git'';
471
sha256 = "a34196544cc67d54aef74e31eff2cee62a7861a5675d010fcd925f1c61c23e81";
472
rev = ''f375d1fc3a6616e95ae88bb33493bb99f920ba13'';
473
};
···
480
deps = [];
481
# Source type: git
482
src = pkgs.fetchgit {
483
+
url = ''http://git.kpe.io/puri.git'';
484
sha256 = "71804698e7f3009fb7f570656af5d952465bfe77f72e9c41f7e2dda8a5b45c5e";
485
rev = ''68260dbf320c01089c8cee54ef32c800eefcde7f'';
486
};
+1
-3
pkgs/top-level/all-packages.nix
···
4701
rustfmt = callPackage ../development/tools/rust/rustfmt { };
4702
4703
sbclBootstrap = callPackage ../development/compilers/sbcl/bootstrap.nix {};
4704
-
sbcl = callPackage ../development/compilers/sbcl {
4705
-
clisp = clisp;
4706
-
};
4707
# For StumpWM
4708
sbcl_1_2_5 = callPackage ../development/compilers/sbcl/1.2.5.nix {
4709
clisp = clisp;
···
4701
rustfmt = callPackage ../development/tools/rust/rustfmt { };
4702
4703
sbclBootstrap = callPackage ../development/compilers/sbcl/bootstrap.nix {};
4704
+
sbcl = callPackage ../development/compilers/sbcl {};
0
0
4705
# For StumpWM
4706
sbcl_1_2_5 = callPackage ../development/compilers/sbcl/1.2.5.nix {
4707
clisp = clisp;