about summary refs log tree commit diff
path: root/users/sterni/clhs/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'users/sterni/clhs/default.nix')
-rw-r--r--users/sterni/clhs/default.nix37
1 files changed, 37 insertions, 0 deletions
diff --git a/users/sterni/clhs/default.nix b/users/sterni/clhs/default.nix
new file mode 100644
index 000000000000..8c42e5e75c1f
--- /dev/null
+++ b/users/sterni/clhs/default.nix
@@ -0,0 +1,37 @@
+{ pkgs, depot, ... }:
+
+let
+  inherit (pkgs) fetchzip writeText;
+  inherit (depot.nix) buildLisp;
+  inherit (builtins) replaceStrings;
+
+  clhsVersion = "7-0";
+
+  clhs = fetchzip {
+    name = "HyperSpec-${replaceStrings [ "-" ] [ "." ] clhsVersion}";
+    url = "ftp://ftp.lispworks.com/pub/software_tools/reference/HyperSpec-${clhsVersion}.tar.gz";
+    sha256 = "1zsi35245m5sfb862ibzy0pzlph48wvlggnqanymhgqkpa1v20ak";
+    stripRoot = false;
+  };
+
+  clhs-path = writeText "clhs-path.lisp" ''
+    (in-package :clhs-lookup.clhs-path)
+    (defparameter *clhs-path* (pathname "${clhs}/"))
+  '';
+
+  clhs-lookup = buildLisp.program {
+    name = "clhs-lookup";
+
+    deps = [
+      (buildLisp.bundled "uiop")
+    ];
+
+    srcs = [
+      ./packages.lisp
+      clhs-path
+      ./clhs-lookup.lisp
+    ];
+  };
+in {
+  inherit clhs clhs-lookup;
+}