What about getting all of the Unicode related bug fixes in #11004 in?
So there is only two people that can realistically say when 0.4 can happen ...
Is #7128 still on the table for v0.4? It fits better with the concatenation / array construction changes that are already in v0.4 than with the big array changes planned for v0.5. I am happy to find some time to take a look at the concatenation functions, but am not capable of making the required changes in the interpreter. Also, it won't be until after next week.
Getting OT I guess but I'm not sure how much lazy parsing would actually buy us. We could move the doc system to slightly earlier in the bootstrap process, I guess, but you still have the problem of documenting things that come before it anyway.
I figure that for things that can't be documented inline we can just load a separate file (e.g. basedocs.jl) later on. It's no worse than what we have now and still lets you do `?foo` in the repl which is the most important thing IMO.
Anyway – we can probably save the discussion for 0.5. I have an implementation in mind which I can play around with then and we'll see what people think of the tradeoffs.
Has anyone tried building on a new Broadwell CPU yet? Judging by https://github.com/xianyi/OpenBLAS/issues/583 it looks like we'd need the next version of openblas for that to build correctly. We could backport an openblas version bump if necessary, but it's a pretty big dependency to be doing that on.
julia> versioninfo()Julia Version 0.4.0-dev+5008Commit 0855ec9 (2015-05-26 16:08 UTC)Platform Info: System: Darwin (x86_64-apple-darwin14.3.0) CPU: Intel(R) Core(TM) i7-5557U CPU @ 3.10GHz WORD_SIZE: 64 BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Prescott) LAPACK: libopenblas LIBM: libopenlibm LLVM: libLLVM-3.3
Getting OT I guess but I'm not sure how much lazy parsing would actually buy us. We could move the doc system to slightly earlier in the bootstrap process, I guess, but you still have the problem of documenting things that come before it anyway.
and maybe fancy Markdown features could even be moved out of Base.
I'm not saying there are no advantages to keeping Markdown.jl outside of Base. But they have to outweigh reading and writing Base's documentation in plain text. We can't even handle code samples properly that way, let alone more advanced things like equations, references and structured docs.
Markdown parsing should not be in the Base language. It's fine for it to be something that we ship with for the standard interactive Julia environment ... Markdown parsing is *only* necessary for presenting that documentation, e.g. at the REPL or rendering it as HTML.
I'm unconvinced, especially considering the number of pull requests that have been exclusively fixing bugs in the markdown parser since it was brought into base, relative to its usage so far.
We *don't* currently ship packages with Base Julia, there's no reason we *can't* except that no one has figured out the right distribution method to do that.
You've been making Juno bundles, haven't you? Don't those include several packages?
I have some ideas for how to bundle packages, but haven't gotten round to playing around with them yet – obviously you want something like that to be really robust, and I'm not as confident with the package manager's internals or the details of handling build steps and binary dependencies etc. It'll be great to have this functionality working, though, not least so we can split up Base a bit.
Is there an existing issue for this, or should we create one?
I would recommend leaving things as they are for now – it seems like the main concern over having Markdown in Base is aesthetic, and stripping it out, implementing the lazy loading of doc strings, making sure it's all tested and robust etc, can't all happen in the next month.Once I get started in July I'll be able to get that stuff out of the way fairly quickly, though. Call it a short, intense 0.5 "Markdownmageddon" release.
There's no real need for @basedoc since you can just add a void string and eventually it will work. That said, during 0.4 let's treat the doc system as being for packages and use the manual as the primary source for Base. Otherwise we're going to end up having docs scattered around both systems.
In order to transfer Base to the new system, we need to (1) figure out how to generate basedocs.jl from the manual pages, (2) figure out how to generate the manual pages from the doc system, and (3) move the basedocs.jl docstrings into Base. Technically speaking it's not rocket surgery but it's definitely not going to happen by magic, and I'd like to avoid making it an harder organisational problem than it already is.
I am very worried that having two breaking releases (0.4 and 0.5) in a relatively short time frame (say July/August and then October) will create a real mess in the package landscape. I think realistically it will take weeks, if not months, to move the long tail of packages over to a new version like 0.4, and having something like that happen in short succession twice seems unwise to me. I think it would be a good rule of thumb to have at least 6 months, but ideally more, time between breaking releases, just to not give package developers the impression that they have to constantly keep up with breaking changes in the language.
I also think that at this point it is actually really key that we manage to have smooth major version transitions in the package landscape, if we want to convince people that they can use julia for real work.
From: juli...@googlegroups.com [mailto:juli...@googlegroups.com] On Behalf Of Stefan Karpinski
Sent: Tuesday, May 26, 2015 3:00 PM
To: juli...@googlegroups.com
Subject: [julia-dev] proposal: freeze 0.4 soon; short, intense 0.5 "Arraymageddon" release
There are several important breaking changes planned for arrays – #3701, #4774, #7568, among others. Several of these have been slated to go into the 0.4 release, which is getting a bit long in the tooth and already has plenty of material. So I'd like to propose that we do the following:
This plan allows us to wrap up 0.4 sooner rather than later. It also allows us to do do all of the things that are likely to break array-heavy code bases all at once in a fairly short period of time, which seems like it will minimize the pain caused by those changes. I don't think that 0.5 needs to be just array changes (if anything else gets changed in that timeframe, that's fine), but non-array changes shouldn't hold up the release. The 0.5 release will be known as "Arraymageddon", which looks something like this:
Thoughts?