@Rob:
Thanks for reminding me about
(do). In fact I'm keeping it in mind. I'm simply waiting for when
John finds a little time to get acquainted with the Scheme vocabulary to tell me that there's no
(print) in there but rather
(display), and that there's not only
(for-each) in there but also
(do).
@John:
Splita does seem very impressive!
In the meantime, I want you to have a look at the picture below. I'm not showing off or something. It's just FYI. I've split the FBSL 2-dimensional arrays into 4 separately declared but not dimensioned dynamic arrays (i.e. for example
DIM HEAPvalue[]) that are similar in their behavior to what your growable arrays now do. But mine are doing all this bloody damn faster! Incongruously faster! Look at the results:
5.5MB is the starting memory footprint,
12MB only is the ending footprint, and a
mere 10 seconds to complete the interpretative recursive evaluation proper.
My
maxheapsize is set to
4 000 000 and my maxstacksize is set to
2 000 000.
This is very difficult for SB to beat. But we must find a way to move as close to it as possible. Let's keep our fingers crossed.
Now to bed. Both of us. We need all the power there is.
.