{"action":"created","issue":{"url":"https://api.github.com/repos/scala/scala/issues/6012","repository_url":"https://api.github.com/repos/scala/scala","labels_url":"https://api.github.com/repos/scala/scala/issues/6012/labels{/name}","comments_url":"https://api.github.com/repos/scala/scala/issues/6012/comments","events_url":"https://api.github.com/repos/scala/scala/issues/6012/events","html_url":"https://github.com/scala/scala/pull/6012","id":246322013,"number":6012,"title":"Backend Refactoring","user":{"login":"lrytz","id":119636,"avatar_url":"https://avatars1.githubusercontent.com/u/119636?v=4","gravatar_id":"","url":"https://api.github.com/users/lrytz","html_url":"https://github.com/lrytz","followers_url":"https://api.github.com/users/lrytz/followers","following_url":"https://api.github.com/users/lrytz/following{/other_user}","gists_url":"https://api.github.com/users/lrytz/gists{/gist_id}","starred_url":"https://api.github.com/users/lrytz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lrytz/subscriptions","organizations_url":"https://api.github.com/users/lrytz/orgs","repos_url":"https://api.github.com/users/lrytz/repos","events_url":"https://api.github.com/users/lrytz/events{/privacy}","received_events_url":"https://api.github.com/users/lrytz/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/scala/scala/milestones/64","html_url":"https://github.com/scala/scala/milestone/64","labels_url":"https://api.github.com/repos/scala/scala/milestones/64/labels","id":2526022,"number":64,"title":"2.12.4","description":"Merge to 2.12.x\r\n\r\nQuarterly release, date tentative\r\n\r\nRelease Lead: TBD","creator":{"login":"retronym","id":65551,"avatar_url":"https://avatars0.githubusercontent.com/u/65551?v=4","gravatar_id":"","url":"https://api.github.com/users/retronym","html_url":"https://github.com/retronym","followers_url":"https://api.github.com/users/retronym/followers","following_url":"https://api.github.com/users/retronym/following{/other_user}","gists_url":"https://api.github.com/users/retronym/gists{/gist_id}","starred_url":"https://api.github.com/users/retronym/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/retronym/subscriptions","organizations_url":"https://api.github.com/users/retronym/orgs","repos_url":"https://api.github.com/users/retronym/repos","events_url":"https://api.github.com/users/retronym/events{/privacy}","received_events_url":"https://api.github.com/users/retronym/received_events","type":"User","site_admin":false},"open_issues":42,"closed_issues":20,"state":"open","created_at":"2017-05-17T04:00:00Z","updated_at":"2017-08-14T21:54:13Z","due_on":"2017-10-01T07:00:00Z","closed_at":null},"comments":8,"created_at":"2017-07-28T11:31:06Z","updated_at":"2017-08-15T05:24:25Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/scala/scala/pulls/6012","html_url":"https://github.com/scala/scala/pull/6012","diff_url":"https://github.com/scala/scala/pull/6012.diff","patch_url":"https://github.com/scala/scala/pull/6012.patch"},"body":"Isolate backend components to run parallel from the compiler frontend\r\n\r\nRefactor the compiler backend to isolate components that are planned to\r\nrun in parallel (local optimizations, classfile writing) from the\r\ncompiler frontend (i.e., no access to the Global instance).\r\n\r\nThe long inheritance stack (BCodeIdiomatic - BCodeHelpers - ... -\r\nBCodeSyncAndTry) is now isolated and simply a component of the new\r\nCodeGen class. CodeGen itself is one component of GenBCode, the\r\nbackend class.\r\n\r\nGenBCode has some other components\r\n  - BTypes, used in CodeGen and PostProcessor. Many of the backend\r\n    components that used to be in BTypes (inliner, inlinerHeuristics,\r\n    localOpt) now moved to the PostProcessor.\r\n  - PostProcessor implements global optimization (inlining), local\r\n    optimizations and classfile writing. It has itself quite a number\r\n    of components (inliner, callGraph, classfileWriter, ...)\r\n  - PostProcessorFrontendAccess is an interface of functionality\r\n    required in the PostProcessor that is implemented by accessing\r\n    the frontend (Global). It synchronizes on the single `frontendLock`\r\n    object.\r\n\r\nQute a few cleanups all around.\r\n"},"comment":{"url":"https://api.github.com/repos/scala/scala/issues/comments/322380167","html_url":"https://github.com/scala/scala/pull/6012#issuecomment-322380167","issue_url":"https://api.github.com/repos/scala/scala/issues/6012","id":322380167,"user":{"login":"retronym","id":65551,"avatar_url":"https://avatars0.githubusercontent.com/u/65551?v=4","gravatar_id":"","url":"https://api.github.com/users/retronym","html_url":"https://github.com/retronym","followers_url":"https://api.github.com/users/retronym/followers","following_url":"https://api.github.com/users/retronym/following{/other_user}","gists_url":"https://api.github.com/users/retronym/gists{/gist_id}","starred_url":"https://api.github.com/users/retronym/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/retronym/subscriptions","organizations_url":"https://api.github.com/users/retronym/orgs","repos_url":"https://api.github.com/users/retronym/repos","events_url":"https://api.github.com/users/retronym/events{/privacy}","received_events_url":"https://api.github.com/users/retronym/received_events","type":"User","site_admin":false},"created_at":"2017-08-15T05:24:25Z","updated_at":"2017-08-15T05:24:25Z","body":"> It's read-only after code gen, but maybe that's not safe for a ListBuffer? Probably better be safe.\r\n\r\nDepending how we implement interspersed code gen and postprocessing we might need it. Probably best to encapsulate access to it rather than exposing the buffer and synchronize defensively."}}
{"actor":{"display_login":"retronym"}}