Trouble with simple application delivery example
Hello,I'm having trouble getting a very simple application to work at delivery level 2 and above. It works fine with 0 and 1. The delivery image gets created but I get a runtime error, see below. There must be something obviously wrong with what I'm doing, maybe somebody can help. Here's the code:
--------------------------------
;;;; deliver-example.lisp
(defpackage deliver-example (:use common-lisp))
(in-package :deliver-example)
(defparameter *option* nil)
(defun main ()
(setf *option* "hello world!~%")
(format t *option*))
---------------------------------
;;;; deliver.lisp
(lispworks:load-all-patches)
(load #P"deliver-example.lisp")
(lispworks:deliver #'deliver-example::main #P"deliver-example"
2)
(quit)
---------------------------------
I create the image like so:
$ /usr/local/lib/LispWorks/lispworks-5-0-0-x86-linux -build deliver.lisp
.... lots of verbose information...
Shaking stage : Saving image
Build saving image: deliver-example
Build saved image: /home/anthony/work/svn/code/LoaderHack/Server/deliver-example/deliver-example
Delivery successful - deliver-example
---------------------------------
Here's the error I'm getting:
$ ./deliver-example
Error: Undefined operator SETF in form (SETF DELIVER-EXAMPLE::*OPTION* "hello world!~%").
1 (continue) Try invoking SETF again.
2 Return some values from the form (SETF DELIVER-EXAMPLE::*OPTION* "hello world!~%").
3 Try invoking something other than SETF with the same arguments.
4 Set the symbol-function of SETF to another function.
5 Set the macro-function of SETF to another function.
Type :b for backtrace, :c <option number> to proceed, or :? for other options
CL-USER 1 : 1 >
It seems SETF was removed from the delivered image? SETF is a macro, so why would it be needed at runtime?
I can include the delivery log if needed, but it is quite long. I'm using lispworks 5.0.2 on Ubuntu Edgy.
Any help would be appreciated. Thanks!
Anthony