errorcall rather than error in do_set
speed up EnsureLocal by avoiding eval
Merge branch '21-misc-cleanup' into 22-gc-old-to-new