emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Help sought understanding shorthands wrt modules/packages


From: Helmut Eller
Subject: Re: Help sought understanding shorthands wrt modules/packages
Date: Wed, 09 Nov 2022 11:07:11 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)

On Tue, Nov 08 2022, Richard Stallman wrote:

> Making it even worse, once BAR:HACK is recorded as the meaning of HACK
> in FOO's symbol table (obarray), there was no way to make it mean some
> other symbol HACK.

That's technically wrong: it is possibly to "shadow" inherited symbols.
E.g. so:

(defvar *foo* (make-package "FOO" :use '()))
(defvar *bar* (make-package "BAR" :use (list *foo*)))

(export (intern "HACK" *foo*) *foo*)
(assert (eq (intern "HACK" *bar*)
            (intern "HACK" *foo*)))
(shadowing-import (make-symbol "HACK") *bar*)
(assert (not (eq (intern "HACK" *bar*)
                 (intern "HACK" *foo*))))

This shows that FOO::HACK and BAR::HACK can be different symbols even
though FOO exports HACK and BAR uses FOO.

Helmut



reply via email to

[Prev in Thread] Current Thread [Next in Thread]