From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?utf-8?Q?Gerd_M=C3=B6llmann?= Newsgroups: gmane.emacs.devel Subject: Re: CL packages landed Date: Sat, 22 Oct 2022 14:13:12 +0200 Message-ID: References: <878rl8p1my.fsf@posteo.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="30412"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Cc: emacs-devel@gnu.org To: Philip Kaludercic Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Oct 22 14:58:27 2022 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 1omE54-0007lu-Ty for ged-emacs-devel@m.gmane-mx.org; Sat, 22 Oct 2022 14:58:26 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1omDNQ-0007jN-3n; Sat, 22 Oct 2022 08:13:20 -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 1omDNO-0007jC-2T for emacs-devel@gnu.org; Sat, 22 Oct 2022 08:13:18 -0400 Original-Received: from mail-wm1-x32c.google.com ([2a00:1450:4864:20::32c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1omDNM-0003SA-Ar for emacs-devel@gnu.org; Sat, 22 Oct 2022 08:13:17 -0400 Original-Received: by mail-wm1-x32c.google.com with SMTP id c7-20020a05600c0ac700b003c6cad86f38so6735843wmr.2 for ; Sat, 22 Oct 2022 05:13:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=OUByure7rxViP2MaZePRZv59S3BwP7p5PK1FaRW0KBY=; b=pr+un1cBo9QWM1mSLaq8lFLiDJvpIkAQ9fx1WSosdbnYIh6HdAMSdFCUC+gMg7Zks9 fQKEgloUT9mk5DYLwRLA722u+l4m4hYO3FyGEp4uq6zir6Us02nXDALXp30LOTBEJMPe 82Fe5AONGe/pGqTbvYmRD3CEafwSAf3Mp2fCRtlQ+ISvDX8yl4Mm/dtPgMGI1vk+BYGZ wBFOlGm6eDmkRl4Iu7f68HHD8JyYsjDf0BIdgO6te3gg72XPeJP7zivmqM+4lvAB03rF NTFtEAYroZ8n9IINdiMpjypuvyZ6KwAOTv9uS++RgzdKao+zlUbm08vzxoHZNbE2h1nx qzbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=OUByure7rxViP2MaZePRZv59S3BwP7p5PK1FaRW0KBY=; b=HsIIxU9EUXE2YvXUzge9Ktj8AmWtlhjUIX7QDQTDSI2cBaXB7sQ0X9c6jxdarlVsto oY0hlpTBxO4mBIAo792SA0Pf8ryiNbwgEP8e4vleN1s7ZVryE6jgNu9lxUhnM6QVZtoA 1EQC7/99aFmc/Q2qJIQ+m5tB57Viw3NBmgAoi3jU2ijok1kAYQBDD/1oI8146UdK4k5E qJJVORanWBjSm+cpTsXdBe++otxS1n5inv1nTe9KxJvqojMI0ZnjG9YRpl6HRJwRBvW8 GzzU+7enu/bCCGMggc9OCy+SN19fRcfwk0ql7Al8hCbn/+MPK9d1vgVWRGe41eP5mTAh 82TA== X-Gm-Message-State: ACrzQf2w+ZH7T7VnP/Q464I5s3LiR7h929Uq4xUMBVI7WY/X42htA5Md zaQOOo8JzYfVy9KBgjc1psaJL3jrRS0= X-Google-Smtp-Source: AMsMyM6j+MrCG6meVZ4kiNSqB2KDoAmBLQ39lob7dOjaVfxsR/q+HTcLoC2uwkczBu3fEsfj1voPAw== X-Received: by 2002:a05:600c:230d:b0:3c4:2975:321a with SMTP id 13-20020a05600c230d00b003c42975321amr37158512wmo.155.1666440793975; Sat, 22 Oct 2022 05:13:13 -0700 (PDT) Original-Received: from Mini.fritz.box (p4fe3a7d8.dip0.t-ipconnect.de. [79.227.167.216]) by smtp.gmail.com with ESMTPSA id l24-20020a1c7918000000b003b50428cf66sm5456819wme.33.2022.10.22.05.13.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 22 Oct 2022 05:13:13 -0700 (PDT) In-Reply-To: <878rl8p1my.fsf@posteo.net> (Philip Kaludercic's message of "Sat, 22 Oct 2022 10:56:53 +0000") Received-SPF: pass client-ip=2a00:1450:4864:20::32c; envelope-from=gerd.moellmann@gmail.com; helo=mail-wm1-x32c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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: , Original-Sender: "Emacs-devel" Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:298272 Archived-At: Philip Kaludercic writes: > Gerd M=C3=B6llmann writes: > >> I've pushed the branch "pkg" which implements CL packages for Emacs. >> >> Before Someone (tm) gets the idea of blowing up something like Internet >> cables instead of pipelines, or we have blackouts here, or whatever, I >> thought I'd better make this accessible. > > I am very glad to see this! Could you comment on what larger influence > with might have on Emacs Lisp as a language. I can say something about what my goal is. If this ever lands in master is a different story, I haven't heard something like that being said. But packages are now there, and won't disappear :-). So, my goal: - Be backwards-compatible for users and developers. - Provide the benefits of packages to developers, mainly. Where users writing their own stuff would be developers as well, who use currently "my-" prefixes for own functions etc. =20=20 Some of the benefits: The ability to export only a subset of functions/variables, while being able to use unobstrusive names. It would no longer be neccessary to use prefixes like or "xyz-", or "xyz--". You could define a package "xyz", and reference definitionsi with something like "xyz:..." or "xyz::..." (use only if you must access internals). Or use no prefix at all by importing symbols or packages. Emacs itself could hide tons of internal definitions like that, and export only what is in the public interface. And so on, you get the idea. And one could think of extensions, which are currently not in scope for me, like hierarchical packages (think Java, x.y.z.collections) that could be added on top, to structure the package namespace. CMUCL and Allegro CL have something like that. > E.g. in bug#57907 there was a discussion how adding keyword support > for cl-loop was not necessary for Emacs Lisp, but now that symbol > packages might become a thing, would that have to change? I remember that. The implementation of cl-loop would have to be changed to work like it does in Common Lisp, that is, it would accept something like 'for' regardless of for's package. That's not hard. > How would the support look like from a backwards compatibility > perspective? I am assuming all old code would be loaded into the > default packages, right? Right, and that's already the case in feature/pkg, and it seems to work well, except that Gnus doesn't start for me. I couldn't figure that one out yet. Gnus is large, and tedious to debug if one doesn't know its internals. Other than that, what I use (Magit, Helm, Lsp, ...) seems to work just fine, and meanwhile the existing tests also succeed. That looks like good news in the compatibility department so far. Performance seems to be more or less the same, unsurprisingly, a full build is a tad faster in pkg. No difference noticeable interactively.