-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Uniquify all Sprite preterms in separate step prior elaboration #199
Conversation
I wonder if this can be somehow integrated with In Smalltalk, most of the time we follow the convention that if some But sometimes it's too unbearable to lug all this parallelism through the whole codebase. There is, for example, |
I was thinking the same but after digging deeper I decided not to, not now anyways. It seemed more than I could chew.
Yeah, and hopefully soon else a mere hero won't suffice. And gods are even scarcer to come by than heroes. |
Both MA (prior this commit) and upstream Sprite (at the time of this commit) had bug in type renaming where parameters were renamed but not references to them in termination metric. All tests "appeared to work" simply because the code used same (formal) parameter names in both type signature and function declaration. However in general case they do not need to be the same. Solution is simple - also rename parameters in termination metric.
75142a8
to
ea02836
Compare
This commit α-renames all variables in a separate step prior elaboration in order to avoid name clashes as demonstrated by `#testAlphaClash`. This is similar to PR shingarov#197 but differ in several ways: * perform renaming as a separate step, not as part of [Chk-Lam]. * renames all lets, not just function parameter binds * renames everything in single top-down traversal. Fixes shingarov#139 (well, not quite yet)
ea02836
to
313e250
Compare
Yet another attempt to fix #139.
This PR α-renames all variables in a separate step prior elaboration.
It is similar to PR #197 but differ in several ways: