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
> 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
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
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
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
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
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
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