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 15:03:06 +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="116605"; 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 16:09:37 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 1jVyGN-000UC3-6y for ged-emacs-devel@m.gmane-mx.org; Tue, 05 May 2020 16:09:35 +0200 Original-Received: from localhost ([::1]:58824 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jVyGM-0002Lc-9v for ged-emacs-devel@m.gmane-mx.org; Tue, 05 May 2020 10:09:34 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:54834) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jVyAN-00033L-R6 for emacs-devel@gnu.org; Tue, 05 May 2020 10:03:23 -0400 Original-Received: from mail-il1-x141.google.com ([2607:f8b0:4864:20::141]:39998) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jVyAJ-0001Cu-Hv for emacs-devel@gnu.org; Tue, 05 May 2020 10:03:23 -0400 Original-Received: by mail-il1-x141.google.com with SMTP id e8so2340602ilm.7 for ; Tue, 05 May 2020 07:03:19 -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=HWZkVBKGpI84UpoK3MBB5xwZskJ9Cq75fnI04Fs/8SE=; b=aragtJrPipOTk4xr5crRVtPRG3gPGjaUjyN0uTDnMUX/rCsXy2+tA1clZWq8pmnR0p b/WDqJoiXrp5BefICHD1Apcfv/6F5jf5bn7LWGGrr4DMIUg4TbGggWt7smhwhSL/gSFx s97L2I+3tYFrk2r61UDpywKjrA9GkFwxVZJ8Mju8l202SOI251T+uO6r8ZXP7C6jpuLu 30kut/qhvVj2/XyZidhsi2x4SCHqTDW9Rz5V3zEA+yYBdo5wJ9XGmE+evZZMJ/NB3C0Y /LqN/eaJ1tLEJJbvbGur6WDN1Ih2F8qxwwFKNJ8FAbvJBBbLFg89g+ji9WNuFzn4Urkp M8IQ== 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=HWZkVBKGpI84UpoK3MBB5xwZskJ9Cq75fnI04Fs/8SE=; b=VLRmADSMTx3gbPwoVYaU/tJYrDvMSiOWPXI0fQdbjRIVTgR8NfIzh22kuBP/fTVfT6 K+yq7k/zzDK9mzoRCy8JifIv2N9OLdWd9Kw1KSRvkeXQTkEp6a504yigSrE7/zry64km aU2cBNMA0yI8fuRRrk9O/alZeZx8zEG24fXZlEqF2vsBQeQj+KF15i6nkACQ3cZR7sbU cswP6G7DmPcWGwtHaNZStPdl1saHli0V5OIORioc/xd2dfYMHCFUROCs/Qf1ynpmMvko 34yr2FLrD/eEZKZEWL1aTNunWnJqIvWbS0Bdt5q8xih8S44klgFE7R/N46ugWaWHv2He mcew== X-Gm-Message-State: AGi0PuZfrdD7oaG05zMQd4VKf78Uf0Oogece7pvryLzIMmNuAwfa3iga S6dv5OeTkndHZ6sf6whodwMGZwLLeAt36P7x/k0= X-Google-Smtp-Source: APiQypKgZyd2K9i4MDZ5Q0jPF3srRputaPLSGNAUQK9hdilUh95dR7Gwcg2ZfH84q8UjPADv/VVEFINlmlJn1HyXH94= X-Received: by 2002:a05:6e02:f45:: with SMTP id y5mr3737510ilj.199.1588687398237; Tue, 05 May 2020 07:03:18 -0700 (PDT) In-Reply-To: Received-SPF: pass client-ip=2607:f8b0:4864:20::141; envelope-from=joaotavora@gmail.com; helo=mail-il1-x141.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:248990 Archived-At: On Tue, May 5, 2020 at 2:34 PM Andrea Corallo wrote: > I believe the program wants just to return the symbol 'aaa' and does not > want to bother about other 1000 complications of the CL package system. But that's not the program you wrote. If you want to return a symbol that is universally univocally independent of context, you use a keyword, not an internal symbol. That is substituting a " ' " for a " : ", a one-char change. That different program does what you want (which I suppose is not print the string "boom") You're thinking about One Big Namespace. Fine. But that's Elisp. And it has the problems this thread is proposing to solve. But you can go full Elisp in Common Lisp, just use a single package always. > I suggest to try to abstract one second from the implementation point of > view. This is a low level detail. I agree, but it's you who said the reader-based approach had implications. > > Or did you mean you want an auto-exported, > > self-evaluating, quick-to-type, one-big-namespace > > qualifier? The keyword package is there for that, as > > you probably know, and that's what everybody uses. > > _When_ they want those semantics. So, for me, > > being able to determine the semantics of my program > > (also called "programming") with little typing is a very > > good thing, a very good "implication", it's exactly the > > power I crave. > > I've no doubt you can make it working with CL, guess what they have made > full operating systems with it... and it worked. Even if they didn't make OS's out of it. The point is I don't need those to refute your particular arguments. > I'm just saying that if you look to it from another perspective is very > complex and error prone system and this is an example. It's not complex. It's a powerful system. Don't use the parts you don't understand yet, then. Look, if we had them, people would happily hack on the "Emacs" package all the time and noone would notice it. But people you want to use modern-string.el could (use-package :modern-string) and find that s:thingamabob does that sweet thing they like. And when you wanted to write a library, you would learn it. It's not hard, believe me. > That said is just my opinion (arguably shared by a number of people) so > please take it just for what it is. Oh I take it, sure. I just think your particular one, based on the examples you gave me, it's based on very light (mis)usage of the package system and misunderstanding of its features. You _could_ have said you don't like the ocasional erroring and nagging by the debugger about symbol conflicts, but I would have answered, hey conflicts exists like when some other Andrea shows up and we have to disambiguate. Or you could have said that it is strange to mistype "foo" in the REPL and then find FOO has been interned. Or how it's tricky to resist DOS attacks in because of malicious interning through the reader (if you don't take precautions). But now that I think of it, these problems happen in Elisp too. Jo=C3=A3o