From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Lars Ingebrigtsen Newsgroups: gmane.emacs.devel Subject: sqlite3 Date: Mon, 06 Dec 2021 02:51:33 +0100 Message-ID: <87tufmjyai.fsf@gnus.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="363"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Dec 06 02:52:42 2021 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mu3BJ-000ATo-VJ for ged-emacs-devel@m.gmane-mx.org; Mon, 06 Dec 2021 02:52:41 +0100 Original-Received: from localhost ([::1]:48740 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mu3BI-0004Cz-LD for ged-emacs-devel@m.gmane-mx.org; Sun, 05 Dec 2021 20:52:40 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:35312) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mu3AM-0003Vf-FE for emacs-devel@gnu.org; Sun, 05 Dec 2021 20:51:43 -0500 Original-Received: from [2a01:4f9:2b:f0f::2] (port=48444 helo=quimby.gnus.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mu3AK-00079R-6D for emacs-devel@gnu.org; Sun, 05 Dec 2021 20:51:42 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:Date:Subject:To:From: Sender:Reply-To:Cc:Content-Transfer-Encoding:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=//M6cff5eWDUO7xLMMyl0tuDFjlaPqidEta6Dx7B9Fk=; b=oUe4QCUkiiQxVw+fc1NJ/D29/x VjUZZDO9GMb6yUB5NEucx+J2W50L4MMrEDUZQl/rhNgJapdE+DUccz4CHfBuYlhhMjuV+FQt56Ajh /Dwu3ESfatyDLzB6ELsy6aoIXl647HqjTVUZQBWWB0UNERDuEkY33QDIa8Tpd67uCgk8=; Original-Received: from [84.212.220.105] (helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mu3AF-00052S-23 for emacs-devel@gnu.org; Mon, 06 Dec 2021 02:51:37 +0100 Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGPC/xhBQAAACBj SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAElBMVEUhGRMkGxNaOi2+ nJurWkn///+df6DXAAAAAWJLR0QF+G/pxwAAAAd0SU1FB+UMBgESD4NPlTkAAAG+SURBVDjLZZOL udsgDIUh6QASvQMYXQ3QGga4wdp/ph7JroNj5Yvj8KOjF6R0s8xueCG8ZeLMOdZEWKqDLG5VZnOA D8Hjppb4NNdxWQ7FVCqHb3v23tsflsIMXUol5Cutj9X+rpRLFd9J/6VI5KV1LBkRfY0S0a5v46Vs yzuBw+Nx5HkDzxa2TiA6kB/te/tefy9zNQhC/GuzTdbnDPbiEGNo/Vqu5UcvseXaluS9pdhB6VOJ jy03EFu95hu4yp/gM+7sATFkfA+OzETNhD4BpYcB2GsCmCYOSlUTgDF7RHEQArsCz4gBRoELzYBQ M2G7g3fP9jKyg/ohlSMD24NMUtWPAvHYgyyXOghnOrQUwI8z7QC/OYK8SJY4ymflFYF0QwSmdE4h +sSlatv6EoAi4aNXZVhrfSGfsGcZAAeeijj4EZ983IQA4l/z5j5wqnEBUDGehzkYhXcF+PjaEFEA NDLuhlsJ4H99fmLv+5mq6JASUg7GDKyLqm0R5PTxEW3dsHHDqo3DwwQxvBcBoNaHZ6A6NFkY/rcu pi08hoqDhlHAq3X1E1S5jB14BB9R6wPJNfdGBgdAd12KGc9D+R9mcWmmh4psdgAAACV0RVh0ZGF0 ZTpjcmVhdGUAMjAyMS0xMi0wNlQwMToxODoxNSswMDowMMirP+kAAAAldEVYdGRhdGU6bW9kaWZ5 ADIwMjEtMTItMDZUMDE6MTg6MTUrMDA6MDC59odVAAAAAElFTkSuQmCC X-Now-Playing: Neil Young & Crazy Horse's _Live Rust_: "When You Dance I Can Really Love" X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a01:4f9:2b:f0f::2 (failed) Received-SPF: pass client-ip=2a01:4f9:2b:f0f::2; envelope-from=larsi@gnus.org; helo=quimby.gnus.org X-Spam_score_int: -35 X-Spam_score: -3.6 X-Spam_bar: --- X-Spam_report: (-3.6 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:281041 Archived-At: 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. 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. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no