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: CL packages landed Date: Fri, 21 Oct 2022 06:47:05 +0200 Message-ID: Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="17359"; mail-complaints-to="usenet@ciao.gmane.io" To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Oct 21 06:48:44 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 1oljxb-0004Nr-BW for ged-emacs-devel@m.gmane-mx.org; Fri, 21 Oct 2022 06:48:43 +0200 Original-Received: from localhost ([::1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oljxZ-0006BT-Qj for ged-emacs-devel@m.gmane-mx.org; Fri, 21 Oct 2022 00:48:41 -0400 Original-Received: from [::1] (helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oljwB-0005aZ-Uj for ged-emacs-devel@m.gmane-mx.org; Fri, 21 Oct 2022 00:47:15 -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 1oljw7-0005Zw-GS for emacs-devel@gnu.org; Fri, 21 Oct 2022 00:47:11 -0400 Original-Received: from mail-ej1-x634.google.com ([2a00:1450:4864:20::634]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oljw5-0001wk-Nu for emacs-devel@gnu.org; Fri, 21 Oct 2022 00:47:11 -0400 Original-Received: by mail-ej1-x634.google.com with SMTP id q9so4518554ejd.0 for ; Thu, 20 Oct 2022 21:47:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:message-id:date:subject:to:from:from:to:cc:subject :date:message-id:reply-to; bh=krIAuukWfou2SOENtxiwG32Zy71DZ/QbJlCwFJyvufc=; b=B+VJ95NTz0fxHYTU1WgzFxQpQdQctBQPHtUM8lqPlN5vUZouoVRowgDY5YK+MnL65l jwu/0k7BokS1aVOaG5eOyxCqVuYNbbEGiZhcWQfMWl4oAd6RXB5HA9DFj3b98Tu2+cNq jdyqTYO63ZQhq/SXqM5+rCjxM0JbVzZgMuBdiZxsD/WjadCvhYerjBR7jndm0a9F2Zx8 3sK/f5jC/b3ChtYE7y4edzTQ8oGWeJTixJV8lbIEqzCJ+H1zWNpPJmSQR3Lx7SrGUI7n sEYLYUHhp0EArwFPdximOFHEcH06LMX4H+L6bmIq1MWsJnFXTUrLCNz8WquVz9uu973U 3fWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:message-id:date:subject:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=krIAuukWfou2SOENtxiwG32Zy71DZ/QbJlCwFJyvufc=; b=d91ZUrQ1/ei7aeq/KWTwSRq6s+oSR9U7xCMX5YydMdqYf7+PJiLpGSO6wSAwiATKsk XBnz3Yw4hW8mCplNYyX7wOlLMs/Y5r5LRAxV/yz43toPu7PYGPTpqn6ppwAvVsP5qJET yQIQblQwdfhLR20uup+WWDZ8pRPsX7jkXHF+6IXH1A7g98MuHn/MAvbMq7nxVk1wjurP m9hshIa4fhv1XVQD6oQ64zixp81D1d+Ki2G4hnSit6Lwu6PAmFylnx5AACVDX+3If5Kg ZJzljwML/ZBoiGsLs62Wny5UHj3zTg4QOlSzNk+EGOv5uO/Sch/CEIVASjAmRLGy460V bZQA== X-Gm-Message-State: ACrzQf2+eBB82LuE2SKZcxCJUFF1/GCV+hO6H6dISBFT9jMoXat8x/dz 0pFhfbk9OPTkArM1YeNgX1iOW3xLOTA= X-Google-Smtp-Source: AMsMyM6/DG11br8bT8b3KAZGDwRoNAGs/83tzKL5W+AqHrOdfLLGi9O8XFfskgB+EJtwB0wZUfxQTg== X-Received: by 2002:a17:907:72c3:b0:792:56d7:285a with SMTP id du3-20020a17090772c300b0079256d7285amr9144325ejc.597.1666327627073; Thu, 20 Oct 2022 21:47:07 -0700 (PDT) Original-Received: from Mini.fritz.box (pd9e367d6.dip0.t-ipconnect.de. [217.227.103.214]) by smtp.gmail.com with ESMTPSA id x24-20020a170906b09800b0078d46aa3b82sm11043582ejy.21.2022.10.20.21.47.05 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Oct 2022 21:47:06 -0700 (PDT) Received-SPF: pass client-ip=2a00:1450:4864:20::634; envelope-from=gerd.moellmann@gmail.com; helo=mail-ej1-x634.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: , 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:298192 Archived-At: 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. What to expect: - It runs on macOS with unchanged init file. I'm not using much, but I can say that it works with Helm and Lsp, - I know of a bug when connecting to Gmail imap using Gnus that's not there in master. - YMMV, it's all only a few weeks old, if at all. What it does: - Lisp_Package is a new Lisp type. - There are 2 predefined packages "emacs" and "keyword", and a current package *package* (buffer-local IIRC). - The whole package stuff is available very early in C. It's initialized right after init_alloc. - Obarrays are gone. Good riddance. I removed them in a backward-compatible way. - Symbols have packages (symbol-package). Uninterned symbols have a nil package, others have "emacs" or "keyword". - Lisp_Symbol::next is gone. So, the size of Lisp_Symbol is unchanged. - The symbol name of keywords does NOT include the colon. That turned out the only sane way to do it, after some experimentation. - A number of places in C that assumed that symbol names of keywords start with ':' are changed. On the Lisp side, symbol-name for keywords returns a string starting with ':'. I tried without, but that wasn't compatible enough. There is a cl-symbol-name not prepending the ':'. - Some functions like list-all-packages, make-package are implemented in Lisp. Many others are still missing, defpackage most notably. I plan to add them based on public-domain code from CMUCL. - Reading symbols and printing symbols is changed. - A new variable package-prefixes controls if ':' in symbol names is interpreted as a separating package names from symbol names. Default is not to. Astonishingly many code uses such symbol names, the best one I've seen is a complete URL 'http://...' :-). What it is not/does not have: - Bug-free, for sure, but it is pretty usable. - Documentation. - A complete Lisp-side implementation of packages (defpackage, use-package, ... - Tests of the new stuff. There is a stub under test/, but it doesn't do much. - Fixes for tests of old stuff. In fact, I haven't run make check yet. Weeding out all bugs is currently not my focus. - shorthand.el is currently not supported. - Support for pure space is missing. I have cherry-picked a commit by Stefan that removes uses of pure_alloc. I didn't want to deal with pure space, and I can't test it anyway here. - Other stuff that I currently forget. And the code is not entirely terrible, at least IMO :-). Plans: I think I'll continue using this branch. No plans, no commitments though. Have fun :-)