* SCM_ASSERT_TYPE
@ 2003-07-02 16:16 Han-Wen Nienhuys
2003-07-02 22:48 ` SCM_ASSERT_TYPE Kevin Ryde
0 siblings, 1 reply; 10+ messages in thread
From: Han-Wen Nienhuys @ 2003-07-02 16:16 UTC (permalink / raw)
The expansion of SCM_ASSERT_TYPE includes an if statement, which will
lead to unexpected effects for code like
if (optional != SCM_UNDEFINED)
SCM_ASSERT_TYPE(optional, ... );
else
optional = default_value;
I've fixed this by adding else to the macro, i.e.
#define SCM_ASSERT_TYPE(_cond, _arg, _pos, _subr, _msg) \
if (!(_cond)) \
scm_wrong_type_arg_msg(_subr, _pos, _arg, _msg); else
are there any other macros in GUILE that expand to if statements?
--
Han-Wen Nienhuys | hanwen@cs.uu.nl | http://www.xs4all.nl/~hanwen
_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: SCM_ASSERT_TYPE
2003-07-02 16:16 SCM_ASSERT_TYPE Han-Wen Nienhuys
@ 2003-07-02 22:48 ` Kevin Ryde
2003-07-02 23:01 ` SCM_ASSERT_TYPE Han-Wen Nienhuys
0 siblings, 1 reply; 10+ messages in thread
From: Kevin Ryde @ 2003-07-02 22:48 UTC (permalink / raw)
Cc: guile-devel
Han-Wen Nienhuys <hanwen@cs.uu.nl> writes:
>
> I've fixed this by adding else to the macro, i.e.
The usual style is "do { ... } while (0)", which has the advantage of
giving an error if one forgets the terminating ";" when using it. See
SCM_ASYNC_TICK for instance.
_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: SCM_ASSERT_TYPE
2003-07-02 22:48 ` SCM_ASSERT_TYPE Kevin Ryde
@ 2003-07-02 23:01 ` Han-Wen Nienhuys
0 siblings, 0 replies; 10+ messages in thread
From: Han-Wen Nienhuys @ 2003-07-02 23:01 UTC (permalink / raw)
Cc: guile-devel
user42@zip.com.au writes:
> Han-Wen Nienhuys <hanwen@cs.uu.nl> writes:
> >
> > I've fixed this by adding else to the macro, i.e.
>
> The usual style is "do { ... } while (0)", which has the advantage of
> giving an error if one forgets the terminating ";" when using it. See
> SCM_ASYNC_TICK for instance.
Yes, you're right. Changed it.
--
Han-Wen Nienhuys | hanwen@cs.uu.nl | http://www.xs4all.nl/~hanwen
_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel
^ permalink raw reply [flat|nested] 10+ messages in thread
* SCM_ASSERT_TYPE
@ 2011-10-07 13:00 Mike Gran
2011-10-08 22:04 ` SCM_ASSERT_TYPE Ludovic Courtès
2012-01-05 16:33 ` SCM_ASSERT_TYPE Andy Wingo
0 siblings, 2 replies; 10+ messages in thread
From: Mike Gran @ 2011-10-07 13:00 UTC (permalink / raw)
To: guile-devel
Hello all-
Is the SCM_ASSERT_TYPE macro considered to be a stable public API
or internal to Guile? It has never been mentioned in the manual,
but both Lilypond and GNU Serveez have used it.
And what about the seldom-used SCM_ASRTGO?
Thanks,
Mike
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: SCM_ASSERT_TYPE
2011-10-07 13:00 SCM_ASSERT_TYPE Mike Gran
@ 2011-10-08 22:04 ` Ludovic Courtès
2012-01-05 16:37 ` SCM_ASSERT_TYPE Andy Wingo
2012-01-05 16:33 ` SCM_ASSERT_TYPE Andy Wingo
1 sibling, 1 reply; 10+ messages in thread
From: Ludovic Courtès @ 2011-10-08 22:04 UTC (permalink / raw)
To: guile-devel
Hi,
Mike Gran <spk121@yahoo.com> skribis:
> Is the SCM_ASSERT_TYPE macro considered to be a stable public API
> or internal to Guile? It has never been mentioned in the manual,
> but both Lilypond and GNU Serveez have used it.
Then I think it’s de-facto public and the fix should be to document it.
Would you like to do it? :-)
> And what about the seldom-used SCM_ASRTGO?
Likewise (Google Codesearch finds a couple of external users.)
Thanks,
Ludo’.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: SCM_ASSERT_TYPE
2011-10-07 13:00 SCM_ASSERT_TYPE Mike Gran
2011-10-08 22:04 ` SCM_ASSERT_TYPE Ludovic Courtès
@ 2012-01-05 16:33 ` Andy Wingo
1 sibling, 0 replies; 10+ messages in thread
From: Andy Wingo @ 2012-01-05 16:33 UTC (permalink / raw)
To: Mike Gran; +Cc: guile-devel
Hi Mike,
On Fri 07 Oct 2011 09:00, Mike Gran <spk121@yahoo.com> writes:
> Is the SCM_ASSERT_TYPE macro considered to be a stable public API
> or internal to Guile? It has never been mentioned in the manual,
> but both Lilypond and GNU Serveez have used it.
Yes, it is public. We should document it.
> And what about the seldom-used SCM_ASRTGO?
No, this one is not. In fact, it is gone in master.
Andy
--
http://wingolog.org/
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: SCM_ASSERT_TYPE
2011-10-08 22:04 ` SCM_ASSERT_TYPE Ludovic Courtès
@ 2012-01-05 16:37 ` Andy Wingo
2012-01-08 0:52 ` SCM_ASSERT_TYPE Ludovic Courtès
0 siblings, 1 reply; 10+ messages in thread
From: Andy Wingo @ 2012-01-05 16:37 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: guile-devel
On Sat 08 Oct 2011 18:04, ludo@gnu.org (Ludovic Courtès) writes:
>> And what about the seldom-used SCM_ASRTGO?
>
> Likewise (Google Codesearch finds a couple of external users.)
Uf, I replied before I saw your message. It is gone in master. Do you
think we need to re-add it? Codesearch found one project that used it.
I suggest reverting the addition to the manual.
Andy
--
http://wingolog.org/
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: SCM_ASSERT_TYPE
2012-01-05 16:37 ` SCM_ASSERT_TYPE Andy Wingo
@ 2012-01-08 0:52 ` Ludovic Courtès
2012-01-08 13:39 ` SCM_ASSERT_TYPE Andy Wingo
0 siblings, 1 reply; 10+ messages in thread
From: Ludovic Courtès @ 2012-01-08 0:52 UTC (permalink / raw)
To: guile-devel
Hi,
Andy Wingo <wingo@pobox.com> skribis:
> On Sat 08 Oct 2011 18:04, ludo@gnu.org (Ludovic Courtès) writes:
>
>>> And what about the seldom-used SCM_ASRTGO?
>>
>> Likewise (Google Codesearch finds a couple of external users.)
>
> Uf, I replied before I saw your message. It is gone in master. Do you
> think we need to re-add it?
Probably, as it doesn’t cost much and saves us a lengthy flame war. ;-)
> Codesearch found one project that used it. I suggest reverting the
> addition to the manual.
You mean it should be left undocumented?
I think ideally everything should be either documented or deprecated
(with a documented replacement).
Thanks,
Ludo’.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: SCM_ASSERT_TYPE
2012-01-08 0:52 ` SCM_ASSERT_TYPE Ludovic Courtès
@ 2012-01-08 13:39 ` Andy Wingo
2012-01-08 15:47 ` SCM_ASSERT_TYPE Ludovic Courtès
0 siblings, 1 reply; 10+ messages in thread
From: Andy Wingo @ 2012-01-08 13:39 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: guile-devel
On Sun 08 Jan 2012 01:52, ludo@gnu.org (Ludovic Courtès) writes:
>> On Sat 08 Oct 2011 18:04, ludo@gnu.org (Ludovic Courtès) writes:
>>
>>>> And what about the seldom-used SCM_ASRTGO?
>>>
> I think ideally everything should be either documented or deprecated
> (with a documented replacement).
I have now properly deprecated it in stable-2.0. Is that OK? :-)
Cheers,
Andy
--
http://wingolog.org/
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: SCM_ASSERT_TYPE
2012-01-08 13:39 ` SCM_ASSERT_TYPE Andy Wingo
@ 2012-01-08 15:47 ` Ludovic Courtès
0 siblings, 0 replies; 10+ messages in thread
From: Ludovic Courtès @ 2012-01-08 15:47 UTC (permalink / raw)
To: Andy Wingo; +Cc: guile-devel
Andy Wingo <wingo@pobox.com> skribis:
> On Sun 08 Jan 2012 01:52, ludo@gnu.org (Ludovic Courtès) writes:
>
>>> On Sat 08 Oct 2011 18:04, ludo@gnu.org (Ludovic Courtès) writes:
>>>
>>>>> And what about the seldom-used SCM_ASRTGO?
>>>>
>> I think ideally everything should be either documented or deprecated
>> (with a documented replacement).
>
> I have now properly deprecated it in stable-2.0. Is that OK? :-)
Yes, thanks!
Ludo’.
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2012-01-08 15:47 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-10-07 13:00 SCM_ASSERT_TYPE Mike Gran
2011-10-08 22:04 ` SCM_ASSERT_TYPE Ludovic Courtès
2012-01-05 16:37 ` SCM_ASSERT_TYPE Andy Wingo
2012-01-08 0:52 ` SCM_ASSERT_TYPE Ludovic Courtès
2012-01-08 13:39 ` SCM_ASSERT_TYPE Andy Wingo
2012-01-08 15:47 ` SCM_ASSERT_TYPE Ludovic Courtès
2012-01-05 16:33 ` SCM_ASSERT_TYPE Andy Wingo
-- strict thread matches above, loose matches on Subject: below --
2003-07-02 16:16 SCM_ASSERT_TYPE Han-Wen Nienhuys
2003-07-02 22:48 ` SCM_ASSERT_TYPE Kevin Ryde
2003-07-02 23:01 ` SCM_ASSERT_TYPE Han-Wen Nienhuys
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).