[patch] elephant 1.0a won't build after upgrade ASDF 3.1.5 -> 3.3.1; other issues
Akater
nuclearspace at gmail.com
Fri Mar 16 20:49:59 UTC 2018
This is a re-post. The original email was sent when I was not
subscribed, so it is still in moderation. Meanwhile, this might be
useful to somebody:
With ASDF 3.3.1, elephant fails to build. Here's the trivial fix,
as recommended by ASDF:
--- /elephant.asd 2018-03-13 05:06:40.056298013 +0000
+++ /elephant.asd 2018-03-13 05:29:08.851258161 +0000
@@ -271,7 +271,7 @@
(or (uffi-funcall :load-foreign-library file :module module)
(error "Could not load ~A into ~A" file module)))))
;; Load the compiled libraries
- (dolist (file (output-files (make-instance 'compile-op) c))
+ (dolist (file (output-files (make-operation 'compile-op) c))
(format t "Attempting to load ~A...~%" (file-namestring file))
(if (and (probe-file file)
(not (get-config-option :prebuilt-libraries c)))
My environment: 64-bit SBCL 1.4.5, Linux 4.9.x
ASDF complains about other things too. I might fix them in the following
weeks but it's far from certain.
1. use uiop:run-program instead of asdf:run-shell-command
For your convenience,
------------------------------
excerpt from
asdf/build/asdf.lisp:
defun run-shell-command (control-string &rest args)
"PLEASE DO NOT USE. This function is not just DEPRECATED, but also dysfunctional.
Please use UIOP:RUN-PROGRAM instead."
------------------------------
excerpt from
uiop/run-program.lisp:
defun run-program (command &rest keys
&key ignore-error-status (force-shell nil force-shell-suppliedp)
input (if-input-does-not-exist :error)
output (if-output-exists :supersede)
error-output (if-error-output-exists :supersede)
(element-type #-clozure *default-stream-element-type* #+clozure 'character)
(external-format *utf-8-external-format*)
&allow-other-keys)
"Run program specified by COMMAND,
either a list of strings specifying a program and list of arguments,
or a string specifying a shell command (/bin/sh on Unix, CMD.EXE on Windows);
_synchronously_ process its output as specified and return the processing results
when the program and its output processing are complete.
[…]
RUN-PROGRAM returns 3 values:
0- the result of the OUTPUT slurping if any, or NIL
1- the result of the ERROR-OUTPUT slurping if any, or NIL
2- either 0 if the subprocess exited with success status,
or an indication of failure via the EXIT-CODE of the process"
------------------------------
2. other warnings
WARNING: UIOP/VERSION:PARSE-VERSION: "1.0a1" doesn't follow asdf version numbering convention
WARNING: Invalid :version specifier "1.0a1" for component "elephant" from file #P"/home/akater/common-lisp/elephant/elephant.asd", using NIL instead
WARNING: Invalid :version specifier "1.0a1" for component "elephant" from file #P"/home/akater/common-lisp/elephant/elephant.asd", using NIL instead
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 800 bytes
Desc: not available
URL: <https://mailman.common-lisp.net/pipermail/elephant-devel/attachments/20180316/129a5746/attachment.sig>
More information about the elephant-devel
mailing list