[comp.lang.lisp] System-Building utility in VAXLISP. READ-ONLY DATA

gjc@paradigm.com (12/14/90)

In article <1926@enuxha.eas.asu.edu>, sengupta@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