diff options
author | Aspen Smith <root@gws.fyi> | 2024-03-23T14·20-0400 |
---|---|---|
committer | clbot <clbot@tvl.fyi> | 2024-03-31T19·18+0000 |
commit | d5f57ac6e68f3acd79f1abc91d8ee9afc435018f (patch) | |
tree | 8e96aaf920b4c46d705137485d673adb74ffc4a7 | |
parent | 87d5dd6371632edc9027a3e75ec6e1afc5b9d825 (diff) |
feat(3p/lisp): Add str package and dependencies r/7825
Change-Id: Iffb66f4580517b1dbfee8c79e766552508695e5f Reviewed-on: https://cl.tvl.fyi/c/depot/+/11252 Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI Autosubmit: aspen <root@gws.fyi>
-rw-r--r-- | third_party/lisp/cl-change-case.nix | 22 | ||||
-rw-r--r-- | third_party/lisp/cl-ppcre.nix | 12 | ||||
-rw-r--r-- | third_party/lisp/str.nix | 49 |
3 files changed, 83 insertions, 0 deletions
diff --git a/third_party/lisp/cl-change-case.nix b/third_party/lisp/cl-change-case.nix new file mode 100644 index 000000000000..b66368a9b6e3 --- /dev/null +++ b/third_party/lisp/cl-change-case.nix @@ -0,0 +1,22 @@ +{ depot, pkgs, ... }: + +let src = with pkgs; srcOnly lispPackages.cl-change-case; +in depot.nix.buildLisp.library { + name = "cl-change-case"; + + deps = with depot.third_party.lisp; [ cl-ppcre cl-ppcre.unicode ]; + + srcs = [ (src + "/src/cl-change-case.lisp") ]; + + tests = { + name = "cl-change-case-tests"; + srcs = [ (src + "/t/cl-change-case.lisp") ]; + deps = [ + depot.third_party.lisp.fiveam + ]; + + expression = '' + (5am:run! :cl-change-case) + ''; + }; +} diff --git a/third_party/lisp/cl-ppcre.nix b/third_party/lisp/cl-ppcre.nix index 561e306191ca..7cb99db639fd 100644 --- a/third_party/lisp/cl-ppcre.nix +++ b/third_party/lisp/cl-ppcre.nix @@ -24,4 +24,16 @@ in depot.nix.buildLisp.library { "scanner.lisp" "api.lisp" ]; + + passthru = { + unicode = depot.nix.buildLisp.library { + name = "cl-ppcre-unicode"; + deps = with depot.third_party.lisp; [ cl-ppcre cl-unicode ]; + + srcs = map (f: src + ("/cl-ppcre-unicode/" + f)) [ + "packages.lisp" + "resolver.lisp" + ]; + }; + }; } diff --git a/third_party/lisp/str.nix b/third_party/lisp/str.nix new file mode 100644 index 000000000000..556f9cc30709 --- /dev/null +++ b/third_party/lisp/str.nix @@ -0,0 +1,49 @@ +{ depot, pkgs, ... }: + +let + inherit (depot.nix) buildLisp; + src = with pkgs; srcOnly lispPackages.str; +in +buildLisp.library { + name = "str"; + + deps = with depot.third_party.lisp; [ + { + sbcl = buildLisp.bundled "uiop"; + default = buildLisp.bundled "asdf"; + } + cl-ppcre + cl-ppcre.unicode + cl-change-case + ]; + + srcs = [ + (pkgs.runCommand "str.lisp" { } '' + substitute ${src}/str.lisp $out \ + --replace-fail \ + '(asdf:component-version (asdf:find-system "str"))' \ + '"${pkgs.lispPackages.str.meta.version}"' + '') + ]; + + brokenOn = [ + "ccl" # In REPLACE-USING: Shouldn't assign to variable I + ]; + + tests = { + name = "str-test"; + srcs = [ (src + "/test/test-str.lisp") ]; + deps = [ + { + sbcl = depot.nix.buildLisp.bundled "uiop"; + default = depot.nix.buildLisp.bundled "asdf"; + } + depot.third_party.lisp.prove + depot.third_party.lisp.fiveam + ]; + + expression = '' + (fiveam:run! 'str::test-str) + ''; + }; +} |