diff options
author | Michael Raskin <7c6f434c@mail.ru> | 2017-04-10 01:10:39 +0200 |
---|---|---|
committer | Michael Raskin <7c6f434c@mail.ru> | 2017-04-10 01:10:49 +0200 |
commit | 58d6b50232b350511207a4723de3b1a17dae26fa (patch) | |
tree | 7e044b3ce2a85b6a2b4183c1eb9f1f841f1a7456 | |
parent | b64163a90d395c9b0edc2c38c12875802968c191 (diff) | |
download | nixlib-58d6b50232b350511207a4723de3b1a17dae26fa.tar nixlib-58d6b50232b350511207a4723de3b1a17dae26fa.tar.gz nixlib-58d6b50232b350511207a4723de3b1a17dae26fa.tar.bz2 nixlib-58d6b50232b350511207a4723de3b1a17dae26fa.tar.lz nixlib-58d6b50232b350511207a4723de3b1a17dae26fa.tar.xz nixlib-58d6b50232b350511207a4723de3b1a17dae26fa.tar.zst nixlib-58d6b50232b350511207a4723de3b1a17dae26fa.zip |
lispPackages: load precompiled asdf; support more implementations
-rwxr-xr-x | pkgs/development/lisp-modules/clwrapper/cl-wrapper.sh | 31 | ||||
-rw-r--r-- | pkgs/development/lisp-modules/clwrapper/default.nix | 6 | ||||
-rw-r--r-- | pkgs/development/lisp-modules/define-package.nix | 8 |
3 files changed, 37 insertions, 8 deletions
diff --git a/pkgs/development/lisp-modules/clwrapper/cl-wrapper.sh b/pkgs/development/lisp-modules/clwrapper/cl-wrapper.sh index 97add524d176..41d40064294f 100755 --- a/pkgs/development/lisp-modules/clwrapper/cl-wrapper.sh +++ b/pkgs/development/lisp-modules/clwrapper/cl-wrapper.sh @@ -1,6 +1,6 @@ #!@stdenv_shell@ # Part of NixPkgs package collection -# This script can be used at your option under the same license as NixPkgs or +# This script can be used at your option under the same license as NixPkgs or # under MIT/X11 license eval "$NIX_LISP_PREHOOK" @@ -24,6 +24,7 @@ case "$NIX_LISP" in NIX_LISP_QUIT="(quit)" NIX_LISP_NODEBUG='--non-interactive' NIX_LISP_FINAL_PARAMETERS= + NIX_LISP_FASL_TYPE="fasl" ;; ecl) NIX_LISP_LOAD_FILE="-load" @@ -31,6 +32,7 @@ case "$NIX_LISP" in NIX_LISP_QUIT="(quit)" NIX_LISP_NODEBUG='--nodebug' NIX_LISP_FINAL_PARAMETERS= + NIX_LISP_FASL_TYPE="fas" ;; clisp) NIX_LISP_LOAD_FILE="-c -l" @@ -38,6 +40,31 @@ case "$NIX_LISP" in NIX_LISP_QUIT="(quit)" NIX_LISP_NODEBUG='-on-error exit' NIX_LISP_FINAL_PARAMETERS="-repl" + NIX_LISP_FASL_TYPE="fas" + ;; + lx86cl64) + NIX_LISP_LOAD_FILE="-l" + NIX_LISP_EXEC_CODE="-e" + NIX_LISP_QUIT="(quit)" + NIX_LISP_NODEBUG='-b' + NIX_LISP_FINAL_PARAMETERS= + NIX_LISP_FASL_TYPE="lx64fsl" + ;; + lx86cl) + NIX_LISP_LOAD_FILE="-l" + NIX_LISP_EXEC_CODE="-e" + NIX_LISP_QUIT="(quit)" + NIX_LISP_NODEBUG='-b' + NIX_LISP_FINAL_PARAMETERS= + NIX_LISP_FASL_TYPE="lx32fsl" + ;; + abcl) + NIX_LISP_LOAD_FILE="--load" + NIX_LISP_EXEC_CODE="--eval" + NIX_LISP_QUIT="(quit)" + NIX_LISP_NODEBUG='' + NIX_LISP_FINAL_PARAMETERS= + NIX_LISP_FASL_TYPE="abcl" ;; esac @@ -59,7 +86,7 @@ nix_lisp_run_single_form(){ eval "$NIX_LISP_PRELAUNCH_HOOK" [ -z "$NIX_LISP_SKIP_CODE" ] && "$NIX_LISP_COMMAND" $NIX_LISP_EARLY_OPTIONS \ - $NIX_LISP_EXEC_CODE "${NIX_LISP_ASDF_LOAD:-"(load \"$NIX_LISP_ASDF/lib/common-lisp/asdf/build/asdf.lisp\")"}" \ + $NIX_LISP_EXEC_CODE "${NIX_LISP_ASDF_LOAD:-"(load \"$NIX_LISP_ASDF/lib/common-lisp/asdf/build/asdf.$NIX_LISP_FASL_TYPE\")"}" \ $NIX_LISP_EXEC_CODE "$NIX_LISP_ASDF_REGISTRY_CODE" \ ${NIX_LISP_FINAL_PARAMETERS[*]:+"${NIX_LISP_FINAL_PARAMETERS[@]}"} \ "$@" diff --git a/pkgs/development/lisp-modules/clwrapper/default.nix b/pkgs/development/lisp-modules/clwrapper/default.nix index 4599c630d83c..6e1b84eb3e99 100644 --- a/pkgs/development/lisp-modules/clwrapper/default.nix +++ b/pkgs/development/lisp-modules/clwrapper/default.nix @@ -12,7 +12,7 @@ stdenv.mkDerivation { substituteAll "${./build-with-lisp.sh}" "$out/bin/build-with-lisp.sh" substituteAll "${./cl-wrapper.sh}" "$out/bin/cl-wrapper.sh" chmod a+x "$out"/bin/* - + substituteAll "${./setup-hook.sh}" "setup-hook-parsed" source setup-hook-parsed setLisp "${lisp}" @@ -22,7 +22,9 @@ stdenv.mkDerivation { cp -r "${asdf}/lib/common-lisp"/* "$out/lib/common-lisp/" chmod u+rw -R "$out/lib/common-lisp/" - NIX_LISP_PRELAUNCH_HOOK='nix_lisp_run_single_form "(progn + NIX_LISP_PRELAUNCH_HOOK=' + NIX_LISP_FASL_TYPE=lisp + nix_lisp_run_single_form "(progn (uiop/lisp-build:compile-file* \"'"$out"'/lib/common-lisp/asdf/build/asdf.lisp\") (asdf:load-system :uiop :force :all) (asdf:load-system :asdf :force :all) diff --git a/pkgs/development/lisp-modules/define-package.nix b/pkgs/development/lisp-modules/define-package.nix index 520e224e6da2..1acedf4b7043 100644 --- a/pkgs/development/lisp-modules/define-package.nix +++ b/pkgs/development/lisp-modules/define-package.nix @@ -1,7 +1,7 @@ args @ {stdenv, clwrapper, baseName, testSystems ? [baseName], version ? "latest" , src, description, deps, buildInputs ? [], meta ? {}, overrides?(x: {}) , propagatedBuildInputs ? []}: -let +let deployConfigScript = '' outhash="$out" outhash="''${outhash##*/}" @@ -39,7 +39,7 @@ let echo "#! /bin/sh" >> "$launch_script" echo "source '$config_script'" >> "$launch_script" echo "export LD_LIBRARY_PATH=\"\$NIX_LISP_LD_LIBRARY_PATH\''${NIX_LISP_LD_LIBRARY_PATH:+:}\$LD_LIBRARY_PATH\"" >> "$launch_script" - echo '"${clwrapper}/bin/common-lisp.sh" "$@"' >> "$launch_script" + echo '"${clwrapper}/bin/common-lisp.sh" "$@"' >> "$launch_script" ''; basePackage = { name = "lisp-${baseName}-${version}"; @@ -66,12 +66,12 @@ basePackage = { (asdf:operate (quote asdf::compile-bundle-op) :${testSystem}) (ignore-errors (asdf:operate (quote asdf::deploy-asd-op) :${testSystem})) )"' \ - "$out/bin/${args.baseName}-lisp-launcher.sh" "" + "$out/bin/${args.baseName}-lisp-launcher.sh" '') testSystems} eval "$postInstall" ''; - propagatedBuildInputs = (args.deps or []) ++ [clwrapper clwrapper.lisp clwrapper.asdf] + propagatedBuildInputs = (args.deps or []) ++ [clwrapper clwrapper.lisp clwrapper.asdf] ++ (args.propagatedBuildInputs or []); buildInputs = buildInputs; dontStrip=true; |