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

Initial setup to move modules out of Base to a stdlib #19628

Closed
wants to merge 1 commit into from
Closed

Conversation

quinnj
Copy link
Member

@quinnj quinnj commented Dec 16, 2016

This is an initial attempt at the creation of a stdlib separate from Base (discussed here).

While the full list of features/steps/functionality listed in the above issue is out of scope for 0.6, I still think there are some concrete advantages to starting the process:

  • There's actually quite a bit of work to make some modules in Base truly independent/modular-enough to split out
  • Migrating things to stdlib at least enables a still-manual-but-less-complicated way to build a "julia lite" (where a user could just remove the stdlib includes from sysimg.jl

I think there's enough to think about and iron out just in this "step 1" of the process that, we might as well kick off the process.

Two questions I came up with, just putting together this PR were:

  • Docs: inline docs (I think) should work fine because they'll just be moved over, but do we still have a mass "Base docs" file somewhere we'd need to move things out of?
  • Command-line excludes: I think it'd be handy to allow a user to do julia -exclude=quadgk,linalg which would result in those stdlib modules not being included in the build julia; I didn't want to muck up/embarrass myself too much by messing with our makefiles though
  • I thought in sysimg.jl, I'd just be able to do using QuadGK after using Base, after modifying init_load_path in initdefs.jl, but using didn't seem to be able to find the QuadGK.jl file in stdlib. Is there a way to do that? Or is that only a package thing?

@@ -42,6 +42,7 @@ function init_load_path()
end
push!(LOAD_PATH, abspath(JULIA_HOME, "..", "local", "share", "julia", "site", vers))
push!(LOAD_PATH, abspath(JULIA_HOME, "..", "share", "julia", "site", vers))
push!(LOAD_PATH, abspath(JULIA_HOME, "..", "..", "stdlib"))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why don't we just use site for this? it's already on load path

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, that's probably a good idea; even though it's not totally obvious that it's the julia stdlib, it makes more sense because long-term we're planning on moving things out of this repo anyway.

@tkelman
Copy link
Contributor

tkelman commented Dec 16, 2016

The last time this came up in a triage call, it was mentioned that it would be good to come up with a mechanism for having these as separate modules alongside Base, not inside it. That would at least get people used to needing to add using QuadGK (we could add instructive errors to base/deprecated.jl as we did for the moved pieces of combinatorics and primes, if needed).

@quinnj
Copy link
Member Author

quinnj commented Dec 16, 2016

Hmmm......yeah, I can see that as a decent next step (after getting the file shuffling done). We would definitely want to think about precompilation though; i.e. QuadGK as a module should be precompiled during the make julia process.

@quinnj quinnj closed this Jul 14, 2017
@tkelman tkelman deleted the jq/stdlib branch July 14, 2017 04:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants