I started playing with writing UFFI bindings for OpenMPI. I think I have this down, but I can't truly test it at home because I only have SBCL installed on one machine, and I am having a terrible time getting even the simplest SBCL program to run twice at the same time.
run.sh shell script.
#!/bin/sh exec sbcl --noinform \ --end-runtime-options \ --no-sysinit \ --no-userinit \ --noprint \ --disable-debugger \ --eval '(format t "Hi from Lisp!~%")' \ --eval '(sb-ext:quit)' \ --end-toplevel-options
If I do
then everything works just as I would
expect. And, I can do
and it runs twice.
./run.sh ; ./run.sh
But, if I try to do
so that they
both run at the same time, I get one
./run.sh & ./run.sh
SEGV and one
success. If I put three in the background and one in the foreground,
I get three
SEGVs and one success.
Thinking that maybe it tried to lock standard-in or standard-out
and then freaked if it failed, I added
and still had the same trouble.
1> _out.$$ 2>
_err.$$ < /dev/null
I can run SBCL interactively in multiple windows so I don't think
I should be hitting a memory limit. I just added a
to the script before the
exec, started the
script in two different screens, killed both
from another screen, and got the same result.
Any clues? I didn't find anything too useful searching the
SBCL mailing lists for
segmentation AND fault
except some problems people had last summer getting SBCL to
compile on a Mac that might be related if there's parallel
building going on.
Darwin sirrobin.selsne.org 8.11.0 Darwin Kernel Version 8.11.0: Wed Oct 10 18:26:00 PDT 2007; root:xnu-792.24.17~1/RELEASE_PPC Power Macintosh powerpc
This is SBCL 1.0.2, an implementation of ANSI Common Lisp.
same issue. And, I can even get rid of the
This is SBCL 1.0.17, an implementation of ANSI Common Lisp.
(format ...) call and still trigger the same problem.