{"action":"created","issue":{"url":"https://api.github.com/repos/JuliaLang/julia/issues/26919","repository_url":"https://api.github.com/repos/JuliaLang/julia","labels_url":"https://api.github.com/repos/JuliaLang/julia/issues/26919/labels{/name}","comments_url":"https://api.github.com/repos/JuliaLang/julia/issues/26919/comments","events_url":"https://api.github.com/repos/JuliaLang/julia/issues/26919/events","html_url":"https://github.com/JuliaLang/julia/issues/26919","id":318496900,"number":26919,"title":"Documenting all exports from Base","user":{"login":"mbauman","id":154641,"avatar_url":"https://avatars0.githubusercontent.com/u/154641?v=4","gravatar_id":"","url":"https://api.github.com/users/mbauman","html_url":"https://github.com/mbauman","followers_url":"https://api.github.com/users/mbauman/followers","following_url":"https://api.github.com/users/mbauman/following{/other_user}","gists_url":"https://api.github.com/users/mbauman/gists{/gist_id}","starred_url":"https://api.github.com/users/mbauman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbauman/subscriptions","organizations_url":"https://api.github.com/users/mbauman/orgs","repos_url":"https://api.github.com/users/mbauman/repos","events_url":"https://api.github.com/users/mbauman/events{/privacy}","received_events_url":"https://api.github.com/users/mbauman/received_events","type":"User","site_admin":false},"labels":[{"id":115619,"url":"https://api.github.com/repos/JuliaLang/julia/labels/doc","name":"doc","color":"02d7e1","default":false},{"id":232418,"url":"https://api.github.com/repos/JuliaLang/julia/labels/help%20wanted","name":"help wanted","color":"0b02e1","default":true}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":5,"created_at":"2018-04-27T17:57:33Z","updated_at":"2018-05-08T14:12:41Z","closed_at":null,"author_association":"MEMBER","body":"It'd be nice to make sure that all our exports are documented and make sense for the 1.0 release.  This is a fairly daunting list, but it is a task that's easily parallelizable and can be tackled incrementally.\r\n\r\nThere are two classes of undocumented thing.\r\n* It's just plain undocumented.  Add documentation!\r\n* It's a callable thing and all its methods live within `deprecated.jl`.  In this case, we probably want to `@deprecate_binding` the binding itself so packages that extend these methods won't be totally surprised when the binding gets removed in 1.0.\r\n\r\nI've written a quick and simple script that identifies these two cases and spits out the list.  Please feel free to jump in and add PRs to resolve these as you are able!  Just be bold and go for it!\r\n\r\n```julia\r\njulia> searchdocs(mod) = searchdocs!(Any[], Bool[], mod)\r\n       function searchdocs!(objs, isalldep, mod, seen=Set())\r\n           mod in seen && return\r\n           push!(seen, mod)\r\n           for name in names(mod)\r\n               isdefined(mod, name) || continue\r\n               Base.isdeprecated(mod, name) && continue\r\n               b = getfield(mod, name)\r\n               docs = Base.Docs.doc(Base.Docs.Binding(mod, name))\r\n               if startswith(string(docs), \"No documentation found\")\r\n                   push!(objs, string(mod, '.', name))\r\n                   push!(isalldep, !isempty(methods(b)) && all(x->occursin(\"deprecated\", functionloc(x)[1]), methods(b)))\r\n               end\r\n               b isa Module && searchdocs!(objs, isalldep, b, seen)\r\n           end\r\n           objs, isalldep\r\n       end\r\nsearchdocs! (generic function with 2 methods)\r\n\r\njulia> println(\"### Undocumented exports\")\r\n       foreach(x->println(\"* [ ] `\", x, '`'), objs[.!isalldep])\r\n       println(\"### Undocumented exports that are entirely deprecated\")\r\n       foreach(x->println(\"* [ ] `\", x, '`'), objs[isalldep])\r\n```\r\n### Undocumented exports\r\n* [ ] `Base.=>`\r\n* [ ] `Base.@MIME_str`\r\n* [ ] `Base.@b_str`\r\n* [ ] `Base.@big_str`\r\n* [ ] `Base.@cmd`\r\n* [ ] `Base.@generated`\r\n* [ ] `Base.@int128_str`\r\n* [ ] `Base.@s_str`\r\n* [ ] `Base.@simd`\r\n* [ ] `Base.@uint128_str`\r\n* [ ] `Base.@v_str`\r\n* [ ] `Base.AbstractRange`\r\n* [ ] `Base.AbstractUnitRange`\r\n* [ ] `Base.AbstractVecOrMat`\r\n* [ ] `Base.Base`\r\n* [ ] `Base.Broadcast`\r\n* [ ] `Base.Broadcast.Broadcast`\r\n* [ ] `Base.Broadcast.dotview`\r\n* [ ] `Base.CapturedException`\r\n* [ ] `Base.CompositeException`\r\n* [ ] `Base.Cstring`\r\n* [ ] `Base.Cwstring`\r\n* [ ] `Base.DEPOT_PATH`\r\n* [ ] `Base.DFT`\r\n* [ ] `Base.DFT.DFT`\r\n* [ ] `Base.DenseMatrix`\r\n* [ ] `Base.DenseVecOrMat`\r\n* [ ] `Base.DenseVector`\r\n* [ ] `Base.Dims`\r\n* [ ] `Base.Docs.@var`\r\n* [ ] `Base.GC`\r\n* [ ] `Base.GC.GC`\r\n* [ ] `Base.IOStream`\r\n* [ ] `Base.IndexCartesian`\r\n* [ ] `Base.IndexLinear`\r\n* [ ] `Base.Inf64`\r\n* [ ] `Base.InsertionSort`\r\n* [ ] `Base.InvalidStateException`\r\n* [ ] `Base.Libc.FILE`\r\n* [ ] `Base.Libc.systemsleep`\r\n* [ ] `Base.LinRange`\r\n* [ ] `Base.MIME`\r\n* [ ] `Base.MergeSort`\r\n* [ ] `Base.Meta.isexpr`\r\n* [ ] `Base.Meta.quot`\r\n* [ ] `Base.Meta.show_sexpr`\r\n* [ ] `Base.NaN64`\r\n* [ ] `Base.Operators`\r\n* [ ] `Base.Operators.Operators`\r\n* [ ] `Base.OrdinalRange`\r\n* [ ] `Base.PartialQuickSort`\r\n* [ ] `Base.QuickSort`\r\n* [ ] `Base.RawFD`\r\n* [ ] `Base.Regex`\r\n* [ ] `Base.RegexMatch`\r\n* [ ] `Base.RoundFromZero`\r\n* [ ] `Base.StepRange`\r\n* [ ] `Base.StridedArray`\r\n* [ ] `Base.StridedMatrix`\r\n* [ ] `Base.StridedVecOrMat`\r\n* [ ] `Base.StridedVector`\r\n* [ ] `Base.SubArray`\r\n* [ ] `Base.Sys.CPU_NAME`\r\n* [ ] `Base.Sys.JIT`\r\n* [ ] `Base.Sys.cpu_info`\r\n* [ ] `Base.Sys.cpu_summary`\r\n* [ ] `Base.Sys.free_memory`\r\n* [ ] `Base.Sys.total_memory`\r\n* [ ] `Base.UnitRange`\r\n* [ ] `Base.VecOrMat`\r\n* [ ] `Base.VersionNumber`\r\n* [ ] `Base.bin`\r\n* [ ] `Base.dec`\r\n* [ ] `Base.hex`\r\n* [ ] `Base.indmax`\r\n* [ ] `Base.oct`\r\n* [ ] `Base.substrides`\r\n* [ ] `Base.∉`\r\n* [ ] `Base.∋`\r\n* [ ] `Base.∌`\r\n* [ ] `Base.⊇`\r\n* [ ] `Base.⊈`\r\n* [ ] `Base.⊉`\r\n* [ ] `Base.⊊`\r\n* [ ] `Base.⊋`\r\n### Undocumented exports that are entirely deprecated\r\n* [ ] `Base..!=`\r\n* [ ] `Base..%`\r\n* [ ] `Base..*`\r\n* [ ] `Base..+`\r\n* [ ] `Base..-`\r\n* [ ] `Base../`\r\n* [ ] `Base..//`\r\n* [ ] `Base..<`\r\n* [ ] `Base..<<`\r\n* [ ] `Base..<=`\r\n* [ ] `Base..==`\r\n* [ ] `Base..>`\r\n* [ ] `Base..>=`\r\n* [ ] `Base..>>`\r\n* [ ] `Base..\\`\r\n* [ ] `Base..^`\r\n* [ ] `Base..÷`\r\n* [ ] `Base..≠`\r\n* [ ] `Base..≤`\r\n* [ ] `Base..≥`\r\n* [ ] `Base.@deprecate`\r\n* [ ] `Base.A_ldiv_Bc`\r\n* [ ] `Base.A_ldiv_Bt`\r\n* [ ] `Base.A_mul_Bc`\r\n* [ ] `Base.A_mul_Bt`\r\n* [ ] `Base.A_rdiv_Bc`\r\n* [ ] `Base.A_rdiv_Bt`\r\n* [ ] `Base.AbstractChannel`\r\n* [ ] `Base.AbstractDict`\r\n* [ ] `Base.AbstractDisplay`\r\n* [ ] `Base.AbstractSet`\r\n* [ ] `Base.Ac_ldiv_B`\r\n* [ ] `Base.Ac_ldiv_Bc`\r\n* [ ] `Base.Ac_ldiv_Bt`\r\n* [ ] `Base.Ac_mul_B`\r\n* [ ] `Base.Ac_mul_Bc`\r\n* [ ] `Base.Ac_rdiv_B`\r\n* [ ] `Base.Ac_rdiv_Bc`\r\n* [ ] `Base.At_ldiv_B`\r\n* [ ] `Base.At_ldiv_Bt`\r\n* [ ] `Base.At_mul_B`\r\n* [ ] `Base.At_mul_Bt`\r\n* [ ] `Base.At_rdiv_B`\r\n* [ ] `Base.At_rdiv_Bt`\r\n* [ ] `Base.Enum`\r\n* [ ] `Base.EnvHash`\r\n* [ ] `Base.assert`\r\n* [ ] `Base.base`\r\n* [ ] `Base.bits`\r\n* [ ] `Base.catch_stacktrace`\r\n* [ ] `Base.cfunction`\r\n* [ ] `Base.charwidth`\r\n* [ ] `Base.chr2ind`\r\n* [ ] `Base.contains`\r\n* [ ] `Base.countnz`\r\n* [ ] `Base.ctranspose`\r\n* [ ] `Base.ctranspose!`\r\n* [ ] `Base.endof`\r\n* [ ] `Base.equalto`\r\n* [ ] `Base.expand`\r\n* [ ] `Base.find`\r\n* [ ] `Base.findin`\r\n* [ ] `Base.findn`\r\n* [ ] `Base.flipdim`\r\n* [ ] `Base.full`\r\n* [ ] `Base.gc`\r\n* [ ] `Base.gc_enable`\r\n* [ ] `Base.hex2num`\r\n* [ ] `Base.ind2chr`\r\n* [ ] `Base.ind2sub`\r\n* [ ] `Base.indices`\r\n* [ ] `Base.indmin`\r\n* [ ] `Base.is_apple`\r\n* [ ] `Base.is_bsd`\r\n* [ ] `Base.is_linux`\r\n* [ ] `Base.is_unix`\r\n* [ ] `Base.is_windows`\r\n* [ ] `Base.isabstract`\r\n* [ ] `Base.isalnum`\r\n* [ ] `Base.isgraph`\r\n* [ ] `Base.isleaftype`\r\n* [ ] `Base.islower`\r\n* [ ] `Base.ismatch`\r\n* [ ] `Base.isnumber`\r\n* [ ] `Base.issubtype`\r\n* [ ] `Base.isupper`\r\n* [ ] `Base.lcfirst`\r\n* [ ] `Base.lexcmp`\r\n* [ ] `Base.lexless`\r\n* [ ] `Base.linspace`\r\n* [ ] `Base.logspace`\r\n* [ ] `Base.mapreducedim`\r\n* [ ] `Base.matchall`\r\n* [ ] `Base.method_exists`\r\n* [ ] `Base.mimewritable`\r\n* [ ] `Base.module_name`\r\n* [ ] `Base.module_parent`\r\n* [ ] `Base.nb_available`\r\n* [ ] `Base.num2hex`\r\n* [ ] `Base.object_id`\r\n* [ ] `Base.parentindexes`\r\n* [ ] `Base.print_shortest`\r\n* [ ] `Base.print_with_color`\r\n* [ ] `Base.quit`\r\n* [ ] `Base.readstring`\r\n* [ ] `Base.reducedim`\r\n* [ ] `Base.reload`\r\n* [ ] `Base.reprmime`\r\n* [ ] `Base.rol`\r\n* [ ] `Base.rol!`\r\n* [ ] `Base.ror`\r\n* [ ] `Base.ror!`\r\n* [ ] `Base.rsearch`\r\n* [ ] `Base.rsearchindex`\r\n* [ ] `Base.search`\r\n* [ ] `Base.searchindex`\r\n* [ ] `Base.select`\r\n* [ ] `Base.select!`\r\n* [ ] `Base.selectperm`\r\n* [ ] `Base.selectperm!`\r\n* [ ] `Base.shift!`\r\n* [ ] `Base.showall`\r\n* [ ] `Base.showcompact`\r\n* [ ] `Base.signif`\r\n* [ ] `Base.slicedim`\r\n* [ ] `Base.spawn`\r\n* [ ] `Base.strwidth`\r\n* [ ] `Base.sub2ind`\r\n* [ ] `Base.tic`\r\n* [ ] `Base.toc`\r\n* [ ] `Base.toq`\r\n* [ ] `Base.ucfirst`\r\n* [ ] `Base.unsafe_copy!`\r\n* [ ] `Base.unshift!`\r\n* [ ] `Base.workspace`\r\n"},"comment":{"url":"https://api.github.com/repos/JuliaLang/julia/issues/comments/387416343","html_url":"https://github.com/JuliaLang/julia/issues/26919#issuecomment-387416343","issue_url":"https://api.github.com/repos/JuliaLang/julia/issues/26919","id":387416343,"user":{"login":"mbauman","id":154641,"avatar_url":"https://avatars0.githubusercontent.com/u/154641?v=4","gravatar_id":"","url":"https://api.github.com/users/mbauman","html_url":"https://github.com/mbauman","followers_url":"https://api.github.com/users/mbauman/followers","following_url":"https://api.github.com/users/mbauman/following{/other_user}","gists_url":"https://api.github.com/users/mbauman/gists{/gist_id}","starred_url":"https://api.github.com/users/mbauman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbauman/subscriptions","organizations_url":"https://api.github.com/users/mbauman/orgs","repos_url":"https://api.github.com/users/mbauman/repos","events_url":"https://api.github.com/users/mbauman/events{/privacy}","received_events_url":"https://api.github.com/users/mbauman/received_events","type":"User","site_admin":false},"created_at":"2018-05-08T14:12:41Z","updated_at":"2018-05-08T14:12:41Z","author_association":"MEMBER","body":"Ah, sure enough.  The script isn't checking `base/exports.jl` — it's just using the method locations as a proxy for entirely deprecated.  I suppose as long as those methods are undocumented that's okay, but it does strike me as a bit of a gray zone."}}
{"actor":{"display_login":"mbauman"}}