From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mark H Weaver Subject: Re: my latest blog post Date: Fri, 08 Jun 2018 14:05:14 -0400 Message-ID: <87lgbpp31h.fsf@netris.org> References: <87bmcmzfyz.fsf@netris.org> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:52300) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fRLmc-0000kk-G5 for guix-devel@gnu.org; Fri, 08 Jun 2018 14:06:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fRLmZ-0000jY-Bk for guix-devel@gnu.org; Fri, 08 Jun 2018 14:06:42 -0400 Received: from world.peace.net ([64.112.178.59]:47760) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fRLmZ-0000d6-7y for guix-devel@gnu.org; Fri, 08 Jun 2018 14:06:39 -0400 In-Reply-To: (Catonano's message of "Thu, 7 Jun 2018 21:40:11 +0200") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Catonano Cc: guix-devel 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 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, , 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