about summary refs log tree commit diff
path: root/fun/gemma (follow)
AgeCommit message (Collapse)AuthorFilesLines
2021-08-24 r/2772 feat(nix/buildLisp): add cclsterni1-0/+1
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 r/2771 feat(nix/buildLisp): add eclsterni1-0/+5
Adds ECL as a second supported implementation, specifically a statically linked ECL. This is interesting because we can create statically linked binaries, but has a few drawbacks which doesn't make it generally useful: * Loading things is very slow: The statically linked ECL only has byte compilation available, so when we do load things or use the REPL it is significantly worse than with e. g. SBCL. * We can't load shared objects via the FFI since ECL's dffi is not available when linked statically. This means that as it stands, we can't build a statically linked //web/panettone for example. Since ECL is quite slow anyways, I think these drawbacks are worth it since the biggest reason for using ECL would be to get a statically linked binary. If we change our minds, it shouldn't be too hard to provide ecl-static and ecl-dynamic as separate implementations. ECL is LGPL and some libraries it uses as part of its runtime are as well. I've outlined in the ecl-static overlay why this should be of no concern in the context of depot even though we are statically linking. Currently everything is building except projects that are using cffi to load shared libaries which have gotten an appropriate `badImplementations` entry. To get the rest building the following changes were made: * Anywhere a dependency on UIOP is expressed as `bundled "uiop"` we now use `bundled "asdf"` for all implementations except SBCL. From my testing, SBCL seems to be the only implementation to support using `(require 'uiop)` to only load the UIOP package. Where both a dependency on ASDF and UIOP exists, we just delete the UIOP one. `(require 'asdf)` always causes UIOP to be available. * Where appropriate only conditionally compile SBCL-specific code and if any build the corresponding files for ECL. * //lisp/klatre: Use the standard condition parse-error for all implementations except SBCL in try-parse-integer. * //3p/lisp/ironclad: disable SBCL assembly optimization hack for all other platforms as it may interfere with compilation. * //3p/lisp/trivial-mimes: prevent call to asdf function by substituting it out of the source since it always errors out in ECL and we hardcode the correct path elsewhere anyways. As it stands ECL still suffers from a very weird problem which happens when compiling postmodern and moptilities: https://gitlab.com/embeddable-common-lisp/ecl/-/issues/651 Change-Id: I0285924f92ac154126b4c42145073c3fb33702ed Reviewed-on: https://cl.tvl.fyi/c/depot/+/3297 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in> Reviewed-by: eta <tvl@eta.st>
2021-04-10 r/2462 refactor(fun): Consistent use of depot.third_party vs. pkgsVincent Ambo1-2/+2
In preparation for the solution of b/108, we need to consistently use `depot.third_party` for packages that are only packed in the TVL depot and `pkgs` for things that come from nixpkgs. This commit cleans up a huge chunk of these uses in //fun Change-Id: I45a7b392a9749fa7859ff5100dcea415bda807c3 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2914 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2021-03-24 r/2327 fix(gemma): Fix build by backporting Elm 0.18Vincent Ambo1-7/+6
Backports an old version of the Elm language (before the release where they made everyone rewrite their programs), from the same old nixpkgs commit as was previously used in overrides (see CL/2646). Change-Id: I0ae4cc611aa40269b290651ab982c1db93518d8a Reviewed-on: https://cl.tvl.fyi/c/depot/+/2649 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2021-03-23 r/2325 chore: Remove //overrides from depotVincent Ambo1-3/+4
This mechanism wasn't actually used for anything other than a minor external compatibility thing for buildGo.nix, which can also be solved with a function parameter. This breaks //fun/gemma because it means that the elmPackages used to build it are no longer reachable from depot. We'll sort this out later. Change-Id: I1bf2240435e869cdc4e99bdd1a138fdd2e76f96e Reviewed-on: https://cl.tvl.fyi/c/depot/+/2646 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2020-02-21 r/559 chore: Rename pkgs->depot in all Nix file headersVincent Ambo1-6/+6
2020-01-22 r/446 fix(fun/gemma): Give Hunchentoot the trailing slash it desiresVincent Ambo1-1/+1
2020-01-22 r/445 refactor(fun/gemma): Make acceptor available in a variableVincent Ambo1-4/+7
This makes it possible to *stop* the server again in a REPL, which is useful :)
2020-01-22 r/443 fix(fun/gemma): Fix minor typo in frontend injectionVincent Ambo1-1/+1
2020-01-22 r/440 refactor(fun/gemma): Use buildLisp.nix to build GemmaVincent Ambo4-91/+39
This removes the ASDF system definition for Gemma and switches the code over to buildLisp. The program builds (including some terrifying hacks to get the frontend to work), but there are some bizarre runtime issues that I need to debug.
2020-01-18 r/399 chore(fun/gemma): Use correct Markdown file extensionVincent Ambo1-0/+0
Otherwise the file does not get picked up by cgit.
2019-12-20 r/237 chore: Significantly restructure folder layoutVincent Ambo10-0/+1340
This moves the various projects from "type-based" folders (such as "services" or "tools") into more appropriate semantic folders (such as "nix", "ops" or "web"). Deprecated projects (nixcon-demo & gotest) which only existed for testing/demonstration purposes have been removed. (Note: *all* builds are broken with this commit)