Reasonable requests... we'll add them to our list. (The simpler ones
will be implemented first.)
-Carl
At 11/29/99 08:35 AM -0600, you wrote:
>[EMAIL PROTECTED] wrote:
>>
>> Let's see how it performs on a structure that is naturally recursive:
>>
>... nice code and stack crash deleted ...
>>
>> But:
>>
>... more deletions ...
>>
>> 140 levels can hold maximum 2^139 + 2^138 + ... + 2^0 elements...
>>
>> I think running out of memory is a bigger problem than running out of
>> stack space ! :))
>>
>
>EXCEPT that sometimes a recursive structure is composed from input
>data not under the control of the programmer! For example, building
>a sort tree from pathologically ordered data can produce a 140-level
>tree that contains only 141 leaves.
>
>Of course the program can be re-written to continually rebalance the
>tree, but means that the programmer is having to make a more complex
>program to work around a limitation of the implementation -- NOT a
>very friendly solution for the casual (or novice) programmer.
>
>CONCRETE SUGGESTIONS: Why not allow the programmer or user some more
>control over stack size? I suggest that REBOL would benefit from:
>
>1) A command-line argument allowing the stack size to be set to a
> supplied value. On a larger box, one could simply make the size
> bigger to allow deeper recursion. (As a side note, I recently
> found that I could nest recursive calls deeper under w95 than
> under Solaris, even though the Sun box had WAYYYYY more RAM.
> ("What a rebolting development THAT is!")
>
>2) A primitive function allowing running code to query the amount
> of total and free stack space. This would enable a script to
> predict an impending stack crash and take preventive action,
> rather than simply detecting the crash after the fact.
> It would also be nice to have the same capabilitiy(ies) for
> heap/string space, but I'm assuming more than I know about the
> implementation of REBOL. ;-)
>
>3) In the best of all possible worlds, REBOL would have both of
> the above, PLUS a function to grow the stack/heap/whatever by
> a specified amount of memory. Of course that function would
> fail gracefully if the environment didn't have sufficient
> resources to let the interpreter grow.
>
>How about it, REBOL wizards? I realize that these may be non-trivial
>changes (depending on how the interpreter is built) but I believe they
>offer some real value, both to those of us who occasionally write
>quick-and-dirty code and to those who deal with really complex or
>large data structures.
>
>-jn-
>