{"action":"created","issue":{"url":"https://api.github.com/repos/JuliaLang/julia/issues/5155","repository_url":"https://api.github.com/repos/JuliaLang/julia","labels_url":"https://api.github.com/repos/JuliaLang/julia/issues/5155/labels{/name}","comments_url":"https://api.github.com/repos/JuliaLang/julia/issues/5155/comments","events_url":"https://api.github.com/repos/JuliaLang/julia/issues/5155/events","html_url":"https://github.com/JuliaLang/julia/issues/5155","id":24310805,"number":5155,"title":"Shrinking Base and Introducing a Standard Library","user":{"login":"tknopp","id":3109172,"avatar_url":"https://avatars.githubusercontent.com/u/3109172?v=3","gravatar_id":"","url":"https://api.github.com/users/tknopp","html_url":"https://github.com/tknopp","followers_url":"https://api.github.com/users/tknopp/followers","following_url":"https://api.github.com/users/tknopp/following{/other_user}","gists_url":"https://api.github.com/users/tknopp/gists{/gist_id}","starred_url":"https://api.github.com/users/tknopp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tknopp/subscriptions","organizations_url":"https://api.github.com/users/tknopp/orgs","repos_url":"https://api.github.com/users/tknopp/repos","events_url":"https://api.github.com/users/tknopp/events{/privacy}","received_events_url":"https://api.github.com/users/tknopp/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/JuliaLang/julia/labels/breaking","name":"breaking","color":"800000"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/JuliaLang/julia/milestones/14","html_url":"https://github.com/JuliaLang/julia/milestones/0.5.0","labels_url":"https://api.github.com/repos/JuliaLang/julia/milestones/14/labels","id":868319,"number":14,"title":"0.5.0","description":"Release-defining items for v0.5 - the `Arraymageddon` release.","creator":{"login":"vtjnash","id":330950,"avatar_url":"https://avatars.githubusercontent.com/u/330950?v=3","gravatar_id":"","url":"https://api.github.com/users/vtjnash","html_url":"https://github.com/vtjnash","followers_url":"https://api.github.com/users/vtjnash/followers","following_url":"https://api.github.com/users/vtjnash/following{/other_user}","gists_url":"https://api.github.com/users/vtjnash/gists{/gist_id}","starred_url":"https://api.github.com/users/vtjnash/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vtjnash/subscriptions","organizations_url":"https://api.github.com/users/vtjnash/orgs","repos_url":"https://api.github.com/users/vtjnash/repos","events_url":"https://api.github.com/users/vtjnash/events{/privacy}","received_events_url":"https://api.github.com/users/vtjnash/received_events","type":"User","site_admin":false},"open_issues":48,"closed_issues":32,"state":"open","created_at":"2014-11-16T16:16:12Z","updated_at":"2016-03-23T22:32:19Z","due_on":"2016-04-01T04:00:00Z","closed_at":null},"comments":70,"created_at":"2013-12-15T12:58:25Z","updated_at":"2016-03-25T18:04:33Z","closed_at":null,"body":"In #4898 there is a discussion whether the reduced loading time of the wonderful static compilation work should be an argument to either shrink or expand the Base module.\r\n\r\nAs it seems to be difficult in general if things can go in to Base or go into a package (i.e. where to draw the line) I would like to propose the following:\r\n- Shrink Base so that the initial load time and memory consumption is even better\r\n- Introduce 4-5 modules forming the \"standard library\" of Julia.\r\n\r\nWhether these standard modules should be automatically loaded is from my perspective only a minor discussion point. More important is that this behavior can be easily changed (e.g. in juliarc)\r\n\r\nOne concern might be that one cannot rely on what module has been loaded in the users environment. But this can be solved by simply always explicitly importing the standard libs when developing a package. \"using StdLib\" could be a shortcut to import all standard libraries. \r\n\r\nIt might make sense to offload the standard modules into packages to make the development flow easier. One could then pull in the standard lib when building Julia.\r\n\r\nI have not a concrete proposal for standard modules but \"LinAlg\" and \"Signal\" (like scipy.signal) come to my mind."},"comment":{"url":"https://api.github.com/repos/JuliaLang/julia/issues/comments/201394529","html_url":"https://github.com/JuliaLang/julia/issues/5155#issuecomment-201394529","issue_url":"https://api.github.com/repos/JuliaLang/julia/issues/5155","id":201394529,"user":{"login":"tknopp","id":3109172,"avatar_url":"https://avatars.githubusercontent.com/u/3109172?v=3","gravatar_id":"","url":"https://api.github.com/users/tknopp","html_url":"https://github.com/tknopp","followers_url":"https://api.github.com/users/tknopp/followers","following_url":"https://api.github.com/users/tknopp/following{/other_user}","gists_url":"https://api.github.com/users/tknopp/gists{/gist_id}","starred_url":"https://api.github.com/users/tknopp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tknopp/subscriptions","organizations_url":"https://api.github.com/users/tknopp/orgs","repos_url":"https://api.github.com/users/tknopp/repos","events_url":"https://api.github.com/users/tknopp/events{/privacy}","received_events_url":"https://api.github.com/users/tknopp/received_events","type":"User","site_admin":false},"created_at":"2016-03-25T18:04:33Z","updated_at":"2016-03-25T18:04:33Z","body":"> And for systems that don't have package managers? Technically separating out Pkg should be feasible, and building Julia without it may be something a small handful of people want to do for embedding or other use cases, but there's a lot of work to do in figuring out exactly how this would be distributed alongside Julia for the majority default configuration that will need it.\r\n\r\nThat is actually the point of this issue: Building the infrastructure such that some \"defaultPackages\" file is parsed when building Julia. It could then automatically pull the default packages.\r\n\r\nOnce such an infrastructure is available one could think about moving stuff into packages. IMHO `Pkg`does not seems to be the most important package to split of.\r\n\r\nI want to note that one has to distinguish between whats included in the julia repo and what is distributed when downloading julia. Till now this is the same but once we have some infrastructure for default packages this will differ."}}