kahn@parc.xerox.com (Ken Kahn) (07/12/90)
Yesterday I spent over 3 hours tracking down a bug that was due to the fact that I managed to create a variable that was bound to itself. It is very hard to debug such programs. I used the raw trace package (it produced a 1.5 MegaByte file) and lots of print statements and it still was very hard to localize once I suspected what the problem is. I think the Strand implementation is doing the "right" thing since any alternative that I can imagine would slow things down. What I would like to see, however, is a Strand implemenation that had a "development mode" -- a generalization of the current "resolvent" mode. When developing code I would like the implementation of X := Y to dereference both X and Y and check if they are the same before doing the assignment and if they are the same signal an error. I would like it to also do an occur check if Y is a tuple. Maybe people on this list can think up other things that would be useful while debugging code. -ken kahn