diff options
Diffstat (limited to 'src/ChangeLog.13')
| -rw-r--r-- | src/ChangeLog.13 | 97 |
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 @@ | |||
| 1 | 2023-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 | |||
| 1 | 2015-04-06 Koichi Arakawa <arakawa@pp.iij4u.or.jp> (tiny change) | 98 | 2015-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 |