[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master a01a722: Update documentation of pure-space overflow
From: |
Eli Zaretskii |
Subject: |
master a01a722: Update documentation of pure-space overflow |
Date: |
Sat, 14 Dec 2019 13:03:27 -0500 (EST) |
branch: master
commit a01a7222829682962a229e26688a4d44829b6d5f
Author: Eli Zaretskii <address@hidden>
Commit: Eli Zaretskii <address@hidden>
Update documentation of pure-space overflow
* doc/lispref/internals.texi (Garbage Collection)
(Pure Storage):
* src/alloc.c (Fgarbage_collect): Update the documentation of
pure-space overflow for when pdumper is used. (Bug#38492)
---
doc/lispref/internals.texi | 25 ++++++++++++++++---------
src/alloc.c | 5 +++--
2 files changed, 19 insertions(+), 11 deletions(-)
diff --git a/doc/lispref/internals.texi b/doc/lispref/internals.texi
index eed9cb0..8c55f4e 100644
--- a/doc/lispref/internals.texi
+++ b/doc/lispref/internals.texi
@@ -261,12 +261,17 @@ the memory space can be shared by all the Emacs jobs
running on the
machine at once. Pure storage is not expandable; a fixed amount is
allocated when Emacs is compiled, and if that is not sufficient for
the preloaded libraries, @file{temacs} allocates dynamic memory for
-the part that didn't fit. The resulting image will work, but garbage
-collection (@pxref{Garbage Collection}) is disabled in this situation,
-causing a memory leak. Such an overflow normally won't happen unless
-you try to preload additional libraries or add features to the
-standard ones. Emacs will display a warning about the overflow when
-it starts. If this happens, you should increase the compilation
+the part that didn't fit. If Emacs will be dumped using the
+@code{pdump} method (@pxref{Building Emacs}), the pure-space overflow
+is of no special importance (it just means some of the preloaded stuff
+cannot be shared with other Emacs jobs). However, if Emacs will be
+dumped using the now obsolete @code{unexec} method, the resulting
+image will work, but garbage collection (@pxref{Garbage Collection})
+is disabled in this situation, causing a memory leak. Such an
+overflow normally won't happen unless you try to preload additional
+libraries or add features to the standard ones. Emacs will display a
+warning about the overflow when it starts, if it was dumped using
+@code{unexec}. If this happens, you should increase the compilation
parameter @code{SYSTEM_PURESIZE_EXTRA} in the file
@file{src/puresize.h} and rebuild Emacs.
@@ -510,9 +515,11 @@ Total heap size, in @var{unit-size} units.
Heap space which is not currently used, in @var{unit-size} units.
@end table
-If there was overflow in pure space (@pxref{Pure Storage}),
-@code{garbage-collect} returns @code{nil}, because a real garbage
-collection cannot be done.
+If there was overflow in pure space (@pxref{Pure Storage}), and Emacs
+was dumped using the (now obsolete) @code{unexec} method
+(@pxref{Building Emacs}), then @code{garbage-collect} returns
+@code{nil}, because a real garbage collection cannot be done in that
+case.
@end deffn
@defopt garbage-collection-messages
diff --git a/src/alloc.c b/src/alloc.c
index 9fbd0d0..6a17bed 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -6050,8 +6050,9 @@ where each entry has the form (NAME SIZE USED FREE),
where:
- FREE is the number of those objects that are not live but that Emacs
keeps around for future allocations (maybe because it does not know how
to return them to the OS).
-However, if there was overflow in pure space, `garbage-collect'
-returns nil, because real GC can't be done.
+However, if there was overflow in pure space, and Emacs was dumped
+using the 'unexec' method, `garbage-collect' returns nil, because
+real GC can't be done.
See Info node `(elisp)Garbage Collection'. */)
(void)
{
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master a01a722: Update documentation of pure-space overflow,
Eli Zaretskii <=