Skip to content
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

Pkg.build should launch a separate Julia process? #13458

Closed
stevengj opened this issue Oct 5, 2015 · 5 comments · Fixed by #13506
Closed

Pkg.build should launch a separate Julia process? #13458

stevengj opened this issue Oct 5, 2015 · 5 comments · Fixed by #13506
Labels
domain:packages Package management and loading

Comments

@stevengj
Copy link
Member

stevengj commented Oct 5, 2015

I'm wondering if Pkg.update should launch a separate Julia process, so that it builds in a "clean" Julia environment, similar to Base.compilecache.

Once you import Foo, subsequent import Foo calls in the same Julia process just load the Foo you already imported, even if Foo has changed on disk. This has caused me lots of problems in Pkg.update, apparently because something like the following sequence of events occurs:

  1. BinDeps or Conda was already loaded in a Julia session
  2. Pkg.update updates BinDeps or Conda
  3. Another package is updated and tries to run Pkg.build using the new BinDeps or Conda
  4. This fails, because either (a) precompilation on BinDeps fails because of error loading just-precompiled module if an imported module was loaded before precompiling #12508 or (b) it's not precompiled (Conda isn't, currently) but Pkg.build expects some feature of the latest version that is not present in the already-imported version

This would be solved by having Pkg.update launch a new Julia process.

cc: @wildart, @StefanKarpinski

@stevengj stevengj added the domain:packages Package management and loading label Oct 5, 2015
@StefanKarpinski
Copy link
Sponsor Member

Seems like a pretty good idea.

@wildart
Copy link
Member

wildart commented Oct 6, 2015

I agree with the proposed. I guess we are talking more of Pkg.build rather then Pkg.update.

@wildart wildart changed the title Pkg.update should launch a separate Julia process? Pkg.build should launch a separate Julia process? Oct 6, 2015
@stevengj
Copy link
Member Author

stevengj commented Oct 6, 2015

That's true, it should be Pkg.build.

@stevengj
Copy link
Member Author

stevengj commented Oct 6, 2015

Of course, if you spawn a new process for each Pkg.build, as opposed to once per Pkg.update, it will slow things down a bit.

@wildart
Copy link
Member

wildart commented Oct 6, 2015

Process spawning time is negligible in comparison to external build time.

stevengj added a commit to stevengj/julia that referenced this issue Oct 8, 2015
stevengj added a commit to stevengj/julia that referenced this issue Oct 8, 2015
stevengj added a commit that referenced this issue Oct 31, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
domain:packages Package management and loading
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants