[Openmcl-devel] External processes on Windows

Ron Garret ron at flownet.com
Tue Dec 31 17:47:11 PST 2013

I’m having a problem porting a CCL application to Windows.  I’m using run-program to spawn a Python interpreter (quick and dirty hack until I can port the functionality I need to Lisp).  That works on OS X, Linux, and Windows.

But on Windows I need to produce a standalone executable, so I used PyInstaller (http://pyinstaller.org) to produce a self-contained python interpreter with all my code pre-loaded into it, and that works too, but only when I run it from the command line.  When I try to invoke that self-contained Python executable from Lisp using run-program, two strange things happen.  For the sake of discussion let is say that my self-contained python is called scpy.exe.  The first strange thing is that I get TWO scpy.exe processes showing up in the task manager, not just one.  They have different memory usages, so they are (apparently) not identical.  Killing either one will cause the other one to terminate as well.

The second (and more serious) problem is that none of the output from scpy.exe shows up in the external-process-input-stream of the external-process object i get when I start scpy.exe.  I’m using the exact same code as I’m using to launch the regular python interpreter, in which case everything works.

My question is: what could possibly be causing this behavior?  Do Windows pipes differ substantially from unix pipes?  I’ve never done any Windows development before, so I might be missing something very elementary here.

I’m running CCL 1.8-r15286M on 32-bit Windows XP.

Thanks, and happy new year!


More information about the Openmcl-devel mailing list