Re: Add internal definitions to derived forms

2023-02-02 Thread lloda
Guile already allows mixed definitions and expressions in let bodies (since 2.9.4), which isn't in any of the Scheme reports. It's up to authors to avoid or isolate Guile extensions if they want to remain rnrs compatible, and this patch doesn't change that. Being able to put definitions in th

Re: Add internal definitions to derived forms

2023-01-25 Thread Linus Björnstam
On Wed, 25 Jan 2023, at 16:38, Greg Troxel wrote: > My reaction, without thinking much, and being fuzzy on a lot of things > is that part of the point of guile is that it is Scheme which to me > means RnRS conformance. Of course it's not exactly and every other > Scheme impl is not exactly. B

Re: Add internal definitions to derived forms

2023-01-25 Thread Linus Björnstam
On Wed, 25 Jan 2023, at 16:09, Ludovic Courtès wrote: > Hello! > > Linus Björnstam skribis: > > > Daniel pushed this as 764e3614b8c13de604399572a67d071621e9ca21 in > ‘main’. I had completely overlooked this thread but I wasn’t quite sure > about it, so I did not include it in 3.0.9. > > The re

Re: Add internal definitions to derived forms

2023-01-25 Thread Greg Troxel
Ludovic Courtès writes: > The reason I’m hesitant is that, while I think it’s nice to be able to > have local ‘define’ in these contexts, I’m wary of diverging from R5RS > and R6RS. Since it’s a one-way change (we won’t be able to revert it > once people rely on it), I thought we’d rather be car

Re: Add internal definitions to derived forms

2023-01-25 Thread Ludovic Courtès
Hello! Linus Björnstam skribis: > This commit adds internal definitions to derived conditional forms, > with-fluids and and-let*. This means the bodies of when, unless and > with-fluids, and the clause bodies of case and cond behave like a > lambda body. > > There is no performance hit since gui

Re: Add internal definitions to derived forms

2023-01-25 Thread Ludovic Courtès
Hi, lloda skribis: > From 70ce7174a43ba17f2db0c3a6b7eeeb191a332663 Mon Sep 17 00:00:00 2001 > From: Daniel Llorens > Date: Tue, 24 Jan 2023 11:26:44 +0100 > Subject: [PATCH 2/2] Document multiple-value returns in forms taking a > let-expression body > > * doc/ref/api-binding.texi (Local Bindin

Re: Add internal definitions to derived forms

2023-01-24 Thread lloda
> On 24 Jan 2023, at 10:02, Ludovic Courtès wrote: > > Hi! > > lloda skribis: > @lisp -(@var{test} @var{body} @dots{}) +(@var{test} @var{body}) >>> >>> I think removing dots is incorrect here because it suggests, according >>> to the typographic conventions used in the documen

Re: Add internal definitions to derived forms

2023-01-24 Thread Ludovic Courtès
Hi! lloda skribis: >>> @lisp >>> -(@var{test} @var{body} @dots{}) >>> +(@var{test} @var{body}) >> >> I think removing dots is incorrect here because it suggests, according >> to the typographic conventions used in the document, that there can only >> be a single expression. [...] > This was a

Re: Add internal definitions to derived forms

2023-01-23 Thread Linus Björnstam
Hi! Sorry about the delay, I have an updated patch somewhere, but I started working after 4 months paternity leave and family life's fortunes has it so that I haven't used a computer since the last time I wrote an email in this thread (this is written on a phone). This is likely how will be in

Re: Add internal definitions to derived forms

2023-01-23 Thread lloda
Hi Ludovic, > On 23 Jan 2023, at 23:13, Ludovic Courtès wrote: > > Hi Daniel, > > Chiming in late in the discussion… > > lloda skribis: > >> From 7aea299373f7370f31c9701035260ad412763724 Mon Sep 17 00:00:00 2001 >> From: Daniel Llorens >> Date: Thu, 19 Jan 2023 16:23:29 +0100 >> Subject:

Re: Add internal definitions to derived forms

2023-01-23 Thread Ludovic Courtès
Hi Daniel, Chiming in late in the discussion… lloda skribis: > From 7aea299373f7370f31c9701035260ad412763724 Mon Sep 17 00:00:00 2001 > From: Daniel Llorens > Date: Thu, 19 Jan 2023 16:23:29 +0100 > Subject: [PATCH 2/2] Fix documentation for forms taking lambda-like bodies > > * doc/ref/api-co

Re: Add internal definitions to derived forms

2023-01-20 Thread lloda
> On 19 Jan 2023, at 18:54, lloda wrote: > > Attached a patch that applies after yours and refers to the explanation of > bodies elsewhere in the manual. Wdyt? Second version, fixes text for the same type of body for other forms. Regards Daniel 0002-Fix-documentation-for-forms-taking-l

Re: Add internal definitions to derived forms

2023-01-19 Thread lloda
Attached a patch that applies after yours and refers to the explanation of bodies elsewhere in the manual. Wdyt? Regards Daniel 0001-Fix-doc-for-conditional-forms-taking-lambda-like-bod.patch Description: Binary data

Re: Add internal definitions to derived forms

2022-11-18 Thread Lassi Kortela
That is a better way to write it indeed. clause-body being equal to a lambda body. Thank you. No problem. Nb. I made an oversight - the section of R7RS with the grammar I quoted says: "These were derived from rules in the grammar given in chapter 7 by replacing some occurrences of with ,

Re: Add internal definitions to derived forms

2022-11-18 Thread Linus Björnstam
On Fri, 18 Nov 2022, at 11:22, Lassi Kortela wrote: > R7RS defines the syntax of `let` et.al. as follows (section 3.5): > > (let (*) ) > > Where: > > = * > = * > > So their definition of lambda: > > (lambda * * ) > > could be abbreviated: > > (lambda ) > > I haven't read "Fixing letrec" but i

Re: Add internal definitions to derived forms

2022-11-18 Thread Lassi Kortela
Not quite. Guile extends the lambda body (and by extension let-forms) to allow mixed definitions and expressions: (lambda () (display "Heippa!") (define routsi #t) (and (read) routsi)) which expands to, more or less, a letrec*. All in accordance to the paper fixing letrec(reloaded).

Re: Add internal definitions to derived forms

2022-11-18 Thread Linus Björnstam
On Fri, 18 Nov 2022, at 10:27, Lassi Kortela wrote: >> Would "is like the body of a lambda" be a better wording? > > R7RS section 3.5. says: > > (lambda * * ) > > The * are the stuff you are adding. Not quite. Guile extends the lambda body (and by extension let-forms) to allow mixed definitions

Re: Add internal definitions to derived forms

2022-11-18 Thread Lassi Kortela
Would "is like the body of a lambda" be a better wording? R7RS section 3.5. says: (lambda * * ) The * are the stuff you are adding.

Re: Add internal definitions to derived forms

2022-11-18 Thread Linus Björnstam
Hi! Well, the point of the change is to make it so that things other than expressions are allowed. I change it to say @var{body}, and then later clarify that @var{test} is an arbitrary expression and @var{body} is a lambda-like body. Which when reading it now sounds... not very good. Would

Re: Add internal definitions to derived forms

2022-11-16 Thread lloda
Hi Linus, I don't understand the following change since at least one expression is required in these clauses. @lisp (@var{test} => @var{expression}) @@ -217,7 +217,7 @@ result of the @code{cond}-expression. @var{key} may be any expression, and the @var{clause}s must have the form @lisp -

Re: Add internal definitions to derived forms

2022-11-09 Thread Damien Mattei
thanks,hope it will be in a next stable release of Guile regards, damien On Wed, Nov 9, 2022 at 4:34 PM Linus Björnstam wrote: > Hi there! > > This commit adds internal definitions to derived conditional forms, > with-fluids and and-let*. This means the bodies of when, unless and > with-fluids,

Add internal definitions to derived forms

2022-11-09 Thread Linus Björnstam
() ...) without internal definitions to a begin (i.e: no new lexical context is created). best regards Linus BjörnstamFrom 7eeb91b822334b151c5b4a15ce9528a2a655d914 Mon Sep 17 00:00:00 2001 From: Linus Date: Wed, 9 Nov 2022 16:15:18 +0100 Subject: [PATCH] Add internal definitions to derived forms This