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
prev parent 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).