]> git.eshelyaron.com Git - emacs.git/commit
Remove purespace and ancillary code scratch/no-purespace scratch/no-purespace-old
authorPip Cet <pipcet@gmail.com>
Sun, 16 May 2021 13:44:26 +0000 (15:44 +0200)
committerStefan Monnier <monnier@iro.umontreal.ca>
Fri, 1 Jul 2022 22:59:35 +0000 (18:59 -0400)
commitb6a526361b57f8d9f6d5078ccd97832d0a1fb036
tree0c752a1c74920a2b731bb2e3c2ff6623be240a72
parent3daf833ff3f3e99b44731808cb197c0912649997
Remove purespace and ancillary code

Now that purespace is not used any more, remove it, along with the functions
used to allocate into it.  Use equivalent functions allocating into the
normal heap.
Remove calls to PURE_P since they always return false.

* src/puresize.h: Delete file.

* src/alloc.c: Don't include `puresize.h` any more.
(pure, purebeg, pure_size, pure_bytes_used_before_overflow)
(pure_bytes_used_lisp, pure_bytes_used_non_lisp, symbol_block_pinned)
(pinned_objects): Delete vars.
(PUREBEG): Delete macro.
(pointer_align): Move after definition of USE_ALIGNED_ALLOC and only
define it if USE_ALIGNED_ALLOC is not used.
(cons_listn): Remove `cons` arg, hardcode `Fcons` instead.
(pure_listn, pure_alloc, check_pure_size, make_pure_string)
(make_pure_c_string, pure_cons): Delete functions.
(init_symbol): Don't set `pinned` any more.
(mark_pinned_objects, mark_pinned_symbols): Delete functions.
(garbage_collect): Don't call them any more.
(init_alloc_once_for_pdumper): Don't initialize purebeg and pure_size.

* src/print.c (print_object) <PVEC_HASH_TABLE>: Don't print `purecopy`.

* src/pdumper.c (dump_symbol, dump_hash_table): Update sig hash.
(dump_symbol): Don't dump `pinned`.
(dump_hash_table): Don't dump `purecopy`.

* src/lread.c (readevalloop, read_internal_start): Adjust call to
`make_hash_table`.
(read0, intern_c_string_1, define_symbol, Fintern): Don't purify
symbol names.
(string): Avoid `pure_cons` and `build_pure_c_string`.

* src/lisp.h (struct Lisp_Symbol): Remove `pinned` field.
(struct Lisp_Hash_Table): Remove `purecopy` field.
(check_pure_size, pure_listn, pure_list, make_pure_string)
(make_pure_c_string, pure_cons): Remove prototypes.
(build_pure_c_string): Delete function.

* src/keymap.c: Don't include `puresize.h` any more.
(Fmake_sparse_keymap): Don't purecopy the menu name.
(Fset_keymap_parent, store_in_keymap): Don't `CHECK_IMPURE` any more.
(syms_of_keymap): Avoid `pure_cons` and `build_pure_c_string`.

* src/intervals.c: Don't include `puresize.h` any more.
(create_root_interval): Don't `CHECK_IMPURE` any more.

* src/fns.c: Don't include `puresize.h` any more.
(Ffillarray, Fclear_string): Don't `CHECK_IMPURE` any more.
(make_hash_table): Remove `purecopy` arg.
(Fmake_hash_table): Remove `:purecopy` keyword argument.

* src/eval.c (Finternal__define_uninitialized_variable): Don't purecopy
the doc any more.
(Fdefconst_1): Don't purecopy the initvalue any more.
(Fautoload): Get rid of hack needed when we used hash-consing.
(syms_of_eval): Avoid `build_pure_c_string`.

* src/emacs.c: Don't include `puresize.h` any more.
(Fdump_emacs): Don't `check_pure_size`.

* src/doc.c (Fsnarf_documentation): Don't purecopy the build files.

* src/deps.mk: Remove puresize.h.

* src/data.c: Don't include `puresize.h` any more.
(pure_write_error): Delete function.
(Fsetcar, Fsetcdr): Don't `CHECK_IMPURE` any more.
(Fdefalias): Don't purecopy the definition any more.
(Faset): Don't `CHECK_IMPURE` any more.
(syms_of_data): Avoid `pure_cons` and `build_pure_c_string`.

* src/conf_post.h (SYSTEM_PURESIZE_EXTRA): Delete macro.

* src/comp.c: Don't include `puresize.h` any more.
(helper_link_table): Remove `pure_write_error`.
(define_CHECK_IMPURE): Delete function.
(maybe_defer_native_compilation, syms_of_comp):
Avoid `build_pure_c_string`.

* src/category.c (hash_get_category_set): Update call to `make_hash_table`.
(Fdefine_category): Don't purecopy the docstring any more.

* src/bytecode.c: Don't include `puresize.h` any more.
(Bsetcar, Bsetcdr): Don't `CHECK_IMPURE` any more.

* doc/lispref/internals.texi (Pure Storage): Delete section.
(Garbage Collection): Remove note about purespace overflow.

* src/xfaces.c (syms_of_xfaces):
* src/emacs-module.c (syms_of_module):
* src/frame.c (make_frame, make_initial_frame):
* src/fileio.c (syms_of_fileio):
* src/image.c (xpm_make_color_table_h):
* src/process.c (ADD_SUBFEATURE, syms_of_process):
* src/profiler.c (make_log):
* src/json.c (define_error):
* src/xterm.c (syms_of_xterm):
* src/xfns.c (syms_of_xfns):
* src/xdisp.c (syms_of_xdisp):
* src/w32fns.c (syms_of_w32fns):
* src/syntax.c (syms_of_syntax):
* src/sqlite.c (syms_of_sqlite):
* src/search.c (syms_of_search):
* src/keyboard.c (syms_of_keyboard):
* src/fontset.c (syms_of_fontset):
* src/dbusbind.c (syms_of_dbusbind):
* src/coding.c (syms_of_coding):
* src/callint.c (syms_of_callint):
* src/buffer.c (init_buffer_once, syms_of_buffer):
Avoid `build_pure_c_string`, `Fpurecopy`, `pure_cons`, and `pure_list`,
and adjust calls to `make_hash_table`.
42 files changed:
doc/lispref/elisp.texi
doc/lispref/internals.texi
doc/lispref/symbols.texi
src/alloc.c
src/buffer.c
src/bytecode.c
src/callint.c
src/category.c
src/coding.c
src/comp.c
src/conf_post.h
src/data.c
src/dbusbind.c
src/deps.mk
src/doc.c
src/emacs-module.c
src/emacs.c
src/eval.c
src/fileio.c
src/fns.c
src/fontset.c
src/frame.c
src/image.c
src/intervals.c
src/json.c
src/keyboard.c
src/keymap.c
src/lisp.h
src/lread.c
src/pdumper.c
src/print.c
src/process.c
src/profiler.c
src/puresize.h [deleted file]
src/search.c
src/sqlite.c
src/syntax.c
src/w32fns.c
src/xdisp.c
src/xfaces.c
src/xfns.c
src/xterm.c