{"push_id":636542284,"size":480,"distinct_size":480,"ref":"refs/heads/master","head":"8c8834acffdc0da0d94119725929acc712c9dfad","before":"7b59fde1feb193d63df8b6b31ea6894635f18906","commits":[{"sha":"0575b6f5ca8118afafeb15fb615bd4c1c55b9d35","author":{"email":"7617c29953aade895d95878432f5118b2ad5bb54@danga.com","name":"Evan Martin"},"message":"factor out flag parsing from enormous NinjaMain()","distinct":true,"url":"https://api.github.com/repos/rui314/ninja/commits/0575b6f5ca8118afafeb15fb615bd4c1c55b9d35"},{"sha":"32e707e5e9bf6c29ea80b70ec2d00091a5f8bb60","author":{"email":"7617c29953aade895d95878432f5118b2ad5bb54@danga.com","name":"Evan Martin"},"message":"simplify some ifdefs","distinct":true,"url":"https://api.github.com/repos/rui314/ninja/commits/32e707e5e9bf6c29ea80b70ec2d00091a5f8bb60"},{"sha":"cc47bfb1ce599f4b3f20679d96e258bb595c2dc3","author":{"email":"7617c29953aade895d95878432f5118b2ad5bb54@danga.com","name":"Evan Martin"},"message":"refactor ninja main() into a struct with methods\n\nThis removes the ugly Globals struct, and the ResetState() hack.\nThis also eliminates the only goto!","distinct":true,"url":"https://api.github.com/repos/rui314/ninja/commits/cc47bfb1ce599f4b3f20679d96e258bb595c2dc3"},{"sha":"0464524f60bd1e823cb1da889cd5a35e2ab4cc59","author":{"email":"fc95e735309552cb9d3a2bce780978770b185b0f@reaperworld.com","name":"Gary Kramlich"},"message":"Fixed the build on Debian/kfreebsd","distinct":true,"url":"https://api.github.com/repos/rui314/ninja/commits/0464524f60bd1e823cb1da889cd5a35e2ab4cc59"},{"sha":"fe2dd5b33fd13b1e8ef0cfdca78bab95cb50346c","author":{"email":"88a2325b6f9382f9585549923e84eee8321fed3f@gmail.com","name":"Jon"},"message":"Fix mingw based builds. Fixes #587","distinct":true,"url":"https://api.github.com/repos/rui314/ninja/commits/fe2dd5b33fd13b1e8ef0cfdca78bab95cb50346c"},{"sha":"c460635bd2f796b8473b1c7372d7b1e2281ac750","author":{"email":"7617c29953aade895d95878432f5118b2ad5bb54@danga.com","name":"Evan Martin"},"message":"Merge pull request #588 from jonforums/mingw-fix\n\nFix mingw based builds. Fixes #587","distinct":true,"url":"https://api.github.com/repos/rui314/ninja/commits/c460635bd2f796b8473b1c7372d7b1e2281ac750"},{"sha":"af7c76cf64539ea51ae86c2dbc77cc45ccc79a46","author":{"email":"7617c29953aade895d95878432f5118b2ad5bb54@danga.com","name":"Evan Martin"},"message":"Merge pull request #586 from grimmy/master\n\nBuild fails on Debian/kfreebsd","distinct":true,"url":"https://api.github.com/repos/rui314/ninja/commits/af7c76cf64539ea51ae86c2dbc77cc45ccc79a46"},{"sha":"02d51b3f3d3058411a06bb08d5b773f60848fec4","author":{"email":"c0f02d98506190746d1cdcb01be0f37b51e27077@chromium.org","name":"Nico Weber"},"message":"Stop `-t msvc -o` from lowercasing paths from /showIncludes output.\n\n/showIncludes prints absolute paths. If a source file says\n`#include <WiNdOwS.h>`, /showIncludes will use that spelling in\nits output for the basename and use the on-disk cache for the\ndirectory names in the rest for its output.\n\nThis makes the .d files created by `-t msvc -o` consistent with the\n.d files written by gcc and clang.\n\u000BBefore this change, `-t msvc -o` would convert this output to\nlower case. This is a problem if a build step produces a header file\nwith mixed case, such as \"RuntimeFeatures.h\". Due to the lowercasing,\nthe .d file would contain \"runtimefeatures.h\", while the build step\nwill create \"RuntimeFeatures.h\". Due to the case difference, ninja\nwould not realize that regeneration of the .h file would require\na rebuild of all source files having the header in the .d file.\n(On the next build, ninja would rebuild them since stat()ing is not\ncase-sensitive on Windows.) One possible fix for this is to make sure\nthat generators always write generated header files in lower case too,\nbut on Mac gcc doesn't do lower-casing and .d files end up with the\ncase-as-written, so generators would have to be different on Mac and\nWindows, which is undesirable.\n\nIf case-insensitve path comparisons are useful, they should be done\nsomewhere else (e.g. in CanonicalizePath()) where they affect both\npaths read from .d files and paths read from .ninja files. This should\nthen be controlled by a top-level variable.\n\nThis patch changes behavior, but it only has an effect on generated\nheader files, which aren't common, and it only affects -t msvc, which\nis still marked as experimental. (cmake doesn't use it yet.)\n\n(If a file has both `#include <windows.h>` and `<Windows.h>`, this\nwill now take 2 stat() calls instead of just one, but that should\nhave a negligible cost.)","distinct":true,"url":"https://api.github.com/repos/rui314/ninja/commits/02d51b3f3d3058411a06bb08d5b773f60848fec4"},{"sha":"4df15104d532ad91b7a9d3c54985180a6c2f2533","author":{"email":"0d2d6fe0cb2e9ade0d2bf90d72a72b8ac034ef0e@gmx.de","name":"Nico Weber"},"message":"Merge pull request #589 from nico/wincase\n\nStop `-t msvc -o` from lowercasing paths from /showIncludes output.","distinct":true,"url":"https://api.github.com/repos/rui314/ninja/commits/4df15104d532ad91b7a9d3c54985180a6c2f2533"},{"sha":"d2d0429489a77f8a61f4fb082e74db11f0bdfc43","author":{"email":"c0f02d98506190746d1cdcb01be0f37b51e27077@chromium.org","name":"Nico Weber"},"message":"Fix restat builds with edges generating headers depended on through deps files\nin deps mode.\n\n`ImplicitDepLoader::LoadDepFile()` already adds a depfile edge from every file\nmentioned in a depfile to the depfile's output.\n\n`ImplicitDepLoader::LoadDepsFromLog()` didn't do this yet, so add it. Else,\nif a restat rule clears a generated .h file, this wouldn't propagate to cc files\ndepending on that .h file through a depfile.\n\nFixues issue #590.","distinct":true,"url":"https://api.github.com/repos/rui314/ninja/commits/d2d0429489a77f8a61f4fb082e74db11f0bdfc43"},{"sha":"0f53fd302b58589626dce073a0cd94061fac1355","author":{"email":"0d2d6fe0cb2e9ade0d2bf90d72a72b8ac034ef0e@gmx.de","name":"Nico Weber"},"message":"Merge pull request #591 from nico/fixrestat\n\nFix restat builds with edges generating headers depended on through deps...","distinct":true,"url":"https://api.github.com/repos/rui314/ninja/commits/0f53fd302b58589626dce073a0cd94061fac1355"},{"sha":"ca0f379c27aa4887dbc63e3af71a6ebc687649e0","author":{"email":"c0f02d98506190746d1cdcb01be0f37b51e27077@chromium.org","name":"Nico Weber"},"message":"Add test that proves `node->AddOutEdge(edge);` in `LoadDepFile()` is needed.\n\nNo functionality change. Related to issue #590.","distinct":true,"url":"https://api.github.com/repos/rui314/ninja/commits/ca0f379c27aa4887dbc63e3af71a6ebc687649e0"},{"sha":"46405b1fabb9a63f3b88db394b6e58ac9ea1332c","author":{"email":"0d2d6fe0cb2e9ade0d2bf90d72a72b8ac034ef0e@gmx.de","name":"Nico Weber"},"message":"Merge pull request #592 from nico/addtest\n\nAdd test that proves `node->AddOutEdge(edge);` in `LoadDepFile()` is nee...","distinct":true,"url":"https://api.github.com/repos/rui314/ninja/commits/46405b1fabb9a63f3b88db394b6e58ac9ea1332c"},{"sha":"456b0d4fdb206b692fb394f35bc626708b318981","author":{"email":"c0f02d98506190746d1cdcb01be0f37b51e27077@chromium.org","name":"Nico Weber"},"message":"Add a test for CreatePhonyInEdge() in depsmode path.\n\nRemoving the `CreatePhonyInEdge(node);` line in\n`ImplicitDepLoader::LoadDepsFromLog()` made no tests fail before this change.\nThe new test is a port to depsmode of the existing DepFileOK test.","distinct":true,"url":"https://api.github.com/repos/rui314/ninja/commits/456b0d4fdb206b692fb394f35bc626708b318981"},{"sha":"75918b84f78aaca2133f21622374019cd2ef17ee","author":{"email":"7617c29953aade895d95878432f5118b2ad5bb54@danga.com","name":"Evan Martin"},"message":"Merge pull request #593 from nico/moretest\n\nAdd a test for CreatePhonyInEdge() in depsmode path.","distinct":true,"url":"https://api.github.com/repos/rui314/ninja/commits/75918b84f78aaca2133f21622374019cd2ef17ee"},{"sha":"13bad8d61c1a1d25328ae99daf50ac71294b8bb1","author":{"email":"0d2d6fe0cb2e9ade0d2bf90d72a72b8ac034ef0e@gmx.de","name":"Nico Weber"},"message":"Make sure to not write partial deps entries.\n\nWhen two ninja instances run in parallel in the same build directory,\none instance could write a deps entry header and a few ids, and then the\nother instance could write a file name in the middle of the deps header.\nWhen ninja reads this deps log on the next run, it will deserialize the\nfile name as indices, which will cause an out-of-bounds read.\n\n(This can happen if a user runs a \"compile this file\" that uses ninja to\ncompile the current buffer in an editor, and also does a full build in a\nterminal at the same time for example.)\n\nWhile running two ninja instances in parallel in the same build\ndirectory isn't a good idea, it happens to mostly work in non-deps mode:\nThere's redundant edge execution, but nothing crashes. This is partially\nbecause the command log is line-buffered and a single log entry only\nconsists of a single line.\n\nThis change makes sure that deps entries are always written in one go,\nlike command log entries currently are. Running two ninja binaries in\nparallel on the same build directory still isn't a great idea, but it's\nless likely to lead to crashes.\n\nSee issue #595.","distinct":true,"url":"https://api.github.com/repos/rui314/ninja/commits/13bad8d61c1a1d25328ae99daf50ac71294b8bb1"},{"sha":"f4bd670da394174f29f9b99843ea6dfe192e6081","author":{"email":"7617c29953aade895d95878432f5118b2ad5bb54@danga.com","name":"Evan Martin"},"message":"Merge pull request #596 from nico/chunk\n\nMake sure to not write partial deps entries.","distinct":true,"url":"https://api.github.com/repos/rui314/ninja/commits/f4bd670da394174f29f9b99843ea6dfe192e6081"},{"sha":"5ed055b3f7f5088c3ffc79d19dac14fe15b2afb8","author":{"email":"0d2d6fe0cb2e9ade0d2bf90d72a72b8ac034ef0e@gmx.de","name":"Nico Weber"},"message":"Add stdlib.h include for atol().\n\nThis attempts to fix issue #600. `man atol` claims that atol() is in\nstdlib.h, which wasn't included yet.","distinct":true,"url":"https://api.github.com/repos/rui314/ninja/commits/5ed055b3f7f5088c3ffc79d19dac14fe15b2afb8"},{"sha":"c8ac05c871a22cdd3b41ab76e72544524cedafae","author":{"email":"0d2d6fe0cb2e9ade0d2bf90d72a72b8ac034ef0e@gmx.de","name":"Nico Weber"},"message":"Merge pull request #601 from nico/109fix\n\nAdd stdlib.h include for atol().","distinct":true,"url":"https://api.github.com/repos/rui314/ninja/commits/c8ac05c871a22cdd3b41ab76e72544524cedafae"},{"sha":"7b9b1fb94aa44784e33734bef68c76e6a43361ef","author":{"email":"730dc73ed983ae2aadb8fa5ab00455602a5aab3d@conformal.com","name":"David Hill"},"message":"support Bitrig","distinct":true,"url":"https://api.github.com/repos/rui314/ninja/commits/7b9b1fb94aa44784e33734bef68c76e6a43361ef"}]}