From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Daniel Mendler via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Newsgroups: gmane.emacs.bugs Subject: bug#66554: [PATCH] Add the public API of Compat to the core Date: Fri, 19 Jan 2024 07:52:51 +0100 Message-ID: <87ttn96cho.fsf@daniel-mendler.de> References: <87pm1ggrdx.fsf@posteo.net> <87mstbpyd7.fsf@posteo.net> <87h6jjah1g.fsf@daniel-mendler.de> <87edenptba.fsf@posteo.net> <87bk9raaad.fsf@daniel-mendler.de> <87a5pbvbxc.fsf@posteo.net> <875xzza8jw.fsf@daniel-mendler.de> <87edemldlw.fsf@posteo.net> <83cyu6ifzw.fsf@gnu.org> <875xzyl8lq.fsf@posteo.net> <837ckeievw.fsf@gnu.org> <87h6jiqtsp.fsf@daniel-mendler.de> <835xzyiagj.fsf@gnu.org> <871qamkx0m.fsf@posteo.net> <83wmsdhgw8.fsf@gnu.org> <87wmsdxvz6.fsf@daniel-mendler.de> <878r4ml8sg.fsf@posteo.net> <83v87qwg48.fsf@gnu.org> <83sf2tx1uq.fsf@gnu.org> Reply-To: Daniel Mendler Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="37348"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Cc: 66554@debbugs.gnu.org, philipk@posteo.net, Stefan Kangas , monnier@iro.umontreal.ca To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Fri Jan 19 07:54:19 2024 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1rQilf-0009VT-5R for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 19 Jan 2024 07:54:19 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rQilN-0004G9-Sd; Fri, 19 Jan 2024 01:54:01 -0500 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 1rQilM-0004FT-7N for bug-gnu-emacs@gnu.org; Fri, 19 Jan 2024 01:54:00 -0500 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rQilL-00035D-Uu for bug-gnu-emacs@gnu.org; Fri, 19 Jan 2024 01:53:59 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rQilN-0007JL-MM for bug-gnu-emacs@gnu.org; Fri, 19 Jan 2024 01:54:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Daniel Mendler Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 19 Jan 2024 06:54:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66554 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 66554-submit@debbugs.gnu.org id=B66554.170564718428023 (code B ref 66554); Fri, 19 Jan 2024 06:54:01 +0000 Original-Received: (at 66554) by debbugs.gnu.org; 19 Jan 2024 06:53:04 +0000 Original-Received: from localhost ([127.0.0.1]:57309 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rQikS-0007Hv-5y for submit@debbugs.gnu.org; Fri, 19 Jan 2024 01:53:04 -0500 Original-Received: from server.qxqx.de ([2a01:4f8:c012:9177::1]:60069 helo=mail.qxqx.de) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rQikP-0007HN-SZ for 66554@debbugs.gnu.org; Fri, 19 Jan 2024 01:53:02 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=daniel-mendler.de; s=key; h=Content-Type:MIME-Version:Message-ID:Date: References:In-Reply-To:Subject:Cc:To:From:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=u+zmcdaknJ6oTEmDNrVzdnTP6hdh4RmWi18MHTiyunI=; b=k94NFIA8J8hRT/xUxcHQHk5ude d7QxuottlpE5vVG52V6SSR7p+cYx7hybfWzJPO4mJaiFQYZiI2ucaG5C24XKuiX2IIvn0O/34eAr3 ogUVllxDji8d6xW9db1KzO1qiuptjcxo/Si80QU3pyvYw1jSbXFJ1JaT3H9OMJKDZ1Fk=; In-Reply-To: <83sf2tx1uq.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 19 Jan 2024 08:40:29 +0200") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:278479 Archived-At: Eli Zaretskii writes: >> From: Stefan Kangas >> Date: Thu, 18 Jan 2024 12:33:31 -0800 >> Cc: mail@daniel-mendler.de, 66554@debbugs.gnu.org, monnier@iro.umontreal.ca >> >> Eli Zaretskii writes: >> >> >> +** New package Compat >> >> +The Compat package on GNU ELPA provides forwards-compatibility >> >> +support, so that packages that still provide support for older >> > >> > I think this is known as "backward compatibility". >> >> AFAIU, backwards-compatibility is about making code written for Emacs 28 >> work without changes on Emacs 29 (N -> N+1). >> >> But forwards-compatibility is about making code written for Emacs 29 >> work without changes on Emacs 28 (N -> N-1). >> >> Compat is doing the latter. > > AFAIU, Compat allows Lisp programs written for newer Emacs version to > work with older Emacs versions. This makes those Lisp programs > compatible with old versions of Emacs, and in my book this is > backwards-compatibility. But if I'm the only one who thinks that, so > be it. That's right. To formulate this differently, Compat allows Lisp programs written for old Emacs versions to use newer Emacs features. This makes Compat a forwards-compatibility library for the newer Emacs features. The difference is what you consider the base line Emacs version. A package could for example specify `Package-Requires: ((emacs "27.1") (compat "29.1"))' in its package header. The header means that the package was written for an old Emacs (27.1) but takes advantage of newer features (29.1). However one may also say that the package is actually for 29.1 and was back-ported via Compat to 27.1. This could indeed have happened if one looks at the history of the package. Daniel