From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Daniel Mendler Newsgroups: gmane.emacs.devel Subject: Re: compat.el and Emacs unstable master branch features (was: bug#63513: [PATCH] Make persist-defvar work with records and hash tables) Date: Sat, 9 Sep 2023 14:29:17 +0200 Message-ID: <3f6176d5-ccc9-ec37-8adc-4e221388e164@daniel-mendler.de> References: <87wn1axgh6.fsf@breatheoutbreathe.in> <83jzx925lv.fsf@gnu.org> <87a5xubwoo.fsf@breatheoutbreathe.in> <87v8csku60.fsf@breatheoutbreathe.in> <83cyyz94c6.fsf@gnu.org> <87a5u2ydzg.fsf@breatheoutbreathe.in> <83msy25g0s.fsf@gnu.org> <624CBB7F-1442-400D-8D4D-1B26EBE9DACB@breatheoutbreathe.in> <877cp5bmig.fsf@breatheoutbreathe.in> <871qvz4kdw.fsf@localhost> <8734zoaolv.fsf@localhost> <87fs3o8uil.fsf@localhost> <87msxwa8kd.fsf@breatheoutbreathe.in> <87il8j7ji9.fsf@localhost> <80479897-500e-fe60-6586-0a44ccb5993b@daniel-mendler.de> <877coz7f6h.fsf@localhost> <86d6e412-9e5b-9086-56ce-e3794085096a@daniel-mendler.de> <874jk37dgh.fsf@localhost> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="38723"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Joseph Turner , Stefan Monnier , Adam Porter , Eli Zaretskii , phillip.lord@russet.org.uk, emacs-devel@gnu.org, ~pkal/compat-devel@lists.sr.ht To: Ihor Radchenko Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Sep 09 14:30:04 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 1qex6C-0009t0-5d for ged-emacs-devel@m.gmane-mx.org; Sat, 09 Sep 2023 14:30:04 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qex5c-0005XU-LL; Sat, 09 Sep 2023 08:29:28 -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 1qex5b-0005X9-41 for emacs-devel@gnu.org; Sat, 09 Sep 2023 08:29:27 -0400 Original-Received: from server.qxqx.de ([2a01:4f8:121:346::180] helo=mail.qxqx.de) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qex5Y-0003aY-Bc; Sat, 09 Sep 2023 08:29:26 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=qxqx.de; s=mail1392553390; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From: References:Cc:To:Subject:MIME-Version:Date:Message-ID:Sender:Reply-To: 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=YGiDJgYPFV/gD82neMmS5A8zCoD3AyKhK9S1PNqzzgI=; b=oH3tw6JY7pwrjzbx2MS/iOeCTy tc7GJiHN26l8i5XT33dPOAgoM30DV4p9oYcIy9ZmGxPEAFlf+s7fi+5yhz2+h0sATiTvWr1yB/Ev0 UgSwrLxeQrBtdWMooFaIc3dU8nDSWXDs7HYKozekkybVwKGsOKMdJv6M4ZQVdnDEXvl4=; Content-Language: en-US In-Reply-To: <874jk37dgh.fsf@localhost> Received-SPF: pass client-ip=2a01:4f8:121:346::180; envelope-from=mail@daniel-mendler.de; helo=mail.qxqx.de X-Spam_score_int: -41 X-Spam_score: -4.2 X-Spam_bar: ---- X-Spam_report: (-4.2 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-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-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:310403 Archived-At: On 9/9/23 14:12, Ihor Radchenko wrote: > Daniel Mendler writes: >> compat-30 can be released as soon as Emacs 30 has been reasonably >> stabilized, e.g., when the emacs-30 branch has been frozen, or a bit >> before that. We cannot release much earlier since APIs may still change >> and it is probably undesired to release unfinished APIs to the public >> too early. For reference, I've created the compat-29.1.1 release around >> the day that Eli announced the emacs-29 branch freeze. > > It is indeed viable to copy-paste the needed functions into the package > code, but it _feels_ like something compat.el may provide support for. > > May it be possible to provide a public API in compat.el to define > compat function versions before they appear in compat.el properly? I see your point, but I think that Compat provides value for both external and core packages given its current conservative approach. All that is needed is to wait for a while after some API has been added and Compat has been synchronized. Note that we haven't seen many API additions in Emacs 30 so far. Compare this to compat-29.el which provides a rich set of new APIs which are all available for external and core packages depending on older Emacs versions. I suggest to copy new functions temporarily to the package in question with an fboundp check, with an additional TODO comment. We can synchronize with Compat afterwards. Providing a public API won't work since Compat is not included in Emacs itself. A design criterion of Compat is also to keep the public API surface as small as possible. Daniel