{"action":"created","issue":{"url":"https://api.github.com/repos/mlpack/mlpack/issues/722","repository_url":"https://api.github.com/repos/mlpack/mlpack","labels_url":"https://api.github.com/repos/mlpack/mlpack/issues/722/labels{/name}","comments_url":"https://api.github.com/repos/mlpack/mlpack/issues/722/comments","events_url":"https://api.github.com/repos/mlpack/mlpack/issues/722/events","html_url":"https://github.com/mlpack/mlpack/issues/722","id":165160596,"number":722,"title":"Reduce compile time by removing unnecessary headers","user":{"login":"rcurtin","id":1845039,"avatar_url":"https://avatars.githubusercontent.com/u/1845039?v=3","gravatar_id":"","url":"https://api.github.com/users/rcurtin","html_url":"https://github.com/rcurtin","followers_url":"https://api.github.com/users/rcurtin/followers","following_url":"https://api.github.com/users/rcurtin/following{/other_user}","gists_url":"https://api.github.com/users/rcurtin/gists{/gist_id}","starred_url":"https://api.github.com/users/rcurtin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rcurtin/subscriptions","organizations_url":"https://api.github.com/users/rcurtin/orgs","repos_url":"https://api.github.com/users/rcurtin/repos","events_url":"https://api.github.com/users/rcurtin/events{/privacy}","received_events_url":"https://api.github.com/users/rcurtin/received_events","type":"User","site_admin":false},"labels":[{"id":164372968,"url":"https://api.github.com/repos/mlpack/mlpack/labels/D:%20easy","name":"D: easy","color":"207de5","default":false},{"id":161438242,"url":"https://api.github.com/repos/mlpack/mlpack/labels/P:%20minor","name":"P: minor","color":"ffaa22","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2016-07-12T19:30:53Z","updated_at":"2016-11-07T18:32:42Z","closed_at":null,"body":"The compile time for mlpack is very long compared to other libraries of the same size.  There are many reasons for this; Armadillo (which is basically header-only) is one; boost is another; the template metaprogramming inside of mlpack is yet another.  But there are some ways that we can reduce compile time.\n- Some of the headers in `src/mlpack/core/prereqs.hpp` are not used in all parts of the project and can be removed (or in some cases, included only where they are necessary).\n- Where possible, we can move header files into .cpp files (so they are not included by everything).  Some examples here might be the boost math headers.\n- We may be able to use `extern template` definitions for some of the various parts mlpack provides, specifying to common types, e.g., `extern template AllkNN<arma::mat, EuclideanDistance, KDTree>` and then having that specialization declared in some .cpp file... or something like this.\n\nIt'll be easy to check if you've reduced compile times when Travis builds a PR; right now Travis takes about 31 minutes for a complete build, and AppVeyor takes about 45 minutes.  I doubt we can get order-of-magnitude compile speedups or anything, but we can probably help out incrementally.\n"},"comment":{"url":"https://api.github.com/repos/mlpack/mlpack/issues/comments/258920899","html_url":"https://github.com/mlpack/mlpack/issues/722#issuecomment-258920899","issue_url":"https://api.github.com/repos/mlpack/mlpack/issues/722","id":258920899,"user":{"login":"Erick2206","id":15263982,"avatar_url":"https://avatars.githubusercontent.com/u/15263982?v=3","gravatar_id":"","url":"https://api.github.com/users/Erick2206","html_url":"https://github.com/Erick2206","followers_url":"https://api.github.com/users/Erick2206/followers","following_url":"https://api.github.com/users/Erick2206/following{/other_user}","gists_url":"https://api.github.com/users/Erick2206/gists{/gist_id}","starred_url":"https://api.github.com/users/Erick2206/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Erick2206/subscriptions","organizations_url":"https://api.github.com/users/Erick2206/orgs","repos_url":"https://api.github.com/users/Erick2206/repos","events_url":"https://api.github.com/users/Erick2206/events{/privacy}","received_events_url":"https://api.github.com/users/Erick2206/received_events","type":"User","site_admin":false},"created_at":"2016-11-07T18:32:41Z","updated_at":"2016-11-07T18:32:41Z","body":"@rcurtin anyone still working on this issue? Looking forward to start contributing with this issue."}}
{"actor":{"display_login":"Erick2206"}}