aboutsummaryrefslogtreecommitdiffstats
path: root/src/ChangeLog.13
diff options
context:
space:
mode:
Diffstat (limited to 'src/ChangeLog.13')
-rw-r--r--src/ChangeLog.1397
1 files changed, 97 insertions, 0 deletions
diff --git a/src/ChangeLog.13 b/src/ChangeLog.13
index d9736479a04..e63d0ac306f 100644
--- a/src/ChangeLog.13
+++ b/src/ChangeLog.13
@@ -1,3 +1,100 @@
12023-04-06 Po Lu <luangruo@yahoo.com>
2
3 * thread.c (unmark_main_thread): Clear new mark bit.
4
5 * sysdep.c (handle_sigsegv): Call alloc_fault.
6 (write_protect_fault): New signal hanler func.
7 (init_signals): Set it to the write protect symbol.
8
9 * pdumper.c (dump_root_visitor): New root type `GC_ROOT_IGNORED'.
10 Ignore it.
11 (Fdump_emacs_portable): Adjust call to `garbage_collect'.
12
13 * lread.c (define_symbol): Add sanity check.
14
15 * lisp.h (s): New GC root type.
16 (union vectorlike_header) [USE_INCREMENTAL_GC]: New fields for
17 extra flags.
18 (SCHARS):
19 (STRING_BYTES):
20 (STRING_SET_CHARS):
21 (ASIZE): Handle vectors and strings with mark bits set when
22 USE_INCREMENTAL_GC.
23 (maybe_quit): Check gc_ticks and return to GC after that long.
24 (enum gc_root_type): New GC root type.
25
26
27 * intervals.h (interval): New mark bit when USE_INCREMENTAL_GC.
28
29 * fns.c (maybe_resize_hash_table): Add more sanity checks.
30
31 * data.c (wrong_type_argument): Add sanity check.
32
33 * alloc.c [USE_INCREMENTAL_GC]: Include sys/mman.h.
34 (struct protection): New structure.
35 (lmalloc):
36 (xzalloc):
37 (xrealloc): Don't implement with lisp_malloc.
38 (lisp_malloc):
39 (lisp_align_malloc): Implement in terms of page allocator
40 function.
41 (gc_in_progress): Make volatile.
42 (enum mem_type): Add MEM_TYPE_INTERVAL.
43 (BLOCK_SIZE, LISP_BLOCK_SIZE): New macros.
44 (struct interval_block): Make better use of page aligned space.
45 (make_interval): Set up GC protection.
46 (mark_interval_tree_1): Suspend write protection.
47 (struct string_block): Make better use of page aligned space.
48 (allocate_string): Set up GC protection.
49 (sweep_strings): Unprotect pages.
50 (struct float_block):
51 (struct cons_block): Make better use of GC'd space.
52 (Fcons): Unprotect pages.
53 (struct large_vector):
54 (struct vector_block):
55 (allocate_vector_block):
56 (sweep_vectors): Likewise.
57 (allocate_vectorlike): Here too.
58 (init_symbol):
59 (Fmake_symbol): Clear new GC mark bits.
60 (mark_finalizer_list): Suspend garbage collection.
61 (mem_insert):
62 (mem_delete): Set `mem_tree_is_being_modified'.
63 (mark_maybe_pointer):
64 (valid_lisp_object_p): Return 1 if P is the main thread.
65 (compact_font_cache_entry):
66 (compact_font_caches):
67 (compact_undo_list): Suspend write protection before writing into
68 object.
69 (visit_static_gc_roots): Visit static fields in static roots along
70 with the roots themselves.
71 (mark_and_sweep_weak_table_contents): Suspend vectorlike GC
72 protection.
73 (reenter_gc): New function.
74 (garbage_collect): Delegate to `reenter_gc'. Handle longjmps from
75 `reenter_gc'. New arg `no_compact'. All callers changed.
76 (mark_objects): Don't push objects directly onto the mark stack.
77 (mark_objects_in_object): New function. Make it behave like the
78 old `mark_objects'.
79 (mark_vectorlike): Use `mark_objects_in_object'.
80 (mark_char_table):
81 (mark_buffer):
82 (mark_face_cache):
83 (mark_discard_killed_buffers): Suspend protection before writing
84 into object.
85 (struct mark_entry): Allow placing intervals on the mark stack.
86 (mark_stk):
87 (process_mark_stack): Suspend write protection where necessary.
88 Place write protection as well. Quit every once in a while.
89 (mark_terminals):
90 (sweep_conses):
91 (sweep_floats):
92 (sweep_intervals):
93 (sweep_symbols):
94 (sweep_buffers): Unprotect objects.
95 (gc_sweep): Rearrange sweep order.
96 (gdb_make_enums_visible): New enum Block_Alignment.
97
12015-04-06 Koichi Arakawa <arakawa@pp.iij4u.or.jp> (tiny change) 982015-04-06 Koichi Arakawa <arakawa@pp.iij4u.or.jp> (tiny change)
2 99
3 * w32proc.c (w32_executable_type): Look for the DLL name in the 100 * w32proc.c (w32_executable_type): Look for the DLL name in the