-
Notifications
You must be signed in to change notification settings - Fork 11
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
Think about simplified scoping rules for parallel macros #30
Comments
Some short examples that show how fragile the current situation is: module M
x=1
y=@fetch x
end
# Worker will crash here x=1
@fetch x+1 # Works
@fetch Main.x+1 # Fails |
here's another one for the list: JuliaLang/julia#13810 |
It's speculative at this point, but considering the number of related issues, can this be added to the 0.6.0 milestone? |
The two open issues are related to treatment of module globals and module loading on workers. The main reported issue i.e., scoping w.r.t. parallel macros has been largely addressed by JuliaLang/julia#19594 Should we close this issue? |
There seems to be some general confusion amongst the user base for exactly how variable references in an expression passed to one of the parallel macros are resolved and when the value of variables is transferred vs treated as a reference to a global variable on some module defined on the worker.
Part of the problem could be resolved with better documentation, but I also wonder if we can find a set of rules that is more intuitive and robust in the Julia 0.5 timeframe.
Here are some specific issues concerning symbol resolution in parallel macros issues already brought up that we could maybe make some headway on:
localize_vars
and variables within top-levelif
statements julia#12367using
loads modules on workers but does not put exported bindings in Main #20The text was updated successfully, but these errors were encountered: