Mercurial > hg > xemacs-beta
changeset 2818:9fa10603c898
[xemacs-hg @ 2005-06-19 20:49:43 by aidan]
Pure storage is long gone.
author | aidan |
---|---|
date | Sun, 19 Jun 2005 20:49:47 +0000 |
parents | 9244a70250d8 |
children | 18bd0414af22 |
files | man/ChangeLog man/lispref/building.texi man/lispref/lispref.texi man/lispref/mule.texi |
diffstat | 4 files changed, 47 insertions(+), 91 deletions(-) [+] |
line wrap: on
line diff
--- a/man/ChangeLog Sat Jun 18 21:51:07 2005 +0000 +++ b/man/ChangeLog Sun Jun 19 20:49:47 2005 +0000 @@ -1,3 +1,12 @@ +2005-06-19 Aidan Kehoe <kehoea@parhasard.net> + + * lispref/building.texi (Building XEmacs and Object Allocation): + Pure storage has been gone for half a decade or more. + * lispref/mule.texi (Internationalization Terminology): + Phrase stuff a little more clearly, compare Mule with Unicode. + * lispref/lispref.texi (Top): + Take out info on pure storage. + 2005-05-28 Stephen J. Turnbull <stephen@xemacs.org> * XEmacs 21.5.21 "corn" is released.
--- a/man/lispref/building.texi Sat Jun 18 21:51:07 2005 +0000 +++ b/man/lispref/building.texi Sun Jun 19 20:49:47 2005 +0000 @@ -17,7 +17,6 @@ @menu * Building XEmacs:: How to preload Lisp libraries into XEmacs. -* Pure Storage:: A kludge to make preloaded Lisp functions sharable. * Garbage Collection:: Reclaiming space for Lisp objects no longer used. @end menu @@ -34,9 +33,8 @@ The @cite{XEmacs Internals Manual} contains more information about this. Compilation of the C source files in the @file{src} directory -produces an executable file called @file{temacs}, also called a -@dfn{bare impure XEmacs}. It contains the XEmacs Lisp interpreter and I/O -routines, but not the editing commands. +produces an executable file called @file{temacs}. It contains the +XEmacs Lisp interpreter and I/O routines, but not the editing commands. @cindex @file{loadup.el} Before XEmacs is actually usable, a number of Lisp files need to be @@ -80,17 +78,12 @@ out of luck unless you're able to bootstrap @file{xemacs} from @file{temacs}. Note that @samp{make all-elc} actually loads the alternative loadup file @file{loadup-el.el}, which works like -@file{loadup.el} but disables the pure-copying process and forces -XEmacs to ignore any compiled Lisp files even if they exist.) +@file{loadup.el} but forces XEmacs to ignore any compiled Lisp files +even if they exist.) @cindex @file{site-load.el} You can specify additional files to preload by writing a library named -@file{site-load.el} that loads them. You may need to increase the value -of @code{PURESIZE}, in @file{src/puresize.h}, to make room for the -additional files. You should @emph{not} modify this file directly, -however; instead, use the @samp{--puresize} configuration option. (If -you run out of pure space while dumping @file{xemacs}, you will be told -how much pure space you actually will need.) However, the advantage of +@file{site-load.el} that loads them. However, the advantage of preloading additional files decreases as machines get faster. On modern machines, it is often not advisable, especially if the Lisp code is on a file system local to the machine running XEmacs. @@ -178,61 +171,6 @@ 20.1, the value is 1. @end defvar -@node Pure Storage -@appendixsec Pure Storage -@cindex pure storage - - XEmacs Lisp uses two kinds of storage for user-created Lisp objects: -@dfn{normal storage} and @dfn{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 @file{temacs} is loading the -standard preloaded Lisp libraries. In the file @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, @file{temacs} aborts with an error message. If that happens, -you must increase the compilation parameter @code{PURESIZE} using the -@samp{--puresize} option to @file{configure}. This normally won't -happen unless you try to preload additional libraries or add features to -the standard ones. - -@defun purecopy object -This function makes a copy of @var{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 in XEmacs, and its use is deprecated. -@end defun - -@defvar pure-bytes-used -The value of this variable is the number of bytes of pure storage -allocated so far. Typically, in a dumped XEmacs, this number is very -close to the total amount of pure storage available---if it were not, -we would preallocate less. -@end defvar - -@defvar purify-flag -This variable determines whether @code{defun} should make a copy of the -function definition in pure storage. If it is non-@code{nil}, then the -function definition is copied into pure storage. - -This flag is @code{t} while loading all of the basic functions for -building XEmacs initially (allowing those functions to be sharable and -non-collectible). Dumping XEmacs as an executable always writes -@code{nil} in this variable, regardless of the value it actually has -before and after dumping. - -You should not change this flag in a running XEmacs. -@end defvar - @node Garbage Collection @appendixsec Garbage Collection @cindex garbage collector
--- a/man/lispref/lispref.texi Sat Jun 18 21:51:07 2005 +0000 +++ b/man/lispref/lispref.texi Sun Jun 19 20:49:47 2005 +0000 @@ -1199,7 +1199,6 @@ Building XEmacs and Object Allocation * Building XEmacs:: How to preload Lisp libraries into XEmacs. -* Pure Storage:: A kludge to make preloaded Lisp functions sharable. * Garbage Collection:: Reclaiming space for Lisp objects no longer used. @end menu
--- a/man/lispref/mule.texi Sat Jun 18 21:51:07 2005 +0000 +++ b/man/lispref/mule.texi Sun Jun 19 20:49:47 2005 +0000 @@ -141,29 +141,39 @@ An @dfn{encoding} is a way of numerically representing characters from one or more character sets into a stream of like-sized numerical values called @dfn{words} -- typically 8-bit bytes, but sometimes 16-bit or -32-bit quantities. It's very important to clearly distinguish between -charsets and encodings. For a simple charset like ASCII, there is only -one encoding normally used -- each character is represented by a single -byte, with the same value as its code point. For more complicated -charsets, however, or when a single encoding needs to represent more -than charset, things are not so obvious. Unicode version 2, for -example, is a large charset with thousands of characters, each indexed -by a 16-bit number, often represented in hex, e.g. 0x05D0 for the Hebrew -letter "aleph". One obvious encoding (actually two encodings, depending -on which of the two possible byte orderings is chosen) simply uses two -bytes per character. This encoding is convenient for internal -processing of Unicode text; however, it's incompatible with ASCII, and -thus external text (files, e-mail, etc.) that is encoded this way is -completely uninterpretable by programs lacking Unicode support. For -this reason, a different, ASCII-compatible encoding, e.g. UTF-8, is -usually used for external text. UTF-8 represents Unicode characters -with one to three bytes (often extended to six bytes to handle -characters with up to 31-bit indices). Unicode characters 00 to 7F -(identical with ASCII) are directly represented with one byte, and other -characters with two or more bytes, each in the range 80 to FF. -Applications that don't understand Unicode will still be able to process -ASCII characters represented in UTF-8-encoded text, and will typically -ignore (and hopefully preserve) the high-bit characters. +32-bit quantities. In a context where dealing with Japanese motivates +much of XEmacs' design in this area, it's important to clearly +distinguish between charsets and encodings. For a simple charset like +ASCII, there is only one encoding normally used -- each character is +represented by a single byte, with the same value as its code point. +For more complicated charsets, however, or when a single encoding needs +to represent more than charset, things are not so obvious. Unicode +version 2, for example, is a large charset with thousands of characters, +each indexed by a 16-bit number, often represented in hex, e.g. 0x05D0 +for the Hebrew letter "aleph". One obvious encoding (actually two +encodings, depending on which of the two possible byte orderings is +chosen) simply uses two bytes per character. This encoding is +convenient for internal processing of Unicode text; however, it's +incompatible with ASCII, and thus external text (files, e-mail, etc.) +that is encoded this way is completely uninterpretable by programs +lacking Unicode support. For this reason, a different, ASCII-compatible +encoding, e.g. UTF-8, is usually used for external text. UTF-8 +represents Unicode characters with one to three bytes (often extended to +six bytes to handle characters with up to 31-bit indices). Unicode +characters 00 to 7F (identical with ASCII) are directly represented with +one byte, and other characters with two or more bytes, each in the range +80 to FF. Applications that don't understand Unicode will still be able +to process ASCII characters represented in UTF-8-encoded text, and will +typically ignore (and hopefully preserve) the high-bit characters. + +Similarly, Shift-JIS and EUC-JP are different encodings normally used to +encode the same character set(s), these character sets being subsets of +Unicode. However, the obvious approach of unifying XEmacs' internal +encoding across character sets, as was part of the motivation behind +Unicode, wasn't taken. This means that characters in these character +sets that are identical to characters in other character sets---for +example, the Greek alphabet is in the large Japanese character sets and +at least one European character set--are unfortunately disjoint. Naive use of code points is also not possible if more than one character set is to be used in the encoding. For example, printed