Subject: Re: bug#66117: 30.0.50; `find-buffer-visiting' is slow when opening large number of buffers

From: Eli Zaretskii <[email-masked]>
Date: Sun, 17 Dec 2023 13:06:04 +0200

> From: Ihor Radchenko <[email-masked]>
> Cc: [email-masked], [email-masked], [email-masked],
>  [email-masked]
> Date: Sun, 17 Dec 2023 10:56:45 +0000
> 
> Eli Zaretskii <[email-masked]> writes:
> 
> > Also, re this part of the patch:
> >
> >> +  DEFVAR_LISP ("case-fold-search", Vcase_fold_search,
> >> +	       doc: /* Non-nil if searches and matches should ignore case.  */);
> >> +  Vcase_fold_search = Qt;
> >> +  DEFSYM (Qcase_fold_search, "case-fold-search");
> >> +  Fmake_variable_buffer_local (Qcase_fold_search);
> >
> > Which value does this set to t -- the global default?  Isn't that
> > different from what we had before?
> 
> AFAIU, not different. Previously, we had
> 
> > @@ -4785,7 +4779,6 @@ init_buffer_once (void)
> >    bset_tab_line_format (&buffer_defaults, Qnil);
> >    bset_abbrev_mode (&buffer_defaults, Qnil);
> >    bset_overwrite_mode (&buffer_defaults, Qnil);
> > -  bset_case_fold_search (&buffer_defaults, Qt);
> 
> So, the default value was Qt previously as well.

buffer_defaults is not the default value, AFAIU.

> The DEFVAR_LISP + V... + DEFSYM + Fmake_variable_buffer_local is taken
> from other buffer-local variables. For example,

I'm talking specifically about any changes from previous behavior
visible from Lisp.  I think we should test all of the following:

  default-value
  default-boundp
  setq-default
  default-toplevel-value
  set-default-toplevel-value

and make sure they all behave exactly the same, both in and out of a
let-binding.