|
|
In article <3bee3aac@news.povray.org> , Warp <war### [at] tagpovrayorg> wrote:
> In Unix I can use virtually any max_trace_level and it will not crash.
Well, I hope you can at least assign a stack limit (or general memory) limit
to processes in any system that supports unlimited stack sizes. If not, you
would have a problem, and thus all Unix versions I know support such a
limit.
Ask yourself the question what happens if this space has been consumed by
the stack? You get a signal, one that will force you to terminate POV-Ray
(because it cannot cope with the problem in another way).
Now, I see little difference between a forced termination and a crash from
the _user_ perspective. So, in conclusion for the user it does absolutely
not matter why POV-Ray quits while rendering - the image cannot be
completed. What reasonable argument is there to tell the user before and
prevent the problem in advance? The proper way to do this is to set a limit
in advance so the user can be told _in_advance_, without rendering possibly
for days just to find that it will break somewhere after wasting so much
time*.
As for a new design (read: POV-Ray 4.0), one solution could be to use a
stack data structure, not the program stack.
Thorsten
* Yes, you could argue POV-Ray could run out of memory while rendering, but
as you might know, by far most memory is consumed during parsing and some is
freed after parsing is done. Thus such a case will be very, very rare!
____________________________________________________
Thorsten Froehlich, Duisburg, Germany
e-mail: tho### [at] trfde
Visit POV-Ray on the web: http://mac.povray.org
Post a reply to this message
|
|