Skip to content

Instantly share code, notes, and snippets.

@oxinabox
Last active November 22, 2017 05:10
Show Gist options
  • Save oxinabox/77d3b377c8b9601e2a1cdb8acd3683dc to your computer and use it in GitHub Desktop.
Save oxinabox/77d3b377c8b9601e2a1cdb8acd3683dc to your computer and use it in GitHub Desktop.
About stdlib (JuliaLang Slack transcript) (Nov 2nd 2017)

Lyndon White

Is Pkg2 eventually going away? and Pkg3 will be merged into Base? (or not merged but made a standard-external-library in some way that does not require Pkg itself to manage)

Keno Fischer

yes

Lyndon White

Cool Merged into Base? (or the latter some other form of standard-external-library) (edited)

Stefan Karpinski

it will live in the stdlib except for the part that is necessary for loading code

Lyndon White

Is there a good post somewhere I can read to understand how standard-lib is going to work? I haven't followed the issues in a while. Last I saw it was like "Not 100% sure how it will work, but definitely want it."

Stefan Karpinski

JuliaLang/julia#23876

Lyndon White

Ok. So in short:

  • stdlib is a folder that lives in the julia repo.
  • inside this folder there are folders for each standard package.
  • a standard package folder looks like a Package repo in terms of its structure.
  • a standard package folder could actually BE a git submodule to a package repo (in theory, but presently none are).
  • standard package docs endup in the main julia manual
  • standard packages are tested as part of testing julia
  • standard packages on a per package level decide if they are going to be built into sysimg
  • installing julia always installs all standard packages (i.e. the whole standard library) Am I correct so far? Things I am less sure on:
  • standard packages are treated as separate to Julia for SemVer purposes?
  • standard packages can't be updated without updating julia?
  • standard packages do not interact with Pkg at all.

Stefan Karpinski

we could have options for only testing base without stdlib, since that would be the first thing you’d want to get working and it’s standalone there could also be a mode for installing less than all of that stuff

Lyndon White

via Makefile options

Stefan Karpinski

sure it should also be possible to opt into using newer or older versions of stdlib packages than your current Julia version which would allow us to evolve stdlib packages at a different rate than Julia itself for example, introducing Dates 2.0 with an incompatible API if we need to

Lyndon White

without having to release it as part of Julia 2.0? (edited) (or at least it could be made available many many months before Julia 2.0)

Keno Fischer

yes

Stefan Karpinski

you would probably only get shipped one version of each stdlib package by default, but you would still be able to use older / newer versions of stdlib packages by installing them the way normal package versions are installed this all needs to be worked out in greater fullness, but that’s the plan

Lyndon White

Thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment