tvl-depot/web/panettone/default.nix
sterni d7e70b1d72 feat(nix/buildLisp): add ccl
This adds support for Clozure's CL implementation to buildLisp. This is
quite trivial in comparison to ECL since SBCL and CCL have very similar
in how they work (so much so that CCL also suffers from b/136).

Also the similarities in the code actually added here are striking, so
I'll try to make an effort to reduce the code duplication in the
future.

To fix builds with CCL the following changes were made:

* //3p/lisp/nibbles: The double inclusion of the types.lisp file was
  fixed. CCL doesn't like double definitions and refuses to compile
  otherwise.

* //3p/lisp/physical-quantities: Update to a new bug fix release which
  contains a compilation fix for CCL.

* //3p/lisp/routes: apply a patch fixing the build which was previously
  failing due to a double definition.

* //3p/lisp/usocket: only depend on sb-bsd-sockets for SBCL and ECL, the
  latter of which seems to have a SBCL compatible implementation of the
  package.

* Conditionally include a few CCL-specific source files and add
  `badImplementation` entries for the remaining failures which are
  //fun/gemma (to be expected) and //web/panettone which fails with an
  incredibly vague message.

Change-Id: I666efdc39a0f16ee1bb6e23225784c709b04e740
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3350
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-08-24 22:00:15 +00:00

55 lines
951 B
Nix

{ depot, ... }:
depot.nix.buildLisp.program {
name = "panettone";
deps = with depot.third_party.lisp; [
bordeaux-threads
cl-json
cl-ppcre
cl-smtp
cl-who
defclass-std
drakma
easy-routes
hunchentoot
lass
local-time
postmodern
trivial-ldap
depot.lisp.klatre
];
srcs = [
./panettone.asd
./src/packages.lisp
./src/util.lisp
./src/css.lisp
./src/email.lisp
./src/inline-markdown.lisp
./src/authentication.lisp
./src/model.lisp
./src/irc.lisp
./src/panettone.lisp
];
tests = {
deps = with depot.third_party.lisp; [
fiveam
];
srcs = [
./test/package.lisp
./test/model_test.lisp
./test/inline-markdown_test.lisp
];
expression = "(fiveam:run!)";
};
brokenOn = [
"ecl" # dependencies use dynamic cffi
"ccl" # The value NIL is not of the expected type STRING. when loading model.lisp
];
}