[PD] What exactly is a "stack overflow" ?
Hans-Christoph Steiner
hans at eds.org
Sat Dec 22 20:15:45 CET 2007
On Dec 20, 2007, at 10:37 AM, Miller Puckette wrote:
> ... and to wade in, here's an idea I'm toying with: every 1000 or
> so bangs that until sends out, check the CPU clock. Each time more
> than a second elapses, go check the input buffer from the GUI, and
> execute it (so that mouse clicks would appear within the context of
> the until loop!) This would allow you to delete the offending until,
> assuming you know where it is.
>
> Another idea: have a GUI item that interrupts Pd, causing the stack
> frame to be rudely dropped and all clocks to be unset.
I think this second option would be quite useful, a high priority
reset item for escaping in an emergency. There are a number of
things that can totally take over your machine, beyond just the
endless [until]. For example, trying to play a complex Gem scene at
a high frame rate on a slower machine. That will totally freeze up
the OS sometimes.
So this may not be pretty, but it's certainly prettier than killing
Pd or hard resetting your machine.
In addition, I like the idea of ignoring bangs on [until]'s hot inlet
unless something is connected on the cold inlet. That would help the
situation without detriment that I can see. When it ignores the
bang, it should issue a warning. I am not sure how feasible it is
though.
.hc
>
> aren'y they both ugly? but maybe something like this is needed ...
>
> M
>
>
> On Thu, Dec 20, 2007 at 05:39:14PM +0000, Andy Farnell wrote:
>> On Thu, 20 Dec 2007 10:43:57 -0600
>> "Charles Henry" <czhenry at gmail.com> wrote:
>>
>>> On Dec 19, 2007 7:58 PM, Chris McCormick <chris at mccormick.cx> wrote:
>>>> On Wed, Dec 19, 2007 at 02:22:44PM +0000, Andy Farnell wrote:
>>>>> On Mon, 17 Dec 2007 22:23:11 +0100 IOhannes m zmoelnig
>>>>> <zmoelnig at iem.at> wrote:
>>>>>> but a [bang(--[until] is not meant to loop infinitely.
>>>>>> it loops until a certain condition is reached.
>>>>>
>>>>> As it stands the behaviour of [until] is correct, but it's a
>>>>> very dangerous
>>>>> object unlike almost every other Pd object it's the only one
>>>>> beginners can
>>>>> really screw up with.
>>>
>>> I think a useful feature that would perhaps be able to handle this
>>> type of problem is a 'halt'/'continue' routine for message
>>> processing.
>>> Say, for example, it could be automatically handled during a stack
>>> overflow-clear the stack and send an error message. Or triggered by
>>> the watchdog to catch bang/until problems. Something like that
>>> would
>>> give you the opportunity to save/re-load or add additional
>>> objects to
>>> stop the infinite loop, when not intended.
>>
>>
>> The subject of the watchdog is really interesting and I'd love to
>> hear a deeper discussion on it. But how do you propose to identify
>> an infinite loop? At what point does the watchdog say "Hi I'm Clippy
>> your Pd Watchdog... did you mean to create an infinite loop?"
>>
>>
>>> but it would still run into those problems of finding an arbitrary
>>> condition to trigger the 'halt'
>>
>> Hmmmm, there's beard stroker. :)
>>
>> a.
>>
>>
>>>
>>> Chuck
>>>
>>> _______________________________________________
>>> PD-list at iem.at mailing list
>>> UNSUBSCRIBE and account-management -> http://lists.puredata.info/
>>> listinfo/pd-list
>>
>>
>> --
>> Use the source
>>
>> _______________________________________________
>> PD-list at iem.at mailing list
>> UNSUBSCRIBE and account-management -> http://lists.puredata.info/
>> listinfo/pd-list
>
> _______________________________________________
> PD-list at iem.at mailing list
> UNSUBSCRIBE and account-management -> http://lists.puredata.info/
> listinfo/pd-list
------------------------------------------------------------------------
----
http://at.or.at/hans/
More information about the Pd-list
mailing list