aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorPaul Eggert2019-07-23 09:19:09 -0700
committerPaul Eggert2019-07-23 09:23:20 -0700
commit8dd5b6ea56c38669bc98104ee2d6b31496624d28 (patch)
tree3c0f5d0259478f97052fd21585cb24d5d105437c /doc
parent29a7d73d195761e8309a4fe23872888758436d1e (diff)
downloademacs-8dd5b6ea56c38669bc98104ee2d6b31496624d28.tar.gz
emacs-8dd5b6ea56c38669bc98104ee2d6b31496624d28.zip
Improve pdumper doc; say unexec is deprecated
Say that pdumping cannot redump unless -batch is used. Say that the traditional unexec dumping method is by default not available, and is deprecated. Don't call dump files "portable", as dump files are not any more portable than the Emacs executables themselves. Just call them "dump files". Similar, prefer "portable dumper" (since the dumper code is portable) to "portable dumping" (since the dump file is not). Be more systematic about calling them "dump files" instead of "dumped images" or whatnot.
Diffstat (limited to 'doc')
-rw-r--r--doc/lispref/internals.texi34
1 files changed, 20 insertions, 14 deletions
diff --git a/doc/lispref/internals.texi b/doc/lispref/internals.texi
index 72066d34f44..f85c266edef 100644
--- a/doc/lispref/internals.texi
+++ b/doc/lispref/internals.texi
@@ -61,10 +61,10 @@ can be one of the following:
61 61
62@table @samp 62@table @samp
63@item pdump 63@item pdump
64@cindex portable dump file 64@cindex dump file
65Record the preloaded Lisp data in a @dfn{portable dump} file. This 65Record the preloaded Lisp data in a @dfn{dump file}. This
66method produces an additional data file which Emacs will load at 66method produces an additional data file which Emacs will load at
67startup. The portable dump file is usually called @file{emacs.pdmp}, 67startup. The produced dump file is usually called @file{emacs.pdmp},
68and is installed in the Emacs @code{exec-directory} (@pxref{Help 68and is installed in the Emacs @code{exec-directory} (@pxref{Help
69Functions}). This method is the most preferred one, as it does not 69Functions}). This method is the most preferred one, as it does not
70require Emacs to employ any special techniques of memory allocation, 70require Emacs to employ any special techniques of memory allocation,
@@ -75,7 +75,7 @@ modern systems to enhance security and privacy.
75@cindex bootstrapping Emacs 75@cindex bootstrapping Emacs
76Like @samp{pdump}, but used while @dfn{bootstrapping} Emacs, when no 76Like @samp{pdump}, but used while @dfn{bootstrapping} Emacs, when no
77previous Emacs binary and no @file{*.elc} byte-compiled Lisp files are 77previous Emacs binary and no @file{*.elc} byte-compiled Lisp files are
78available. The produced portable dump file is usually named 78available. The produced dump file is usually named
79@file{bootstrap-emacs.pdmp} in this case. 79@file{bootstrap-emacs.pdmp} in this case.
80 80
81@item dump 81@item dump
@@ -88,6 +88,8 @@ terminal, so that the tables of terminal information are empty in the
88dumped Emacs.) This method is also known as @dfn{unexec}, because it 88dumped Emacs.) This method is also known as @dfn{unexec}, because it
89produces a program file from a running process, and thus is in some 89produces a program file from a running process, and thus is in some
90sense the opposite of executing a program to start a process. 90sense the opposite of executing a program to start a process.
91Although this method was the way that Emacs traditionally saved its
92state, it is now deprecated.
91 93
92@item bootstrap 94@item bootstrap
93Like @samp{dump}, but used when bootstrapping Emacs with the 95Like @samp{dump}, but used when bootstrapping Emacs with the
@@ -97,11 +99,11 @@ Like @samp{dump}, but used when bootstrapping Emacs with the
97@cindex preloaded Lisp files 99@cindex preloaded Lisp files
98@vindex preloaded-file-list 100@vindex preloaded-file-list
99 The dumped @file{emacs} executable (also called a @dfn{pure} Emacs) 101 The dumped @file{emacs} executable (also called a @dfn{pure} Emacs)
100is the one which is installed. If the portable dumping was used to 102is the one which is installed. If the portable dumper was used to
101build Emacs, the @file{emacs} executable is actually an exact copy of 103build Emacs, the @file{emacs} executable is actually an exact copy of
102@file{temacs}, and the corresponding @file{emacs.pdmp} file is 104@file{temacs}, and the corresponding @file{emacs.pdmp} file is
103installed as well. The variable @code{preloaded-file-list} stores a 105installed as well. The variable @code{preloaded-file-list} stores a
104list of the preloaded Lisp files recorded in the portable dump file or 106list of the preloaded Lisp files recorded in the dump file or
105in the dumped Emacs executable. If you port Emacs to a new operating 107in the dumped Emacs executable. If you port Emacs to a new operating
106system, and are not able to implement dumping of any kind, then Emacs 108system, and are not able to implement dumping of any kind, then Emacs
107must load @file{loadup.el} each time it starts. 109must load @file{loadup.el} each time it starts.
@@ -201,15 +203,19 @@ In the unlikely event that you need a more general functionality than
201@code{before-init-hook} (@pxref{Startup Summary}). 203@code{before-init-hook} (@pxref{Startup Summary}).
202 204
203@defun dump-emacs-portable to-file &optional track-referrers 205@defun dump-emacs-portable to-file &optional track-referrers
204This function dumps the current state of Emacs into a portable dump 206This function dumps the current state of Emacs into a dump
205file @var{to-file}, using the @code{pdump} method. Normally, the 207file @var{to-file}, using the @code{pdump} method. Normally, the
206portable dump file is called @file{@var{emacs-name}.dmp}, where 208dump file is called @file{@var{emacs-name}.dmp}, where
207@var{emacs-name} is the name of the Emacs executable file. The 209@var{emacs-name} is the name of the Emacs executable file. The
208optional argument @var{track-referrers}, if non-@code{nil}, causes the 210optional argument @var{track-referrers}, if non-@code{nil}, causes the
209portable dumping process keep additional information to help track 211portable dumper to keep additional information to help track
210down the provenance of object types that are not yet supported by the 212down the provenance of object types that are not yet supported by the
211@code{pdump} method. 213@code{pdump} method.
212 214
215Although the portable dumper code can run on many platforms, the dump
216files that it produces are not portable---they can be loaded only by
217the Emacs executable that dumped them.
218
213If you want to use this function in an Emacs that was already dumped, 219If you want to use this function in an Emacs that was already dumped,
214you must run Emacs with the @samp{-batch} option. 220you must run Emacs with the @samp{-batch} option.
215@end defun 221@end defun
@@ -220,20 +226,20 @@ This function dumps the current state of Emacs into an executable file
220@var{to-file}, using the @code{unexec} method. It takes symbols from 226@var{to-file}, using the @code{unexec} method. It takes symbols from
221@var{from-file} (this is normally the executable file @file{temacs}). 227@var{from-file} (this is normally the executable file @file{temacs}).
222 228
223This function cannot be used in an Emacs that was already dumped. If 229This function cannot be used in an Emacs that was already dumped.
224Emacs was built without @code{unexec} support, this function will not 230This function is deprecated, and by default Emacs is built without
225be available. 231@code{unexec} support so this function is not available.
226@end defun 232@end defun
227 233
228@defun pdumper-stats 234@defun pdumper-stats
229If the current Emacs session restored its state from a portable dump 235If the current Emacs session restored its state from a dump
230file, this function returns information about the dump file and the 236file, this function returns information about the dump file and the
231time it took to restore the Emacs state. The value is an alist 237time it took to restore the Emacs state. The value is an alist
232@w{@code{((dumped-with-pdumper . t) (load-time . @var{time}) 238@w{@code{((dumped-with-pdumper . t) (load-time . @var{time})
233(dump-file-name . @var{file}))}}, 239(dump-file-name . @var{file}))}},
234where @var{file} is the name of the dump file, and @var{time} is the 240where @var{file} is the name of the dump file, and @var{time} is the
235time in seconds it took to restore the state from the dump file. 241time in seconds it took to restore the state from the dump file.
236If the current session was not restored from a portable dump file, the 242If the current session was not restored from a dump file, the
237value is nil. 243value is nil.
238@end defun 244@end defun
239 245