From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Vladimir Sedach Newsgroups: gmane.emacs.devel Subject: Re: Proper namespaces in Elisp Date: Mon, 04 May 2020 18:09:08 -0700 Message-ID: <87sggf193f.fsf@t510.orion.oneofus.la> References: <237fe643-c14d-5406-b35d-a30dcd42c5ed@gmail.com> <87v9lb1irk.fsf@t510.orion.oneofus.la> 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="42038"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: mu4e 1.3.10; emacs 26.2 Cc: nic@ferrier.me.uk, =?utf-8?Q?Cl=C3=A9ment?= Pit-Claudel , emacs-devel To: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue May 05 03:23:15 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 1jVmIl-000Aqd-PJ for ged-emacs-devel@m.gmane-mx.org; Tue, 05 May 2020 03:23:15 +0200 Original-Received: from localhost ([::1]:46758 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jVmIk-0004Ut-Ri for ged-emacs-devel@m.gmane-mx.org; Mon, 04 May 2020 21:23:14 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:54630) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jVmIA-0003zj-V8 for emacs-devel@gnu.org; Mon, 04 May 2020 21:22:38 -0400 Original-Received: from forward106p.mail.yandex.net ([77.88.28.109]:40764) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jVmHb-0004yc-Hx for emacs-devel@gnu.org; Mon, 04 May 2020 21:22:32 -0400 Original-Received: from mxback22j.mail.yandex.net (mxback22j.mail.yandex.net [IPv6:2a02:6b8:0:1619::222]) by forward106p.mail.yandex.net (Yandex) with ESMTP id 755EB1C81A2C; Tue, 5 May 2020 04:21:58 +0300 (MSK) Original-Received: from sas2-ee0cb368bd51.qloud-c.yandex.net (sas2-ee0cb368bd51.qloud-c.yandex.net [2a02:6b8:c08:b7a3:0:640:ee0c:b368]) by mxback22j.mail.yandex.net (mxback/Yandex) with ESMTP id rDJtXcGoPW-LwmSWj4x; Tue, 05 May 2020 04:21:58 +0300 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oneofus.la; s=mail; t=1588641718; bh=kf3xWy6LY5dZf3KitDul3MiZ8hRyaoLNWofLnI5Hwkw=; h=In-reply-to:Subject:Cc:To:From:Date:References:Message-ID; b=JcDq/z3zkWuWXJy7Qo0z7MpNk9qdgYnC9hBx3W2G0NZdVIPrbKHy9u6N8nbFvU/hG bMfgrnNiK78uelCix3WOR79FwalXSaumeWAkSra1E79bKe59AIVso5pyR6EKH+WQI8 9JvrkWu1pr6A14LWbV9TMSMvZfyICb7BUQZ4YgQE= Authentication-Results: mxback22j.mail.yandex.net; dkim=pass header.i=@oneofus.la Original-Received: by sas2-ee0cb368bd51.qloud-c.yandex.net (smtp/Yandex) with ESMTPSA id 4wmneHd316-LuoOTabw; Tue, 05 May 2020 04:21:57 +0300 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client certificate not present) In-reply-to: Received-SPF: pass client-ip=77.88.28.109; envelope-from=vas@oneofus.la; helo=forward106p.mail.yandex.net X-detected-operating-system: by eggs.gnu.org: First seen = 2020/05/04 21:21:58 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] 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, RCVD_IN_DNSWL_NONE=-0.0001, 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:248922 Archived-At: Jo=C3=A3o T=C3=A1vora writes: > I liked that your example tried to bring a real-life problem > to the table, but I can't make sense of it. Let me try a different way: 1. Library ABC version 1 does not define or export FUNC1. 2. Package XYZ :uses ABC, importing all of ABC's exported symbols. 3. Package XYZ defines FUNC1 for internal use. There is no problem. 4. Library ABC version 1.1 defines and exports FUNC1. 5. When XYZ is loaded with ABC version 1.1, XYZ unintentionally overrides the definition of FUNC1 for all users of ABC. Perhaps that makes it more clear. This is a real problem for a lot of Common Lisp packages right now, that prevents popular libraries from adding more functionality. -- Vladimir Sedach Software engineering services in Los Angeles https://oneofus.la