[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Question about how to check a symbol is bound
From: |
felix . winkelmann |
Subject: |
Re: Question about how to check a symbol is bound |
Date: |
Wed, 28 Jun 2023 21:32:36 +0200 |
> On 28/06/2023 14:09, felix.winkelmann@bevuta.com wrote:
> >>
> >> (define-object-type bar
> >> (field-1 name-of-library#foo)
> >> (field-2 name-of-other-library#some-other-type))
> >>
> >> ...even though calling symbol-value on those symbols at run time works
> >> just fine. It seems that the symbols imported into the environment at
> >> macro expansion time are handled differently in some way.
> >>
> >
> > I guess during expansion identifiers are renamed to some internal gensym
> > and thus not accessible by name (which is the whole point of a hygienic
> > macro system). Could you not register the "foo" type in a expansion time
> > hash table?
>
> Alas, the requirement is that things like "foo" are part of the lexical
> environment - so can be imported from modules, renamed, be hidden inside
> local scopes, all that stuff!
>
I guess some macro wizard will come up with a way to do this.
But I still think that keeping an expansion/compile-time registry and
accessing it using procedure macros (via "strip-syntax"ed identifiers
to drop all renaming artifacts) is a possible solution.
felix
- Re: Question about how to check a symbol is bound, (continued)
- Re: Question about how to check a symbol is bound, Peter Bex, 2023/06/23
- Re: Question about how to check a symbol is bound, Pan Xie, 2023/06/23
- Re: Question about how to check a symbol is bound, Lassi Kortela, 2023/06/23
- Re: Question about how to check a symbol is bound, Peter Bex, 2023/06/23
- Re: Question about how to check a symbol is bound, Thomas Chust, 2023/06/23
Re: Question about how to check a symbol is bound, Kon Lovett, 2023/06/23