[comp.emacs] can someone please explain the concept of "purification" in gnuemacs

mayer@hplabsz.HPL.HP.COM (Niels Mayer) (12/25/87)

I've been playing around with putting some of the commonly loaded files in
gnuemacs into .../lisp/site-load.el and .../lisp/site-init.el, and at some
point had gnuemacs croak upon dumping. After some headscratching and
randomizing, I decided to up PURESIZE in config.h and recompile.

Now that it works, I want to know why:

1) What does PURESIZE represent? How does one determine a good value for
PURESIZE? 

2) What do "purify", "pure object", "sharable Lisp data", and "pure
storage"  mean?

Thanks for any help you can provide. Get as technical as is necessary.


PS: A Gnuemacs christmas wish list: ("What if...")
  * a RELEASED multiwindow(X) gnuemacs
  * support for proportional fonts under Xwindows (can you say wysiemacs?)
  * capability for prologish inferencing in gnuemacs lisp (i.e. implement
    the inference engine in C and make it callable from gnulisp.

-------------------------------------------------------------------------------
	    Niels Mayer -- hplabs!mayer -- mayer@hplabs.hp.com
		       Hewlett-Packard Laboratories
			      Palo Alto, CA.
				   *

lewis@rocky.STANFORD.EDU (Bil Lewis) (12/31/87)

Posting-Front-End: GNU Emacs 18.36.1 of Fri Feb  6 1987 on rocky (berkeley-unix)



Niels,
  I believe that pure storage is nothing more than non-collectable
lisp space, intended for code and constants that will never change.
This allows the GC to work more swiftly & not waste time trying to
compact stuff that doesn't need compaction.

... AH!  If you're trying to put more stuff into pure space then there
is pure space to handle it, you will lose.  (try calling (purecopy '(x))
a bunch of times -- you'll run out of pure storage).  This is probably
what you're seeing.

  The value of PURESIZE should be just enough to contain everything
you wish to keep in purestorage & no more.  You do not normally put
anything into pure storage after dumping EMACS.

  Clear?

-Bil

--