Hi David -
Looking over your changes I see two consistent patterns: One is to change all oops from sqInt to usqInt and the other one is to use the "special" unsigned comparison for pointers. Is my interpretation essentially correct?
A related issue: It bothers me greatly how complex all of this stuff has become. The whole 32/64bit conversion (oopForPointer: etc) and now pointer comparisons (no longer using < or >) makes me wonder of how sustainable this is. Even I can't recall all the rules that have to be followed to write clean 32/64/2GB barrier code. I wish we had a way of getting back to a set of simpler rules... any ideas anyone? The one idea that I can think of immediately would be to support types in slang better and have a specific slang compiler which can (for example) catch signed/unsigned comparisons when you write them.
I'm open for any suggestions on how to improve this situation.
Cheers, - Andreas
David T. Lewis wrote:
On Tue, Apr 24, 2007 at 07:29:39PM -0700, Andreas Raab wrote:
Wow. Nice work. I can't speak for the others but since we have the problem very practically at Qwaq I'd be willing to test drive these changes for a while and see if they fix the problems. The best way to do this would probably be to post change sets to this list (this allows me to go over them method by method more easily).
I posted the change sets under the subject line "VM patches for oop comparison and usqInt declarations".
Thanks for all the work!
Thanks for reviewing and test driving them. I hope they solve the problem.
Dave