{"action":"created","issue":{"url":"https://api.github.com/repos/trilinos/Trilinos/issues/351","repository_url":"https://api.github.com/repos/trilinos/Trilinos","labels_url":"https://api.github.com/repos/trilinos/Trilinos/issues/351/labels{/name}","comments_url":"https://api.github.com/repos/trilinos/Trilinos/issues/351/comments","events_url":"https://api.github.com/repos/trilinos/Trilinos/issues/351/events","html_url":"https://github.com/trilinos/Trilinos/issues/351","id":154776292,"number":351,"title":"Teuchos: Improve build time by stripping many includes from Teuchos_ConfigDefs.hpp","user":{"login":"mhoemmen","id":926747,"avatar_url":"https://avatars.githubusercontent.com/u/926747?v=3","gravatar_id":"","url":"https://api.github.com/users/mhoemmen","html_url":"https://github.com/mhoemmen","followers_url":"https://api.github.com/users/mhoemmen/followers","following_url":"https://api.github.com/users/mhoemmen/following{/other_user}","gists_url":"https://api.github.com/users/mhoemmen/gists{/gist_id}","starred_url":"https://api.github.com/users/mhoemmen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mhoemmen/subscriptions","organizations_url":"https://api.github.com/users/mhoemmen/orgs","repos_url":"https://api.github.com/users/mhoemmen/repos","events_url":"https://api.github.com/users/mhoemmen/events{/privacy}","received_events_url":"https://api.github.com/users/mhoemmen/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/trilinos/Trilinos/labels/Teuchos","name":"Teuchos","color":"fbca04"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/trilinos/Trilinos/milestones/22","html_url":"https://github.com/trilinos/Trilinos/milestones/Reduce%20build%20times%20for%20Trilinos","labels_url":"https://api.github.com/repos/trilinos/Trilinos/milestones/22/labels","id":1765635,"number":22,"title":"Reduce build times for Trilinos","description":"This epic will be to organize work to reduce the build times for Trilinos.  There are lots of things that can be done to reduce build times.\r\n","creator":{"login":"bartlettroscoe","id":1959736,"avatar_url":"https://avatars.githubusercontent.com/u/1959736?v=3","gravatar_id":"","url":"https://api.github.com/users/bartlettroscoe","html_url":"https://github.com/bartlettroscoe","followers_url":"https://api.github.com/users/bartlettroscoe/followers","following_url":"https://api.github.com/users/bartlettroscoe/following{/other_user}","gists_url":"https://api.github.com/users/bartlettroscoe/gists{/gist_id}","starred_url":"https://api.github.com/users/bartlettroscoe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bartlettroscoe/subscriptions","organizations_url":"https://api.github.com/users/bartlettroscoe/orgs","repos_url":"https://api.github.com/users/bartlettroscoe/repos","events_url":"https://api.github.com/users/bartlettroscoe/events{/privacy}","received_events_url":"https://api.github.com/users/bartlettroscoe/received_events","type":"User","site_admin":false},"open_issues":2,"closed_issues":0,"state":"open","created_at":"2016-05-13T20:52:09Z","updated_at":"2016-05-13T21:08:55Z","due_on":null,"closed_at":null},"comments":7,"created_at":"2016-05-13T18:44:49Z","updated_at":"2016-05-15T01:22:29Z","closed_at":null,"body":"@trilinos/teuchos @bartlettroscoe @nmhamster \r\n\r\nLines 80-105 of Teuchos_ConfigDefs.hpp include a lot of standard library header files.  Just about every Teuchos header file includes Teuchos_ConfigDefs.hpp, and many Trilinos packages include a Teuchos header file.  Thus, everybody includes all those headers.  That increases build time.\r\n\r\nWe really need to remove those includes.  I tried doing something like this in Tpetra_ConfigDefs.hpp once, and it broke a bunch of stuff downstream.  In theory, it's their fault that they relied on unnecessary upstream includes.  In practice, if we break their build, it interrupts their work and makes them grumpy.  Thus, it's important to test EVERY PACKAGE that depends on Teuchos.  We really should also test external software that depends on Teuchos or its downstream packages.  Examples include Dakota (https://dakota.sandia.gov) and Nalu (https://github.com/spdomin/Nalu).  Nevertheless, we need to brace ourselves for some disruption and complaints."},"comment":{"url":"https://api.github.com/repos/trilinos/Trilinos/issues/comments/219260668","html_url":"https://github.com/trilinos/Trilinos/issues/351#issuecomment-219260668","issue_url":"https://api.github.com/repos/trilinos/Trilinos/issues/351","id":219260668,"user":{"login":"gsjaardema","id":897294,"avatar_url":"https://avatars.githubusercontent.com/u/897294?v=3","gravatar_id":"","url":"https://api.github.com/users/gsjaardema","html_url":"https://github.com/gsjaardema","followers_url":"https://api.github.com/users/gsjaardema/followers","following_url":"https://api.github.com/users/gsjaardema/following{/other_user}","gists_url":"https://api.github.com/users/gsjaardema/gists{/gist_id}","starred_url":"https://api.github.com/users/gsjaardema/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gsjaardema/subscriptions","organizations_url":"https://api.github.com/users/gsjaardema/orgs","repos_url":"https://api.github.com/users/gsjaardema/repos","events_url":"https://api.github.com/users/gsjaardema/events{/privacy}","received_events_url":"https://api.github.com/users/gsjaardema/received_events","type":"User","site_admin":false},"created_at":"2016-05-15T01:22:28Z","updated_at":"2016-05-15T01:22:28Z","body":"Kendall Pierson or the dev ops team would be good contacts.\n..Greg\n\nOn Sat, May 14, 2016 at 7:19 PM, Gregory Sjaardema <gsjaardema@gmail.com>\nwrote:\n\n> Yes, i think that is it.\n>\n> On Sat, May 14, 2016 at 3:43 PM, Roscoe A. Bartlett <\n> notifications@github.com> wrote:\n>\n>> The clang include what you use tool can do this for you almost\n>> automatically.\n>>\n>> Is it this tool:\n>>\n>> http://include-what-you-use.org/\n>>\n>> ?\n>>\n>> We have used it quite a bit in Sierra and the main area of trouble is in\n>> ifdefd code.\n>>\n>> Who should we contact on the SIERRA team for details on the usage of this\n>> tool? What version of Clang, etc.?\n>>\n>> —\n>> You are receiving this because you commented.\n>> Reply to this email directly or view it on GitHub\n>> <https://github.com/trilinos/Trilinos/issues/351#issuecomment-219253196>\n>>\n>\n>\n"}}