[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
scratch/no-purespace e1e101c6c10 08/41: Pure storage removal: Remove sup
From: |
Stefan Kangas |
Subject: |
scratch/no-purespace e1e101c6c10 08/41: Pure storage removal: Remove support for pinned objects |
Date: |
Thu, 12 Dec 2024 16:57:30 -0500 (EST) |
branch: scratch/no-purespace
commit e1e101c6c10b6e5110c2c47946d477a752828a78
Author: Pip Cet <pipcet@protonmail.com>
Commit: Stefan Kangas <stefankangas@gmail.com>
Pure storage removal: Remove support for pinned objects
* src/alloc.c (symbol_block_pinned): Remove variable.
(init_symbol): Don't initialize 'pinned flag'.
(pinned_objects): Remove variable.
(mark_pinned_objects, mark_pinned_symbols): Remove functions.
(garbage_collect): Don't call 'mark_pinned_objects',
'mark_pinned_symbols'.
* src/lisp.h (struct Lisp_Symbol): Remove 'pinned' flag.
* src/pdumper.c (dump_symbol): Remove 'pinned' flag from dump.
---
src/alloc.c | 47 -----------------------------------------------
src/lisp.h | 3 ---
src/pdumper.c | 1 -
3 files changed, 51 deletions(-)
diff --git a/src/alloc.c b/src/alloc.c
index ff491719547..ea142fb1076 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -3898,13 +3898,6 @@ struct symbol_block
static struct symbol_block *symbol_block;
static int symbol_block_index = SYMBOL_BLOCK_SIZE;
-/* Pointer to the first symbol_block that contains pinned symbols.
- Tests for 24.4 showed that at dump-time, Emacs contains about 15K symbols,
- 10K of which are pinned (and all but 250 of them are interned in obarray),
- whereas a "typical session" has in the order of 30K symbols.
- `symbol_block_pinned' lets mark_pinned_symbols scan only 15K symbols rather
- than 30K to find the 10K symbols we need to mark. */
-static struct symbol_block *symbol_block_pinned;
/* List of free symbols. */
@@ -3930,7 +3923,6 @@ init_symbol (Lisp_Object val, Lisp_Object name)
p->u.s.interned = SYMBOL_UNINTERNED;
p->u.s.trapped_write = SYMBOL_UNTRAPPED_WRITE;
p->u.s.declared_special = false;
- p->u.s.pinned = false;
}
DEFUN ("make-symbol", Fmake_symbol, Smake_symbol, 1, 1, 0,
@@ -5666,13 +5658,6 @@ Does not copy symbols. Copies strings without text
properties. */)
return purecopy (obj);
}
-/* Pinned objects are marked before every GC cycle. */
-static struct pinned_object
-{
- Lisp_Object object;
- struct pinned_object *next;
-} *pinned_objects;
-
static Lisp_Object
purecopy (Lisp_Object obj)
{
@@ -5882,13 +5867,6 @@ compact_undo_list (Lisp_Object list)
return list;
}
-static void
-mark_pinned_objects (void)
-{
- for (struct pinned_object *pobj = pinned_objects; pobj; pobj = pobj->next)
- mark_object (pobj->object);
-}
-
#if defined HAVE_ANDROID && !defined (__clang__)
/* The Android gcc is broken and needs the following version of
@@ -5912,29 +5890,6 @@ android_make_lisp_symbol (struct Lisp_Symbol *sym)
#endif
-static void
-mark_pinned_symbols (void)
-{
- struct symbol_block *sblk;
- int lim;
- struct Lisp_Symbol *sym, *end;
-
- if (symbol_block_pinned == symbol_block)
- lim = symbol_block_index;
- else
- lim = SYMBOL_BLOCK_SIZE;
-
- for (sblk = symbol_block_pinned; sblk; sblk = sblk->next)
- {
- sym = sblk->symbols, end = sym + lim;
- for (; sym < end; ++sym)
- if (sym->u.s.pinned)
- mark_object (make_lisp_symbol (sym));
-
- lim = SYMBOL_BLOCK_SIZE;
- }
-}
-
static void
visit_vectorlike_root (struct gc_root_visitor visitor,
struct Lisp_Vector *ptr,
@@ -6198,8 +6153,6 @@ garbage_collect (void)
struct gc_root_visitor visitor = { .visit = mark_object_root_visitor };
visit_static_gc_roots (visitor);
- mark_pinned_objects ();
- mark_pinned_symbols ();
mark_lread ();
mark_terminals ();
mark_kboards ();
diff --git a/src/lisp.h b/src/lisp.h
index 93469a5c63e..1370fe7e30f 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -797,9 +797,6 @@ struct Lisp_Symbol
special (with `defvar' etc), and shouldn't be lexically bound. */
bool_bf declared_special : 1;
- /* True if pointed to from purespace and hence can't be GC'd. */
- bool_bf pinned : 1;
-
/* The symbol's name, as a Lisp string. */
Lisp_Object name;
diff --git a/src/pdumper.c b/src/pdumper.c
index 1d45e37d67e..5a55dccf09f 100644
--- a/src/pdumper.c
+++ b/src/pdumper.c
@@ -2502,7 +2502,6 @@ dump_symbol (struct dump_context *ctx,
DUMP_FIELD_COPY (&out, symbol, u.s.trapped_write);
DUMP_FIELD_COPY (&out, symbol, u.s.interned);
DUMP_FIELD_COPY (&out, symbol, u.s.declared_special);
- DUMP_FIELD_COPY (&out, symbol, u.s.pinned);
dump_field_lv (ctx, &out, symbol, &symbol->u.s.name, WEIGHT_STRONG);
switch (symbol->u.s.redirect)
{
- branch scratch/no-purespace created (now 28dadb6f10a), Stefan Kangas, 2024/12/12
- scratch/no-purespace b2bc337a5f8 03/41: Unexec removal: Remove HYBRID_MALLOC support, Stefan Kangas, 2024/12/12
- scratch/no-purespace aab5a2fe4c4 04/41: Unexec removal: Adjust and simplify W32-specific code, Stefan Kangas, 2024/12/12
- scratch/no-purespace 15e2b14f037 02/41: Unexec removal: Main part, Stefan Kangas, 2024/12/12
- scratch/no-purespace d359858b5d0 05/41: Pure storage removal: Delete puresize.h, Stefan Kangas, 2024/12/12
- scratch/no-purespace 7ce34a3bcf5 01/41: Unexec removal: Remove obsolete files, Stefan Kangas, 2024/12/12
- scratch/no-purespace f84ccff5a62 06/41: Pure storage removal: Main part, Stefan Kangas, 2024/12/12
- scratch/no-purespace afd61deaaeb 09/41: Pure storage removal: Remove purecopy hash table flag, Stefan Kangas, 2024/12/12
- scratch/no-purespace 69fea4f29a1 10/41: Pure storage removal: Remove docstring hack, Stefan Kangas, 2024/12/12
- scratch/no-purespace e1e101c6c10 08/41: Pure storage removal: Remove support for pinned objects,
Stefan Kangas <=
- scratch/no-purespace 9a0728af9df 15/41: Don't recognize "bootstrap" option for --temacs, Stefan Kangas, 2024/12/12
- scratch/no-purespace 1c495735b4f 14/41: Pure storage removal: Documentation, Stefan Kangas, 2024/12/12
- scratch/no-purespace c9ab3258760 12/41: Pure storage removal: Remove documentation, Stefan Kangas, 2024/12/12
- scratch/no-purespace 5ec86966638 07/41: Pure storage removal: Replace calls to removed functions, Stefan Kangas, 2024/12/12
- scratch/no-purespace bd2b59f0733 11/41: Pure storage removal: Adjust nativecomp code, Stefan Kangas, 2024/12/12
- scratch/no-purespace 647f6aa4c06 13/41: Pure storage removal: Bump nativecomp ABI, Stefan Kangas, 2024/12/12
- scratch/no-purespace 1de87314c4c 19/41: Make bindings--define-key obsolete, Stefan Kangas, 2024/12/12
- scratch/no-purespace c951fd415cd 21/41: Avoid compiler warning in process_mark_stack, Stefan Kangas, 2024/12/12
- scratch/no-purespace 538a2428983 22/41: Remove purecopy calls from files.el, Stefan Kangas, 2024/12/12
- scratch/no-purespace d121953b971 24/41: Don't call purecopy in common-win.el, Stefan Kangas, 2024/12/12