{"action":"closed","number":15738,"pull_request":{"url":"https://api.github.com/repos/JuliaLang/julia/pulls/15738","id":65013111,"html_url":"https://github.com/JuliaLang/julia/pull/15738","diff_url":"https://github.com/JuliaLang/julia/pull/15738.diff","patch_url":"https://github.com/JuliaLang/julia/pull/15738.patch","issue_url":"https://api.github.com/repos/JuliaLang/julia/issues/15738","number":15738,"state":"closed","locked":false,"title":"Docsystem Improvements","user":{"login":"MichaelHatherly","id":6144086,"avatar_url":"https://avatars.githubusercontent.com/u/6144086?v=3","gravatar_id":"","url":"https://api.github.com/users/MichaelHatherly","html_url":"https://github.com/MichaelHatherly","followers_url":"https://api.github.com/users/MichaelHatherly/followers","following_url":"https://api.github.com/users/MichaelHatherly/following{/other_user}","gists_url":"https://api.github.com/users/MichaelHatherly/gists{/gist_id}","starred_url":"https://api.github.com/users/MichaelHatherly/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MichaelHatherly/subscriptions","organizations_url":"https://api.github.com/users/MichaelHatherly/orgs","repos_url":"https://api.github.com/users/MichaelHatherly/repos","events_url":"https://api.github.com/users/MichaelHatherly/events{/privacy}","received_events_url":"https://api.github.com/users/MichaelHatherly/received_events","type":"User","site_admin":false},"body":"Moves a small docsystem component into coreimg which helps simplify the docs bootstrapping.\r\n`@doc`, `@__doc__`, and `@doc_str` are now defined in `Core` rather than in both `Core` and\r\n`Base`. From some adhoc timings compiling base it seems to have reduced it slightly somehow.\r\n\r\nBare docstrings are parsed as\r\n\r\n    Core.@doc \"...\" f\r\n\r\nrather than\r\n\r\n    @doc \"...\" f\r\n\r\nThis avoids the unlikely case of a user redefining `@doc` in their own module. Seems like\r\nsomething that could be classed as surprising behaviour and should be disallowed.\r\n\r\nAdjusts the keyword docs in `basedocs.jl` to use `@doc` rather than side-stepping it entirely.\r\n~~(Indentation of the docstrings in that file have been left as is for the moment to make the diff\r\nnicer to review.)~~ Re-indented prior to merging. \r\n\r\nImproves the file and line info captured by `@doc` so that docs can be located correctly in\r\nboth `Base` and packages.\r\n\r\nInterpolation in docstrings is now lazy and only occurs during display; though cached for\r\nrepeated calls. Instead of storing the raw string it is stored as a `SimpleVector`\r\ncontaining the string parts and interpolated values. This allows for context dependent\r\nautogenerated content in docstrings, such as method signatures, etc. by defining methods of\r\n`Docs.formatdoc` as follows:\r\n\r\n    immutable __SIGNATURE__ end\r\n\r\n    function Docs.formatdoc(buffer, d, part::Type{__SIGNATURE__})\r\n        # inspect the source code stored in docstring `d` and generate a user-friendly\r\n        # signature to replace `part` in the final docstring.\r\n        # ...\r\n    end\r\n\r\nand used as\r\n\r\n    \"\"\"\r\n    $__SIGNATURE__\r\n\r\n    ...\r\n    \"\"\"\r\n    function foo(x, y, z = 1)\r\n        # ...\r\n    end\r\n\r\nOther possibilities aside from `__SIGNATURE__` might be `__FIELDS__` for embedding the field\r\ndocs of a type into the main docstring. Neither of these are included in this commit.\r\n\r\n---\r\n\r\nI'll note here that `__SIGNATURE__` could be seen as a bit too magical. Any less magical approaches are most welcome if anyone has one.","created_at":"2016-04-01T22:21:28Z","updated_at":"2016-04-08T09:35:51Z","closed_at":"2016-04-08T09:35:51Z","merged_at":"2016-04-08T09:35:51Z","merge_commit_sha":"481a05c3bed0c3153f242f60d4364e1f39cf571f","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/JuliaLang/julia/pulls/15738/commits","review_comments_url":"https://api.github.com/repos/JuliaLang/julia/pulls/15738/comments","review_comment_url":"https://api.github.com/repos/JuliaLang/julia/pulls/comments{/number}","comments_url":"https://api.github.com/repos/JuliaLang/julia/issues/15738/comments","statuses_url":"https://api.github.com/repos/JuliaLang/julia/statuses/3dc91cfcdc7a0ef8b9681845b1bebc938b438ec8","head":{"label":"MichaelHatherly:mh/coredocs","ref":"mh/coredocs","sha":"3dc91cfcdc7a0ef8b9681845b1bebc938b438ec8","user":{"login":"MichaelHatherly","id":6144086,"avatar_url":"https://avatars.githubusercontent.com/u/6144086?v=3","gravatar_id":"","url":"https://api.github.com/users/MichaelHatherly","html_url":"https://github.com/MichaelHatherly","followers_url":"https://api.github.com/users/MichaelHatherly/followers","following_url":"https://api.github.com/users/MichaelHatherly/following{/other_user}","gists_url":"https://api.github.com/users/MichaelHatherly/gists{/gist_id}","starred_url":"https://api.github.com/users/MichaelHatherly/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MichaelHatherly/subscriptions","organizations_url":"https://api.github.com/users/MichaelHatherly/orgs","repos_url":"https://api.github.com/users/MichaelHatherly/repos","events_url":"https://api.github.com/users/MichaelHatherly/events{/privacy}","received_events_url":"https://api.github.com/users/MichaelHatherly/received_events","type":"User","site_admin":false},"repo":{"id":15361317,"name":"julia","full_name":"MichaelHatherly/julia","owner":{"login":"MichaelHatherly","id":6144086,"avatar_url":"https://avatars.githubusercontent.com/u/6144086?v=3","gravatar_id":"","url":"https://api.github.com/users/MichaelHatherly","html_url":"https://github.com/MichaelHatherly","followers_url":"https://api.github.com/users/MichaelHatherly/followers","following_url":"https://api.github.com/users/MichaelHatherly/following{/other_user}","gists_url":"https://api.github.com/users/MichaelHatherly/gists{/gist_id}","starred_url":"https://api.github.com/users/MichaelHatherly/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MichaelHatherly/subscriptions","organizations_url":"https://api.github.com/users/MichaelHatherly/orgs","repos_url":"https://api.github.com/users/MichaelHatherly/repos","events_url":"https://api.github.com/users/MichaelHatherly/events{/privacy}","received_events_url":"https://api.github.com/users/MichaelHatherly/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/MichaelHatherly/julia","description":"The Julia Language: A fresh approach to technical computing.","fork":true,"url":"https://api.github.com/repos/MichaelHatherly/julia","forks_url":"https://api.github.com/repos/MichaelHatherly/julia/forks","keys_url":"https://api.github.com/repos/MichaelHatherly/julia/keys{/key_id}","collaborators_url":"https://api.github.com/repos/MichaelHatherly/julia/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/MichaelHatherly/julia/teams","hooks_url":"https://api.github.com/repos/MichaelHatherly/julia/hooks","issue_events_url":"https://api.github.com/repos/MichaelHatherly/julia/issues/events{/number}","events_url":"https://api.github.com/repos/MichaelHatherly/julia/events","assignees_url":"https://api.github.com/repos/MichaelHatherly/julia/assignees{/user}","branches_url":"https://api.github.com/repos/MichaelHatherly/julia/branches{/branch}","tags_url":"https://api.github.com/repos/MichaelHatherly/julia/tags","blobs_url":"https://api.github.com/repos/MichaelHatherly/julia/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/MichaelHatherly/julia/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/MichaelHatherly/julia/git/refs{/sha}","trees_url":"https://api.github.com/repos/MichaelHatherly/julia/git/trees{/sha}","statuses_url":"https://api.github.com/repos/MichaelHatherly/julia/statuses/{sha}","languages_url":"https://api.github.com/repos/MichaelHatherly/julia/languages","stargazers_url":"https://api.github.com/repos/MichaelHatherly/julia/stargazers","contributors_url":"https://api.github.com/repos/MichaelHatherly/julia/contributors","subscribers_url":"https://api.github.com/repos/MichaelHatherly/julia/subscribers","subscription_url":"https://api.github.com/repos/MichaelHatherly/julia/subscription","commits_url":"https://api.github.com/repos/MichaelHatherly/julia/commits{/sha}","git_commits_url":"https://api.github.com/repos/MichaelHatherly/julia/git/commits{/sha}","comments_url":"https://api.github.com/repos/MichaelHatherly/julia/comments{/number}","issue_comment_url":"https://api.github.com/repos/MichaelHatherly/julia/issues/comments{/number}","contents_url":"https://api.github.com/repos/MichaelHatherly/julia/contents/{+path}","compare_url":"https://api.github.com/repos/MichaelHatherly/julia/compare/{base}...{head}","merges_url":"https://api.github.com/repos/MichaelHatherly/julia/merges","archive_url":"https://api.github.com/repos/MichaelHatherly/julia/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/MichaelHatherly/julia/downloads","issues_url":"https://api.github.com/repos/MichaelHatherly/julia/issues{/number}","pulls_url":"https://api.github.com/repos/MichaelHatherly/julia/pulls{/number}","milestones_url":"https://api.github.com/repos/MichaelHatherly/julia/milestones{/number}","notifications_url":"https://api.github.com/repos/MichaelHatherly/julia/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/MichaelHatherly/julia/labels{/name}","releases_url":"https://api.github.com/repos/MichaelHatherly/julia/releases{/id}","deployments_url":"https://api.github.com/repos/MichaelHatherly/julia/deployments","created_at":"2013-12-21T15:50:22Z","updated_at":"2014-06-28T08:05:54Z","pushed_at":"2016-04-07T06:44:27Z","git_url":"git://github.com/MichaelHatherly/julia.git","ssh_url":"git@github.com:MichaelHatherly/julia.git","clone_url":"https://github.com/MichaelHatherly/julia.git","svn_url":"https://github.com/MichaelHatherly/julia","homepage":"http://julialang.org/","size":90530,"stargazers_count":0,"watchers_count":0,"language":"Julia","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"JuliaLang:master","ref":"master","sha":"7a847a713d670d4cb86f2897887432de67dc480e","user":{"login":"JuliaLang","id":743164,"avatar_url":"https://avatars.githubusercontent.com/u/743164?v=3","gravatar_id":"","url":"https://api.github.com/users/JuliaLang","html_url":"https://github.com/JuliaLang","followers_url":"https://api.github.com/users/JuliaLang/followers","following_url":"https://api.github.com/users/JuliaLang/following{/other_user}","gists_url":"https://api.github.com/users/JuliaLang/gists{/gist_id}","starred_url":"https://api.github.com/users/JuliaLang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JuliaLang/subscriptions","organizations_url":"https://api.github.com/users/JuliaLang/orgs","repos_url":"https://api.github.com/users/JuliaLang/repos","events_url":"https://api.github.com/users/JuliaLang/events{/privacy}","received_events_url":"https://api.github.com/users/JuliaLang/received_events","type":"Organization","site_admin":false},"repo":{"id":1644196,"name":"julia","full_name":"JuliaLang/julia","owner":{"login":"JuliaLang","id":743164,"avatar_url":"https://avatars.githubusercontent.com/u/743164?v=3","gravatar_id":"","url":"https://api.github.com/users/JuliaLang","html_url":"https://github.com/JuliaLang","followers_url":"https://api.github.com/users/JuliaLang/followers","following_url":"https://api.github.com/users/JuliaLang/following{/other_user}","gists_url":"https://api.github.com/users/JuliaLang/gists{/gist_id}","starred_url":"https://api.github.com/users/JuliaLang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JuliaLang/subscriptions","organizations_url":"https://api.github.com/users/JuliaLang/orgs","repos_url":"https://api.github.com/users/JuliaLang/repos","events_url":"https://api.github.com/users/JuliaLang/events{/privacy}","received_events_url":"https://api.github.com/users/JuliaLang/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/JuliaLang/julia","description":"The Julia Language: A fresh approach to technical computing.","fork":false,"url":"https://api.github.com/repos/JuliaLang/julia","forks_url":"https://api.github.com/repos/JuliaLang/julia/forks","keys_url":"https://api.github.com/repos/JuliaLang/julia/keys{/key_id}","collaborators_url":"https://api.github.com/repos/JuliaLang/julia/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/JuliaLang/julia/teams","hooks_url":"https://api.github.com/repos/JuliaLang/julia/hooks","issue_events_url":"https://api.github.com/repos/JuliaLang/julia/issues/events{/number}","events_url":"https://api.github.com/repos/JuliaLang/julia/events","assignees_url":"https://api.github.com/repos/JuliaLang/julia/assignees{/user}","branches_url":"https://api.github.com/repos/JuliaLang/julia/branches{/branch}","tags_url":"https://api.github.com/repos/JuliaLang/julia/tags","blobs_url":"https://api.github.com/repos/JuliaLang/julia/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/JuliaLang/julia/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/JuliaLang/julia/git/refs{/sha}","trees_url":"https://api.github.com/repos/JuliaLang/julia/git/trees{/sha}","statuses_url":"https://api.github.com/repos/JuliaLang/julia/statuses/{sha}","languages_url":"https://api.github.com/repos/JuliaLang/julia/languages","stargazers_url":"https://api.github.com/repos/JuliaLang/julia/stargazers","contributors_url":"https://api.github.com/repos/JuliaLang/julia/contributors","subscribers_url":"https://api.github.com/repos/JuliaLang/julia/subscribers","subscription_url":"https://api.github.com/repos/JuliaLang/julia/subscription","commits_url":"https://api.github.com/repos/JuliaLang/julia/commits{/sha}","git_commits_url":"https://api.github.com/repos/JuliaLang/julia/git/commits{/sha}","comments_url":"https://api.github.com/repos/JuliaLang/julia/comments{/number}","issue_comment_url":"https://api.github.com/repos/JuliaLang/julia/issues/comments{/number}","contents_url":"https://api.github.com/repos/JuliaLang/julia/contents/{+path}","compare_url":"https://api.github.com/repos/JuliaLang/julia/compare/{base}...{head}","merges_url":"https://api.github.com/repos/JuliaLang/julia/merges","archive_url":"https://api.github.com/repos/JuliaLang/julia/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/JuliaLang/julia/downloads","issues_url":"https://api.github.com/repos/JuliaLang/julia/issues{/number}","pulls_url":"https://api.github.com/repos/JuliaLang/julia/pulls{/number}","milestones_url":"https://api.github.com/repos/JuliaLang/julia/milestones{/number}","notifications_url":"https://api.github.com/repos/JuliaLang/julia/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/JuliaLang/julia/labels{/name}","releases_url":"https://api.github.com/repos/JuliaLang/julia/releases{/id}","deployments_url":"https://api.github.com/repos/JuliaLang/julia/deployments","created_at":"2011-04-21T07:01:50Z","updated_at":"2016-04-08T09:17:26Z","pushed_at":"2016-04-08T09:35:51Z","git_url":"git://github.com/JuliaLang/julia.git","ssh_url":"git@github.com:JuliaLang/julia.git","clone_url":"https://github.com/JuliaLang/julia.git","svn_url":"https://github.com/JuliaLang/julia","homepage":"http://julialang.org/","size":414132,"stargazers_count":6921,"watchers_count":6921,"language":"Julia","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1592,"mirror_url":null,"open_issues_count":1710,"forks":1592,"open_issues":1710,"watchers":6921,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/JuliaLang/julia/pulls/15738"},"html":{"href":"https://github.com/JuliaLang/julia/pull/15738"},"issue":{"href":"https://api.github.com/repos/JuliaLang/julia/issues/15738"},"comments":{"href":"https://api.github.com/repos/JuliaLang/julia/issues/15738/comments"},"review_comments":{"href":"https://api.github.com/repos/JuliaLang/julia/pulls/15738/comments"},"review_comment":{"href":"https://api.github.com/repos/JuliaLang/julia/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/JuliaLang/julia/pulls/15738/commits"},"statuses":{"href":"https://api.github.com/repos/JuliaLang/julia/statuses/3dc91cfcdc7a0ef8b9681845b1bebc938b438ec8"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"MichaelHatherly","id":6144086,"avatar_url":"https://avatars.githubusercontent.com/u/6144086?v=3","gravatar_id":"","url":"https://api.github.com/users/MichaelHatherly","html_url":"https://github.com/MichaelHatherly","followers_url":"https://api.github.com/users/MichaelHatherly/followers","following_url":"https://api.github.com/users/MichaelHatherly/following{/other_user}","gists_url":"https://api.github.com/users/MichaelHatherly/gists{/gist_id}","starred_url":"https://api.github.com/users/MichaelHatherly/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MichaelHatherly/subscriptions","organizations_url":"https://api.github.com/users/MichaelHatherly/orgs","repos_url":"https://api.github.com/users/MichaelHatherly/repos","events_url":"https://api.github.com/users/MichaelHatherly/events{/privacy}","received_events_url":"https://api.github.com/users/MichaelHatherly/received_events","type":"User","site_admin":false},"comments":1,"review_comments":2,"commits":1,"additions":744,"deletions":785,"changed_files":12}}