unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Mark H Weaver <mhw@netris.org>
To: Catonano <catonano@gmail.com>
Cc: guix-devel <guix-devel@gnu.org>
Subject: Re: my latest blog post
Date: Fri, 08 Jun 2018 14:05:14 -0400	[thread overview]
Message-ID: <87lgbpp31h.fsf@netris.org> (raw)
In-Reply-To: <CAJ98PDzdEVBqBuz5DiVQT1LTbzmRoQ4MACjTPzu5Jr3DvWJftg@mail.gmail.com> (Catonano's message of "Thu, 7 Jun 2018 21:40:11 +0200")

Hi Catonano,

Thank you for your email.  I don't have time to make a proper response
yet, but for now I will respond to just one point:

Catonano <catonano@gmail.com> writes:
> On my side, I was a bit adversary because I feel that a macro stepper
> is a fundamental feature of a scheme system and in Guile it's less
> than an afterthought

As far as I know, Racket is the only Scheme implementation with a macro
stepper for hygienic macros.  Do you know of any others?

So, I strongly disagree that a macro stepper is a "fundamental feature
of a scheme system".  In fact, Scheme first appeared in 1975, and first
gained hygienic macros in 1986, but it was not until ~2007 that a macro
stepper for Scheme appeared, for Racket (called PLT Scheme at the time).
The paper, <https://www2.ccs.neu.edu/racket/pubs/gpce07-cf.pdf>,
described it as "the first macro stepper for Scheme".

> I understand that implementing it is too much work

It's not that it's too much work; it just hasn't yet been done.

> But I think that the manual should at least mention macro stepping as
> a missing feature,

If it were part of a Scheme standard, or even a very commonly
implemented extension, then I would agree that we should document its
absence.  However, as far as I know, Racket is the only Scheme
implementation that has a macro stepper.  So, this is not a feature that
users generally expect to have in a Scheme implementation.

I disagree that the Guile manual should specifically call attention to a
missing feature that almost no other Scheme implementation includes.

Whenever people switch from one Scheme implementation to another, they
will notice many missing features and APIs, and some new ones.  In your
case, you noticed that Guile lacks Racket's macro stepper, but there are
a great many other things in Racket which Guile lacks.

If we were to start documenting all of the features that exist in at
least one Scheme implementation as missing features, that's quite a
slippery slope.  I don't want to go down that slope.

If this were a common confusion among our users, then there would be
some justification for this, but it's not a common confusion.  In the
decade since the first Scheme macro stepper was invented, you are the
_only_ person who has reported confusion from the absence of this
feature in Guile.

That's not to say that you're unreasonable; it's simply due to your
particular experience of being acquainted with this feature of Racket
and perhaps being surprised that Guile didn't have it.  This same thing
could happen with _any_ feature of _any_ Scheme implementation.

Does that make sense?

     Regards,
       Mark

  parent reply	other threads:[~2018-06-08 18:06 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-07 15:25 my latest blog post Catonano
2018-06-07 16:28 ` Joshua Branson
2018-06-08  4:24   ` Christopher Lemmer Webber
2018-06-08  6:18     ` Fis Trivial
2018-06-08 14:02       ` Ricardo Wurmus
2018-06-08  8:25     ` Catonano
2018-06-08 13:51       ` Fis Trivial
2018-06-08 14:25       ` Ricardo Wurmus
2018-06-09  7:47         ` Catonano
2018-06-09 12:24           ` Ricardo Wurmus
2018-06-09 13:07             ` Catonano
2018-06-09 15:29               ` Christopher Lemmer Webber
2018-06-09 13:51             ` Christopher Lemmer Webber
2018-06-07 17:03 ` Mark H Weaver
2018-06-07 19:40   ` Catonano
2018-06-08  9:39     ` Nils Gillmann
2018-06-08  9:45       ` Catonano
2018-06-08 18:05     ` Mark H Weaver [this message]
2018-06-09  7:00       ` Catonano
2018-06-09 10:39         ` Ricardo Wurmus
2018-06-09 10:52           ` Catonano
2018-06-09 12:14             ` Ricardo Wurmus
2018-06-09 13:03               ` Catonano
2018-06-10 10:53         ` Mark H Weaver
2018-06-07 18:11 ` Thorsten Wilms
2018-06-07 21:45 ` Alex Vong
2018-06-08  9:15 ` Julien Lepiller
2018-06-08  9:34   ` Clément Lassieur
2018-06-08  9:45     ` Julien Lepiller
2018-06-08 13:50   ` Widen info Oleg Pykhalov
2018-06-08 13:59     ` Julien Lepiller
2018-06-08 13:49 ` my latest blog post Ludovic Courtès
2018-06-09  5:59   ` Catonano
2018-06-09 22:49 ` myglc2
2018-06-10  0:51   ` Mark H Weaver
2018-06-10  6:55     ` Pjotr Prins
2018-06-10  9:07       ` Catonano
2018-06-10  9:29         ` Ricardo Wurmus
2018-06-10  9:30           ` Catonano
2018-06-10 10:37             ` Ricardo Wurmus
2018-06-10 10:45         ` Mark H Weaver
2018-06-10 12:06         ` Pjotr Prins
2018-06-10  7:58     ` Catonano
2018-06-10  9:26       ` Ricardo Wurmus
2018-06-10  9:27         ` Catonano
2018-06-10 19:13           ` Ludovic Courtès
2018-06-10  8:07   ` Catonano
2018-06-10 19:23     ` Ludovic Courtès
2018-06-10  8:17 ` my latest blog post [everyone, please take a cooldown break] Nils Gillmann
2018-06-10 13:33   ` Christopher Lemmer Webber
2018-06-10 14:18     ` Gábor Boskovits
2018-06-10 14:37       ` Kei Kebreau
2018-06-11  6:01         ` swedebugia

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://guix.gnu.org/

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

  git send-email \
    --in-reply-to=87lgbpp31h.fsf@netris.org \
    --to=mhw@netris.org \
    --cc=catonano@gmail.com \
    --cc=guix-devel@gnu.org \
    /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/guix.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).