Commit 7a18e15b authored by Robert Goldman's avatar Robert Goldman
Browse files

Merge branch 'master' into 'master'

uiop/run-program: fix abcl version identifier for development releases

Without this patch, Elias' recent work on UIOP/RUN-PROGRAM won't be utilized on any ABCL which is built from development source.

ABCL uses the convention that development versions start appending strings separated via #\- characters to the primary value returned by CL:LISP-IMPLEMENTATION-VERSION (e.g. '1.5.0-dev'). Such values cause the UIOP/UTILITY:PARSE-VERSION function to return nil, meaning that this is not a suitable conditional for whether LAUNCH-PROGRAM is invoked.

This patch uses the value of `UIOP/OS:IMPLEMENTATION-IDENTIFIER` to identify version.  Unknown whether this would work on MKCL/ECL, which might simplify the code path here.

See merge request !57
parents fa91ae7b a65deb43
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -1012,7 +1012,12 @@ or :error-output."
    (declare (ignorable keys directory input if-input-does-not-exist output
                        if-output-exists error-output if-error-output-exists))
    #+(or abcl allegro clozure cmucl ecl (and lispworks os-unix) mkcl sbcl scl)
    (let (#+(or abcl ecl mkcl) (version (parse-version (lisp-implementation-version))))
    (let (#+(or abcl ecl mkcl)
            (version (parse-version
                      #-abcl
                      (lisp-implementation-version)
                      #+abcl
                      (second (split-string (implementation-identifier) :separator '(#\-))))))
      (nest
       #+abcl (unless (lexicographic< '< version '(1 4 0)))
       #+ecl (unless (lexicographic<= '< version '(16 0 0)))