JuliaLang / JuliaLang/Distributed.jl
`using` loads modules on workers but does not put exported bindings in Main
Nobody has claimed this yet.
- Dominant language
- Julia
- Stars
- 55
- Forks
- 19
- PR merge metrics
- No merged PRs in 30d
Description
This may be intended, but it seems a bit awkward to me:
$ julia -p 1
[...]
| | |_| | | | (_| | | Version 0.4.0-dev+1922 (2014-12-02 23:10 UTC)
_/ |\__'_|_|_|\__'_| | Commit e4e1688* (0 days old master)
|__/ | x86_64-apple-darwin14.0.0
julia> using StatsBase
julia> @everywhere assert(isa(StatsBase.sample, Function))
julia> @everywhere assert(isa(sample, Function))
exception on 2: ERROR: sample not defined
in eval at /usr/local/julia/base/sysimg.jl:7
in anonymous at multi.jl:1395
in anonymous at multi.jl:820
in run_work_thunk at multi.jl:593
in run_work_thunk at multi.jl:602
in anonymous at task.jl:6
Obviously the workaround is @everywhere using StatsBase, but I think that using X should probably be equivalent to @everywhere using X, or if not, it should act exclusively on the main process. Instead it seems we get using X on the main process and require("X") on the workers.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the report with julia -p 1, using StatsBase, and the two @everywhere assertions. Start by tracing the using and worker-loading behavior in multi.jl, alongside the shown sysimg.jl path. Done should mean the chosen module-loading semantics are consistent and covered by a regression test.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- distributed-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100