Mercurial > hg > xemacs-beta
comparison src/ChangeLog @ 3092:141c2920ea48
[xemacs-hg @ 2005-11-25 01:41:31 by crestani]
Incremental Garbage Collector
| author | crestani |
|---|---|
| date | Fri, 25 Nov 2005 01:42:08 +0000 |
| parents | dbd2a866e38a |
| children | ad2f4ae9895b |
comparison
equal
deleted
inserted
replaced
| 3091:c22d8984148c | 3092:141c2920ea48 |
|---|---|
| 1 2005-11-21 Marcus Crestani <crestani@xemacs.org> | |
| 2 | |
| 3 Incremental Garbage Collector | |
| 4 | |
| 5 * .cvsignore: Add .dbxrc and .gdbinit. | |
| 6 | |
| 7 * .dbxrc: Remove. | |
| 8 * .dbxrc.in: New, used to generate .dbxrc: If newgc is enabled, do | |
| 9 not break on SIGBUS and SIGSEGV. | |
| 10 * .gdbinit: Remove. | |
| 11 * .gdbinit: New, used to generate .gdbinit: If newgc is enabled, | |
| 12 do not break on SIGBUS and SIGSEGV. | |
| 13 | |
| 14 * Makefile.in.in: Add gc.c, newgc_objs and vdb_objs. | |
| 15 | |
| 16 * alloc.c: Move the GC related code to gc.c: marking, gc hooks, | |
| 17 garbage_collect_1, GC related Lisp functions and variables. Left | |
| 18 in alloc.c are the allocation functions, the definition of | |
| 19 lrecords, the sweep functions of the old garbage collector, and | |
| 20 root-set code like staticpro and mcpro. Remove | |
| 21 lrecord_string_data_stats. | |
| 22 * alloc.c (DECREMENT_CONS_COUNTER): Remove call to | |
| 23 recompute_need_to_garbage_collect. | |
| 24 * alloc.c (init_lrecord_stats): Remove additionally allocated | |
| 25 memory statistics, i.e. statistics for string data. | |
| 26 * alloc.c (alloc_lrecord_array): New. | |
| 27 * alloc.c (free_lrecord): Do not explicitly free during gc. Add | |
| 28 recompute_need_to_garbage_collect. | |
| 29 * alloc.c (make_compiled_function): Field arguments is now a Lisp | |
| 30 object, thus init it to Qnil rather than NULL. | |
| 31 * alloc.c (struct string_chars_block): | |
| 32 * alloc.c (finalize_string): | |
| 33 * alloc.c (struct string_chars): | |
| 34 * alloc.c (make_uninit_string): | |
| 35 * alloc.c (resize_string): | |
| 36 * alloc.c (make_string_nocopy): | |
| 37 String data is now a Lisp object. Remove code that handled string | |
| 38 data specially. | |
| 39 * alloc.c (init_lrecord_stats): Remove lrecord_string_data_stats. | |
| 40 * alloc.c (common_init_alloc_early): | |
| 41 * alloc.c (init_alloc_once_early): | |
| 42 * alloc.c (syms_of_alloc): | |
| 43 * alloc.c (vars_of_alloc): | |
| 44 * alloc.c (complex_vars_of_alloc): | |
| 45 Move init code to gc.c's inizializers. | |
| 46 | |
| 47 * buffer.c: | |
| 48 * buffer.c (syms_of_buffer): | |
| 49 * buffer.h: | |
| 50 * buffer.h (struct buffer_text): Add new Lisp object: buffer_text. | |
| 51 | |
| 52 * bytecode.c: | |
| 53 * bytecode.c (make_compiled_function_args): | |
| 54 * bytecode.c (optimize_compiled_function): | |
| 55 * bytecode.c (mark_compiled_function): | |
| 56 * bytecode.c (finalize_compiled_function): | |
| 57 * bytecode.c (syms_of_bytecode): | |
| 58 * bytecode.h: | |
| 59 * bytecode.h (struct compiled_function_args): | |
| 60 * bytecode.h (struct Lisp_Compiled_Function): Add new Lisp object: | |
| 61 compiled_function_args. | |
| 62 | |
| 63 * config.h.in: Add NEW_GC symbol, add VDB_* symbols, and symbols | |
| 64 for functions and structs checked for vdb. | |
| 65 | |
| 66 * console-gtk-impl.h: | |
| 67 * console-gtk-impl.h (struct gtk_device): | |
| 68 * console-gtk-impl.h (struct gtk_frame): | |
| 69 * console-msw-impl.h: | |
| 70 * console-msw-impl.h (struct mswindows_device): | |
| 71 * console-msw-impl.h (struct msprinter_device): | |
| 72 * console-msw-impl.h (struct mswindows_frame): | |
| 73 * console-stream-impl.h: | |
| 74 * console-stream-impl.h (struct stream_console): | |
| 75 * console-stream.c: | |
| 76 * console-stream.c (stream_init_console): | |
| 77 * console-stream.c (stream_delete_console): | |
| 78 * console-stream.h: | |
| 79 * console-tty-impl.h: | |
| 80 * console-tty-impl.h (struct tty_console): | |
| 81 * console-tty-impl.h (struct tty_device): | |
| 82 * console-tty.c: | |
| 83 * console-tty.c (allocate_tty_console_struct): | |
| 84 * console-tty.c (free_tty_console_struct): | |
| 85 * console-x-impl.h: | |
| 86 * console-x-impl.h (struct x_device): | |
| 87 * console-x-impl.h (struct x_frame): | |
| 88 * console.c: | |
| 89 * console.c (syms_of_console): Add new Lisp objects: tty_console, | |
| 90 stream_consle. | |
| 91 | |
| 92 * device-gtk.c: | |
| 93 * device-gtk.c (allocate_gtk_device_struct): | |
| 94 * device-gtk.c (free_gtk_device_struct): | |
| 95 * device-gtk.c (syms_of_device_gtk): | |
| 96 * device-msw.c: | |
| 97 * device-msw.c (mswindows_init_device): | |
| 98 * device-msw.c (mswindows_delete_device): | |
| 99 * device-msw.c (msprinter_init_device): | |
| 100 * device-msw.c (msprinter_delete_device): | |
| 101 * device-msw.c (syms_of_device_mswindows): | |
| 102 * device-tty.c: | |
| 103 * device-tty.c (free_tty_device_struct): | |
| 104 * device-tty.c (syms_of_device_tty): | |
| 105 * device-x.c: | |
| 106 * device-x.c (allocate_x_device_struct): | |
| 107 * device-x.c (free_x_device_struct): | |
| 108 * device-x.c (syms_of_device_x): | |
| 109 * device.c: Add new Lisp objects: x_device, gtk_device, | |
| 110 tty_device, mswindows_device, msprinter_device. | |
| 111 | |
| 112 * dumper.c: | |
| 113 * dumper.c (pdump_register_sub): Add XD_LISP_OBJECT_PTR. | |
| 114 * dumper.c (pdump_register_object_array): New. | |
| 115 * dumper.c (pdump_store_new_pointer_offsets): Add XD_LISP_OBJECT_PTR. | |
| 116 * dumper.c (pdump_scan_lisp_objects_by_alignment): Remove assert, | |
| 117 XD_LISP_OBJECT_PTR may occur as arrays. | |
| 118 * dumper.c (pdump_reloc_one_mc): Add XD_LISP_OBJECT_PTR. | |
| 119 * dumper.c (pdump_dump_rtables): Dump arrays. | |
| 120 * dumper.c (pdump_load_finish): Store and restore state of | |
| 121 allow_incremental_gc. Remove lrecord_string_data_stats. | |
| 122 | |
| 123 * dynarr.c: | |
| 124 * dynarr.c (Dynarr_lisp_newf): Special case dynamic Lisp array. | |
| 125 * dynarr.c (Dynarr_resize): Special case dynamic Lisp array. | |
| 126 * dynarr.c (Dynarr_free): Add dynamic Lisp array. | |
| 127 | |
| 128 * elhash.c: | |
| 129 * elhash.c (htentry): | |
| 130 * elhash.c (make_general_lisp_hash_table): | |
| 131 * elhash.c (Fcopy_hash_table): | |
| 132 * elhash.c (resize_hash_table): | |
| 133 * elhash.c (pdump_reorganize_hash_table): | |
| 134 * elhash.c (init_elhash_once_early): | |
| 135 * elhash.h: Add new Lisp object: hash_table_entry. Make | |
| 136 hash_table_entries Lisp objects. | |
| 137 | |
| 138 * emacs.c (main_1): Install platform's vdb signal handler, add GC | |
| 139 init, add syms of GC and vdb, . | |
| 140 * emacs.c: Replace garbage_collect_1 calls with gc_full calls. | |
| 141 * emacs.c (fatal_error_signal): With vdb enabled, convert SIGSEGV | |
| 142 and SIGBUS to SIGABRT. | |
| 143 | |
| 144 * eval.c (Fsignal): Incremental GC may always run, changes are | |
| 145 caught by the write barrier. | |
| 146 * eval.c (handle_compiled_function_with_and_rest): | |
| 147 * eval.c (funcall_compiled_function): | |
| 148 * eval.c (Feval): Invoke incremental GC if need to GC. | |
| 149 * eval.c (Ffuncall): Invoke incremental GC if need to GC. | |
| 150 * eval.c (run_hook_with_args_in_buffer): Add new Lisp object: | |
| 151 compiled_function_args. | |
| 152 | |
| 153 * event-msw.c (mswindows_wnd_proc): Incremental GC may always run, | |
| 154 changes are caught by the write barrier. | |
| 155 * events.c (reinit_vars_of_events): Vevent_resource now | |
| 156 collectible, staticpro it. | |
| 157 | |
| 158 * extents.c: | |
| 159 * extents.c (gap_array_marker): | |
| 160 * extents.c (gap_array): | |
| 161 * extents.c (extent_list_marker): | |
| 162 * extents.c (extent_list): | |
| 163 * extents.c (stack_of_extents): | |
| 164 * extents.c (gap_array_make_gap): | |
| 165 * extents.c (gap_array_make_marker): | |
| 166 * extents.c (gap_array_delete_marker): | |
| 167 * extents.c (gap_array_delete_all_markers): | |
| 168 * extents.c (make_gap_array): | |
| 169 * extents.c (free_gap_array): | |
| 170 * extents.c (extent_list_insert): | |
| 171 * extents.c (extent_list_make_marker): | |
| 172 * extents.c (extent_list_delete_marker): | |
| 173 * extents.c (allocate_extent_list): | |
| 174 * extents.c (free_extent_list): | |
| 175 * extents.c (finalize_extent_info): | |
| 176 * extents.c (flush_cached_extent_info): | |
| 177 * extents.c (uninit_buffer_extents): | |
| 178 * extents.c (allocate_soe): | |
| 179 * extents.c (free_soe): | |
| 180 * extents.c (syms_of_extents): | |
| 181 * extents.h: Add new Lisp object: gap_array_marker, gap_array, | |
| 182 extent_list_marker, extent_list, and stack_of_extents. | |
| 183 | |
| 184 * faces.h: | |
| 185 * faces.h (struct face_cachel): Add new Lisp object: face cachel. | |
| 186 | |
| 187 * frame-gtk.c: | |
| 188 * frame-gtk.c (allocate_gtk_frame_struct): | |
| 189 * frame-gtk.c (gtk_delete_frame): | |
| 190 * frame-gtk.c (syms_of_frame_gtk): | |
| 191 * frame-msw.c: | |
| 192 * frame-msw.c (mswindows_init_frame_1): | |
| 193 * frame-msw.c (mswindows_delete_frame): | |
| 194 * frame-msw.c (syms_of_frame_mswindows): | |
| 195 * frame-x.c: | |
| 196 * frame-x.c (allocate_x_frame_struct): | |
| 197 * frame-x.c (x_delete_frame): | |
| 198 * frame-x.c (syms_of_frame_x): | |
| 199 * frame.c: | |
| 200 * frame.c (change_frame_size): | |
| 201 * frame.c (syms_of_frame): Add new Lisp object: gtk_console, | |
| 202 mswindows_console, and x_console. | |
| 203 | |
| 204 * glyphs.c (struct expose_ignore_blocktype): | |
| 205 * glyphs.c (check_for_ignored_expose): | |
| 206 * glyphs.c (register_ignored_expose): | |
| 207 * glyphs.c (reinit_vars_of_glyphs): | |
| 208 * glyphs.h: | |
| 209 * glyphs.h (struct glyph_cachel): | |
| 210 * glyphs.h (struct expose_ignore): Add new Lisp object: | |
| 211 glyph_cachel and expose_ignore. | |
| 212 | |
| 213 * lisp.h: Move dynamic array definition down after lrecord | |
| 214 inclusion. Add dynamic lisp array macros. Add direct and | |
| 215 indirect string data. Add string accessors. Remove | |
| 216 lrecord_string_data_stats. | |
| 217 * lisp.h (struct Lisp_String_Direct_Data): New. | |
| 218 * lisp.h (struct Lisp_String_Indirect_Data): New. | |
| 219 * lisp.h (struct Lisp_String): Add indirect flag and Lisp object | |
| 220 data. | |
| 221 | |
| 222 * lrecord.h: Remove lrecord_type numbering. | |
| 223 * lrecord.h (enum lrecord_type): Add new Lisp objects. | |
| 224 * lrecord.h (MC_ALLOC_CALL_FINALIZER): Add GC statistics. | |
| 225 * lrecord.h (enum memory_description_type): Add | |
| 226 XD_LISP_OBJECT_BLOCK_PTR. | |
| 227 * lrecord.h (XD_LISP_DYNARR_DESC): New. | |
| 228 * lrecord.h (alloc_lrecord_array): New. | |
| 229 | |
| 230 * mc-alloc.c: | |
| 231 * mc-alloc.c (MIN_HEAP_INCREASE): | |
| 232 * mc-alloc.c (free_link): | |
| 233 * mc-alloc.c (page_header): | |
| 234 * mc-alloc.c (FREE_HEAP_PAGES): | |
| 235 * mc-alloc.c (PH_BLACK_BIT): | |
| 236 * mc-alloc.c (get_mark_bit_index): | |
| 237 * mc-alloc.c (add_pages_to_lookup_table): | |
| 238 * mc-alloc.c (alloc_bit_array): | |
| 239 * mc-alloc.c (get_bit): | |
| 240 * mc-alloc.c (set_bit): | |
| 241 * mc-alloc.c (USE_PNTR_MARK_BITS): | |
| 242 * mc-alloc.c (GET_BIT_WORD): | |
| 243 * mc-alloc.c (SET_BIT_WORD): | |
| 244 * mc-alloc.c (ZERO_MARK_BITS_PNTR): | |
| 245 * mc-alloc.c (alloc_mark_bits): | |
| 246 * mc-alloc.c (free_mark_bits): | |
| 247 * mc-alloc.c (set_mark_bit): | |
| 248 * mc-alloc.c (alloc_page_header): | |
| 249 * mc-alloc.c (free_page_header): | |
| 250 * mc-alloc.c (get_used_list_index): | |
| 251 * mc-alloc.c (get_free_list_index): | |
| 252 * mc-alloc.c (install_cell_free_list): | |
| 253 * mc-alloc.c (install_page_in_used_list): | |
| 254 * mc-alloc.c (remove_page_from_used_list): | |
| 255 * mc-alloc.c (allocate_new_page): | |
| 256 * mc-alloc.c (mc_alloc_1): | |
| 257 * mc-alloc.c (mc_alloc_array): | |
| 258 * mc-alloc.c (mc_alloc): | |
| 259 * mc-alloc.c (mark_free_list): | |
| 260 * mc-alloc.c (finalize_page): | |
| 261 * mc-alloc.c (finalize_page_for_disksave): | |
| 262 * mc-alloc.c (sweep_page): | |
| 263 * mc-alloc.c (mc_free): | |
| 264 * mc-alloc.c (mc_realloc_1): | |
| 265 * mc-alloc.c (mc_realloc_array): | |
| 266 * mc-alloc.c (init_mc_allocator): | |
| 267 * mc-alloc.c (Fmc_alloc_memory_usage): | |
| 268 * mc-alloc.c (maybe_mark_black): | |
| 269 * mc-alloc.h: Add incremental garbage collector support, various | |
| 270 cleanups. | |
| 271 | |
| 272 * objects-tty-impl.h: | |
| 273 * objects-tty-impl.h (struct tty_color_instance_data): | |
| 274 * objects-tty-impl.h (struct tty_font_instance_data): | |
| 275 * objects-tty.c: | |
| 276 * objects-tty.c (tty_initialize_color_instance): | |
| 277 * objects-tty.c (tty_finalize_color_instance): | |
| 278 * objects-tty.c (tty_initialize_font_instance): | |
| 279 * objects-tty.c (tty_finalize_font_instance): | |
| 280 * objects-tty.c (syms_of_objects_tty): | |
| 281 * objects.c: New Lisp objects: color_instance_data and | |
| 282 font_instance_data. | |
| 283 | |
| 284 * print.c (print_internal): New Lisp object: string_data. | |
| 285 | |
| 286 * specifier.c: | |
| 287 * specifier.c (finalize_specifier): | |
| 288 * specifier.c (set_specifier_caching): | |
| 289 * specifier.c (syms_of_specifier): | |
| 290 * specifier.h: | |
| 291 * specifier.h (struct specifier_caching): New Lisp object: | |
| 292 specifier caching. | |
| 293 | |
| 294 * syntax.c: | |
| 295 * syntax.c (init_buffer_syntax_cache): | |
| 296 * syntax.c (uninit_buffer_syntax_cache): | |
| 297 * syntax.c (syms_of_syntax): | |
| 298 * syntax.h: | |
| 299 * syntax.h (struct syntax_cache): New Lisp object: syntax_cache. | |
| 300 | |
| 301 * window.c: | |
| 302 * window.c (allocate_window): | |
| 303 * window.c (make_dummy_parent): | |
| 304 * window.c (syms_of_window): New Lisp objects: face_cachel, | |
| 305 fache_cachel_dynarr, glyph_cachel, and glyph_cachel_dynarr. | |
| 306 | |
| 307 | |
| 308 New files: | |
| 309 * gc.c: Moved code from alloc.c. Split up garbage_collect_1 in a | |
| 310 couple of smaller functions. | |
| 311 * gc.h: Incremental Garbage Collector | |
| 312 | |
| 313 * vdb-fake.c: Virtual dirty bit fake implementation. | |
| 314 * vdb-mach.c: Virtual dirty bit implementation for Mach systems. | |
| 315 * vdb-posix.c: Virtual dirty bit implementation for POSIX systems. | |
| 316 * vdb-win32.c: Virtual dirty bit implementation for Win32 systems. | |
| 317 | |
| 318 * vdb.c: | |
| 319 * vdb.h: Platform independent virtual dirty bit implementation. | |
| 320 | |
| 321 | |
| 322 Remove files: | |
| 323 * .dbxrc: | |
| 324 * .gdbinit: Now generated by configure script. | |
| 325 | |
| 1 2005-11-22 Malcolm Purvis <malcolmp@xemacs.org> | 326 2005-11-22 Malcolm Purvis <malcolmp@xemacs.org> |
| 2 | 327 |
| 3 * frame-gtk.c (gtk_internal_frame_property_p): | 328 * frame-gtk.c (gtk_internal_frame_property_p): |
| 4 * glyphs-gtk.c (image_instance_convert_to_pointer): | 329 * glyphs-gtk.c (image_instance_convert_to_pointer): |
| 5 * glyphs-gtk.c (gtk_xpm_instantiate): | 330 * glyphs-gtk.c (gtk_xpm_instantiate): |
