use BDW-GC
* alloc.c (xmalloc, xrealloc): Use BDW-GC allocation functions.
(memory_full, refill_memory_reserve): Likewise.
(xfree): Make this function a no-op.
(Fgarbage_collect): Use `GC_gcollect'. Return true.
(Fcons, Fmake_symbol, allocate_buffer, allocate_misc)
(allocate_pseudovector, allocate_string, allocate_string_data)
(allocate_vectorlike, make_float, make_interval): Simplify.
(which_symbols): Return nil. Comment out original implementation.
(ABLOCKS_BASE, ABLOCKS_BUSY, ABLOCKS_BYTES, ABLOCKS_SIZE)
(ABLOCK_ABASE, ADVANCE, BLOCK_ALIGN, BLOCK_BYTES, BLOCK_PADDING)
(COMMON_MULTIPLE, CONS_BLOCK, CONS_BLOCK_SIZE, CONS_INDEX, CONS_MARK)
(CONS_MARKED_P, CONS_UNMARK, DEADP, FLOAT_BLOCK, FLOAT_BLOCK_SIZE)
(FLOAT_INDEX, FLOAT_MARK, FLOAT_MARKED_P, FLOAT_UNMARK, Fgc_status)
(Fmemory_limit, Fmemory_use_counts, GC_POINTER_ALIGNMENT)
(GC_STRING_BYTES, GETMARKBIT, INTERVAL_BLOCK_SIZE, LARGE_STRING_BYTES)
(LAST_MARKED_SIZE, MARKER_BLOCK_SIZE, MARK_INTERVAL_TREE, MARK_STRING)
(MAX_SAVE_STACK, MAX_ZOMBIES, MEM_NIL, MEM_TYPE_BUFFER, MEM_TYPE_CONS)
(MEM_TYPE_FLOAT, MEM_TYPE_MISC, MEM_TYPE_NON_LISP, MEM_TYPE_STRING)
(MEM_TYPE_SYMBOL, MEM_TYPE_VECTORLIKE, MEM_TYPE_VECTOR_BLOCK)
(MMAP_MAX_AREAS, NEXT_FREE_LISP_STRING)
(POINTERS_MIGHT_HIDE_IN_OBJECTS, SBLOCK_SIZE, SDATA_DATA)
(SDATA_DATA_OFFSET, SDATA_NBYTES, SDATA_OF_STRING, SDATA_SELECTOR)
(SDATA_SIZE, SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK)
(SETMARKBIT, SETUP_ON_FREE_LIST, STRING_BLOCK_SIZE, STRING_BYTES_MAX)
(STRING_MARKED_P, SYMBOL_BLOCK_SIZE, UNMARK_BALANCE_INTERVALS)
(UNMARK_STRING, UNSETMARKBIT, USE_POSIX_MEMALIGN, VBLOCK_BYTES_MAX)
(VBLOCK_BYTES_MIN, VECTOR_BLOCK_BYTES, VECTOR_BLOCK_SIZE)
(VECTOR_FREE_LIST_FLAG, VECTOR_IN_BLOCK, VECTOR_MARK, VECTOR_MARKED_P)
(VECTOR_MAX_FREE_LIST_INDEX, VECTOR_SIZE, VECTOR_UNMARK, VINDEX)
(Vdead, abort_on_gc, allocate_vector_block)
(allocate_vector_from_block, allocated_mem_type, avg_live)
(avg_zombies, check_gcpros, compact_small_strings, cons_block)
(cons_block_index, cons_free_list, consing_since_gc, current_sblock)
(dump_zombies, enum mem_type, float_block, float_block_index)
(float_free_list, free_ablock, free_cons, free_large_strings)
(free_marker, free_misc, gc_in_progress, gc_relative_threshold)
(gc_sweep, ignore_warnings, inhibit_garbage_collection, init_cons)
(init_float, init_intervals, init_marker, init_symbol, interval_block)
(interval_block_index, interval_free_list, large_sblocks)
(large_vectors, last_marked, last_marked_index, lisp_align_free)
(lisp_align_malloc, lisp_free, lisp_malloc, lisp_malloc_loser)
(live_buffer_p, live_cons_p, live_float_p, live_misc_p, live_string_p)
(live_symbol_p, live_vector_p, longjmps_done, mark_buffer)
(mark_char_table, mark_face_cache, mark_glyph_matrix, mark_interval)
(mark_interval_tree, mark_maybe_object, mark_maybe_pointer)
(mark_memory, mark_object, mark_object_loop_halt, mark_stack)
(mark_terminals, mark_vectorlike, marker_block, marker_block_index)
(marker_free_list, max_heap_address, max_live, max_zombies)
(mem_delete, mem_delete_fixup, mem_find, mem_init, mem_insert)
(mem_insert_fixup, mem_root, mem_rotate_left, mem_rotate_right, mem_z)
(memory_full_cons_threshold, min_heap_address, ngcs, nzombies)
(oldest_sblock, setjmp_tested_p, stack_base, stack_copy)
(stack_copy_size, string_blocks, string_free_list, struct ablock)
(struct ablocks, struct cons_block, struct float_block)
(struct interval_block, struct marker_block, struct mem_node)
(struct sblock, struct sdata, struct string_block)
(struct symbol_block, struct vector_block, survives_gc_p)
(sweep_strings, sweep_vectors, symbol_block, symbol_block_index)
(symbol_free_list, test_setjmp, total_conses, total_floats)
(total_free_conses, total_free_floats, total_free_intervals)
(total_free_markers, total_free_strings, total_free_symbols)
(total_intervals, total_markers, total_string_size, total_strings)
(total_symbols, total_vector_size, union aligned_Lisp_Misc)
(union aligned_Lisp_Symbol, vector_blocks, vector_free_lists)
(vroundup, zombies): Remove. All references changed.
* bytecode.c (BYTE_MAINTAIN_TOP): Remove. All references changed.
(mark_byte_stack, unmark_byte_stack): Remove.
(MAYBE_GC): Make this a no-op.
(byte_stack_list): Remove. All references changed.
* eval.c (eval_sub, Ffuncall): Remove calls to `Fgarbage_collect'.
(mark_backtrace): Remove.
* fns.c (make_hash_table, copy_hash_table): Ignore hash table weakness.
(weak_hash_tables, init_weak_hash_tables, sweep_weak_table)
(sweep_weak_hash_tables): Remove.
* fringe.c (mark_fringe_data): Remove.
* gtkutil.c (xg_mark_data): Remove.
* image.c (mark_image, mark_image_cache): Remove.
* keyboard.c (read_char): Call `GC_collect_a_little' when idle.
(mark_kboards): Remove.
* s/aix4-2.h (GC_MARK_STACK):
* s/gnu-linux.h (GC_SETJMP_WORKS, GC_MARK_SECONDARY_STACK)
(GC_MARK_STACK):
* s/hpux10-20.h (GC_MARK_STACK):
* s/unixware.h (GC_MARK_STACK): Remove.
* sysdep.c (init_signals): Do not set a handler for SIGXCPU, since
BDW-GC uses it internally.
* term.c (mark_ttys): Remove.
* alloc.c (Qautomatic_gc): Move declaration and DEFSYM call...
* profiler.c (Qautomatic_gc): ...here.
* lisp.h (Qautomatic_gc): Remove declaration.
Conflicts:
src/alloc.c
src/emacs.c
src/eval.c
src/fns.c
src/lisp.h
src/bytecode.c
src/eval.c
22 files changed: