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): |