comparison src/alloc.c @ 112364:42e22c4f06b7

Move all DEFVAR'd globals into a structure -- threading infrastructure * globals.h: New file. * xterm.h (Vx_pixel_size_width_font_regexp): Remove declaration. * window.h (Vinitial_window_system, Vminibuf_scroll_window) (Vwindow_system_version): Remove declaration. * w32term.h (Vw32_enable_palette) (Vx_pixel_size_width_font_regexp): Remove declaration. * w32menu.c (Voverriding_local_map) (Voverriding_local_map_menu_flag): Remove declaration. * w32inevt.c (Vw32_alt_is_meta, Vw32_apps_modifier) (Vw32_capslock_is_shiftlock, Vw32_enable_caps_lock) (Vw32_enable_num_lock, Vw32_lwindow_modifier) (Vw32_pass_lwindow_to_system, Vw32_pass_rwindow_to_system) (Vw32_phantom_key_code, Vw32_recognize_altgr) (Vw32_rwindow_modifier, Vw32_scroll_lock_modifier) (w32_use_full_screen_buffer): Remove declaration. * w32.c (Vsystem_configuration, Vw32_downcase_file_names) (Vw32_generate_fake_inodes, Vw32_get_true_file_attributes) (w32_num_mouse_buttons, w32_pipe_read_delay): Remove declaration. * termopts.h (Vtruncate_partial_width_windows, inverse_video) (no_redraw_on_reenter, visible_bell): Remove declaration. * sysdep.c (Vsystem_name): Remove declaration. * syntax.h (parse_sexp_lookup_properties): Remove declaration. * menu.h (Vmenu_updating_frame): Remove declaration. * macros.h (Vexecuting_kbd_macro, executing_kbd_macro_index): Remove declaration. * lisp.h (Vafter_init_time, Vafter_load_alist) (Vauto_save_list_file_name, Vbefore_init_time, Vcommand_history) (Vcompletion_regexp_list, Vcurrent_load_list) (Vcurrent_prefix_arg, Vdata_directory, Vdebug_on_error) (Vdoc_directory, Vdoc_file_name, Vdynamic_library_alist) (Vexec_directory, Vexec_path, Vexec_suffixes) (Vface_font_rescale_alist, Vface_ignored_fonts, Vfeatures) (Vhelp_form, Vhistory_length, Vinhibit_field_text_motion) (Vinhibit_quit, Vinhibit_read_only, Vinhibit_redisplay) (Vinstallation_directory, Vinvocation_directory) (Vinvocation_name, Vload_file_rep_suffixes, Vload_history) (Vload_suffixes, Vmark_even_if_inactive, Vmemory_full) (Vmessage_log_max, Vobarray, Vprint_length, Vprint_level) (Vpurify_flag, Vquit_flag, Vsaved_region_selection) (Vscalable_fonts_allowed, Vselect_active_regions) (Vshell_file_name, Vstandard_input, Vstandard_output) (Vsystem_name, Vtemporary_file_directory, Vthrow_on_input) (Vtop_level, Vtty_erase_char, Vundo_outer_limit) (Vuser_login_name, Vwindow_scroll_functions) (Vwindow_system_version, Vx_no_window_manager) (Vx_resource_class, Vx_resource_name, baud_rate) (completion_ignore_case, debug_on_next_call, gc_cons_threshold) (history_delete_duplicates, inhibit_x_resources) (last_nonmenu_event, load_in_progress, max_specpdl_size) (minibuffer_auto_raise, print_escape_newlines, scroll_margin) (use_dialog_box, use_file_dialog): Remove declaration. Include globals.h. * keymap.h (Voverriding_local_map) (Voverriding_local_map_menu_flag, meta_prefix_char): Remove declaration. * keyboard.h (Vdouble_click_time, Vfunction_key_map) (Vinput_method_function, Vkey_translation_map) (Vlucid_menu_bar_dirty_flag, Vthis_original_command) (do_mouse_tracking, extra_keyboard_modifiers) (num_nonmacro_input_events): Remove declaration. * intervals.h (Vchar_property_alias_alist) (Vdefault_text_properties, Vinhibit_point_motion_hooks) (Vtext_property_default_nonsticky): Remove declaration. * gtkutil.h (x_gtk_file_dialog_help_text) (x_gtk_show_hidden_files, x_gtk_use_old_file_dialog) (x_gtk_whole_detached_tool_bar): Remove declaration. * frame.h (Vdefault_frame_alist, Vframe_alpha_lower_limit) (Vmenu_bar_mode, Vmouse_highlight, Vterminal_frame) (Vtool_bar_mode, Vx_resource_class, Vx_resource_name) (focus_follows_mouse): Remove declaration. * fontset.h (Valternate_fontname_alist, Vfontset_alias_alist) (Vignore_relative_composition, Votf_script_alist) (Vuse_default_ascent, Vvertical_centering_font_regexp): Remove declaration. * font.h (Vfont_log): Remove declaration. * dosfns.h (Vdos_display_scancodes, Vdos_version) (Vdos_windows_version, dos_codepage, dos_country_code) (dos_decimal_point, dos_hyper_key, dos_keyboard_layout) (dos_keypad_mode, dos_super_key, dos_timezone_offset): Remove declaration. * disptab.h (Vglyph_table, Vstandard_display_table): Remove declaration. * dispextern.h (Vface_remapping_alist, Vglyphless_char_display) (Vmouse_autoselect_window, Voverflow_newline_into_fringe) (Vshow_trailing_whitespace, Vtool_bar_button_margin) (Vtool_bar_style, cursor_in_echo_area, display_hourglass_p) (inverse_video, mode_line_in_non_selected_windows) (tool_bar_button_relief, tool_bar_max_label_size) (underline_minimum_offset) (unibyte_display_via_language_environment, x_stretch_cursor_p): Remove declaration. * composite.h (Vauto_composition_function) (Vcomposition_function_table): Remove declaration. * commands.h (Vexecuting_kbd_macro) (Vminibuffer_local_completion_map) (Vminibuffer_local_filename_completion_map) (Vminibuffer_local_filename_must_match_map) (Vminibuffer_local_map, Vminibuffer_local_must_match_map) (Vminibuffer_local_ns_map, Vthis_command) (Vunread_command_events, cursor_in_echo_area) (last_command_event, last_nonmenu_event, unread_command_char): Remove declaration. * coding.h (Vcoding_system_for_read, Vcoding_system_for_write) (Vdefault_file_name_coding_system) (Vdefault_process_coding_system, Vfile_name_coding_system) (Vlast_coding_system_used, Vlocale_coding_system) (Vselect_safe_coding_system_function) (Vtranslation_table_for_input, coding_system_require_warning) (eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided) (eol_mnemonic_unix, inherit_process_coding_system): Remove declaration. * charset.h (Vcharset_list, Vcurrent_iso639_language): Remove declaration. * character.h (Vauto_fill_chars, Vchar_direction_table) (Vchar_script_table, Vchar_width_table, Vprintable_chars) (Vscript_representative_chars, Vtranslation_table_vector) (Vunicode_category_table): Remove declaration. * ccl.h (Vfont_ccl_encoder_alist): Remove declaration. * buffer.h (Vafter_change_functions, Vbefore_change_functions) (Vdeactivate_mark, Vfirst_change_hook, Vtransient_mark_mode) (inhibit_modification_hooks): Remove declaration. * xterm.c (syms_of_xterm): Update. (Vx_alt_keysym, Vx_hyper_keysym, Vx_keysym_table) (Vx_meta_keysym, Vx_super_keysym, Vx_toolkit_scroll_bars) (x_mouse_click_focus_ignore_position) (x_underline_at_descent_line) (x_use_underline_position_properties): Remove. * xsmfns.c (syms_of_xsmfns): Update. (Vx_session_id, Vx_session_previous_id): Remove. * xsettings.c (syms_of_xsettings): Update. (Vxft_settings, use_system_font): Remove. * xselect.c (syms_of_xselect): Update. (Vselection_converter_alist, Vx_lost_selection_functions) (Vx_sent_selection_functions, x_selection_timeout): Remove. * xfns.c (syms_of_xfns): Update. (Vgtk_version_string, Vmotif_version_string) (Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape) (Vx_max_tooltip_size, Vx_mode_pointer_shape) (Vx_no_window_manager, Vx_nontext_pointer_shape) (Vx_pixel_size_width_font_regexp, Vx_pointer_shape) (Vx_sensitive_text_pointer_shape) (Vx_window_horizontal_drag_shape, x_gtk_file_dialog_help_text) (x_gtk_show_hidden_files, x_gtk_use_old_file_dialog) (x_gtk_use_system_tooltips, x_gtk_whole_detached_tool_bar): Remove. * xfaces.c (syms_of_xfaces): Update. (Vface_default_stipple, Vface_font_rescale_alist) (Vface_ignored_fonts, Vface_new_frame_defaults) (Vface_remapping_alist, Vfont_list_limit) (Vscalable_fonts_allowed, Vtty_defined_color_alist): Remove. * xdisp.c (syms_of_xdisp): Update. (Vauto_resize_tool_bars, Vblink_cursor_alist) (Vdisplay_pixels_per_inch, Vfontification_functions) (Vframe_title_format, Vglobal_mode_string) (Vglyphless_char_display, Vhourglass_delay, Vhscroll_step) (Vicon_title_format, Vinhibit_redisplay) (Vline_number_display_limit, Vline_prefix) (Vmax_mini_window_height, Vmenu_bar_update_hook) (Vmenu_updating_frame, Vmessage_log_max) (Vmouse_autoselect_window, Vnobreak_char_display) (Voverlay_arrow_position, Voverlay_arrow_string) (Voverlay_arrow_variable_list, Vredisplay_end_trigger_functions) (Vresize_mini_windows, Vshow_trailing_whitespace) (Vtool_bar_border, Vtool_bar_button_margin, Vtool_bar_style) (Vtruncate_partial_width_windows, Vvoid_text_area_pointer) (Vwindow_scroll_functions, Vwindow_size_change_functions) (Vwindow_text_change_functions, Vwrap_prefix) (auto_raise_tool_bar_buttons_p, automatic_hscrolling_p) (debug_end_pos, display_hourglass_p, emacs_scroll_step) (highlight_nonselected_windows, hscroll_margin) (inhibit_eval_during_redisplay, inhibit_free_realized_faces) (inhibit_menubar_update, inhibit_try_cursor_movement) (inhibit_try_window_id, inhibit_try_window_reusing) (line_number_display_limit_width) (make_cursor_line_fully_visible_p, message_truncate_lines) (mode_line_inverse_video, multiple_frames, overline_margin) (scroll_conservatively, scroll_margin, tool_bar_button_relief) (tool_bar_max_label_size, underline_minimum_offset) (unibyte_display_via_language_environment, x_stretch_cursor_p): Remove. * window.c (syms_of_window): Update. (Vminibuf_scroll_window, Vother_window_scroll_buffer) (Vrecenter_redisplay, Vscroll_preserve_screen_position) (Vtemp_buffer_show_function, Vwindow_configuration_change_hook) (Vwindow_point_insertion_type, auto_window_vscroll_p) (mode_line_in_non_selected_windows, next_screen_context_lines) (window_min_height, window_min_width): Remove. (scroll_margin): Remove declaration. * w32term.c (syms_of_w32term): Update. (Vw32_capslock_is_shiftlock, Vw32_grab_focus_on_raise) (Vw32_recognize_altgr, Vw32_swap_mouse_buttons) (Vx_toolkit_scroll_bars, w32_num_mouse_buttons) (w32_use_visible_system_caret, x_underline_at_descent_line) (x_use_underline_position_properties): Remove. (Vcommand_line_args, Vsystem_name, extra_keyboard_modifiers): Remove declaration. * w32select.c (syms_of_w32select): Update. (Vnext_selection_coding_system, Vselection_coding_system): Remove. * w32proc.c (syms_of_ntproc): Update. (Vw32_downcase_file_names, Vw32_generate_fake_inodes) (Vw32_get_true_file_attributes, Vw32_quote_process_args) (Vw32_start_process_inherit_error_mode) (Vw32_start_process_share_console) (Vw32_start_process_show_window, w32_pipe_read_delay): Remove. (Vsystem_name): Remove declaration. * w32font.c (syms_of_w32font): Update. (Vw32_charset_info_alist): Remove. * w32fns.c (globals_of_w32fns, syms_of_w32fns): Update. (Vw32_alt_is_meta, Vw32_apps_modifier, Vw32_bdf_filename_alist) (Vw32_color_map, Vw32_enable_caps_lock, Vw32_enable_num_lock) (Vw32_enable_palette, Vw32_lwindow_modifier) (Vw32_pass_alt_to_system, Vw32_pass_lwindow_to_system) (Vw32_pass_rwindow_to_system, Vw32_phantom_key_code) (Vw32_rwindow_modifier, Vw32_scroll_lock_modifier) (Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape) (Vx_max_tooltip_size, Vx_mode_pointer_shape) (Vx_no_window_manager, Vx_nontext_pointer_shape) (Vx_pixel_size_width_font_regexp, Vx_pointer_shape) (Vx_sensitive_text_pointer_shape) (Vx_window_horizontal_drag_shape, w32_ansi_code_page) (w32_enable_synthesized_fonts, w32_mouse_button_tolerance) (w32_mouse_move_interval) (w32_pass_extra_mouse_buttons_to_system) (w32_pass_multimedia_buttons_to_system, w32_quit_key) (w32_strict_fontnames, w32_strict_painting): Remove. (Vhourglass_delay, Vmenu_bar_mode, Vtool_bar_mode) (Vw32_recognize_altgr, Vwindow_system_version) (w32_num_mouse_buttons, w32_use_visible_system_caret): Remove declaration. * w32console.c (syms_of_ntterm): Update. (w32_use_full_screen_buffer): Remove. (Vtty_defined_color_alist): Remove declaration. * w16select.c (syms_of_win16select): Update. (Vnext_selection_coding_system, Vselection_coding_system): Remove. * undo.c (syms_of_undo): Update. (Vundo_outer_limit, Vundo_outer_limit_function) (undo_inhibit_record_point, undo_limit, undo_strong_limit): Remove. * textprop.c (syms_of_textprop): Update. (Vchar_property_alias_alist, Vdefault_text_properties) (Vinhibit_point_motion_hooks, Vtext_property_default_nonsticky): Remove. * terminal.c (syms_of_terminal): Update. (Vdelete_terminal_functions, Vring_bell_function): Remove. * term.c (syms_of_term): Update. (Vresume_tty_functions, Vsuspend_tty_functions) (no_redraw_on_reenter, system_uses_terminfo, visible_cursor): Remove. * syntax.c (syms_of_syntax): Update. (Vfind_word_boundary_function_table, multibyte_syntax_as_symbol) (open_paren_in_column_0_is_defun_start) (parse_sexp_ignore_comments, parse_sexp_lookup_properties) (words_include_escapes): Remove. * search.c (syms_of_search): Update. (Vinhibit_changing_match_data, Vsearch_spaces_regexp): Remove. * process.c (syms_of_process): Update. (Vprocess_adaptive_read_buffering, Vprocess_connection_type) (delete_exited_processes): Remove. * print.c (syms_of_print): Update. (Vfloat_output_format, Vprint_charset_text_property) (Vprint_circle, Vprint_continuous_numbering, Vprint_gensym) (Vprint_length, Vprint_level, Vprint_number_table) (Vstandard_output, print_escape_multibyte) (print_escape_newlines, print_escape_nonascii, print_quoted): Remove. * msdos.c (syms_of_msdos): Update. (Vdos_unsupported_char_glyph): Remove. (unibyte_display_via_language_environment): Remove declaration. * minibuf.c (syms_of_minibuf): Update. (Vcompletion_regexp_list, Vhistory_add_new_input) (Vhistory_length, Vminibuffer_completing_file_name) (Vminibuffer_completion_confirm) (Vminibuffer_completion_predicate, Vminibuffer_completion_table) (Vminibuffer_exit_hook, Vminibuffer_help_form) (Vminibuffer_history_position, Vminibuffer_history_variable) (Vminibuffer_prompt_properties, Vminibuffer_setup_hook) (Vread_buffer_function, Vread_expression_map) (completion_ignore_case, enable_recursive_minibuffers) (history_delete_duplicates, minibuffer_allow_text_properties) (minibuffer_auto_raise, read_buffer_completion_ignore_case): Remove. * marker.c (syms_of_marker): Update. (byte_debug_flag): Remove. * macros.c (syms_of_macros): Update. (Vexecuting_kbd_macro, executing_kbd_macro_index): Remove. * lread.c (syms_of_lread): Update. (Vafter_load_alist, Vbyte_boolean_vars) (Vbytecomp_version_regexp, Vcurrent_load_list) (Veval_buffer_list, Vload_file_name, Vload_file_rep_suffixes) (Vload_history, Vload_path, Vload_read_function) (Vload_source_file_function, Vload_suffixes, Vobarray) (Vold_style_backquotes, Vpreloaded_file_list, Vread_circle) (Vread_symbol_positions_list, Vread_with_symbol_positions) (Vsource_directory, Vstandard_input, Vuser_init_file, Vvalues) (force_load_messages, load_convert_to_unibyte) (load_dangerous_libraries, load_force_doc_strings) (load_in_progress): Remove. * keymap.c (syms_of_keymap): Update. (Vdefine_key_rebound_commands, Vemulation_mode_map_alists) (Vminibuffer_local_completion_map) (Vminibuffer_local_filename_completion_map) (Vminibuffer_local_filename_must_match_map) (Vminibuffer_local_map, Vminibuffer_local_must_match_map) (Vminibuffer_local_ns_map, Vminor_mode_map_alist) (Vminor_mode_overriding_map_alist, Vwhere_is_preferred_modifier): Remove. * keyboard.c (syms_of_keyboard): Update. (Vauto_save_timeout, Vcommand_error_function) (Vcommand_hook_internal, Vdeactivate_mark) (Vdeferred_action_function, Vdeferred_action_list) (Vdisable_point_adjustment, Vdouble_click_time) (Vecho_keystrokes, Venable_disabled_menus_and_buttons) (Vfunction_key_map, Vglobal_disable_point_adjustment) (Vhelp_char, Vhelp_event_list, Vhelp_form) (Vinput_method_function, Vinput_method_previous_message) (Vkey_translation_map, Vlast_event_frame) (Vlucid_menu_bar_dirty_flag, Vmenu_bar_final_items) (Vminibuffer_message_timeout, Voverriding_local_map) (Voverriding_local_map_menu_flag, Vpost_command_hook) (Vpre_command_hook, Vprefix_help_command) (Vsaved_region_selection, Vselect_active_regions) (Vshow_help_function, Vspecial_event_map, Vsuggest_key_bindings) (Vthis_command, Vthis_command_keys_shift_translated) (Vthis_original_command, Vthrow_on_input, Vtimer_idle_list) (Vtimer_list, Vtool_bar_separator_image_expression, Vtop_level) (Vtty_erase_char, Vunread_command_events) (Vunread_input_method_events, Vunread_post_input_method_events) (auto_save_interval, cannot_suspend, do_mouse_tracking) (double_click_fuzz, extra_keyboard_modifiers) (inhibit_local_menu_bar_menus, last_command_event) (last_input_event, last_nonmenu_event, menu_prompt_more_char) (menu_prompting, meta_prefix_char, num_input_keys) (num_nonmacro_input_events, polling_period, unread_command_char): Remove. * insdel.c (syms_of_insdel): Update. (Vcombine_after_change_calls, check_markers_debug_flag): Remove. * indent.c (syms_of_indent): Update. (indent_tabs_mode): Remove. * image.c (syms_of_image): Update. (Vimage_cache_eviction_delay, Vimage_types) (Vimagemagick_render_type, Vmax_image_size, Vx_bitmap_file_path) (cross_disabled_images): Remove. * fringe.c (syms_of_fringe): Update. (Vfringe_bitmaps, Voverflow_newline_into_fringe): Remove. * frame.c (syms_of_frame): Update. (Vdefault_frame_alist, Vdefault_frame_scroll_bars) (Vdelete_frame_functions, Vframe_alpha_lower_limit) (Vmake_pointer_invisible, Vmenu_bar_mode, Vmouse_highlight) (Vmouse_position_function, Vterminal_frame, Vtool_bar_mode) (Vx_resource_class, Vx_resource_name, focus_follows_mouse): Remove. * fontset.c (syms_of_fontset): Update. (Valternate_fontname_alist, Vfont_encoding_charset_alist) (Vfontset_alias_alist, Vignore_relative_composition) (Votf_script_alist, Vuse_default_ascent) (Vvertical_centering_font_regexp): Remove. * font.c (syms_of_font): Update. (Vfont_encoding_alist, Vfont_log, Vfont_slant_table) (Vfont_weight_table, Vfont_width_table): Remove. * fns.c (syms_of_fns): Update. (Vfeatures, use_dialog_box, use_file_dialog): Remove. * filelock.c (syms_of_filelock): Update. (Vtemporary_file_directory): Remove. * fileio.c (syms_of_fileio): Update. (Vafter_insert_file_functions, Vauto_save_include_big_deletions) (Vauto_save_list_file_name, Vauto_save_visited_file_name) (Vdefault_file_name_coding_system, Vfile_name_coding_system) (Vfile_name_handler_alist, Vinhibit_file_name_handlers) (Vinhibit_file_name_operation, Vset_auto_coding_function) (Vwrite_region_annotate_functions) (Vwrite_region_annotations_so_far) (Vwrite_region_post_annotation_function) (delete_by_moving_to_trash, write_region_inhibit_fsync): Remove. (Vw32_get_true_file_attributes): Remove declaration. * eval.c (syms_of_eval): Update. (Vdebug_ignored_errors, Vdebug_on_error, Vdebug_on_signal) (Vdebugger, Vinhibit_quit, Vmacro_declaration_function) (Vquit_flag, Vsignal_hook_function, Vstack_trace_on_error) (debug_on_next_call, debug_on_quit, debugger_may_continue) (max_lisp_eval_depth, max_specpdl_size): Remove. * emacs.c (syms_of_emacs): Update. (Vafter_init_time, Vbefore_init_time, Vcommand_line_args) (Vdynamic_library_alist, Vemacs_copyright, Vemacs_version) (Vinstallation_directory, Vinvocation_directory) (Vinvocation_name, Vkill_emacs_hook, Vpath_separator) (Vprevious_system_messages_locale, Vprevious_system_time_locale) (Vsystem_configuration, Vsystem_configuration_options) (Vsystem_messages_locale, Vsystem_time_locale, Vsystem_type) (inhibit_x_resources, noninteractive1): Remove. * editfns.c (syms_of_editfns): Update. (Vbuffer_access_fontified_property) (Vbuffer_access_fontify_functions, Vinhibit_field_text_motion) (Voperating_system_release, Vsystem_name, Vuser_full_name) (Vuser_login_name, Vuser_real_login_name): Remove. * dosfns.c (syms_of_dosfns): Update. (Vdos_display_scancodes, Vdos_version, Vdos_windows_version) (dos_codepage, dos_country_code, dos_decimal_point) (dos_hyper_key, dos_keyboard_layout, dos_keypad_mode) (dos_super_key, dos_timezone_offset): Remove. * doc.c (syms_of_doc): Update. (Vbuild_files, Vdoc_file_name): Remove. * dispnew.c (syms_of_display): Update. (Vglyph_table, Vinitial_window_system) (Vredisplay_preemption_period, Vstandard_display_table) (Vwindow_system_version, baud_rate, cursor_in_echo_area) (inverse_video, redisplay_dont_pause, visible_bell): Remove. * dired.c (syms_of_dired): Update. (Vcompletion_ignored_extensions): Remove. (Vw32_get_true_file_attributes): Remove declaration. * dbusbind.c (syms_of_dbusbind): Update. (Vdbus_debug, Vdbus_registered_buses) (Vdbus_registered_objects_table): Remove. * data.c (syms_of_data): Update. (Vmost_negative_fixnum, Vmost_positive_fixnum): Remove. * composite.c (syms_of_composite): Update. (Vauto_composition_function, Vauto_composition_mode) (Vcompose_chars_after_function, Vcomposition_function_table): Remove. * coding.c (syms_of_coding): Update. (Vcharset_revision_table, Vcoding_category_list) (Vcoding_system_alist, Vcoding_system_for_read) (Vcoding_system_for_write, Vcoding_system_list) (Vdefault_process_coding_system, Venable_character_translation) (Vfile_coding_system_alist, Vlast_code_conversion_error) (Vlast_coding_system_used, Vlatin_extra_code_table) (Vlocale_coding_system, Vnetwork_coding_system_alist) (Vprocess_coding_system_alist) (Vselect_safe_coding_system_function) (Vstandard_translation_table_for_decode) (Vstandard_translation_table_for_encode) (Vtranslation_table_for_input, coding_system_require_warning) (eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided) (eol_mnemonic_unix, inherit_process_coding_system) (inhibit_eol_conversion, inhibit_iso_escape_detection) (inhibit_null_byte_detection): Remove. * cmds.c (syms_of_cmds): Update. (Vpost_self_insert_hook): Remove. * charset.c (syms_of_charset): Update. (Vcharset_list, Vcharset_map_path, Vcurrent_iso639_language) (inhibit_load_charset_map): Remove. * character.c (syms_of_character): Update. (Vauto_fill_chars, Vchar_direction_table, Vchar_script_table) (Vchar_width_table, Vprintable_chars) (Vscript_representative_chars, Vtranslation_table_vector) (Vunicode_category_table): Remove. * ccl.c (syms_of_ccl): Update. (Vcode_conversion_map_vector, Vfont_ccl_encoder_alist) (Vtranslation_hash_table_vector): Remove. * category.c (syms_of_category): Update. (Vword_combining_categories, Vword_separating_categories): Remove. * callproc.c (syms_of_callproc): Update. (Vconfigure_info_directory, Vdata_directory, Vdoc_directory) (Vexec_directory, Vexec_path, Vexec_suffixes) (Vinitial_environment, Vprocess_environment) (Vshared_game_score_directory, Vshell_file_name): Remove. * callint.c (syms_of_callint): Update. (Vcommand_debug_status, Vcommand_history, Vcurrent_prefix_arg) (Vmark_even_if_inactive, Vmouse_leave_buffer_hook): Remove. * bytecode.c (syms_of_bytecode): Update. (Vbyte_code_meter, byte_metering_on): Remove. * buffer.c (syms_of_buffer): Update. (Vafter_change_functions, Vbefore_change_functions) (Vchange_major_mode_hook, Vfirst_change_hook) (Vinhibit_read_only, Vkill_buffer_query_functions) (Vtransient_mark_mode, inhibit_modification_hooks): Remove. * alloc.c (syms_of_alloc): Update. (Vgc_cons_percentage, Vgc_elapsed, Vmemory_full) (Vmemory_signal_data, Vpost_gc_hook, Vpurify_flag) (cons_cells_consed, floats_consed, garbage_collection_messages) (gc_cons_threshold, gcs_done, intervals_consed) (misc_objects_consed, pure_bytes_used, string_chars_consed) (strings_consed, symbols_consed, vector_cells_consed): Remove. * lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL) (DEFVAR_INT): Assume global is in `globals'. * alloc.c (globals): Define.
author Tom Tromey <tromey@redhat.com>
date Tue, 18 Jan 2011 13:45:37 -0700
parents 56d3e9c28eb0
children
comparison
equal deleted inserted replaced
112363:6a0c66185ba1 112364:42e22c4f06b7
159 strings. */ 159 strings. */
160 160
161 #define GC_STRING_BYTES(S) (STRING_BYTES (S)) 161 #define GC_STRING_BYTES(S) (STRING_BYTES (S))
162 #define GC_STRING_CHARS(S) ((S)->size & ~ARRAY_MARK_FLAG) 162 #define GC_STRING_CHARS(S) ((S)->size & ~ARRAY_MARK_FLAG)
163 163
164 /* Global variables. */
165 struct emacs_globals globals;
166
164 /* Number of bytes of consing done since the last gc. */ 167 /* Number of bytes of consing done since the last gc. */
165 168
166 int consing_since_gc; 169 int consing_since_gc;
167 170
168 /* Count the amount of consing of various sorts of space. */
169
170 EMACS_INT cons_cells_consed;
171 EMACS_INT floats_consed;
172 EMACS_INT vector_cells_consed;
173 EMACS_INT symbols_consed;
174 EMACS_INT string_chars_consed;
175 EMACS_INT misc_objects_consed;
176 EMACS_INT intervals_consed;
177 EMACS_INT strings_consed;
178
179 /* Minimum number of bytes of consing since GC before next GC. */
180
181 EMACS_INT gc_cons_threshold;
182
183 /* Similar minimum, computed from Vgc_cons_percentage. */ 171 /* Similar minimum, computed from Vgc_cons_percentage. */
184 172
185 EMACS_INT gc_relative_threshold; 173 EMACS_INT gc_relative_threshold;
186
187 static Lisp_Object Vgc_cons_percentage;
188 174
189 /* Minimum number of bytes of consing since GC before next GC, 175 /* Minimum number of bytes of consing since GC before next GC,
190 when memory is full. */ 176 when memory is full. */
191 177
192 EMACS_INT memory_full_cons_threshold; 178 EMACS_INT memory_full_cons_threshold;
199 This is for code which is written on the assumption that 185 This is for code which is written on the assumption that
200 no GC will happen, so as to verify that assumption. */ 186 no GC will happen, so as to verify that assumption. */
201 187
202 int abort_on_gc; 188 int abort_on_gc;
203 189
204 /* Nonzero means display messages at beginning and end of GC. */
205
206 int garbage_collection_messages;
207
208 /* Number of live and free conses etc. */ 190 /* Number of live and free conses etc. */
209 191
210 static int total_conses, total_markers, total_symbols, total_vector_size; 192 static int total_conses, total_markers, total_symbols, total_vector_size;
211 static int total_free_conses, total_free_markers, total_free_symbols; 193 static int total_free_conses, total_free_markers, total_free_symbols;
212 static int total_free_floats, total_floats; 194 static int total_free_floats, total_floats;
222 #define SPARE_MEMORY (1 << 14) 204 #define SPARE_MEMORY (1 << 14)
223 205
224 /* Number of extra blocks malloc should get when it needs more core. */ 206 /* Number of extra blocks malloc should get when it needs more core. */
225 207
226 static int malloc_hysteresis; 208 static int malloc_hysteresis;
227
228 /* Non-nil means defun should do purecopy on the function definition. */
229
230 Lisp_Object Vpurify_flag;
231
232 /* Non-nil means we are handling a memory-full error. */
233
234 Lisp_Object Vmemory_full;
235 209
236 /* Initialize it to a nonzero value to force it into data space 210 /* Initialize it to a nonzero value to force it into data space
237 (rather than bss space). That way unexec will remap it into text 211 (rather than bss space). That way unexec will remap it into text
238 space (pure), on some systems. We have not implemented the 212 space (pure), on some systems. We have not implemented the
239 remapping on more recent systems because this is less important 213 remapping on more recent systems because this is less important
258 (((PNTR_COMPARISON_TYPE) (P) \ 232 (((PNTR_COMPARISON_TYPE) (P) \
259 < (PNTR_COMPARISON_TYPE) ((char *) purebeg + pure_size)) \ 233 < (PNTR_COMPARISON_TYPE) ((char *) purebeg + pure_size)) \
260 && ((PNTR_COMPARISON_TYPE) (P) \ 234 && ((PNTR_COMPARISON_TYPE) (P) \
261 >= (PNTR_COMPARISON_TYPE) purebeg)) 235 >= (PNTR_COMPARISON_TYPE) purebeg))
262 236
263 /* Total number of bytes allocated in pure storage. */
264
265 EMACS_INT pure_bytes_used;
266
267 /* Index in pure at which next pure Lisp object will be allocated.. */ 237 /* Index in pure at which next pure Lisp object will be allocated.. */
268 238
269 static EMACS_INT pure_bytes_used_lisp; 239 static EMACS_INT pure_bytes_used_lisp;
270 240
271 /* Number of bytes allocated for non-Lisp objects in pure storage. */ 241 /* Number of bytes allocated for non-Lisp objects in pure storage. */
275 /* If nonzero, this is a warning delivered by malloc and not yet 245 /* If nonzero, this is a warning delivered by malloc and not yet
276 displayed. */ 246 displayed. */
277 247
278 const char *pending_malloc_warning; 248 const char *pending_malloc_warning;
279 249
280 /* Pre-computed signal argument for use when memory is exhausted. */
281
282 Lisp_Object Vmemory_signal_data;
283
284 /* Maximum amount of C stack to save when a GC happens. */ 250 /* Maximum amount of C stack to save when a GC happens. */
285 251
286 #ifndef MAX_SAVE_STACK 252 #ifndef MAX_SAVE_STACK
287 #define MAX_SAVE_STACK 16000 253 #define MAX_SAVE_STACK 16000
288 #endif 254 #endif
299 265
300 Lisp_Object Qgc_cons_threshold, Qchar_table_extra_slots; 266 Lisp_Object Qgc_cons_threshold, Qchar_table_extra_slots;
301 267
302 /* Hook run after GC has finished. */ 268 /* Hook run after GC has finished. */
303 269
304 Lisp_Object Vpost_gc_hook, Qpost_gc_hook; 270 Lisp_Object Qpost_gc_hook;
305
306 Lisp_Object Vgc_elapsed; /* accumulated elapsed time in GC */
307 EMACS_INT gcs_done; /* accumulated GCs */
308 271
309 static void mark_buffer (Lisp_Object); 272 static void mark_buffer (Lisp_Object);
310 static void mark_terminals (void); 273 static void mark_terminals (void);
311 extern void mark_kboards (void); 274 extern void mark_kboards (void);
312 extern void mark_ttys (void); 275 extern void mark_ttys (void);
6208 } 6171 }
6209 6172
6210 void 6173 void
6211 syms_of_alloc (void) 6174 syms_of_alloc (void)
6212 { 6175 {
6213 DEFVAR_INT ("gc-cons-threshold", &gc_cons_threshold, 6176 DEFVAR_INT ("gc-cons-threshold", gc_cons_threshold,
6214 doc: /* *Number of bytes of consing between garbage collections. 6177 doc: /* *Number of bytes of consing between garbage collections.
6215 Garbage collection can happen automatically once this many bytes have been 6178 Garbage collection can happen automatically once this many bytes have been
6216 allocated since the last garbage collection. All data types count. 6179 allocated since the last garbage collection. All data types count.
6217 6180
6218 Garbage collection happens automatically only when `eval' is called. 6181 Garbage collection happens automatically only when `eval' is called.
6219 6182
6220 By binding this temporarily to a large number, you can effectively 6183 By binding this temporarily to a large number, you can effectively
6221 prevent garbage collection during a part of the program. 6184 prevent garbage collection during a part of the program.
6222 See also `gc-cons-percentage'. */); 6185 See also `gc-cons-percentage'. */);
6223 6186
6224 DEFVAR_LISP ("gc-cons-percentage", &Vgc_cons_percentage, 6187 DEFVAR_LISP ("gc-cons-percentage", Vgc_cons_percentage,
6225 doc: /* *Portion of the heap used for allocation. 6188 doc: /* *Portion of the heap used for allocation.
6226 Garbage collection can happen automatically once this portion of the heap 6189 Garbage collection can happen automatically once this portion of the heap
6227 has been allocated since the last garbage collection. 6190 has been allocated since the last garbage collection.
6228 If this portion is smaller than `gc-cons-threshold', this is ignored. */); 6191 If this portion is smaller than `gc-cons-threshold', this is ignored. */);
6229 Vgc_cons_percentage = make_float (0.1); 6192 Vgc_cons_percentage = make_float (0.1);
6230 6193
6231 DEFVAR_INT ("pure-bytes-used", &pure_bytes_used, 6194 DEFVAR_INT ("pure-bytes-used", pure_bytes_used,
6232 doc: /* Number of bytes of sharable Lisp data allocated so far. */); 6195 doc: /* Number of bytes of sharable Lisp data allocated so far. */);
6233 6196
6234 DEFVAR_INT ("cons-cells-consed", &cons_cells_consed, 6197 DEFVAR_INT ("cons-cells-consed", cons_cells_consed,
6235 doc: /* Number of cons cells that have been consed so far. */); 6198 doc: /* Number of cons cells that have been consed so far. */);
6236 6199
6237 DEFVAR_INT ("floats-consed", &floats_consed, 6200 DEFVAR_INT ("floats-consed", floats_consed,
6238 doc: /* Number of floats that have been consed so far. */); 6201 doc: /* Number of floats that have been consed so far. */);
6239 6202
6240 DEFVAR_INT ("vector-cells-consed", &vector_cells_consed, 6203 DEFVAR_INT ("vector-cells-consed", vector_cells_consed,
6241 doc: /* Number of vector cells that have been consed so far. */); 6204 doc: /* Number of vector cells that have been consed so far. */);
6242 6205
6243 DEFVAR_INT ("symbols-consed", &symbols_consed, 6206 DEFVAR_INT ("symbols-consed", symbols_consed,
6244 doc: /* Number of symbols that have been consed so far. */); 6207 doc: /* Number of symbols that have been consed so far. */);
6245 6208
6246 DEFVAR_INT ("string-chars-consed", &string_chars_consed, 6209 DEFVAR_INT ("string-chars-consed", string_chars_consed,
6247 doc: /* Number of string characters that have been consed so far. */); 6210 doc: /* Number of string characters that have been consed so far. */);
6248 6211
6249 DEFVAR_INT ("misc-objects-consed", &misc_objects_consed, 6212 DEFVAR_INT ("misc-objects-consed", misc_objects_consed,
6250 doc: /* Number of miscellaneous objects that have been consed so far. */); 6213 doc: /* Number of miscellaneous objects that have been consed so far. */);
6251 6214
6252 DEFVAR_INT ("intervals-consed", &intervals_consed, 6215 DEFVAR_INT ("intervals-consed", intervals_consed,
6253 doc: /* Number of intervals that have been consed so far. */); 6216 doc: /* Number of intervals that have been consed so far. */);
6254 6217
6255 DEFVAR_INT ("strings-consed", &strings_consed, 6218 DEFVAR_INT ("strings-consed", strings_consed,
6256 doc: /* Number of strings that have been consed so far. */); 6219 doc: /* Number of strings that have been consed so far. */);
6257 6220
6258 DEFVAR_LISP ("purify-flag", &Vpurify_flag, 6221 DEFVAR_LISP ("purify-flag", Vpurify_flag,
6259 doc: /* Non-nil means loading Lisp code in order to dump an executable. 6222 doc: /* Non-nil means loading Lisp code in order to dump an executable.
6260 This means that certain objects should be allocated in shared (pure) space. 6223 This means that certain objects should be allocated in shared (pure) space.
6261 It can also be set to a hash-table, in which case this table is used to 6224 It can also be set to a hash-table, in which case this table is used to
6262 do hash-consing of the objects allocated to pure space. */); 6225 do hash-consing of the objects allocated to pure space. */);
6263 6226
6264 DEFVAR_BOOL ("garbage-collection-messages", &garbage_collection_messages, 6227 DEFVAR_BOOL ("garbage-collection-messages", garbage_collection_messages,
6265 doc: /* Non-nil means display messages at start and end of garbage collection. */); 6228 doc: /* Non-nil means display messages at start and end of garbage collection. */);
6266 garbage_collection_messages = 0; 6229 garbage_collection_messages = 0;
6267 6230
6268 DEFVAR_LISP ("post-gc-hook", &Vpost_gc_hook, 6231 DEFVAR_LISP ("post-gc-hook", Vpost_gc_hook,
6269 doc: /* Hook run after garbage collection has finished. */); 6232 doc: /* Hook run after garbage collection has finished. */);
6270 Vpost_gc_hook = Qnil; 6233 Vpost_gc_hook = Qnil;
6271 Qpost_gc_hook = intern_c_string ("post-gc-hook"); 6234 Qpost_gc_hook = intern_c_string ("post-gc-hook");
6272 staticpro (&Qpost_gc_hook); 6235 staticpro (&Qpost_gc_hook);
6273 6236
6274 DEFVAR_LISP ("memory-signal-data", &Vmemory_signal_data, 6237 DEFVAR_LISP ("memory-signal-data", Vmemory_signal_data,
6275 doc: /* Precomputed `signal' argument for memory-full error. */); 6238 doc: /* Precomputed `signal' argument for memory-full error. */);
6276 /* We build this in advance because if we wait until we need it, we might 6239 /* We build this in advance because if we wait until we need it, we might
6277 not be able to allocate the memory to hold it. */ 6240 not be able to allocate the memory to hold it. */
6278 Vmemory_signal_data 6241 Vmemory_signal_data
6279 = pure_cons (Qerror, 6242 = pure_cons (Qerror,
6280 pure_cons (make_pure_c_string ("Memory exhausted--use M-x save-some-buffers then exit and restart Emacs"), Qnil)); 6243 pure_cons (make_pure_c_string ("Memory exhausted--use M-x save-some-buffers then exit and restart Emacs"), Qnil));
6281 6244
6282 DEFVAR_LISP ("memory-full", &Vmemory_full, 6245 DEFVAR_LISP ("memory-full", Vmemory_full,
6283 doc: /* Non-nil means Emacs cannot get much more Lisp memory. */); 6246 doc: /* Non-nil means Emacs cannot get much more Lisp memory. */);
6284 Vmemory_full = Qnil; 6247 Vmemory_full = Qnil;
6285 6248
6286 staticpro (&Qgc_cons_threshold); 6249 staticpro (&Qgc_cons_threshold);
6287 Qgc_cons_threshold = intern_c_string ("gc-cons-threshold"); 6250 Qgc_cons_threshold = intern_c_string ("gc-cons-threshold");
6288 6251
6289 staticpro (&Qchar_table_extra_slots); 6252 staticpro (&Qchar_table_extra_slots);
6290 Qchar_table_extra_slots = intern_c_string ("char-table-extra-slots"); 6253 Qchar_table_extra_slots = intern_c_string ("char-table-extra-slots");
6291 6254
6292 DEFVAR_LISP ("gc-elapsed", &Vgc_elapsed, 6255 DEFVAR_LISP ("gc-elapsed", Vgc_elapsed,
6293 doc: /* Accumulated time elapsed in garbage collections. 6256 doc: /* Accumulated time elapsed in garbage collections.
6294 The time is in seconds as a floating point value. */); 6257 The time is in seconds as a floating point value. */);
6295 DEFVAR_INT ("gcs-done", &gcs_done, 6258 DEFVAR_INT ("gcs-done", gcs_done,
6296 doc: /* Accumulated number of garbage collections done. */); 6259 doc: /* Accumulated number of garbage collections done. */);
6297 6260
6298 defsubr (&Scons); 6261 defsubr (&Scons);
6299 defsubr (&Slist); 6262 defsubr (&Slist);
6300 defsubr (&Svector); 6263 defsubr (&Svector);