Re: New draft (#2) and last call for comments on SRFI 191: Procedure Arity Inspection Marc Nieper-Wißkirchen (16 Jun 2020 19:14 UTC)

Re: New draft (#2) and last call for comments on SRFI 191: Procedure Arity Inspection Marc Nieper-Wißkirchen 16 Jun 2020 19:14 UTC

I think it is a bit too early for the last call because some
fundamental issues haven't been addressed yet. And it leaves me a bit
surprised about this last call.

John, have you missed this thread?
https://srfi-email.schemers.org/srfi-191/msg/13835702/

The point is that what this SRFI tries to specify cannot be specified
with the R7RS semantics. To carry it to the extremes, both

(define (procedure-arity-mask n) 42)

and

(define (procedure-arity-mask n) 123456789)

would be valid implementations of this SRFI.

I am not saying that `procedure-arity-mask` is useless for a
particular implementation like, say, Racket, where the semantics are
more strictly defined than in R7RS, which has to provide a common
denominator for a lot of different Scheme implementations, but it
seems possible to specify it on top of R7RS so that it can be used
reliably.

To illustrate my point let me draw an analogy: If R7RS were the
axiomatization of a vector space, SRFI 191 would be trying to define
the notion of an orthogonal coordinate system. The vector space of a
particular Scheme implementation may happen to have a natural
Euclidean structure. For such an implementation, procedure-arity-mask
could be sensibly defined.

Apart from the interface, SRFI 191 is SRFI 102. But none of the issues
of SRFI 102 have been discussed nor resolved. While the new interface
has been taken from an idea of Kent Dybvig, his concern with such
introspection procedures has not been addressed ([1]). On the same
list, Thomas Bushnell makes a number of excellent points (albeit quite
pointed), which haven't been addressed either.

Moreover, David van Horn, author of SRFI 102, writes quite
self-critically about his attempt in [2]. Finally, SRFI 102 has been
withdrawn, but this, again, hasn't been discussed on this list,
although SRFI 191 has (apart from the improved API) exactly the same
issues as SRFI 102.

Thanks,

Marc*

--

* I'm sorry for playing the devil's advocate again, but quality
matters. While we may not have the (wo)manpower to get the semantics
as clear as in, say, the ISO C standards, we should always try to do
our best and should not worry about setting aside ideas that still
have to mature.

[1] https://srfi-email.schemers.org/srfi-102/msg/2771967/
[2] https://srfi-email.schemers.org/srfi-102/msg/2772019/

Am Di., 16. Juni 2020 um 19:44 Uhr schrieb Arthur A. Gleckler
<xxxxxx@speechcode.com>:
>
> I've just published draft #2 of SRFI 191. It was submitted by John Cowan, author of the SRFI.
>
> John has asked me to announce last call for this SRFI. He believes that it is ready for finalization, but would like to give reviewers one last chance to submit corrections and feedback before we finalize it.
>
> In particular, I appeal to anyone reading this to try the sample implementation, run the tests, and send feedback about your results.
>
> If you're interested in this SRFI, please give your feedback via the SRFI 191 mailing list before 2020-06-24. After that, assuming that no major revisions are required, we will declare it final.
>
> Here are John's comments on the draft:
>
> I have improved the language about what a 0 bit means: that the implementation can prove that the procedure cannot be called with the specified number of arguments.
>
> Here is the commit summary:
>
> fixed bad link
> Fix link.
> Show keywords.
> Use HTML links on HTML pages.
> editorial
> Publish second draft.
>
> Here's the diff:
>
> https://github.com/scheme-requests-for-implementation/srfi-191/compare/draft-1..draft-2
>
> Regards,
>
>
> SRFI Editor