|--==> "SJ" == Simon Josefsson <jas(a)extundo.com> writes:
SJ> "Stephen J. Turnbull" <stephen(a)xemacs.org> writes:
>purecopy'ing a defcustom value seems weird (although recent
XEmacsen
>don't have an effective purecopy anyway, because of pdump-related
>changes).
SJ> I did not understand why purecopy was used, but it seemed to work.
SJ> Should it be removed?
The way I understand it, purecopy was only to be used for things that
get dumped with xemacs.
,----[ (Info-goto-node "(lispref)Pure Storage") ]
| Pure Storage
| ============
|
| XEmacs Lisp uses two kinds of storage for user-created Lisp objects:
| "normal storage" and "pure storage". Normal storage is where all
the
| new data created during an XEmacs session is kept; see the following
| section for information on normal storage. Pure storage is used for
| certain data in the preloaded standard Lisp files--data that should
| never change during actual use of XEmacs.
|
| Pure storage is allocated only while `temacs' is loading the
| standard preloaded Lisp libraries. In the file `xemacs', it is marked
| as read-only (on operating systems that permit this), so that the
| memory space can be shared by all the XEmacs jobs running on the machine
| at once. Pure storage is not expandable; a fixed amount is allocated
| when XEmacs is compiled, and if that is not sufficient for the preloaded
| libraries, `temacs' aborts with an error message. If that happens, you
| must increase the compilation parameter `PURESIZE' using the
| `--puresize' option to `configure'. This normally won't happen unless
| you try to preload additional libraries or add features to the standard
| ones.
|
| - Function: purecopy object
| This function makes a copy of OBJECT in pure storage and returns
| it. It copies strings by simply making a new string with the same
| characters in pure storage. It recursively copies the contents of
| vectors and cons cells. It does not make copies of other objects
| such as symbols, but just returns them unchanged. It signals an
| error if asked to copy markers.
|
| This function is a no-op except while XEmacs is being built and
| dumped; it is usually called only in the file
| `xemacs/lisp/prim/loaddefs.el', but a few packages call it just in
| case you decide to preload them.
`----
Looking at that, I'd say yes you should remove _all_ the 'purecopy's
from mail-extr.el, but _especially_ from the defcustoms.
--
|---<Steve Youngs>---------------<GnuPG KeyID: 10D5C9C5>---|
| XEmacs - It's not just an editor. |
| It's a way of life. |
|------------------------------------<youngs(a)xemacs.org>---|