<div dir="ltr"><div>While narrowing down the problems I was having with maven and cffi, I came across the maven-embedded.lisp file</div><div>(<a href="https://common-lisp.net/svn/armedbear/branches/1.4.0/contrib/abcl-asdf/maven-embedder.lisp">https://common-lisp.net/svn/armedbear/branches/1.4.0/contrib/abcl-asdf/maven-embedder.lisp</a>)</div><div>where I saw the sys:run-program.</div><div><br></div><div>I now have ABCL installed on both Linux and Windows, and have problems on both when issuing</div><div><br></div><div>#+windows(sys:run-program "where.exe" nil)<br><div>#+linux(sys:run-program "which" nil)</div><br class="inbox-inbox-Apple-interchange-newline"></div><div>On Windows, the first call fails, while the second succeeds.  On Linux, the call fails, and repeated calls also fail.</div><div><br></div><div>Is this just me or can anyone else reproduce this?  Thanks.</div><div><br></div>Transcript of the Windows 10 session (Linux follows)<div><br></div><div>P:\>java -jar c:\mv-program-files\abcl-bin-1.4.0\abcl.jar --noinit<div><div>Armed Bear Common Lisp 1.4.0</div><div>Java 1.8.0_112 Oracle Corporation</div><div>Java HotSpot(TM) 64-Bit Server VM</div><div>Low-level initialization completed in 0.274 seconds.</div><div>Startup completed in 4.28 seconds.</div><div>Type ":help" for a list of available commands.</div><div>CL-USER(1): (sys:run-program "which.exe" nil) ;;; <b>First invocation results in error</b></div><div>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)</div><div>#<THREAD "interpreter" {6A8B2747}>: Debugger invoked on condition of type ERROR</div><div>  Class not found: java.lang.UNIXProcess  ;;; <b>ERROR</b></div><div>Restarts:</div><div>  0: TOP-LEVEL Return to top level.</div><div>[1] SYS(2): 0</div><div>java.lang.ExceptionInInitializerError</div><div><br></div><div>... Java stack elided </div><div><br></div><div>Caused by: org.armedbear.lisp.Go</div><div>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)</div><div>#<THREAD "interpreter" {6A8B2747}>: Debugger invoked on condition of type ERROR</div><div>  Compiled function can't be loaded: org.armedbear.lisp.run_program_49 from org.armedbear.lisp.Pathname@60a4bd75</div><div>Restarts:</div><div>  0: TOP-LEVEL Return to top level.</div><div>[1] SYS(3): 0</div><div>CL-USER(4): (sys:run-program "which.exe" nil) ;;; <b>Second invocation succeeds</b></div><div>#S(SYSTEM:PROCESS :JPROCESS #<java.lang.ProcessImpl java.lang.ProcessImpl@6aaa6218 {2F20252D}> :%INPUT #S(SYSTEM::SYSTEM-STREAM) :%OUTPUT #S(SYSTEM::SYSTEM-STREAM) :%ERROR #S(SYSTEM::SYSTEM-STREAM))</div><div>CL-USER(5):</div></div></div><div><br></div><div>On Linux I work through Slime.  Here is the startup message on a RedHat EL6.  I hope my Java patch is recent enough.</div><div><br></div><div><div>Armed Bear Common Lisp 1.4.0</div><div>Java 1.6.0_40 Sun Microsystems Inc.</div><div>OpenJDK 64-Bit Server VM</div><div>Low-level initialization completed in 0.491 seconds.</div><div>Startup completed in 2.488 seconds.</div><div>Using probed value of abcl-contrib:</div><div>'/usr/local/share/java/abcl-contrib.jar'.</div><div>Added jar:file:/usr/local/share/java/abcl-contrib.jar!/quicklisp/ to ASDF.</div><div>Added jar:file:/usr/local/share/java/abcl-contrib.jar!/mvn/ to ASDF.</div><div>Added jar:file:/usr/local/share/java/abcl-contrib.jar!/jss/ to ASDF.</div><div>Added jar:file:/usr/local/share/java/abcl-contrib.jar!/jfli/ to ASDF.</div><div>Added jar:file:/usr/local/share/java/abcl-contrib.jar!/asdf-jar/ to ASDF.</div><div>Added jar:file:/usr/local/share/java/abcl-contrib.jar!/abcl-asdf/ to ASDF.</div><div>Loading /home/mv/.abclrc completed in 9.644 seconds.</div><div>Type ":help" for a list of available commands.</div><div>CL-USER(1): ; Loading /home/sm/software/slime/swank-loader.lisp ...</div></div><div><br></div><div><br></div><div>Doing (sys:run-program "which" nil) the error backtrace is:</div><div><br></div><div><div>Class not found: java.lang.ProcessBuilder$Redirect</div><div>   [Condition of type ERROR]</div><div><br></div><div>Restarts:</div><div> 0: [RETRY] Retry SLIME REPL evaluation request.</div><div> 1: [*ABORT] Return to SLIME's top level.</div><div> 2: [ABORT] Abort thread.</div><div><br></div><div>Backtrace:</div><div>  0: (#<FUNCTION {5A18A372}> #<ERROR {47BE45A7}> #<FUNCTION {5A18A372}>)</div><div>  1: (APPLY #<FUNCTION {5A18A372}> (#<ERROR {47BE45A7}> #<FUNCTION {5A18A372}>))</div><div>  2: (SYSTEM::RUN-HOOK SYSTEM::*INVOKE-DEBUGGER-HOOK* #<ERROR {47BE45A7}> #<FUNCTION {5A18A372}>)</div><div>  3: (INVOKE-DEBUGGER #<ERROR {47BE45A7}>)</div><div>  4: org.armedbear.lisp.Lisp.error(Lisp.java:382)</div><div>  5: org.armedbear.lisp.Java.classForName(Java.java:1299)</div><div>  6: org.armedbear.lisp.Java.javaClass(Java.java:1332)</div><div>  7: org.armedbear.lisp.Java.javaClass(Java.java:1306)</div><div>  8: org.armedbear.lisp.Java.jfield(Java.java:177)</div><div>  9: org.armedbear.lisp.Java$pf_jfield.execute(Java.java:272)</div><div> 10: org.armedbear.lisp.Primitive.execute(Primitive.java:123)</div><div> 11: (JFIELD "java.lang.ProcessBuilder$Redirect" "INHERIT")</div><div> 12: (SYSTEM:INIT-FASL :VERSION 42)</div><div> 13: (SYSTEM::%MAKE-PROCESS-BUILDER "which" NIL)</div><div> 14: (SYSTEM:RUN-PROGRAM "which" NIL)</div><div> 15: (SYSTEM::%EVAL (SYSTEM:RUN-PROGRAM "which" NIL))</div><div> 16: (EVAL (SYSTEM:RUN-PROGRAM "which" NIL))</div></div><div><br></div></div>