From: Daniel Colascione <dancol@dancol.org>
To: Andrea Corallo <akrl@sdf.org>
Cc: "Tom Tromey" <tom@tromey.com>,
emacs-devel@gnu.org, "João Távora" <joaotavora@gmail.com>,
"Stefan Monnier" <monnier@iro.umontreal.ca>
Subject: Re: Proper namespaces in Elisp
Date: Sat, 9 May 2020 11:33:03 -0700 [thread overview]
Message-ID: <d7c75826-40a4-9c0e-bf9d-3eeffd676f78@dancol.org> (raw)
In-Reply-To: <xjfeertj709.fsf@sdf.org>
On 5/9/20 11:30 AM, Andrea Corallo wrote:
> Daniel Colascione <dancol@dancol.org> writes:
>
>> On May 9, 2020 10:25:13 AM Andrea Corallo <akrl@sdf.org> wrote:
>>
>>> Daniel Colascione <dancol@dancol.org> writes:
>>>
>>>> On May 9, 2020 1:37:16 AM Andrea Corallo <akrl@sdf.org> wrote:
>>>>
>>>>> Daniel Colascione <dancol@dancol.org> writes:
>>>>>
>>>>>> So there are three basic operations we can support: in Python syntax,
>>>>>> 1) from PKG import * (exposing PKG.foo as foo), 2) import PKG as p
>>>>>> (exposing PKG.foo as p.foo) and 3), from PKG import foo (exposing
>>>>>> PKG.foo as foo). CL supports all three. I'm most interested in
>>>>>> supporting #2, since that's closest to existing use. The lexspace
>>>>>> prototype posted earlier today supports #3 and #1 (the latter via
>>>>>> lexspace inheritance) only, but I think we should do #2 instead
>>>>>
>>>>> I suspect we'll need all threes anyway.
>>>>
>>>> Why? What problem is actually being solved by #1 and #3? If the
>>>> problem is that package names long enough to avoid collisions are too
>>>> annoying to type, we can address this problem with #2.
>>>
>>> I think #1 would be the way to derive an entire package and add some
>>> functionality to it without changing the names that you'll finally want
>>> to re-expose. Is this correct?
>>
>> Can you give a concrete example of a situation in which it'd be useful
>> to do that? I think other people on the thread are right about
>> discouraging bulk naked symbol imports.
>
> Say we have a library exposing functions A B C D ... Z and you want to
> make a package that is exaclty the same except for functions F and G.
> You'd import everything (or what you need with #3) and (re)define your F
> and G versions of it.
When does this situation ever actually come up? And why should we pick
an approach that incurs runtime overhead everywhere just for this?
next prev parent reply other threads:[~2020-05-09 18:33 UTC|newest]
Thread overview: 101+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-04 10:52 Proper namespaces in Elisp João Távora
2020-05-04 15:11 ` Adam Porter
2020-05-04 15:38 ` Clément Pit-Claudel
2020-05-04 15:49 ` João Távora
2020-05-04 16:39 ` Adam Porter
2020-05-04 16:49 ` João Távora
2020-05-04 18:00 ` Clément Pit-Claudel
2020-05-04 20:19 ` Vladimir Sedach
2020-05-05 2:51 ` Richard Stallman
2020-05-04 15:29 ` Clément Pit-Claudel
2020-05-04 16:04 ` João Távora
2020-05-04 18:29 ` Helmut Eller
2020-05-04 18:39 ` Stefan Monnier
2020-05-04 19:02 ` João Távora
2020-05-04 19:20 ` Stefan Monnier
2020-05-04 19:49 ` João Távora
2020-05-04 21:59 ` Andrea Corallo
2020-05-04 22:34 ` João Távora
2020-05-05 10:33 ` Andrea Corallo
2020-05-05 10:54 ` Andrea Corallo
2020-05-05 12:50 ` João Távora
2020-05-05 13:34 ` Andrea Corallo
2020-05-05 14:03 ` João Távora
2020-05-05 14:26 ` Andrea Corallo
2020-05-05 21:20 ` João Távora
2020-05-05 23:37 ` Andrea Corallo
2020-05-06 0:15 ` João Távora
2020-05-06 7:07 ` Andrea Corallo
2020-05-06 19:48 ` João Távora
2020-05-07 6:13 ` Andrea Corallo
2020-05-05 13:45 ` Stefan Monnier
2020-05-05 14:07 ` João Távora
2020-05-05 4:55 ` Helmut Eller
2020-05-04 21:40 ` Vladimir Sedach
2020-05-04 22:09 ` João Távora
2020-05-05 1:09 ` Vladimir Sedach
2020-05-05 9:38 ` João Távora
2020-05-05 16:41 ` Vladimir Sedach
2020-05-05 21:29 ` João Távora
2020-05-06 3:25 ` Vladimir Sedach
2020-05-06 19:38 ` João Távora
2020-05-06 22:47 ` Vladimir Sedach
2020-05-07 10:00 ` João Távora
2020-05-07 18:30 ` Vladimir Sedach
2020-05-07 19:32 ` João Távora
2020-05-04 22:40 ` João Távora
2020-05-05 1:24 ` Vladimir Sedach
2020-05-04 15:43 ` Stefan Monnier
2020-05-05 15:10 ` Tom Tromey
2020-05-05 21:30 ` João Távora
2020-05-07 2:23 ` Tom Tromey
2020-05-07 3:12 ` Stefan Monnier
2020-05-07 13:02 ` Tom Tromey
2020-05-07 13:48 ` João Távora
2020-05-07 18:17 ` Stefan Monnier
2020-05-07 18:48 ` Vladimir Sedach
2020-05-07 20:33 ` João Távora
2020-05-08 2:56 ` Vladimir Sedach
2020-05-08 15:56 ` João Távora
2020-05-08 17:59 ` Vladimir Sedach
2020-05-08 18:38 ` João Távora
2020-05-07 19:37 ` Daniel Colascione
2020-05-07 20:28 ` Stefan Monnier
2020-05-07 20:42 ` Daniel Colascione
2020-05-07 21:06 ` Stefan Monnier
2020-05-07 21:10 ` Daniel Colascione
2020-05-07 21:46 ` João Távora
2020-05-07 21:56 ` Daniel Colascione
2020-05-07 22:12 ` João Távora
2020-05-08 18:59 ` Vladimir Sedach
2020-05-08 19:34 ` Daniel Colascione
2020-05-09 0:00 ` Vladimir Sedach
2020-05-09 0:32 ` Daniel Colascione
2020-05-09 8:37 ` Andrea Corallo
2020-05-09 16:11 ` Daniel Colascione
2020-05-09 17:25 ` Andrea Corallo
2020-05-09 17:45 ` Daniel Colascione
2020-05-09 18:23 ` João Távora
2020-05-09 18:32 ` Daniel Colascione
2020-05-09 18:35 ` João Távora
2020-05-09 18:39 ` Daniel Colascione
2020-05-09 19:11 ` João Távora
2020-05-09 18:30 ` Andrea Corallo
2020-05-09 18:33 ` Daniel Colascione [this message]
2020-05-09 18:48 ` Andrea Corallo
2020-05-09 20:34 ` Why :USE sucks in the Common Lisp package system Michał "phoe" Herda
2020-05-09 21:47 ` João Távora
2020-05-09 21:55 ` Michał "phoe" Herda
2020-05-09 22:01 ` Daniel Colascione
2020-05-09 22:07 ` Michał "phoe" Herda
2020-05-09 22:12 ` João Távora
2020-05-10 10:10 ` Michał "phoe" Herda
2020-05-09 23:23 ` Andrea Corallo
2020-05-10 6:46 ` Andreas Schwab
2020-05-10 8:53 ` Helmut Eller
2020-05-10 9:59 ` Michał "phoe" Herda
2020-05-10 1:19 ` Proper namespaces in Elisp Vladimir Sedach
2020-05-08 23:07 ` Andrea Corallo
2020-05-08 23:23 ` Stefan Monnier
2020-05-09 8:12 ` Andrea Corallo
2020-05-09 12:06 ` Tuấn-Anh Nguyễn
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d7c75826-40a4-9c0e-bf9d-3eeffd676f78@dancol.org \
--to=dancol@dancol.org \
--cc=akrl@sdf.org \
--cc=emacs-devel@gnu.org \
--cc=joaotavora@gmail.com \
--cc=monnier@iro.umontreal.ca \
--cc=tom@tromey.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.