sys:run-program errs (both Windows & Linux)

Mirko Vukovic mirko.vukovic at gmail.com
Wed Jan 11 16:01:42 UTC 2017


While narrowing down the problems I was having with maven and cffi, I came
across the maven-embedded.lisp file
(
https://common-lisp.net/svn/armedbear/branches/1.4.0/contrib/abcl-asdf/maven-embedder.lisp
)
where I saw the sys:run-program.

I now have ABCL installed on both Linux and Windows, and have problems on
both when issuing

#+windows(sys:run-program "where.exe" nil)
#+linux(sys:run-program "which" nil)

On Windows, the first call fails, while the second succeeds.  On Linux, the
call fails, and repeated calls also fail.

Is this just me or can anyone else reproduce this?  Thanks.

Transcript of the Windows 10 session (Linux follows)

P:\>java -jar c:\mv-program-files\abcl-bin-1.4.0\abcl.jar --noinit
Armed Bear Common Lisp 1.4.0
Java 1.8.0_112 Oracle Corporation
Java HotSpot(TM) 64-Bit Server VM
Low-level initialization completed in 0.274 seconds.
Startup completed in 4.28 seconds.
Type ":help" for a list of available commands.
CL-USER(1): (sys:run-program "which.exe" nil) ;;; *First invocation results
in error*
Error loading
jar:file:C:/mv-program-files/abcl-bin-1.4.0/abcl.jar!/org/armedbear/lisp/run-program.abcl
at line 166 (offset 8688)
#<THREAD "interpreter" {6A8B2747}>: Debugger invoked on condition of type
ERROR
  Class not found: java.lang.UNIXProcess  ;;; *ERROR*
Restarts:
  0: TOP-LEVEL Return to top level.
[1] SYS(2): 0
java.lang.ExceptionInInitializerError

... Java stack elided

Caused by: org.armedbear.lisp.Go
Error loading
jar:file:C:/mv-program-files/abcl-bin-1.4.0/abcl.jar!/org/armedbear/lisp/run-program.abcl
at line 166 (offset 8688)
#<THREAD "interpreter" {6A8B2747}>: Debugger invoked on condition of type
ERROR
  Compiled function can't be loaded: org.armedbear.lisp.run_program_49 from
org.armedbear.lisp.Pathname at 60a4bd75
Restarts:
  0: TOP-LEVEL Return to top level.
[1] SYS(3): 0
CL-USER(4): (sys:run-program "which.exe" nil) ;;; *Second invocation
succeeds*
#S(SYSTEM:PROCESS :JPROCESS #<java.lang.ProcessImpl
java.lang.ProcessImpl at 6aaa6218 {2F20252D}> :%INPUT
#S(SYSTEM::SYSTEM-STREAM) :%OUTPUT #S(SYSTEM::SYSTEM-STREAM) :%ERROR
#S(SYSTEM::SYSTEM-STREAM))
CL-USER(5):

On Linux I work through Slime.  Here is the startup message on a RedHat
EL6.  I hope my Java patch is recent enough.

Armed Bear Common Lisp 1.4.0
Java 1.6.0_40 Sun Microsystems Inc.
OpenJDK 64-Bit Server VM
Low-level initialization completed in 0.491 seconds.
Startup completed in 2.488 seconds.
Using probed value of abcl-contrib:
'/usr/local/share/java/abcl-contrib.jar'.
Added jar:file:/usr/local/share/java/abcl-contrib.jar!/quicklisp/ to ASDF.
Added jar:file:/usr/local/share/java/abcl-contrib.jar!/mvn/ to ASDF.
Added jar:file:/usr/local/share/java/abcl-contrib.jar!/jss/ to ASDF.
Added jar:file:/usr/local/share/java/abcl-contrib.jar!/jfli/ to ASDF.
Added jar:file:/usr/local/share/java/abcl-contrib.jar!/asdf-jar/ to ASDF.
Added jar:file:/usr/local/share/java/abcl-contrib.jar!/abcl-asdf/ to ASDF.
Loading /home/mv/.abclrc completed in 9.644 seconds.
Type ":help" for a list of available commands.
CL-USER(1): ; Loading /home/sm/software/slime/swank-loader.lisp ...


Doing (sys:run-program "which" nil) the error backtrace is:

Class not found: java.lang.ProcessBuilder$Redirect
   [Condition of type ERROR]

Restarts:
 0: [RETRY] Retry SLIME REPL evaluation request.
 1: [*ABORT] Return to SLIME's top level.
 2: [ABORT] Abort thread.

Backtrace:
  0: (#<FUNCTION {5A18A372}> #<ERROR {47BE45A7}> #<FUNCTION {5A18A372}>)
  1: (APPLY #<FUNCTION {5A18A372}> (#<ERROR {47BE45A7}> #<FUNCTION
{5A18A372}>))
  2: (SYSTEM::RUN-HOOK SYSTEM::*INVOKE-DEBUGGER-HOOK* #<ERROR {47BE45A7}>
#<FUNCTION {5A18A372}>)
  3: (INVOKE-DEBUGGER #<ERROR {47BE45A7}>)
  4: org.armedbear.lisp.Lisp.error(Lisp.java:382)
  5: org.armedbear.lisp.Java.classForName(Java.java:1299)
  6: org.armedbear.lisp.Java.javaClass(Java.java:1332)
  7: org.armedbear.lisp.Java.javaClass(Java.java:1306)
  8: org.armedbear.lisp.Java.jfield(Java.java:177)
  9: org.armedbear.lisp.Java$pf_jfield.execute(Java.java:272)
 10: org.armedbear.lisp.Primitive.execute(Primitive.java:123)
 11: (JFIELD "java.lang.ProcessBuilder$Redirect" "INHERIT")
 12: (SYSTEM:INIT-FASL :VERSION 42)
 13: (SYSTEM::%MAKE-PROCESS-BUILDER "which" NIL)
 14: (SYSTEM:RUN-PROGRAM "which" NIL)
 15: (SYSTEM::%EVAL (SYSTEM:RUN-PROGRAM "which" NIL))
 16: (EVAL (SYSTEM:RUN-PROGRAM "which" NIL))
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/armedbear-devel/attachments/20170111/ee1f1aba/attachment.html>


More information about the armedbear-devel mailing list