Further issues Wolfgang Corcoran-Mathe (20 Jun 2026 17:55 UTC)
Re: Further issues and New Portable Implementation Andrew Tropin (23 Jun 2026 12:08 UTC)
Re: Further issues and New Portable Implementation Wolfgang Corcoran-Mathe (23 Jun 2026 17:22 UTC)
Re: Further issues and New Portable Implementation Wolfgang Corcoran-Mathe (23 Jun 2026 20:00 UTC)
Re: Further issues and New Portable Implementation John Cowan (24 Jun 2026 01:42 UTC)
Re: Further issues and New Portable Implementation Andrew Tropin (24 Jun 2026 04:52 UTC)
Re: Further issues and New Portable Implementation Andrew Tropin (24 Jun 2026 04:28 UTC)
Re: Further issues and New Portable Implementation Andrew Tropin (24 Jun 2026 04:26 UTC)
Re: Further issues and New Portable Implementation John Cowan (24 Jun 2026 05:30 UTC)
Re: Further issues and New Portable Implementation Andrew Tropin (28 Jun 2026 06:25 UTC)
Re: Further issues and New Portable Implementation John Cowan (28 Jun 2026 10:22 UTC)
Re: Further issues and New Portable Implementation Andrew Tropin (29 Jun 2026 01:37 UTC)
Re: Further issues and New Portable Implementation Wolfgang Corcoran-Mathe (24 Jun 2026 15:56 UTC)
Re: Further issues and New Portable Implementation Andrew Tropin (28 Jun 2026 06:11 UTC)

Re: Further issues and New Portable Implementation Wolfgang Corcoran-Mathe 23 Jun 2026 17:22 UTC

On 2026-06-23 19:07 +0700, Andrew Tropin wrote:
> On 2026-06-20 13:55, Wolfgang Corcoran-Mathe wrote:
> > 1. For some reason, 'metadata' appears as a quoted identifer in the
> > definition of 'test' and its examples.  The form should be:
> >
> >     (test (<description> <context-id>) metadata <metadata>
> >       <body>)
>
> originally it was #:metadata, but later Ramin pointed out that it's too
> guile-specific, we changed it to just 'metadata. Before the previous
> draft the form was (test <description> 'metadata <metadata> <body>).

I think we may be misunderstanding each other.  At the moment, what
you've got is equivalent to

    (test (<description> <context>) (quote metadata) <metadata>
      <body>),

which makes no sense--'quote' isn't doing anything, since this isn't a
procedure.  The 'metadata' identifier can be detected with syntax-rules
or syntax-case like any other identifier, e.g.:

    (syntax-rules (metadata)
      ((test (desc ctx) metadata mlist body ...)
       ...)
      ...)

> [Context:]
>
> Both test runner and test can modify it.  I'm not sure yet in which case
> we would like test to change it, but we definitely have power to do so:
> provide an atomic-box to context and let test set it.
>
> [snip]
>
> P.S. So to be more precise test has no ability to modify context as it
> should be immutable, but can touch sideeffectful values from it.

I'm a little confused about what an "immutable" value with
"sideeffectful values" might be.  If the context is a box, its contents
be set by one test and read by another, right?  (Not that this is a
great idea, of course!)

> > 4. "Tests that do not need the context can use _ as the identifier."
> > I assume this means that 'test' should specifically omit binding the
> > context value if the context identifer is free-identifier=? to _.  Or
> > is this just a recommend convention?
>
> Yeah, just a recommended convention.

In that case, drop it.  _ has no special meaning, but the current text
might lead some implementers to explicit un-bind _ in 'test'.

--
Wolfgang Corcoran-Mathe  <xxxxxx@sigwinch.xyz>