zsh-workers
 help / color / mirror / code / Atom feed
From: "Daniel Shahaf" <d.s@daniel.shahaf.name>
To: zsh-workers@zsh.org
Subject: Re: [RFC PATCH 3/3] FAQ: sync newuser-install
Date: Sat, 27 Aug 2022 15:40:14 +0000	[thread overview]
Message-ID: <5e85657b-a7c6-45a1-98a2-3e7289402429@www.fastmail.com> (raw)
In-Reply-To: <CAH+w=7ZT3iOZni7B2Wzz9NeYYTHnbpq2AOvuDr-V05rt3bxhrg@mail.gmail.com>

Bart Schaefer wrote on Sat, 27 Aug 2022 02:24 +00:00:
> On Thu, Aug 25, 2022 at 10:27 PM Daniel Shahaf <d.s@daniel.shahaf.name> wrote:
>>
>> Bart Schaefer wrote on Thu, 25 Aug 2022 23:08 +00:00:
>> >
>> > Unless there's an important behavior that it's simply not possible to
>> > accomplish with the existing configuration controls,
>>
>> Does "enable saving of history without specifying the history file's name" qualify?
>
> Has anyone other than Felipe asserted that this behavior is important?
>  IMO it qualifies on the second clause but not on the first.
>

It's one fewer thing for the user to care about.  I wouldn't go so far
as to call it "important" but I do think it would be nice to have.

From a more theoretical perspective, removing the need to set HISTFILE
would allow us to one day move the history storage to something other
than files without requiring all users of history to change their
dotfiles.  (I'm thinking of, say, someone putting their history in
redis.)  Then again, saving history in files "ought to be enough for
anybody" :-)

>> What I had in mind was a new option, HIST_RECORD, and have it implicitly
>> setopt'd by assignment to $HISTFILE and implicitly unsetopt'd by «unset
>> HISTFILE«»;
>
> I am not sanguine about the idea of linking an option and a parameter
> together that way.

OK, then how about a new special variable?  It's precedented for
variables to be magical (e.g., path/PATH, functrace).  We could have a
HIST_RECORD variable with the following semantics:

- getter: returns 1 (mathematical true) if HISTFILE is not empty and 0
  (mathematical false) if HISTFILE is unset.  (If HISTFILE is empty,
  then <handwave/>.)

- setter: If set to zero, unsets HISTFILE (again, that's like the
  connection between path and PATH).  If set to a true value, set
  HISTFILE to... Hmm, I'm not sure.  To a well-known value specified at
  configure time, probably?  Felipe, WDYT?

Net result: HIST_RECORD=1 DTRT's.

Of course, at this point we might as well make it a (possibly module-
provided) builtin, so it's less surprising and more extensible.

>> If that's nevertheless undersirable, then we could go the deprecation
>> route: leave $HISTFILE as is; add an entirely new way to specify the
>> history file's name and whether writing to it is enabled (perhaps a
>> couple of zstyles);
>
> Also not excited about deprecating the current settings nor about
> tying built-in shell behavior to zstyle.  Currently zstyles only
> affect operations that are provided via scripts or shell functions.
>

And moreover, zstyle itself is a module whereas history is not.
Good point.

>> Any other alternatives?
>
> I haven't worked through all the details yet, but perhaps a zmodload
> module?  The boot routine could assign to the three variables and then
> (I think) even unload the module again.  Felipe's zshrc would do
> "zmodload zsh/default_history" (or whatever).  The module could be
> compiled for all but the most ancient of older versions of zsh if a
> packager wanted to do so.

If it's just this, then, s/zmodload module/$fpath function/, surely,
since this /can/ be implemented as a function?  The function could
unfunction itself, too.

Or if we do a special parameter or a new builtin, that could be done
in a module.

Cheers,

Daniel


  reply	other threads:[~2022-08-27 15:41 UTC|newest]

Thread overview: 93+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-24  4:31 [RFC PATCH 0/3] Improve defaults Felipe Contreras
2022-08-24  4:31 ` [RFC PATCH 1/3] Make SAVEHIST default to HISTSIZE Felipe Contreras
2022-08-24  4:31 ` [RFC PATCH 2/3] Increase default HISTSIZE to 1000 Felipe Contreras
2022-08-24  4:31 ` [RFC PATCH 3/3] FAQ: sync newuser-install Felipe Contreras
2022-08-24  9:06   ` Daniel Shahaf
2022-08-24 17:32     ` Felipe Contreras
2022-08-24 18:28       ` Eric Cook
2022-08-24 19:11         ` Felipe Contreras
2022-08-24 19:24           ` Matthew Martin
2022-08-24 19:25           ` Eric Cook
2022-08-24 19:40             ` Eric Cook
2022-08-24 20:03             ` Felipe Contreras
2022-08-24 20:11               ` Eric Cook
2022-08-24 20:27                 ` Felipe Contreras
2022-08-24 20:53                   ` Eric Cook
2022-08-25  8:04       ` Daniel Shahaf
2022-08-25 22:22         ` Bart Schaefer
2022-08-25 22:44           ` Felipe Contreras
2022-08-25 23:08             ` Bart Schaefer
2022-08-26  4:22               ` Felipe Contreras
2022-08-31 11:43                 ` Vincent Lefevre
2022-08-26  5:20               ` Daniel Shahaf
2022-08-26 13:57                 ` Mikael Magnusson
2022-08-26 14:04                   ` Roman Perepelitsa
2022-08-26 23:43                     ` Lawrence Velázquez
2022-08-27 15:17                       ` Daniel Shahaf
2022-08-27 15:34                         ` Roman Perepelitsa
2022-08-26 18:44                   ` Felipe Contreras
2022-08-27  0:23                     ` Mikael Magnusson
2022-08-27  0:31                       ` Bart Schaefer
2022-08-27  3:18                         ` Felipe Contreras
2022-08-27  3:52                           ` Lawrence Velázquez
2022-08-27 15:44                             ` Daniel Shahaf
2022-08-30 19:31                             ` Felipe Contreras
2022-08-31 12:28                               ` Vincent Lefevre
2022-08-31 19:36                                 ` Bart Schaefer
2022-09-01  0:23                                   ` Vincent Lefevre
2022-09-01  0:35                                     ` Bart Schaefer
2022-09-01  1:21                                       ` Vincent Lefevre
2022-09-01  2:42                                         ` [PATCH] initialization of main keymap Bart Schaefer
2022-09-01 21:58                                           ` Felipe Contreras
2022-09-01 22:34                                             ` Bart Schaefer
2022-09-01 22:54                                               ` Felipe Contreras
2022-09-02  8:51                                             ` Daniel Shahaf
2022-09-02 13:23                                               ` Vincent Lefevre
2022-09-02 13:42                                                 ` Felipe Contreras
2022-09-04  9:39                                                   ` Daniel Shahaf
2022-09-05  8:55                                                     ` Vincent Lefevre
2022-09-02 13:32                                               ` Felipe Contreras
2022-09-02 16:48                                               ` Bart Schaefer
2022-09-04  9:35                                                 ` Daniel Shahaf
2022-09-02  0:04                                           ` Vincent Lefevre
2022-09-02  5:06                                             ` Bart Schaefer
2022-09-02 13:15                                               ` Vincent Lefevre
2022-09-04  9:42                                                 ` ${EDITOR} with spaces (was: Re: [PATCH] initialization of main keymap) Daniel Shahaf
2022-09-04 10:48                                                   ` Mikael Magnusson
2022-09-05  9:15                                                     ` Vincent Lefevre
2022-09-05 21:17                                                       ` Lawrence Velázquez
2022-09-02  9:20                                 ` [RFC PATCH 3/3] FAQ: sync newuser-install Daniel Shahaf
2022-09-02 13:50                                   ` Vincent Lefevre
2022-08-31 21:57                               ` Mikael Magnusson
2022-08-31 22:28                                 ` Roman Perepelitsa
2022-09-01  0:29                                   ` Bart Schaefer
2022-09-01 22:45                                   ` Felipe Contreras
2022-09-02  3:46                                     ` Mikael Magnusson
2022-09-02  5:57                                       ` Felipe Contreras
2022-09-02 23:14                                         ` Mikael Magnusson
2022-09-02 23:56                                           ` Felipe Contreras
2022-09-02  9:18                                       ` Daniel Shahaf
2022-09-02 12:50                                         ` Vincent Lefevre
2022-09-02 13:28                                           ` Felipe Contreras
2022-09-02 13:47                                             ` Vincent Lefevre
2022-09-02 13:54                                               ` Felipe Contreras
2022-09-03 13:38                                       ` Roman Perepelitsa
2022-09-03 19:07                                         ` Felipe Contreras
2022-09-03 19:27                                           ` Roman Perepelitsa
2022-09-03 20:08                                             ` Felipe Contreras
2022-09-03 20:23                                               ` Roman Perepelitsa
2022-09-03 20:49                                                 ` Felipe Contreras
2022-09-03 23:12                                                   ` Roman Perepelitsa
2022-09-03 18:59                                                     ` Felipe Contreras
2022-09-04  0:08                                                       ` Roman Perepelitsa
2022-09-03 19:24                                                         ` Felipe Contreras
2022-08-27  0:35                       ` Felipe Contreras
2022-08-27  2:24                 ` Bart Schaefer
2022-08-27 15:40                   ` Daniel Shahaf [this message]
2022-08-27 15:55                     ` Bart Schaefer
2022-08-27 17:53                       ` Daniel Shahaf
2022-08-24 20:58 ` [RFC PATCH 0/3] Improve defaults Bart Schaefer
2022-08-24 21:50   ` Felipe Contreras
2022-08-24 22:18     ` Bart Schaefer
2022-08-24 22:54       ` Felipe Contreras
2022-08-24 21:39 ` Mikael Magnusson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5e85657b-a7c6-45a1-98a2-3e7289402429@www.fastmail.com \
    --to=d.s@daniel.shahaf.name \
    --cc=zsh-workers@zsh.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).