bug-readline
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-readline] [PATCH] Enable visibility annotations


From: Pedro Alves
Subject: Re: [Bug-readline] [PATCH] Enable visibility annotations
Date: Mon, 18 Apr 2016 11:19:13 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.7.1

On 04/15/2016 01:47 PM, Yury Gribov wrote:
> On 04/15/2016 02:57 PM, Pedro Alves wrote:
>> On 04/15/2016 12:39 PM, Yury Gribov wrote:
>>
>>> I've attached the script I've came up with (it properly works around
>>> copy relocations and thus detects imported external variables). On my
>>> system (with older gdb which only has _rl_echoing_p,
>>> _rl_qsort_string_compare and _rl_print_completions_horizontally) it
>>
>> Can you attach rl_orig.lst and rl_new.lst (and preferably a version of
>> the script that doesn't try to regenerate those), so that others can
>> easily run this on their systems without having to patch readline?
> 
> Right, attached.
> 
> I've also fixed an issue in script and added fixed patch which
> additionally visualizes _rl_horizontal_scroll_mode (required by trunk gdb).

I ran this now and got:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Symbols which may be used and are missing in new libreadline:
rl_complete_with_tilde_expansion
_rl_mark_modified_lines

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

I wasn't expecting to ever see a "rl_" symbol here?  What was the
logic used to decide whether a symbol should be exported?

Here's the diff between your rl_orig.lst rl_new.lst files.  There
are more "rl_" files being hidden, e.g.:

 rl_blink_matching_paren
 rl_byte_oriented
 rl_display_fixed.

There are other symbols here that look like should probably be public.
For example, history_offset is used by readline's examples:

 readline/src/examples/hist_purgecmd.c:44:extern int history_offset;
 readline/src/examples/hist_purgecmd.c:142:        history_offset--;     /* 
moving backwards in history list */
 readline/src/examples/hist_erasedups.c:41:extern int history_offset;
 readline/src/examples/hist_erasedups.c:114:           history_offset--;        
 /* moving backwards in history list */

so I'd assume that that's a public symbol and that those
examples no longer link after your patch?

Here's the diff between your rl_orig.lst and rl_new.lst
files, showing which symbols would be hidden:

--- rl_orig.lst 2016-04-18 10:58:51.314617490 +0100
+++ rl_new.lst  2016-04-18 10:58:51.302617526 +0100
@@ -1,27 +1,18 @@
 
 add_history
 add_history_time
-alloc_history_entry
-alphabetic
 append_history
 __bss_start
 clear_history
-completion_matches
-copy_history_entry
-crlf
 current_history
-ding
 _edata
 emacs_ctlx_keymap
 emacs_meta_keymap
 emacs_standard_keymap
 _end
-filename_completion_function
 _fini
 free_history_entry
-free_undo_list
 funmap
-funmap_program_specific_entry_start
 get_history_event
 history_arg_extract
 history_base
@@ -37,7 +28,6 @@ history_length
 history_list
 history_max_entries
 history_no_expand_chars
-history_offset
 history_quotes_inhibit_expansion
 history_search
 history_search_delimiter_chars
@@ -53,44 +43,23 @@ history_word_delimiters
 history_write_timestamps
 _init
 max_input_history
-maybe_replace_line
-maybe_save_line
-maybe_unsave_line
 Name
 next_history
 previous_history
 read_history
 read_history_range
 readline
-readline_internal_char
-readline_internal_setup
-readline_internal_teardown
 remove_history
-replace_history_data
 replace_history_entry
 rl_abort
-_rl_abort_internal
 rl_add_defun
 rl_add_funmap_entry
-_rl_add_macro_char
 rl_add_undo
-_rl_adjust_point
-_rl_allow_pathname_alphabetic_chars
 rl_alphabetic
 rl_already_prompted
-_rl_any_typein
-_rl_arg_callback
-_rl_argcxt
-_rl_arg_dispatch
-_rl_arg_getchar
-_rl_arg_init
-_rl_arg_overflow
-rl_arg_sign
 rl_arrow_keys
 rl_attempted_completion_function
 rl_attempted_completion_over
-_rl_audit_tty
-_rl_backspace
 rl_backward
 rl_backward_byte
 rl_backward_char
@@ -104,7 +73,6 @@ rl_basic_word_break_characters
 rl_beginning_of_history
 rl_begin_undo_group
 rl_beg_of_line
-_rl_bell_preference
 rl_binding_keymap
 rl_bind_key
 rl_bind_key_if_unbound
@@ -114,15 +82,6 @@ rl_bind_keyseq
 rl_bind_keyseq_if_unbound
 rl_bind_keyseq_if_unbound_in_map
 rl_bind_keyseq_in_map
-_rl_bind_stty_chars
-rl_blink_matching_paren
-_rl_block_sigint
-_rl_block_sigwinch
-rl_byte_oriented
-_rl_callback_data
-_rl_callback_data_alloc
-_rl_callback_data_dispose
-_rl_callback_func
 rl_callback_handler_install
 rl_callback_handler_remove
 rl_callback_read_char
@@ -130,40 +89,23 @@ rl_call_last_kbd_macro
 rl_capitalize_word
 rl_catch_signals
 rl_catch_sigwinch
-_rl_caught_signal
 rl_change_environment
 rl_character_len
 rl_char_is_quoted_p
 rl_char_search
-_rl_char_search_internal
-_rl_char_value
 rl_cleanup_after_signal
-_rl_clean_up_for_exit
 rl_clear_history
 rl_clear_message
 rl_clear_pending_input
-_rl_clear_screen
 rl_clear_screen
 rl_clear_signals
-_rl_clear_to_eol
-_rl_colored_stats
-_rl_color_ext_list
-_rl_color_indicator
-_rl_comment_begin
-_rl_compare_chars
 rl_complete
 rl_complete_internal
 _rl_complete_mark_directories
 _rl_complete_mark_symlink_dirs
 rl_completer_quote_characters
 rl_completer_word_break_characters
-_rl_complete_show_all
-_rl_complete_show_unmodified
-rl_complete_with_tilde_expansion
 rl_completion_append_character
-_rl_completion_case_fold
-_rl_completion_case_map
-_rl_completion_columns
 rl_completion_display_matches_hook
 rl_completion_entry_function
 rl_completion_found_quote
@@ -178,17 +120,12 @@ rl_completion_suppress_append
 rl_completion_suppress_quote
 rl_completion_type
 rl_completion_word_break_hook
-_rl_control_keypad
-_rl_convert_meta_chars_to_ascii
 rl_copy_backward_word
 rl_copy_forward_word
 rl_copy_keymap
 rl_copy_region_to_kill
 rl_copy_text
-_rl_copy_undo_entry
-_rl_copy_undo_list
 rl_crlf
-_rl_current_display_line
 rl_delete
 rl_delete_horizontal_space
 rl_delete_or_show_completions
@@ -196,24 +133,14 @@ rl_delete_text
 rl_deprep_term_function
 rl_deprep_terminal
 rl_digit_argument
-_rl_digit_p
-_rl_digit_value
 rl_ding
 rl_directory_completion_hook
 rl_directory_rewrite_hook
-_rl_disable_meta_key
-_rl_disable_tty_signals
 rl_discard_argument
 rl_discard_keymap
-_rl_dispatch
-_rl_dispatch_callback
 rl_dispatching
-_rl_dispatching_keymap
-_rl_dispatch_subseq
-rl_display_fixed
 rl_display_match_list
 rl_display_prompt
-_rl_doing_an_undo
 rl_do_lowercase_version
 rl_done
 rl_do_undo
@@ -221,33 +148,23 @@ rl_downcase_word
 rl_dump_functions
 rl_dump_macros
 rl_dump_variables
-_rl_echo_control_chars
-_rl_echoctl
 _rl_echoing_p
 rl_echo_signal_char
 rl_editing_mode
 rl_emacs_editing_mode
-_rl_enable_keypad
-_rl_enable_meta
-_rl_enable_meta_key
-_rl_enable_paren_matching
 rl_end
 rl_end_kbd_macro
 rl_end_of_history
 rl_end_of_line
 rl_end_undo_group
-_rl_eof_char
-_rl_erase_at_end_of_line
 rl_erase_empty_line
 _rl_erase_entire_line
-_rl_errmsg
 rl_event_hook
 rl_exchange_point_and_mark
 rl_execute_next
 rl_executing_key
 rl_executing_keymap
 rl_executing_keyseq
-_rl_executing_keyseq_size
 rl_executing_macro
 rl_expand_prompt
 rl_explicit_arg
@@ -260,25 +177,15 @@ rl_filename_quoting_desired
 rl_filename_quoting_function
 rl_filename_rewrite_hook
 rl_filename_stat_hook
-_rl_find_completion_word
-_rl_find_next_mbchar
-_rl_find_prev_mbchar
-_rl_fix_last_undo_of_type
-_rl_fix_point
 rl_forced_update_display
 rl_forward
 rl_forward_byte
 rl_forward_char
-_rl_forward_char_internal
 rl_forward_search_history
 rl_forward_word
 rl_free
-_rl_free_history_entry
 rl_free_keymap
 rl_free_line_state
-_rl_free_match_list
-_rl_free_saved_history_line
-_rl_free_undo_list
 rl_free_undo_list
 rl_function_dumper
 rl_function_of_keyseq
@@ -286,19 +193,15 @@ rl_funmap_names
 rl_generic_bind
 rl_getc
 rl_getc_function
-_rl_get_char_len
 rl_get_keymap
 rl_get_keymap_by_name
 rl_get_keymap_name
 rl_get_keymap_name_from_edit_mode
 rl_get_next_history
 rl_get_previous_history
-_rl_get_screen_size
 rl_get_screen_size
 rl_get_termcap
 rl_gnu_readline_p
-_rl_history_preserve_point
-_rl_history_saved_point
 rl_history_search_backward
 rl_history_search_forward
 rl_history_substr_search_backward
@@ -307,238 +210,115 @@ _rl_horizontal_scroll_mode
 rl_ignore_completion_duplicates
 rl_ignore_some_completions_function
 rl_inhibit_completion
-_rl_init_eightbit
 rl_initialize
 rl_initialize_funmap
-_rl_init_line_state
-_rl_init_terminal_io
-_rl_input_available
 rl_input_available_hook
-_rl_input_queued
 rl_insert
-_rl_insert_char
 rl_insert_close
 rl_insert_comment
 rl_insert_completions
 rl_insert_mode
 rl_insert_text
-_rl_insert_typein
-_rl_in_stream
 rl_instream
-_rl_internal_char_cleanup
-_rl_interrupt_immediately
-_rl_intr_char
 rl_invoking_keyseqs
 rl_invoking_keyseqs_in_map
-_rl_iscxt
-_rl_isearch_callback
-_rl_isearch_dispatch
-_rl_isearch_terminators
-_rl_is_mbchar_matched
-_rl_keymap
-_rl_keyseq_chain_dispose
-_rl_keyseq_cxt_alloc
-_rl_keyseq_cxt_dispose
-_rl_keyseq_timeout
 rl_key_sequence_length
 rl_kill_full_line
-_rl_kill_kbd_macro
 rl_kill_line
 rl_kill_region
 rl_kill_text
 rl_kill_word
-_rl_kscxt
-_rl_last_command_was_kill
-_rl_last_c_pos
 rl_last_func
-_rl_last_v_pos
 rl_library_version
 rl_line_buffer
-rl_line_buffer_len
-rl_linefunc
 rl_list_funmap_names
-_rl_lowercase_p
 rl_macro_bind
 rl_macro_dumper
 rl_make_bare_keymap
 rl_make_keymap
-_rl_make_prompt_for_search
 rl_mark
-_rl_mark_modified_lines
-_rl_match_hidden_files
 rl_maybe_replace_line
 rl_maybe_save_line
 rl_maybe_unsave_line
 rl_menu_complete
-_rl_menu_complete_prefix_first
-rl_menu_completion_entry_function
 rl_message
-_rl_meta_flag
 rl_modifying
-_rl_move_cursor_relative
-_rl_move_vert
 rl_named_function
 rl_newline
-_rl_next_macro_key
 rl_noninc_forward_search
 rl_noninc_forward_search_again
 rl_noninc_reverse_search
 rl_noninc_reverse_search_again
-_rl_nscxt
-_rl_nsearch_callback
-_rl_null_function
 rl_num_chars_to_read
 rl_numeric_arg
 rl_old_menu_complete
 rl_on_new_line
 rl_on_new_line_with_prompt
-_rl_output_character_function
-_rl_output_meta_chars
-_rl_output_some_chars
-_rl_out_stream
 rl_outstream
-_rl_overwrite_char
 rl_overwrite_mode
-_rl_overwrite_rubout
-_rl_page_completions
 rl_parse_and_bind
-_rl_parse_colors
-_rl_parsing_conditionalized_out
 rl_pending_input
 rl_point
-_rl_pop_executing_macro
 rl_possible_completions
-_rl_possible_control_prefixes
-_rl_possible_meta_prefixes
 rl_prefer_env_winsize
 rl_pre_input_hook
-_rl_prep_non_filename_text
 rl_prep_term_function
 rl_prep_terminal
-_rl_prev_macro_key
-_rl_print_color_indicator
 _rl_print_completions_horizontally
 rl_print_last_kbd_macro
 rl_prompt
-_rl_pure_alphabetic
-_rl_pushed_input_available
-_rl_push_executing_macro
 rl_push_macro_input
-_rl_put_indicator
 _rl_qsort_string_compare
-_rl_quit_char
 rl_quoted_insert
 rl_read_init_file
 rl_read_key
 rl_readline_name
 rl_readline_state
 rl_readline_version
-_rl_read_mbchar
-_rl_read_mbstring
 rl_redisplay
-_rl_redisplay_after_sigwinch
 rl_redisplay_function
 rl_refresh_line
-_rl_release_sigint
-_rl_release_sigwinch
-rl_replace_from_history
 rl_replace_line
-_rl_replace_text
 rl_re_read_init_file
 rl_reset_after_signal
-_rl_reset_argument
-_rl_reset_completion_state
 rl_reset_line_state
-_rl_reset_prompt
 rl_reset_screen_size
 rl_reset_terminal
 rl_resize_terminal
 rl_restart_output
 rl_restore_prompt
 rl_restore_state
-_rl_restore_tty_signals
 rl_reverse_search_history
-_rl_revert_all_at_newline
-_rl_revert_all_lines
 rl_revert_line
 rl_rubout
-_rl_rubout_char
 rl_rubout_or_delete
-_rl_saved_line_for_history
 rl_save_prompt
 rl_save_state
-_rl_savestring
-_rl_screenchars
-_rl_screenheight
-_rl_screenwidth
-_rl_scxt_alloc
-_rl_scxt_dispose
-_rl_search_getchar
-_rl_set_cursor
-_rl_set_insert_mode
 rl_set_key
 rl_set_keyboard_input_timeout
 rl_set_keymap
 rl_set_keymap_from_edit_mode
 rl_set_mark
-_rl_set_mark_at_pos
-_rl_set_normal_color
 rl_set_paren_blink_timeout
 rl_set_prompt
-rl_set_retained_kills
-_rl_set_screen_size
 rl_set_screen_size
 rl_set_signals
-_rl_set_the_line
 rl_show_char
-_rl_show_mode_in_prompt
-_rl_sigcleanarg
-_rl_sigcleanup
 rl_signal_event_hook
-_rl_signal_handler
-_rl_sigwinch_resize_terminal
-_rl_skip_completed_text
 rl_skip_csi_sequence
 rl_sort_completion_matches
 rl_special_prefixes
 rl_start_kbd_macro
 rl_startup_hook
-_rl_start_using_history
 rl_stop_output
-_rl_strindex
-_rl_strip_prompt
 rl_stuff_char
-_rl_suppress_redisplay
-_rl_susp_char
 rl_tab_insert
-_rl_term_autowrap
-_rl_term_backspace
-_rl_term_clreol
-_rl_term_clrpag
-_rl_term_cr
-_rl_term_dc
-_rl_term_DC
-_rl_term_ei
-_rl_term_forward_char
-_rl_term_goto
-_rl_term_ic
-_rl_term_IC
-_rl_term_im
-_rl_terminal_can_insert
 rl_terminal_name
-_rl_term_ip
-_rl_term_pc
-_rl_term_up
 rl_tilde_expand
-_rl_to_lower
-_rl_top_level
-_rl_to_upper
 rl_translate_keyseq
 rl_transpose_chars
 rl_transpose_words
-_rl_ttymsg
 rl_tty_set_default_bindings
-rltty_set_default_bindings
 rl_tty_status
 rl_tty_unset_default_bindings
 rl_unbind_command_in_map
@@ -546,20 +326,14 @@ rl_unbind_function_in_map
 rl_unbind_key
 rl_unbind_key_in_map
 rl_undo_command
-_rl_undo_group_level
 rl_undo_list
-_rl_unget_char
 rl_universal_argument
 rl_unix_filename_rubout
 rl_unix_line_discard
 rl_unix_word_rubout
 rl_untranslate_keyseq
-_rl_untranslate_macro_value
 rl_upcase_word
-_rl_update_final
-_rl_uppercase_p
 rl_username_completion_function
-_rl_utf8locale
 rl_variable_bind
 rl_variable_dumper
 rl_variable_value
@@ -580,8 +354,6 @@ rl_vi_complete
 rl_vi_delete
 rl_vi_delete_to
 rl_vi_domove
-_rl_vi_domove_callback
-_rl_vi_done_inserting
 rl_vi_editing_mode
 rl_vi_end_word
 rl_vi_eof_maybe
@@ -592,14 +364,11 @@ rl_vi_first_print
 rl_vi_fword
 rl_vi_fWord
 rl_vi_goto_mark
-_rl_vi_initialize_line
 rl_vi_insert_beg
 rl_vi_insertion_mode
 rl_vi_insert_mode
-_rl_vi_last_command
 rl_vi_match
 rl_vi_movement_mode
-_rl_vimvcxt
 rl_vi_next_word
 rl_vi_overstrike
 rl_vi_overstrike_delete
@@ -607,34 +376,20 @@ rl_vi_prev_word
 rl_vi_put
 rl_vi_redo
 rl_vi_replace
-_rl_vi_reset_last
 rl_vi_rubout
-_rl_vis_botlin
 rl_vi_search
 rl_vi_search_again
-_rl_vi_set_last
 rl_vi_set_mark
-rl_visible_prompt_length
-rl_visible_stats
 rl_vi_start_inserting
 rl_vi_subst
-_rl_vi_textmod_command
 rl_vi_tilde_expand
 rl_vi_undo
 rl_vi_yank_arg
 rl_vi_yank_to
-_rl_walphabetic
-_rl_want_redisplay
-_rl_with_macro_input
 rl_yank
 rl_yank_last_arg
 rl_yank_nth_arg
 rl_yank_pop
-sh_get_env_value
-sh_get_home_dir
-sh_set_lines_and_columns
-sh_single_quote
-sh_unset_nodelay_mode
 stifle_history
 tilde_additional_prefixes
 tilde_additional_suffixes
@@ -643,12 +398,8 @@ tilde_expand_word
 tilde_expansion_failure_hook
 tilde_expansion_preexpansion_hook
 unstifle_history
-username_completion_function
 using_history
 vi_insertion_keymap
 vi_movement_keymap
 where_history
 write_history
-xfree
-xmalloc
-xrealloc




reply via email to

[Prev in Thread] Current Thread [Next in Thread]