From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Richard Stallman Newsgroups: gmane.emacs.devel Subject: persistent data feature, or sqlite3 feature? Date: Thu, 09 Dec 2021 23:53:27 -0500 Message-ID: References: <87tufmjyai.fsf@gnus.org> <877dcil2sj.fsf@ericabrahamsen.net> <87czm98qi1.fsf@gnu.org> <87o85tcwm0.fsf@ericabrahamsen.net> <874k7ljwkr.fsf@gnus.org> <87fsr5cuzq.fsf@ericabrahamsen.net> <878rwx8mdn.fsf@gnu.org> <87r1aphuei.fsf@gnus.org> <837dcex6ub.fsf@gnu.org> Reply-To: rms@gnu.org Content-Type: text/plain; charset=Utf-8 Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="16609"; mail-complaints-to="usenet@ciao.gmane.io" Cc: eric@ericabrahamsen.net, cesar.mena@gmail.com, eliz@gnu.org, larsi@gnus.org, emacs-devel@gnu.org To: Pip Cet Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Dec 10 05:54:10 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 1mvXv8-00047v-CE for ged-emacs-devel@m.gmane-mx.org; Fri, 10 Dec 2021 05:54:10 +0100 Original-Received: from localhost ([::1]:37368 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mvXv6-0000hE-JR for ged-emacs-devel@m.gmane-mx.org; Thu, 09 Dec 2021 23:54:08 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:45420) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mvXuR-0008T7-So for emacs-devel@gnu.org; Thu, 09 Dec 2021 23:53:27 -0500 Original-Received: from [2001:470:142:3::e] (port=40250 helo=fencepost.gnu.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mvXuR-0002Vq-95; Thu, 09 Dec 2021 23:53:27 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=Date:References:Subject:In-Reply-To:To:From: mime-version; bh=q2bvsGp/y6T7ntaxhvFVkGAOchTZZNn1etAZKdeGH+E=; b=GpOiqsqDk3Xu O/28t0mUyG0b7wrDsQFCoWcfYaWahQIGiBo7dOKxhKYs4N9aYkIPGC8Wg8uuYYl+W3lq68Tr27yjP fgtWgk3Ox0unywLdNgU6pCEHM5bRQcGgiQMlzxu5naaONqI9pyMISf0Sn1MxVAVKlRjQNK93d292t XtRxXBG8K4JiCGftJrSVIkA5U6LFdnaEm4hqDXK40eiY1jlukhpgKydnW0QECP0TtJNvQQqktjhdh DGuEQFMsovxi3ecuKvi4etwykguk+dqmXox/nil7EmrNEElL93tTI1wZr8mj8j2Pn60ZVoSFA1CsV 4ly0g+F5PE7AGXUqPM4BLA==; Original-Received: from rms by fencepost.gnu.org with local (Exim 4.90_1) (envelope-from ) id 1mvXuR-0007oa-AM; Thu, 09 Dec 2021 23:53:27 -0500 In-Reply-To: (message from Pip Cet on Thu, 9 Dec 2021 19:46:22 +0000) 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:281567 Archived-At: [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] People proposed the goal of giving Emacs the feature of persistent objects. For that goal, there is no particular reason to use a general-purpose database package. A general-purpose database package such as sqlite3 surely does not come with a built-in representation for storing Lisp objects in general. Emacs would need to have a way to encode them as byte sequences, and store those byte sequences in the database. (This encoding might be `prin1' or it might be something else.) It follows that sqlite3 databases containing persistent Lisp data stored by Emacs will not in general be naturally interoperable with sqlite3 databases made by other programs. Other programs won't know about this encoding. If the other program is meant to be a general tool, such as a database explorer, it could I suppose operate on Emacs database files, but anything that really wants to understand its data won't interoperate with Emacs. It follows that there is no particular benefit from using a general-purpose database system such as sqlite3 _for the purpose of holding persistent Lisp data_. People are also talking about wanting the feature of using Emacs to operate on sqlite3 databases for various purposes. That feature could be useful, but my point is _it's a different feature_. This discussion is switching between two different features, 1. Persistent objects. 2. Access to arbitrary sqlite3 databases. and that makes it incoherent. We could implement either feature. We could implement both. But one of them should not control the design of the other! -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org)