-
Notifications
You must be signed in to change notification settings - Fork 21
[WIP] Clean up codebase for a public 0.1.0 release #56
base: master
Are you sure you want to change the base?
Conversation
Move comments out into a separate design doc Add Julia 0.4 style inline documentation for in-REPL docs Remove redundant constructor Add missing constructors for NullableVector and NullableMatrix
One big change I'd like to make is to remove the constructors labeled as numbers 5 and 6, which allow the use of sentinels to provide quasi-literals for constructing NullableArrays. I think this API reflects a real use case that we need to get right, but I feel that this API will not be the final API. (I somewhat suspect the final API will only become clear if we merge a descendant of NullableArrays into Base.) Given that we might remove this API in the future, I'd prefer that we not ship it to the public. |
Is there any way to get rid of the function below? (I remember struggling with this in the past.)
I'm troubled by the disconnect between how |
Thinking about this more, perhaps the problem is actually the "normal" definition of |
Perhaps @mbauman can help the discussion on |
Relevant previous discussion with @mbauman: JuliaLang/julia#11574 |
Great to see this nearing a release! Nice work @johnmyleswhite and @davidagold! I still stand by my comments in the linked Julia issue: I think In the intervening time since then, @simonster has introduced the very clever StructsOfArrays.jl package, which is a generalization of julia> A = StructOfArrays(Complex{Int}, 2,2)
2x2 StructsOfArrays.StructOfArrays{Complex{Int64},2,Tuple{Array{Int64,2},Array{Int64,2}}}:
4628173616+13189372320im 4624036272+13189364128im
4628173712+13189402880im 4582752352+0im
julia> A*.000001
2x2 StructsOfArrays.StructOfArrays{Complex{Float64},2,Tuple{Array{Float64,2},Array{Float64,2}}}:
4628.17+13189.4im 4624.04+13189.4im
4628.17+13189.4im 4582.75+0.0im While it doesn't happen currently, one could imagine I think the only reason that it feels weird for |
I'm now totally onboard with your previous stance: I'm not opposed to using |
Glad to hear you're convinced. :-) Perhaps Yes, I definitely agree that you shouldn't embark on that redesign now. This is sorely needed now and needs to be as efficient as possible for this specific use-case. Generalizations can happen later and have the possibility of being seamless with the above typealias. Like I said, I'm really excited to see this registered. |
I'm late to the party because I've been on the road and tramping through the Badlands in SD for the past few days. Unfortunately, I expect to be similarly indisposed for the near future, but I'll try to help in this clean up effort as best I can. I do agree that I'm also curious as to the reasoning why |
Enjoy your road trip. I'll keep working on this. I think we've largely settled on the requirement that |
@johnmyleswhite As far as the pseudo-literal constructors are concerned: I'm fine to remove them, though I'm hard-pressed at the moment to think of a better way to handle the use case they are designed to treat. Let's check with @quinnj to see if he's still using them in his packages and, if so, what they best way to handle that situation would be. |
This PR will ultimately go through the full codebase and clean up any issues that should block a 0.1.0 release.
Current steps:
There's a lot more to come, but I want to discuss some issues as I come upon them.