{"action":"created","issue":{"url":"https://api.github.com/repos/boutproject/BOUT-dev/issues/1464","repository_url":"https://api.github.com/repos/boutproject/BOUT-dev","labels_url":"https://api.github.com/repos/boutproject/BOUT-dev/issues/1464/labels{/name}","comments_url":"https://api.github.com/repos/boutproject/BOUT-dev/issues/1464/comments","events_url":"https://api.github.com/repos/boutproject/BOUT-dev/issues/1464/events","html_url":"https://github.com/boutproject/BOUT-dev/pull/1464","id":391898779,"node_id":"MDExOlB1bGxSZXF1ZXN0MjM5MjkwNzY2","number":1464,"title":"Start to use more forward declarations","user":{"login":"d7919","id":1793698,"node_id":"MDQ6VXNlcjE3OTM2OTg=","avatar_url":"https://avatars1.githubusercontent.com/u/1793698?v=4","gravatar_id":"","url":"https://api.github.com/users/d7919","html_url":"https://github.com/d7919","followers_url":"https://api.github.com/users/d7919/followers","following_url":"https://api.github.com/users/d7919/following{/other_user}","gists_url":"https://api.github.com/users/d7919/gists{/gist_id}","starred_url":"https://api.github.com/users/d7919/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/d7919/subscriptions","organizations_url":"https://api.github.com/users/d7919/orgs","repos_url":"https://api.github.com/users/d7919/repos","events_url":"https://api.github.com/users/d7919/events{/privacy}","received_events_url":"https://api.github.com/users/d7919/received_events","type":"User","site_admin":false},"labels":[{"id":771141093,"node_id":"MDU6TGFiZWw3NzExNDEwOTM=","url":"https://api.github.com/repos/boutproject/BOUT-dev/labels/work%20in%20progress","name":"work in progress","color":"f9bbf2","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-12-17T21:33:59Z","updated_at":"2018-12-18T15:49:11Z","closed_at":null,"author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/boutproject/BOUT-dev/pulls/1464","html_url":"https://github.com/boutproject/BOUT-dev/pull/1464","diff_url":"https://github.com/boutproject/BOUT-dev/pull/1464.diff","patch_url":"https://github.com/boutproject/BOUT-dev/pull/1464.patch"},"body":"Work contributes towards resolving #1134 \r\n\r\nAlongside potential compilation speed improvements (that I've not observed yet), these changes (particularly once fully rolled out) should hopefully help make things a bit more flexible/easy to extend."},"comment":{"url":"https://api.github.com/repos/boutproject/BOUT-dev/issues/comments/448267114","html_url":"https://github.com/boutproject/BOUT-dev/pull/1464#issuecomment-448267114","issue_url":"https://api.github.com/repos/boutproject/BOUT-dev/issues/1464","id":448267114,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0ODI2NzExNA==","user":{"login":"d7919","id":1793698,"node_id":"MDQ6VXNlcjE3OTM2OTg=","avatar_url":"https://avatars1.githubusercontent.com/u/1793698?v=4","gravatar_id":"","url":"https://api.github.com/users/d7919","html_url":"https://github.com/d7919","followers_url":"https://api.github.com/users/d7919/followers","following_url":"https://api.github.com/users/d7919/following{/other_user}","gists_url":"https://api.github.com/users/d7919/gists{/gist_id}","starred_url":"https://api.github.com/users/d7919/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/d7919/subscriptions","organizations_url":"https://api.github.com/users/d7919/orgs","repos_url":"https://api.github.com/users/d7919/repos","events_url":"https://api.github.com/users/d7919/events{/privacy}","received_events_url":"https://api.github.com/users/d7919/received_events","type":"User","site_admin":false},"created_at":"2018-12-18T15:49:11Z","updated_at":"2018-12-18T15:49:11Z","author_association":"MEMBER","body":"In terms of optimising the compilation I've done a bit of timing which shows that including `bout_types.hxx` has a cost of about 0.8s, which compares to a time to compile a single source file of somewhere between 2 and 6 seconds (for the majority of source files). As bout_types is included (directly or indirectly) in a large fraction of our source files we might be able to get a decent saving by splitting this header into separate parts. About 3/4 of the time comes from defining the maps used to convert enums to strings and the associated utility routines (with the other quarter coming from the includes of language standard libraries).\r\n\r\nJust declaring these maps without initialising them in the header cuts the time from 0.8s to about 0.45s. It doesn't sound much but I think it could be a reasonable fraction saving across a full build (note configure+compile on travis takes about 10 minutes, with the tests then taking 2-7 minutes)."}}
{"actor":{"display_login":"d7919"}}