From: Paul Brannan Date: 2007-05-01T21:36:51+09:00 Subject: question about frame_unique I was reading the source code for ruby 1.8.6, and a thought occurrred to me. Consider: - Assume we're running on a 32-bit system that has a limit of 2**32-1 for unsigned long. - frame_unique starts at 0. Assume some amount of work has been done and it reaches some number, say 20. - The script makes 2**32-1 method invocations and pushes and pops 2**32-1 frames. - frame_unique is incremented 2**32-1 times. Its value should now be 19. - On the next method invocation, when the frame is pushed, frame_unique will be incremented to 20, and the next frame's uniq value will be the same as the previous frame's. Ruby can now no longer distinguish between the two frames, even though they are distinct frames. I don't know what the implications are of this, so I don't have a test case. It's seems though that in a very long running ruby script that this could be a real problem. I don't see any simple way around it, though. A similar problem exists with block_unique. Paul