Would be nice to have a way to run only a subset of the Lisps at a time...
nklein opened this issue · comments
I have eight different Lisp implementations in my run-agent.lisp
right now. When I kick of a test-grid run, my computer fan runs for two or three days straight. It'd be nice to be able to run just a subset of the Lisp implementations.
I hacked my run-agent.sh to look like this:
...
# Start your run-agent.lisp script. We suppose
# Quicklisp is installed and added to the init
# file of your lisp.
LISPS=""
if [ ! -z "$1" ]; then
LISPS="$@"
fi
# (EDIT THE PATH TO CCL)
/usr/local/src/ccl/dx86cl64 \
--eval "(defparameter *command-line-lisps* '(${LISPS}))" \
--load run-agent.lisp \
--eval "(quit)"
And, then edited my run-agent.lisp to look like this:
...
(defvar *command-line-lisps* nil)
(defparameter *all-lisps* (list *abcl*
*ccl-1.10-x86*
*ccl-1.10-x86-64*
*ccl-1.11-x86*
*ccl-1.11-x86-64*
*sbcl*
*ecl-bytecode*
*ecl-lisp-to-c*))
;; create agent instance
(defparameter *agent*
(test-grid-agent:make-agent
:lisps (or (mapcar #'symbol-value *command-line-lisps*)
*all-lisps*)
...))
There are probably better ways to do it... and this doesn't take into account the mutual-exclusion locking that you do... and it might not play well with any historical stuff you do if you expect the list of lisps to be consistent from run-to-run. But, it lets me pick which implementations to test without having to edit any of the files.
Hi, thanks for sharing your example.
I often need to change the lisps too. But a way to run a subset of lisps is provided, in the sense that the main entry points of c-test-grid agent are tg-agent:make-agent
and tg-agent:main
. And they accept parameters (in particular the lisps we want to run are passed as parameter to tg-agent:make-agent
)
The run-agent.sample.lisp and run-agent.sh.sample files are just examples of how to pass parameters to the main entry points; in other words these are just config file samples.
I mean, when I need to change the lisps to run, I just edit run-agent.lisp, and comment out unnecessary lisps. The same way I do other configuration choices.
So, I am closing this issue. I won't commit this feature to the run-agent.lisp, to avoid complicating it.
Thanks for you example.