-
Notifications
You must be signed in to change notification settings - Fork 129
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
Refactor environments and scoping #37
Comments
The actual change is implemented in the closed-source repo. It doesn't quite work yet on a big internal project, so I have more debugging to do. |
This is much harder than I thought. Right now, I am working with a version of drake that takes the user's environment and imported functions as-is. This is my highest-priority issue for drake, but it could still take a long time to fix. |
Now fixed in the closed-source version. For global environments, I just had to export more things to |
#35 is an example of unexpected behavior in an edge case due to drake's policy on environments and scoping. To make behavior more predictable in the next major version (3.0.0), drake will stop micromanaging environments. Targets will be evaluated in and assigned to the user's actual environment, not an isolated deep copy, and the enclosing environments of functions will no longer be reassigned. By default, your workspace will be vulnerable to side effects of
make()
, but you can always use theenvir
argument ofmake()
to impose protection.The text was updated successfully, but these errors were encountered: