aboutsummaryrefslogtreecommitdiffstats
path: root/src/eval.c
diff options
context:
space:
mode:
authorPip Cet2021-05-16 15:44:26 +0200
committerStefan Monnier2022-07-01 18:59:35 -0400
commitb6a526361b57f8d9f6d5078ccd97832d0a1fb036 (patch)
tree0c752a1c74920a2b731bb2e3c2ff6623be240a72 /src/eval.c
parent3daf833ff3f3e99b44731808cb197c0912649997 (diff)
downloademacs-scratch/no-purespace-old.tar.gz
emacs-scratch/no-purespace-old.zip
Remove purespace and ancillary codescratch/no-purespace-old
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`.
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c12
1 files changed, 1 insertions, 11 deletions
diff --git a/src/eval.c b/src/eval.c
index 141d2546f08..93cd02b023a 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -748,8 +748,6 @@ value. */)
748 XSYMBOL (symbol)->u.s.declared_special = true; 748 XSYMBOL (symbol)->u.s.declared_special = true;
749 if (!NILP (doc)) 749 if (!NILP (doc))
750 { 750 {
751 if (!NILP (Vpurify_flag))
752 doc = Fpurecopy (doc);
753 Fput (symbol, Qvariable_documentation, doc); 751 Fput (symbol, Qvariable_documentation, doc);
754 } 752 }
755 LOADHIST_ATTACH (symbol); 753 LOADHIST_ATTACH (symbol);
@@ -892,8 +890,6 @@ More specifically, behaves like (defconst SYM 'INITVALUE DOCSTRING). */)
892 CHECK_SYMBOL (sym); 890 CHECK_SYMBOL (sym);
893 Lisp_Object tem = initvalue; 891 Lisp_Object tem = initvalue;
894 Finternal__define_uninitialized_variable (sym, docstring); 892 Finternal__define_uninitialized_variable (sym, docstring);
895 if (!NILP (Vpurify_flag))
896 tem = Fpurecopy (tem);
897 Fset_default (sym, tem); /* FIXME: set-default-toplevel-value? */ 893 Fset_default (sym, tem); /* FIXME: set-default-toplevel-value? */
898 Fput (sym, Qrisky_local_variable, Qt); /* FIXME: Why? */ 894 Fput (sym, Qrisky_local_variable, Qt); /* FIXME: Why? */
899 return sym; 895 return sym;
@@ -2195,12 +2191,6 @@ this does nothing and returns nil. */)
2195 && !AUTOLOADP (XSYMBOL (function)->u.s.function)) 2191 && !AUTOLOADP (XSYMBOL (function)->u.s.function))
2196 return Qnil; 2192 return Qnil;
2197 2193
2198 if (!NILP (Vpurify_flag) && BASE_EQ (docstring, make_fixnum (0)))
2199 /* `read1' in lread.c has found the docstring starting with "\
2200 and assumed the docstring will be provided by Snarf-documentation, so it
2201 passed us 0 instead. But that leads to accidental sharing in purecopy's
2202 hash-consing, so we use a (hopefully) unique integer instead. */
2203 docstring = make_ufixnum (XHASH (function));
2204 return Fdefalias (function, 2194 return Fdefalias (function,
2205 list5 (Qautoload, file, docstring, interactive, type), 2195 list5 (Qautoload, file, docstring, interactive, type),
2206 Qnil); 2196 Qnil);
@@ -4360,7 +4350,7 @@ alist of active lexical bindings. */);
4360 also use something like Fcons (Qnil, Qnil), but json.c treats any 4350 also use something like Fcons (Qnil, Qnil), but json.c treats any
4361 cons cell as error data, so use an uninterned symbol instead. */ 4351 cons cell as error data, so use an uninterned symbol instead. */
4362 Qcatch_all_memory_full 4352 Qcatch_all_memory_full
4363 = Fmake_symbol (build_pure_c_string ("catch-all-memory-full")); 4353 = Fmake_symbol (build_string ("catch-all-memory-full"));
4364 4354
4365 defsubr (&Sor); 4355 defsubr (&Sor);
4366 defsubr (&Sand); 4356 defsubr (&Sand);