guile-user
[Top][All Lists]
Advanced

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

Re: macroexpand-1


From: Catonano
Subject: Re: macroexpand-1
Date: Tue, 5 Jun 2018 09:11:28 +0200

Mark,

thanks again for your remarks

> 2018-05-30 3:07 GMT+02:00 Mark H Weaver <address@hidden>:
>
>
You're right, it is problematic, and it's good that you noticed that.
> It exposes internal details of Guile's implementation, which is quite
> likely to change in the future.  Do not use this interface if you can
> avoid it, and expect code that uses it to break in future versions of
> Guile.  That said, it can be useful for writing things like macro
> steppers.
>

Well, if it's gonna change, than a macro stepper that relies on that is on
fragile ground, isn't it ?

Why do you say that it's likely going to change ?

Because the internal implementation is going to change ?

Has it ever changed alrready, in the past ?

I think a macro stepper is a fundamental tool. Macros are a unique feature
(as far as I understand) of lispy languages and there are some notable
libraries implemented as macros

The ability to step through them would allow for tinkerers to explore

I suppose this is exactly the reason why Racket has its macro stepping and
inspecting tools

I'm a bit surprised that such a fundamental functionality seems to be an
afterthought in Guile


> Will Guile have anything equivalent ? I asked myself
> >
> > Now you show me the "(system syntax)" namespace (or module)
> >
> > I didn't  suspect it existed
> >
> > Does the manual mention it anywhere ? I didn' t see it
>
> Do you know how to search the manual or its index?  Press 'i' from
> either the Emacs or standalone info browsers to search the index, where
> you can find 'syntax-local-binding'.
>

But how would I have known that I should have looed for
"syntax-local-binding" ?

And why not any other name ?

I mean, the manual doesn't even mention macro stepping

You can also search the entire manual text by pressing 's'.  You can
> find (system syntax) that way.
>

Ok

But again: how would have I guessed that the namespace containing stuff I
was interested in was named (system syntax)" and not in any oher way ?

Of course I can search through a manual


> > Or maybe does it belong to any scheme standard ?
>
> No, certainly not.
>
> > Do any more (system ....) namespaces exist ?
> >
> > How would I know ?
>
> Look in the "module" subdirectory of the Guile source tree for modules
> that come with Guile itself, or more generally in the directories of
> %load-path after installation.  The directory structure mirrors the
> module namespaces.  The module (foo bar baz) is found in
> <DIR>/foo/bar/baz.scm, where <DIR> is a component of %load-path.  For
> example, (system syntax) is in <DIR>/system/syntax.scm.  In the Guile
> source tree, it's in module/system/syntax.scm.


Ok, I see those, now

 Thanks


reply via email to

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