From: Still Sane...Gupta
Subject: System-Building utility in VAXLISP.
Date: 
Message-ID: <1926@enuxha.eas.asu.edu>
I am trying to build a stand-alone lisp system and used the following VAXLISP
procedure:

;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
(defun sys_lisp()
  (define-lisp-system "PGMULES"
   :input-files '("globals" "if_new" "sm" "pg_general_new" "pg_clips"
                  "pg_handoff" "pg_planner_new" "pg_sarmaint" "pg_traffic" 
                  "starter" "vlsp22")
   :herald nil
   :main 'ops_main_menu
   :exclude '(:bitblt :clx :compile-file :compiler :debugger
              :decw-development-environment :decwindows :define-lisp-system
              :dwt :editor :orphan-symbols :uis :vms-debug :wsstream)))
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

The lisp routines in this system makes calls to C routines (stored in a shared 
image). As you can see I did not exclude the :callout code.

When I execute this new system, it starts off fine till it makes a call-out

 (call-out create_mbox1)
Error in SYSTEM::%SP-CALL-OUT: Attempt to modify read-only information.

Any ideas why this is happening?

I would really appreciate any suggestions from VAXLISP gurus.

Thank you for your time.

-Uttam
-------------------------------------------------------------------------------
Uttam Sengupta				Dept. of Computer Science & Engineering
(602) 965-2735					       Arizona State University
INTERNET : ········@enuxha.eas.asu.edu			        Tempe, AZ 85287 
From: ···@paradigm.com
Subject: Re: System-Building utility in VAXLISP. READ-ONLY DATA
Date: 
Message-ID: <2080@paradigm.com>
In article <····@enuxha.eas.asu.edu>, ········@enuxha.eas.asu.edu (Still Sane...Gupta) writes:
> ... a stand-alone lisp system ... VAXLISP
>
> When I execute this new system, it starts off fine till it makes a call-out
> Error in SYSTEM::%SP-CALL-OUT: Attempt to modify read-only information.

SP-CALL-OUT does allow you to modify data structures, especially
strings and arrays. It could be that these data structures are
copied into READ-ONLY areas by the procedure of building a stand-alone
lisp system. This is usually considered a feature. e.g.

(defun f ()
  (let ((a '(something)))
   (rplacd a 'bash)))

Depending on the lisp implementation you can get away with stuff like
the above, depending on the context (for example, in some implementations
it will pass the interpreter but will fail in compiled code).

It just so happens that in VAXLISP stuff like (f) will be caught when
you build a stand-alone system, due to quoted structures in compiled code
being copied to read-only areas.

-gjc