From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= Newsgroups: gmane.emacs.devel Subject: Re: Proper namespaces in Elisp Date: Tue, 5 May 2020 22:20:17 +0100 Message-ID: References: <237fe643-c14d-5406-b35d-a30dcd42c5ed@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="130583"; mail-complaints-to="usenet@ciao.gmane.io" Cc: nic@ferrier.me.uk, =?UTF-8?Q?Cl=C3=A9ment_Pit=2DClaudel?= , emacs-devel , Stefan Monnier , Helmut Eller To: Andrea Corallo Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue May 05 23:21:12 2020 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 1jW504-000XqO-ON for ged-emacs-devel@m.gmane-mx.org; Tue, 05 May 2020 23:21:12 +0200 Original-Received: from localhost ([::1]:58580 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jW503-0004t5-Qk for ged-emacs-devel@m.gmane-mx.org; Tue, 05 May 2020 17:21:11 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:55476) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jW4zP-0004Fu-7G for emacs-devel@gnu.org; Tue, 05 May 2020 17:20:31 -0400 Original-Received: from mail-io1-xd36.google.com ([2607:f8b0:4864:20::d36]:40594) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jW4zO-0003ZY-8F for emacs-devel@gnu.org; Tue, 05 May 2020 17:20:30 -0400 Original-Received: by mail-io1-xd36.google.com with SMTP id c2so3569663iow.7 for ; Tue, 05 May 2020 14:20:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=yiqBMiPpKeuodmlC3D2t6okMD5psOFBQFuhVu9dcsqw=; b=jZKJ97Txfnt7adJITq8qPcTDJV62ynt3FZXFTWIWHHnk3gEk+UA/HmVyv7mSlsg3Gk 22OH9bZZH4euPG4wZYiW+dNzEsD3h7zaKmgTnF4tUK8l3GMxdZsvcAOwcdzJzcQM6Q9L Cl9riKiFCPWeUFOokazmIGmmUnM5b+dKD7dmIegfOlmoGRdPhFLno/j73pISXBL+foL6 JO1PU2XKf7ye9R3x1k9g6IOKnBbXxaSRMwJU47S20QR7ykjsExjuPBVP7gwd/Y+6dH1H xgLpWccbj/OG0yzcpaksenOadOVLTlFIx+z99t53TAgbifhlvt+lDzyBBJYKxxVpF9Yj bpQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=yiqBMiPpKeuodmlC3D2t6okMD5psOFBQFuhVu9dcsqw=; b=QYJsw+P1w9baW1na8Qy6kwnc/x0R8TggElgZZqgGAXpk68iaxd4fpmrStOG534Y+MX Qjws25pja7dVm+ADqyc+qzpnRa2+TcvPAox45XCDA+XAT/GcLl6+qaZ8CfbuoVjQy9fZ JRoaueWyqP6XErpPvSoUFq0VFIkKPUDNaYa5ul1BFcVms1A50Hou3KSEGY4Z79xKkO8r kC5MuONIpVH435Ep7eQbuj3exhIYIApRNOgjvpnFsdZdBf3r9KFeIa8eWg+CI7n+PfHo 67kuDr0Y/TOVVvFtP+9C485mHolCYvm6sTaJmtqYedSKRTRm5FVjfRKffAe/ycwgy9WB mv0w== X-Gm-Message-State: AGi0PuYoXomgZmvlayPSgVmAfSNSZuiuDgt9RhQ70tQ7rPa8N968nhYT wU4PpvXN2hzSYomV7at4a8wmUFTvDtbsGE5lC50= X-Google-Smtp-Source: APiQypJ7DC50TMzTJhOCdCA1jHUyPIYT1gL0rteMca40MP7IC4vePvjwHa/OJAuIgkfYsdVM6YNkMwSL4iqQLw0/uq0= X-Received: by 2002:a6b:9244:: with SMTP id u65mr5475633iod.165.1588713629069; Tue, 05 May 2020 14:20:29 -0700 (PDT) In-Reply-To: Received-SPF: pass client-ip=2607:f8b0:4864:20::d36; envelope-from=joaotavora@gmail.com; helo=mail-io1-xd36.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.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, FROM_EXCESS_BASE64=0.979, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 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:249047 Archived-At: On Tue, May 5, 2020 at 3:27 PM Andrea Corallo wrote: > Yes is how this is worked around that in CL. It works, I'm just saying > is error prone and unnecessary complex. What is complex? Understanding how quoting works? Replacing the quote with a colon? > No, I'm thinking to one namespace only for symbols *not* for bindings. > This is not CL or Elisp either. I don't understand, I admit. I thought this conversation was about you telling me why a reader-based system is a bad idea. (It seems Tom and Stefan have explained that to a point BTW, it's that internal Emacs features rely on certain names being interned in the main package. Not necessarily a big problem IMO, we can discuss that if you want.) > Thanks for telling me I could learn it. I'm trying to say that I think > is unnecessary complex being too low level and that there could be > another way. But okay if you prefer I just haven't learned how it > works. It's that you insist it should do A when you ask it to do B. It's like expecting printf("Hello World") to print "Goodbye". > https://zenodo.org/record/2648195 > http://www.flownet.com/gat/locales.pdf Normally, I'd ignore a lazy paper-drop, but I happened to know one of them and investigated the other. They are both short. So, I'll take the bait: [1] https://zenodo.org/record/2648195 [2] http://www.flownet.com/gat/locales.pdf Surely you are aware that [1] is proposing a reader-based system where symbols are like packages themselves, so that you can have basically packages inside packages, recursively. It's very interesting, but incomplete and fraught with difficulties and shortcomings as admitted by the author himself. But to quote _that_ as support that plain CL packages are "very complex"? Also, in [1] in its section "Problems with CL packages", a very short section in a very short paper, starts off by admitting that it's "CL packages are a misunderstood part of CL" [1, p2]. Sounds familiar, indeed. Then, the main criticism it levels against them is read-time side-effects, and points to [2] for justification. We check it out. [2] show us the unintentional interning of a symbols in the REPL caused an typo and an unusual way to :USE packages. Forgets to mention a REPL is interactive, by definition and that most Lisps will contain restarts that explain the error and allow you to choose a solution and continue cleanly after the error. The author also presents the package version in an unnecessarily verbose way. Finally that author admits, at the end of the section [2, page 4] that "This is a matter of taste." De Gustibus Non Est Disputandum. Not exactly categorical, i would say. So you could have just said "it's not my taste". Jo=C3=A3o Jo=C3=A3o