"understand when touchable" bug/hang in 6G and not 6L

When you check “X is touchable/untouchable”, you are doing a scope test. That is, the parser starts at the current location and iterates down through every object, being careful about open/closed containers, to see whether X is reachable.

The problem is that when the parser is checking names (the “Understand ‘x’ as … when…” rule), it’s already doing a scope iteration. I haven’t compared 6G60 with 6L02, but I imagine the earlier implementation uses global variables in an unsafe way. Trying to do one scope test inside another overwrites variables and causes an infinite loop.

I don’t recommend doing this at all. You don’t want a heavyweight test like that when parsing every object name in every command. Your definition of “around” is fine.

1 Like