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: Tue, 05 May 2020 09:41:40 -0700 Message-ID: <87k11q1ghn.fsf@t510.orion.oneofus.la> References: <237fe643-c14d-5406-b35d-a30dcd42c5ed@gmail.com> <87v9lb1irk.fsf@t510.orion.oneofus.la> <87sggf193f.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="64084"; 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 18:43:11 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 1jW0f0-000GVZ-NC for ged-emacs-devel@m.gmane-mx.org; Tue, 05 May 2020 18:43:10 +0200 Original-Received: from localhost ([::1]:56340 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jW0ez-0001vR-Oc for ged-emacs-devel@m.gmane-mx.org; Tue, 05 May 2020 12:43:09 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:60506) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jW0e0-0000k2-EU for emacs-devel@gnu.org; Tue, 05 May 2020 12:42:08 -0400 Original-Received: from forward102o.mail.yandex.net ([2a02:6b8:0:1a2d::602]:43875) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jW0dw-0005Iq-QU for emacs-devel@gnu.org; Tue, 05 May 2020 12:42:07 -0400 Original-Received: from mxback1j.mail.yandex.net (mxback1j.mail.yandex.net [IPv6:2a02:6b8:0:1619::10a]) by forward102o.mail.yandex.net (Yandex) with ESMTP id 86025668071F; Tue, 5 May 2020 19:41:58 +0300 (MSK) Original-Received: from iva8-6403930b9beb.qloud-c.yandex.net (iva8-6403930b9beb.qloud-c.yandex.net [2a02:6b8:c0c:2c9a:0:640:6403:930b]) by mxback1j.mail.yandex.net (mxback/Yandex) with ESMTP id vbzKd9TvUW-fvNGqvaL; Tue, 05 May 2020 19:41:58 +0300 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oneofus.la; s=mail; t=1588696918; bh=3uvJjcb8pryVTcdat44+tduKECrkVEa17X4Gxf+lffU=; h=In-reply-to:Subject:Cc:To:From:Date:References:Message-ID; b=L7HCm981Q0mumrwgY4xa9j5xhYcnzMf0w9SD1CmxawhIasNmKwT0bCOpQylQYTmUe jq24vtbFEC7xdEVfOQEv9TzZJyYPAZOXJIF59tza8WVqffPNS8TB32sV95/P2F8cPv 74YVqE6K26u8c2MySOx2eNdY1IR67xL7yG+bD15Y= Authentication-Results: mxback1j.mail.yandex.net; dkim=pass header.i=@oneofus.la Original-Received: by iva8-6403930b9beb.qloud-c.yandex.net (smtp/Yandex) with ESMTPSA id aKapd5VFqS-ftWWGgOS; Tue, 05 May 2020 19:41: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=2a02:6b8:0:1a2d::602; envelope-from=vas@oneofus.la; helo=forward102o.mail.yandex.net X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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:249010 Archived-At: Jo=C3=A3o T=C3=A1vora writes: >> 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. > > In which implementation of CL? In the ones I know, step 5 > will get you an error, exactly describing the conflict, > which you handle interactively or automhatically. That (NAME-CONFLICT error) only happens at run-time if you have ABC version 1 already loaded, load XYZ, then load ABC version 1.1. If you install XYZ, and ABC version 1.1 is pulled in as a dependency, the only thing you might see is a warning that FUNC1 is being re-defined. The compiler cannot magically tell if you are re-defining FUNC1 by accident or intentionally. -- Vladimir Sedach Software engineering services in Los Angeles https://oneofus.la