emacs-devel
[Top][All Lists]
Advanced

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

Re: sqlite3


From: Yuan Fu
Subject: Re: sqlite3
Date: Sun, 5 Dec 2021 21:06:22 -0800


> On Dec 5, 2021, at 5:51 PM, Lars Ingebrigtsen <larsi@gnus.org> wrote:
> 
> I think many user experience things in Emacs would be better if Emacs
> remembered more.
> 
> The bigger systems don't have this problem -- Gnus needs a large
> .newsrc.eld file, and it maintains that.
> 
> The tiny things don't really have this problem, either: You save options
> with `customize-save-variable', and that fine.
> 
> It's the many things that fall between these two extremes that have the
> problem: Where you want to store some state, but figuring it's just too
> much work to figure out Yet Another Storage Format, but the data is too
> messy to stash in somebody's .emacs file via Customize (like lists of
> stuff).
> 
> So there's a bunch of stuff that Emacs just forgets when you shut down,
> where it perhaps shouldn't.
> 
> I've brought this up before, but I didn't really have a solution then,
> but I think I do now: sqlite3.
> 
> sqlite3 is supported on more platforms than Emacs is, the interface is
> small and stable, and (best of all) somebody has already created
> interface functions for Emacs (via a module):
> 
>  https://github.com/syohex/emacs-sqlite3
> 
> I think it'd be good to bring that into core, and then write a small
> wrapper library (well, a trivial ORM) for the rest of Emacs to use, so
> that we don't have to write SQL all over the place.  That is:
> 
> (setf (persistent-data :namespace "emoji" :key "favorites") emoji--favorites)
> 
> I.e., what Emacs needs is a persistent key/value store, and this would
> give us that.
> 
> In addition, if somebody really wants to write SQL stuff (it can be very
> handy for some things), having sqlite3 in there gives us that in
> addition for free.

Cool idea. Stuff like autosave, backup and recentf could benefit from a 
database. Other things could be REPL histories, transient settings and 
histories, etc. If everyone uses sqlite, .emacs.d could be less littered, too. 
Especially for autosave and backup, they are a bit tricky to configure so that 
Emacs doesn’t throw autosave and backup files all over the place.

> This comes with questions about how the users are supposed be able to
> clear out the data, for instance, but we could have a `M-x
> list-persistent-data' where the users could blow out whatever they want
> to.

Maybe also record time automatically, so a user can clear data based on age.

Yuan


reply via email to

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