unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Arthur Miller <arthur.miller@live.com>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: emacs-devel@gnu.org
Subject: Re: Q: BLV for function slots + BL obarray/hmap for symbol lookup?
Date: Sun, 23 May 2021 18:23:27 +0200	[thread overview]
Message-ID: <AM9PR09MB49774E8E584DB5D68E0DDF3596279@AM9PR09MB4977.eurprd09.prod.outlook.com> (raw)
In-Reply-To: <jwveedx32f0.fsf-monnier+emacs@gnu.org> (Stefan Monnier's message of "Sun, 23 May 2021 11:27:02 -0400")

Stefan Monnier <monnier@iro.umontreal.ca> writes:

>>> E.g. which buffer should be used to resolve the "buffer-localness"?
>>> The one when `intern` is called or the one when the already-interned
>>> symbol is used?
>>
>> I am not sure I understand what you mean here. The rule would be same as
>> for buffer local vars, but they would work on symbol level instead of
>> variable slot level, at least conceptually.
>
> E.g. when we `load` a file, the `current-buffer` is the one which
> happened to be current when the `load` function was called.
> Usually that's when `intern` is executed.  So if you just naively make
> `intern` use `current-buffer` to decide what to do, you may get very
> unpredictable behavior.

I am still not sure I understand the problem 100%, but I understand it
partially I think :). Thanks.

> Have you looked at the different attempts to add some kind of
> namespace support to Emacs?  Some of them may be particularly well
> suited to your DSL situation.  When writing our history of ELisp paper,
> we found: Fakespaces, Namespaces, with-namespace, Codex, Names, and
> Nameless (the last two are in GNU ELPA).

Once, some years ago it was very popular with namespaces, so I have
heard about some, read some rants on Wiki pages, but I didn't use Elisp
that much, so I never checked them out. Back then namespaces used to pop
up as completion frameworks does nowadays.

This is the first time I feel I would have real use for a namespace (I
peronally don't mind typing prefixes). Names package look like something
I'll investigate and see if it works or the approach you suggest below.

>> If "local obarray" is declafed in a buffer, all interning would go to
>> that one, like all set/qset set's the local vaalue if there is one.
>
> But how do you control which buffer is current when the `intern` takes place?
>
> Also, have you considered something like
>
>     (setq-local obarray (obarray-copy obarray))

You mean to copy Emacs global obarray into local variable, the other way
around so to say, and use that one all the way? I didn't :-). Feels a bit
drastic to a big global environment, but it might work, I'll have to try
it. Thanks for the suggestion(s).



  reply	other threads:[~2021-05-23 16:23 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-22 21:46 Q: BLV for function slots + BL obarray/hmap for symbol lookup? Arthur Miller
2021-05-22 22:30 ` Stefan Monnier
2021-05-22 23:31   ` Arthur Miller
2021-05-23  3:25     ` Stefan Monnier
2021-05-23  9:00       ` Arthur Miller
2021-05-23 15:27         ` Stefan Monnier
2021-05-23 16:23           ` Arthur Miller [this message]
2021-05-29  7:31             ` Arthur Miller
2021-05-29 12:44               ` Michael Heerdegen
2021-05-30  2:57                 ` Arthur Miller
2021-05-30 12:44                   ` Philipp
2021-05-29 13:47               ` Stefan Monnier
2021-05-30  2:30                 ` Arthur Miller
2021-05-30  2:44                   ` Stefan Monnier
2021-05-30 12:17                     ` Arthur Miller
2021-05-29 13:56               ` Stefan Monnier
2021-05-23 18:22 ` Clément Pit-Claudel
2021-05-23 20:23   ` Arthur Miller
2021-05-23 21:41     ` Clément Pit-Claudel
2021-05-24 12:37       ` Arthur Miller

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

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=AM9PR09MB49774E8E584DB5D68E0DDF3596279@AM9PR09MB4977.eurprd09.prod.outlook.com \
    --to=arthur.miller@live.com \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    /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 public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).