SLY: Factorize nyxt implementations.

master
Pierre Neidhardt 2021-03-23 19:09:24 +01:00
parent e617a4b8cd
commit f1d7419c3a
1 changed files with 30 additions and 62 deletions

View File

@ -25,8 +25,20 @@ This dump is expected to be generated by `lisp-repl-core-dumper'."
;; Warning: ,restart-lisp does not take changes into account, the buffer must be re-created.
;; TODO: SLY: Add pre-inst-env SBCL, maybe ask for packages?
(setq sly-lisp-implementations
(let ((maybe-core-dumper (when-let ((exec (executable-find "lisp-repl-core-dumper")))
(list exec))))
(let* ((maybe-core-dumper (when-let ((exec (executable-find "lisp-repl-core-dumper")))
(list exec)))
;; Support for encrypted files and password manager:
(nyxt-ad-hoc-deps '("password-store" "gnupg"))
(nyxt-command `("guix" "environment" "--pure"
"--preserve=^PERSONAL$" ; To find personal config, like engines and bookmarks.
"-l" ,(expand-file-name "~/common-lisp/nyxt/build-scripts/guix.scm")
;; glib is needed to export GIO_EXTRA_MODULES.
"--ad-hoc" "glib"
;; Not necessary?
"glib-networking" "gsettings-desktop-schemas"
,@nyxt-ad-hoc-deps
;; "--" "sbcl"
)))
;; TODO: Shouldn't lisp-repl-core-dumper include sb-sprof? Should SBCL
;; packages remain loadable?
`((sbcl-ambrevar ("lisp-repl-core-dumper" "-g" "--non-interactive"
@ -35,67 +47,23 @@ This dump is expected to be generated by `lisp-repl-core-dumper'."
"--eval" "(named-readtables:in-readtable ambrevar/syntax:syntax)"))
(sbcl (,@maybe-core-dumper "sbcl"))
(sbcl-failsafe ("sbcl"))
(sbcl-nyxt (lambda () (nyxt-make-guix-sbcl-for-nyxt "~/projects/nyxt" :preserve '("PERSONAL"))))
(sbcl-nyxt-pre-inst-env
(,(expand-file-name "~/projects/guix/pre-inst-env")
"guix" "environment" "-l"
,(expand-file-name "~/common-lisp/nyxt/build-scripts/guix.scm")
;; ,(format "--root=%s" (expand-file-name "~/.guix-temp-profiles/nyxt-pre-inst-env/nyxt-pre-inst-env"))
"--ad-hoc" "glib" "glib-networking" "gsettings-desktop-schemas"
"--" "sbcl"))
(sbcl-nyxt (lambda ()
(nyxt-make-guix-sbcl-for-nyxt "~/projects/nyxt"
:preserve '("PERSONAL")
:ad-hoc ',nyxt-ad-hoc-deps)))
(sbcl-nyxt-force (lambda ()
(nyxt-make-guix-sbcl-for-nyxt "~/projects/nyxt"
:preserve '("PERSONAL")
:ad-hoc ',nyxt-ad-hoc-deps
:force t)))
(sbcl-nyxt-pre-inst-env ,(append
(list (expand-file-name "~/projects/guix/pre-inst-env"))
nyxt-command
'("--" "sbcl")))
;; Simple REPL environment for Nyxt, in case sbcl-nyxt does not work.
(sbcl-nyxt-failsafe ("guix" "environment" "--pure"
"--preserve=^PERSONAL$" ; To find personal config, like engines and bookmarks.
"-l" ,(expand-file-name "~/common-lisp/nyxt/build-scripts/guix.scm")
;; glib is needed to export GIO_EXTRA_MODULES.
"--ad-hoc" "glib" "glib-networking" "gsettings-desktop-schemas"
"gnupg" "--" "sbcl"))
(ccl-nyxt ("guix" "environment" "--pure" ; TODO: Convert Nyxt definition inputs?
"--preserve=^PERSONAL$" ; To find personal config, like engines and bookmarks.
;; glib is needed to export GIO_EXTRA_MODULES.
"--ad-hoc" "ccl" "gnupg" "glib" "glib-networking" "gsettings-desktop-schemas"
"gcc-toolchain" ; For CFFI compilation
"cl-alexandria"
"cl-bordeaux-threads"
"cl-calispel"
"cl-chanl"
"cl-containers"
"cl-css"
"cl-custom-hash-table"
"cl-json"
"cl-markup"
"cl-ppcre"
"cl-prevalence"
"cl-closer-mop"
"cl-cluffer"
"cl-dexador"
"cl-enchant"
"cl-fset"
"cl-hu.dwim.defclass-star"
"cl-iolib"
"cl-local-time"
"cl-log4cl"
"cl-mk-string-metrics"
"cl-moptilities"
"cl-named-readtables"
"cl-osicat"
"cl-parenscript"
"cl-plump"
"cl-quri"
"cl-serapeum"
"cl-str"
"cl-slime-swank"
"cl-trivia"
"cl-trivial-clipboard"
"cl-trivial-features"
"cl-trivial-package-local-nicknames"
"cl-trivial-types"
"cl-unix-opts"
"cl-usocket"
"cl-cffi-gtk"
"cl-webkit"
"cl-gobject-introspection"
"--" "ccl"))
(sbcl-nyxt-failsafe ,(append nyxt-command '("--" "sbcl")))
(ccl-nyxt ,(append nyxt-command '("ccl" "cl-osicat" ; Osicat is required by non-SBCL compilers.
"--" "ccl")))
(sbcl-nyxt-site ("guix" "environment" "--pure"
"-m" ,(expand-file-name "~/common-lisp/nyxt-site/guix-manifest.scm")
"--" "sbcl"))