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: Re: Lisp files that load cl-lib in problematical ways Date: Tue, 31 Oct 2023 21:48:57 -0400 Message-ID: References: <83ttqnm4ti.fsf@gnu.org> <831qdlpoye.fsf@gnu.org> <83sf5xhnym.fsf@gnu.org> <871qdhk49w.fsf@dataswamp.org> <25914.49745.111873.734458@orion.rgrjr.com> 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="35057"; mail-complaints-to="usenet@ciao.gmane.io" Cc: rogers@rgrjr.com, incal@dataswamp.org, emacs-devel@gnu.org To: =?iso-8859-1?Q?Jo=C3=A3o_T=C3=A1vora?= Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Nov 01 02:49:50 2023 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 1qy0Mg-0008w8-GQ for ged-emacs-devel@m.gmane-mx.org; Wed, 01 Nov 2023 02:49:50 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qy0Ls-0005uP-Tm; Tue, 31 Oct 2023 21:49:00 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qy0Lq-0005uB-WD for emacs-devel@gnu.org; Tue, 31 Oct 2023 21:48:59 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qy0Lp-0000aW-QK; Tue, 31 Oct 2023 21:48:57 -0400 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=MIoBiKJNrrNNRaScTAmKP3CbfNxXmN8wGeJy0IrHhx4=; b=Mej1j4Tgywjc x87Ff/oJDVVeRN2WeJfYso5ZL0t0bkAiqn1McfV8MkYpihV5NJJAhY6qKfdQg7OLDM1rWPXLF392L EWoOWLYusJq6t/NTuuI6l0ulR7oFJLCAUIITU12tLHjQRitkhHj0m0JowePWp/eOF/RSF72UXWS5j BRn3IcJW+tpnGQ4L2TCR0bedvvbTzwaI2+WuYpQC6Xr/AJpaxRGmxNhgETOfyNA0+4E22fF9drIoR Laa7SaYyI8T2sMhYKaoJD7vhQ3VQ72SPYdTQLN0IQdhBIDhhq7gQw94aGxi6al313cCgJyLoHCpU7 WdpOWlsQMxL5waVupm6IYA==; Original-Received: from rms by fencepost.gnu.org with local (Exim 4.90_1) (envelope-from ) id 1qy0Lp-0004dB-IW; Tue, 31 Oct 2023 21:48:57 -0400 In-Reply-To: (message from =?iso-8859-1?Q?Jo=C3=A3o_T=C3=A1vora?= on Sun, 29 Oct 2023 16:31:36 +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-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:312032 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. ]]] You seem to be judging features in terms of how much fundamental change it makes in Emacs Lisp. What you say about these changes, at that level, seems to be valid, but it's a different issue, thus a change of subject. The problem of widespread use of cl-lib is that it adds a lot of details to what one needs to know to work on Elisp programs. > In fact the only way that Emacs Lisp, the core language, has approached > Common Lisp in recent years to any degree was through the addition of > lexical binding, Lexical binding, as a language feature, adds little complexity of details to Emacs Lisp. Once you kow what it is, the only added detail is how to enable it for a given source file, and that is very simple. > Well, maybe native compilation also counts. That too adds little complexity, expecially if you don't turn it on when you build Emacs. I haven't had to learn anything to understand Elisp programs because of the existence of native compilation. > cl-lib.el, like any other library, doesn't add -- because it really > can't -- any features of that calibre to Emacs Lisp. It just adds > functions and macros much in the way that lots of other libraries > add functions and macros. This is what maks cl-lib such a pain: it adds many functions, which have many details. When lots of Emacs Lisp programs use cl-lib, that means all those details become more things everyone working on Emacs Lisp programs needs to know. In other words, you're judging various changes by how deeply they change the Emacs Lisp language, but the problem I'm concerned with is about how many superficial changes they make. > Anyway, the point is that to hack on long-lived files > such as lisp/minibuffer.el, one can't really "ignore" the new > dictionary of seq.el anymore. That's exactly the problem. > If one were to compare apples to apples one could argue that CL's > functions are _more_ accessible and quite well documented, The documentation that counts, for Emacs Lisp, is documentation that is suitable to integrate into Emacs. It has to be technically suitable (written in Texinfo) and legally suitable (under a free license compatile with the GFDL). If it isn't in Texinfo, integrating it into Emacs would be a substantial job, If it isn't license-compatible, we would have to rewrite it starting from zero. If it isn't free, we cannot refer to it as documentation at all. Is there clear and well-written documentation for cl-lib which fits those criteria? -- 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)