Re: [Pharo-users] Deep Recursion break/protection

2019-04-25 Thread Esteban Maringolo
On Thu, Apr 25, 2019 at 10:41 AM Sven Van Caekenberghe wrote: > > On 25 Apr 2019, at 15:27, Esteban Maringolo wrote: > > However I ran these examples in Dolphin and Pharo 7, and in Dolphin it > > triggers an memory exhaustion exception right away, and in Pharo it > > grows in memory use, slower

Re: [Pharo-users] Deep Recursion break/protection

2019-04-25 Thread Sven Van Caekenberghe
> On 25 Apr 2019, at 15:27, Esteban Maringolo wrote: > > Hi Sven, > > On Thu, Apr 25, 2019 at 10:04 AM Sven Van Caekenberghe wrote: >> This way, you should run out of heap before the stack gets too large, since >> you allocate and hold on to an array in each frame. > > I don't understand t

Re: [Pharo-users] Deep Recursion break/protection

2019-04-25 Thread Esteban Maringolo
Hi Sven, On Thu, Apr 25, 2019 at 10:04 AM Sven Van Caekenberghe wrote: > This way, you should run out of heap before the stack gets too large, since > you allocate and hold on to an array in each frame. I don't understand the purpose of such expression, since I'm not writing recursive code, whe

Re: [Pharo-users] Deep Recursion break/protection

2019-04-25 Thread Sven Van Caekenberghe
What if you did something like: RecursiveObject>>#recurse | data | data := Array new: 1e5. self recurse. ^ data This way, you should run out of heap before the stack gets too large, since you allocate and hold on to an array in each frame. > On 25 Apr 2019, at 14:56, Esteban Maringolo wrot

Re: [Pharo-users] Deep Recursion break/protection

2019-04-25 Thread Esteban Maringolo
I downloaded a fresh 7.0.3 image and VM, created the above class and method, and called it. The image is running in Ubuntu within a VirtualBox with 4GB RAM. Such exception was not triggered in my image when it actually filled all the available OS RAM, and I had to kill it using the operative syst

Re: [Pharo-users] Deep Recursion break/protection

2019-04-25 Thread Sven Van Caekenberghe
We also have an OutOfMemory exception, we even have tests provoking such a situation (check usage). However, I believe such tight loops end up in JIT machine code. Checking stack overflow on each stack manipulation is costly. But I totally agree that we should try to catch these situations even

Re: [Pharo-users] Deep Recursion break/protection

2019-04-25 Thread Esteban Maringolo
I just checked in VisualWorks, where I also develop Seaside and also make these mistakes, and these recursions launch a "Process Monitor Emergency: No space left" process monitor, with the option of killing any running Smalltalk process. Regards, Esteban A. Maringolo On Thu, Apr 25, 2019 at 9:30

[Pharo-users] Deep Recursion break/protection

2019-04-25 Thread Esteban Maringolo
Hi, Is there a way to add deep recursion protection to the system? eg. RecursiveObject>>#recurse self recurse So calling `RecursiveObject new recurse` in Dolphin raises an exception right away... Throws the following error with this stack: ProcessorScheduler>>stackOverflow: [] in ProcessorSch