[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