Comment #3 on issue 1925 by [email protected]: Non-Deterministic behavior on simple benchmark
http://code.google.com/p/v8/issues/detail?id=1925

Ok - this strikes me as a VERY superficial analysis of this bug. Here is why:

1) Most other languages I know, on stack overflow, they let me know my stack just overflowed, and usually give me the options to increase my stack size. Are you saying that in V8, you think it is OK to just silently allow stack overflows, and just rely on luck or time of day for the user to find a potential problem. You can't be serious.

2) The idea of this benchmark is explicitly to be recursive. Yes, I know I can write a non-recursive version, but that defeats the purpose.

3) The tree which is DFS traversed is not deep, it is wide. The benchmark code has 3 loops. The outer loop (to 25) construct 25 parallel nodes from a top node. The inner loop (2 iters) constructs 2 concatenated subtrees, and the innermost loop (25) constructs 25 concatenated, 4-deep loop nests. In other words - the actual depth of the tree is not that deep. So while there are thousands of calls to DFS, the call stack is never deeper than 50 or so.

4) Even if I change the loop parameters, e.g., outer loop to 10, less than half the nodes, the benchmark fails sporadically, perhaps with a lower frequency. This tells me that V8 is not just scraping by.

5) Why would the error message be at different places? This remains unanswered.

I think my main complaint would be that you think it is Ok to not warn users explicitly on explcit stack overflows. Oh wait - you do, but - only once in a while?! This doesn't make sense. Why would this thing only overflow once in a while.

I further don't see how re-compilation would affect any of this.

So - it is Ok if you don't want to touch this bug again, I keep it as "Work as Intenden", but I don't think I got the answers I was looking for.

Thanks
  Robert

--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to