[PD] pd_defaultbang to non-default list handler
Christof Ressi
info at christofressi.com
Sun Jun 21 18:59:04 CEST 2020
I think Pd handles this somewhat inconsequentially. Sometimes, it calls
list methods with 0, sometimes with &s_list. External developers might
think that their code works, but it would crash in other places (as
happened with zexy's [relay]).
Maybe Pd could always internally call list methods with a NULL selector,
so that it's clear that the selector is not to be used?
Christof
On 21.06.2020 18:28, Christof Ressi wrote:
> Hi Miller,
>
>> Perhaps objects should not depend on knowing a selector that might be
>> undefined.
> The problem is that it is not really clear which selectors are allowed
> to be NULL, since it isn't explicitly stated anywhere :-)
>
> Just for clarification: Do think that NULL is also a valid selector
> for "anything" messages? Pd doesn't perform any NULL checks before
> dereferencing the selector of such messages, e.g. in "print_anything"
> or "pd_defaultanything", so to me that suggests that NULL is only a
> valid selector for "list" messages.
>
> Christof
>
> On 21.06.2020 18:10, Miller Puckette wrote:
>> As far as I know, there's no design necessity that says it has to be
>> zero.
>> The selector in this case is unspecified. One could invent one ("foo"
>> would be fine) or leave it at zero.
>>
>> Perhaps objects should not depend on knowing a selector that might be
>> undefined.
>>
>> cheers
>> Miller
>>
>> On Sun, Jun 21, 2020 at 12:55:47AM +0200, Christof Ressi wrote:
>>>> I guess what I'm trying to ask is if there's a design constraint that
>>>> requires the selector to be null in said code. Or
>>>> better yet-- if the code were changed so that the selector is *never*
>>>> null would bad things happen?
>>> The selector is not *required* to selector to be NULL, but it *can*
>>> be NULL,
>>> with the only merit that it saves you a few characters.
>>>
>>>> if the code were changed so that the selector is *never* null would
>>>> bad
>>>> things happen?
>>> In the above mentioned discussion, IOhannes has offered two patches: 1)
>>> don't use NULL selectors internally, 2) gracefully handle NULL
>>> selectors
>>> (e.g. coming from externals)
>>>
>>> Those patches obviously haven't been merged, but I think they should be
>>> reconsidered.
>>>
>>> Christof
>>>
>>>
>>> On 21.06.2020 00:47, Jonathan Wilkes wrote:
>>>>> On Saturday, June 20, 2020, 6:34:02 PM EDT, Christof Ressi
>>>> <info at christofressi.com> wrote:
>>>>
>>>>> In pd_defaultbang, what is the reasoning for calling the list method
>>>>> with a null selector while calling the
>>>>> anything method with an "&s_bang" selector?
>>>>> contrary to the list method, the selector for the anything method
>>>> *does* carry significant meaning. At the very least, it's necessary
>>>> for
>>>> the default anything method (which prints an error message).
>>>>
>>>> I guess what I'm trying to ask is if there's a design constraint that
>>>> requires the selector to be null in said code. Or
>>>> better yet-- if the code were changed so that the selector is *never*
>>>> null would bad things happen?
>>>>
>>>> Thanks,
>>>> Jonathan
>>>>
>>>> Christof
>>>>
>>>> On 21.06.2020 00:29, Christof Ressi wrote:
>>>>
>>>> Ah, sorry, I misread you're last reply. I thought you were repeating
>>>> your first question :-)
>>>>
>>>> On 21.06.2020 00:24, Christof Ressi wrote:
>>>>
>>>> Did you read the discussion I've linked too? To quote Miller:
>>>>
>>>>> I'm not sure this is a real problem - _anything and _list methods
>>>>> simply aren't guaranteed
>>>>> anything about the "s" argument - it shouldn't ever be dereferenced.
>>>> I think this is the answer to your question. Since the selector of a
>>>> list message is actually redundant, you're free to pass NULL.
>>>>
>>>> Christof
>>>>
>>>> On 21.06.2020 00:16, Jonathan Wilkes wrote:
>>>>> On Saturday, June 20, 2020, 4:02:44 PM EDT, Christof Ressi
>>>> <info at christofressi.com> <mailto:info at christofressi.com> wrote:
>>>>
>>>>
>>>>> Hi, the selector for a list method certainly shouldn't be "bang",
>>>> rather it should be "list".
>>>>
>>>> Let's back up.
>>>>
>>>> Miller,
>>>>
>>>> In pd_defaultbang, what is the reasoning for calling the list method
>>>> with a null selector while calling the
>>>> anything method with an "&s_bang" selector?
>>>>
>>>> Thanks,
>>>> Jonathan
>>>>
>>>>> There has been a discussion about this in the past and I have agree
>>>> with IOhannes that Pd shouldn't send NULL selectors:
>>>> https://urldefense.com/v3/__https://sourceforge.net/p/pure-data/patches/555/__;!!Mih3wA!QsXvdm7PGfv5RyslUUuP4q13RXWyW2YlDB0Amsou_ol-eFRc-JQZBR6LaLUw$
>>>> .
>>>>
>>>>> Christof
>>>> On 20.06.2020 21:19, Jonathan Wilkes via Pd-list wrote:
>>>> Hi Miller,
>>>>
>>>> In pd_defaultbang of m_class.c, why does the list method get called
>>>> with
>>>> "0" for a selector instead of "&s_bang" for the c_listmethod
>>>> invocation?
>>>>
>>>> Best,
>>>> Jonathan
>>>>
>>>> _______________________________________________
>>>> Pd-list at lists.iem.at <mailto:Pd-list at lists.iem.at> mailing list
>>>> UNSUBSCRIBE and account-management
>>>> ->https://urldefense.com/v3/__https://lists.puredata.info/listinfo/pd-list__;!!Mih3wA!QsXvdm7PGfv5RyslUUuP4q13RXWyW2YlDB0Amsou_ol-eFRc-JQZBcArg5HE$
>>>> _______________________________________________
>>>> Pd-list at lists.iem.at <mailto:Pd-list at lists.iem.at> mailing list
>>>> UNSUBSCRIBE and account-management ->
>>>> https://urldefense.com/v3/__https://lists.puredata.info/listinfo/pd-list__;!!Mih3wA!QsXvdm7PGfv5RyslUUuP4q13RXWyW2YlDB0Amsou_ol-eFRc-JQZBcArg5HE$
>>>>
>>>> _______________________________________________
>>>> Pd-list at lists.iem.at <mailto:Pd-list at lists.iem.at> mailing list
>>>> UNSUBSCRIBE and account-management
>>>> ->https://urldefense.com/v3/__https://lists.puredata.info/listinfo/pd-list__;!!Mih3wA!QsXvdm7PGfv5RyslUUuP4q13RXWyW2YlDB0Amsou_ol-eFRc-JQZBcArg5HE$
>>>>
>>>> _______________________________________________
>>>> Pd-list at lists.iem.at <mailto:Pd-list at lists.iem.at> mailing list
>>>> UNSUBSCRIBE and account-management
>>>> ->https://urldefense.com/v3/__https://lists.puredata.info/listinfo/pd-list__;!!Mih3wA!QsXvdm7PGfv5RyslUUuP4q13RXWyW2YlDB0Amsou_ol-eFRc-JQZBcArg5HE$
>>>> _______________________________________________
>>>> Pd-list at lists.iem.at <mailto:Pd-list at lists.iem.at> mailing list
>>>> UNSUBSCRIBE and account-management ->
>>>> https://urldefense.com/v3/__https://lists.puredata.info/listinfo/pd-list__;!!Mih3wA!QsXvdm7PGfv5RyslUUuP4q13RXWyW2YlDB0Amsou_ol-eFRc-JQZBcArg5HE$
>>> _______________________________________________
>>> Pd-list at lists.iem.at mailing list
>>> UNSUBSCRIBE and account-management ->
>>> https://urldefense.com/v3/__https://lists.puredata.info/listinfo/pd-list__;!!Mih3wA!QsXvdm7PGfv5RyslUUuP4q13RXWyW2YlDB0Amsou_ol-eFRc-JQZBcArg5HE$
>
>
>
> _______________________________________________
> Pd-list at lists.iem.at mailing list
> UNSUBSCRIBE and account-management ->
> https://lists.puredata.info/listinfo/pd-list
More information about the Pd-list
mailing list