I think I remember you had dynamic scoping because of how you’d implemented the dictionary in Rust. Has that changed with the new Racket implementation?
No change there - everything except the data stack is still kept in the stack frame. Lookups are the same, too.
I kind of like dynamic for writing little eDSL blocks, so I’m glad that’s the way I did it, but it’s a pain to debug sometimes. Although when you write something accidentally recursive, you can catch it pretty early - each iteration gets slower and slower as the call stack gets longer and longer!