unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
From: Zelphir Kaltstahl <zelphirkaltstahl@gmail.com>
To: Mark H Weaver <mhw@netris.org>
Cc: guile-user@gnu.org
Subject: Re: Guile assert macro
Date: Tue, 23 Apr 2019 22:47:58 +0200	[thread overview]
Message-ID: <8bbf931a-1ad8-83a3-022c-6d8c775e8a3f@gmail.com> (raw)
In-Reply-To: <87bm0xsfpd.fsf@netris.org>

Hi Mark!

Thanks for answering that question about the macro being implemented.

I was maybe wrongly assuming, that, since it is on Oleg's website, many
of the very proficient schemers know it.

It seems to be a nice macro, but I have no idea how much time Oleg spent
on it. I got the feeling though, that he sometimes revises articles on
his website. I think this article about assertion macro also has been
revised.

It not being in Guile, I will have to make a choice of using that macro
and adding it as a sort of dependency or simply using the standard
library one's assert macro. It will probably not be a big issue to use a
macro that is not in the standard library, as long as I note that
somewhere and make it clear, that it might work differently, if one does
not use that macro.

I don't really find the R6RS assert macro unsatisfactory. It is only
that I saw something else that looked nice ; )

Thanks!

I also recently had a thought: "How can he just put the code like that
on a website and not in some repository instead?" – I think the answer
is, that the code is concise, short and works in most Schemes, since
they mostly have a lot in common, so that he does not need to put much
info there about "What if I use <some Scheme dialect here>?". Thanks to
standardization of Scheme.

Zelphir

On 4/23/19 2:54 AM, Mark H Weaver wrote:
> Hi Zelphir,
>
> Zelphir Kaltstahl <zelphirkaltstahl@gmail.com> writes:
>
>> I was looking for an assert facility in Guile and found the following:
>>
>> https://www.gnu.org/software/guile/manual/html_node/rnrs-base.html#rnrs-base
>>
>> (Search for assert there to find it on the page.)
>>
>> However, while searching, I also found something that looks even better:
>>
>> http://okmij.org/ftp/Scheme/assert-syntax-rule.txt
>>
>> Is that anywhere implemented in Guile already?
> No.
>
>> (In case it is not implemented: What are the reasons for not providing
>> that one? It looks a little bit more useful than the one I found.)
> Well, no one has suggested it until now, and moreover I didn't even know
> it existed :)  Do you know if it's seen much use?  Do any other Scheme
> implementations include it?
>
> Correct me if I'm wrong, but I get the impression that this is something
> that Oleg hacked up in an hour and posted ~15 years ago, but that it's
> never seen much use.  Also, I'm personally not fond of the API, which is
> quite unconventional.
>
> The thing about assertion macros is that (1) they are usually trivial,
> and (2) I'm not aware of any consensus in the Scheme community on what a
> non-trivial assertion API should look like.  I suspect this is why
> there's no SRFI for assertion macros, despite the fact that anyone can
> write a SRFI.
>
> For those who find the R6RS 'assert' macro unsatisfactory, I'm inclined
> to suggest that each project should feel free to define their own
> assertion macro according to their needs and preferences.
>
> Having said that, if you think you know a non-trivial assert API that
> other Schemers would like to use, feel free to publish a library or
> write a SRFI.  If it becomes popular, we could consider including it
> with Guile.
>
>       Regards,
>         Mark



      reply	other threads:[~2019-04-23 20:47 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-22 18:57 Guile assert macro Zelphir Kaltstahl
2019-04-22 19:36 ` Mike Gran
2019-04-22 21:52   ` Zelphir Kaltstahl
2019-04-23  0:54 ` Mark H Weaver
2019-04-23 20:47   ` Zelphir Kaltstahl [this message]

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://www.gnu.org/software/guile/

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

  git send-email \
    --in-reply-to=8bbf931a-1ad8-83a3-022c-6d8c775e8a3f@gmail.com \
    --to=zelphirkaltstahl@gmail.com \
    --cc=guile-user@gnu.org \
    --cc=mhw@netris.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.
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).