{"action":"created","issue":{"url":"https://api.github.com/repos/lenmus/lomse/issues/160","repository_url":"https://api.github.com/repos/lenmus/lomse","labels_url":"https://api.github.com/repos/lenmus/lomse/issues/160/labels{/name}","comments_url":"https://api.github.com/repos/lenmus/lomse/issues/160/comments","events_url":"https://api.github.com/repos/lenmus/lomse/issues/160/events","html_url":"https://github.com/lenmus/lomse/pull/160","id":318713433,"number":160,"title":"Check with multiple compilers on Travis","user":{"login":"hugbug","id":3368402,"avatar_url":"https://avatars1.githubusercontent.com/u/3368402?v=4","gravatar_id":"","url":"https://api.github.com/users/hugbug","html_url":"https://github.com/hugbug","followers_url":"https://api.github.com/users/hugbug/followers","following_url":"https://api.github.com/users/hugbug/following{/other_user}","gists_url":"https://api.github.com/users/hugbug/gists{/gist_id}","starred_url":"https://api.github.com/users/hugbug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hugbug/subscriptions","organizations_url":"https://api.github.com/users/hugbug/orgs","repos_url":"https://api.github.com/users/hugbug/repos","events_url":"https://api.github.com/users/hugbug/events{/privacy}","received_events_url":"https://api.github.com/users/hugbug/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2018-04-29T12:31:31Z","updated_at":"2018-04-29T14:03:56Z","closed_at":"2018-04-29T13:46:31Z","author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/lenmus/lomse/pulls/160","html_url":"https://github.com/lenmus/lomse/pull/160","diff_url":"https://github.com/lenmus/lomse/pull/160.diff","patch_url":"https://github.com/lenmus/lomse/pull/160.patch"},"body":"In this PR Travis config is extended to check Lomse with multiple compilers:\r\n- **GCC 4.9** on Linux, default C++ library;\r\n- **GCC 4.9** on Linux, debug C++ library (-D_GLIBCXX_DEBUG);\r\n- **GCC 7** on Linux, default C++ library;\r\n- **GCC 7** on Linux, debug C++ library (-D_GLIBCXX_DEBUG);\r\n- **Clang 4.2** on macOS.\r\n\r\n### Why these compilers?\r\nGCC 4.9 is the oldest GCC version supported by Lomse.\r\n\r\nGCC 7 is the current stable version.\r\n\r\nClang is the default compiler on macOS and FreeBSD. Travis offers testing on macOS.\r\n\r\n### Even more compilers\r\nIt's easy to add GCC 5 and GCC 6 to the test matrix. Not so easy but also possible to add Clang 3.6, 3.9, 4.0 and 5.0 on Linux.\r\n\r\nHowever Travis limits the number of parallel jobs running. They don't define a hard number but in my experience only five jobs are running simultaneously. With five compiler configurations defined in Travis config they all are tested simultaneously and you have the Travis result (pass or failure) in no additional time. By adding more compilers to test matrix only five configurations run at first, the others run after the first jobs are completed. This doubles test time (or triples, etc. if you have more than 10 test configurations).\r\n\r\n### Build failures\r\nAs you can see from the status of Travis build for this PR it has failed. There are compilation errors on GCC 7 caused by stronger conversion rules introduced in GCC 5. I haven't fixed these errors to demonstrate the usefulness of testing on multiple compilers ;)"},"comment":{"url":"https://api.github.com/repos/lenmus/lomse/issues/comments/385253779","html_url":"https://github.com/lenmus/lomse/pull/160#issuecomment-385253779","issue_url":"https://api.github.com/repos/lenmus/lomse/issues/160","id":385253779,"user":{"login":"cecilios","id":5238679,"avatar_url":"https://avatars3.githubusercontent.com/u/5238679?v=4","gravatar_id":"","url":"https://api.github.com/users/cecilios","html_url":"https://github.com/cecilios","followers_url":"https://api.github.com/users/cecilios/followers","following_url":"https://api.github.com/users/cecilios/following{/other_user}","gists_url":"https://api.github.com/users/cecilios/gists{/gist_id}","starred_url":"https://api.github.com/users/cecilios/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cecilios/subscriptions","organizations_url":"https://api.github.com/users/cecilios/orgs","repos_url":"https://api.github.com/users/cecilios/repos","events_url":"https://api.github.com/users/cecilios/events{/privacy}","received_events_url":"https://api.github.com/users/cecilios/received_events","type":"User","site_admin":false},"created_at":"2018-04-29T14:03:56Z","updated_at":"2018-04-29T14:03:56Z","author_association":"OWNER","body":"I will fix the issues detected with GCC 7."}}
{"actor":{"display_login":"cecilios"}}