)]}'
{
  "log": [
    {
      "commit": "f9cfecf3d4d848e247dc8bdc486ed227bff7315f",
      "tree": "00f1b5a19b7acaa16783ea14361d156a38a98989",
      "parents": [
        "15ade069b10f7f5291e48c01db2da4852dae04b7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 04 16:58:13 2021 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 04 17:01:55 2021 -0800"
      },
      "message": "Fix freopen() where the path is null.\n\nThis has been in the standard since C99, but we\u0027ve never supported it\nbefore. It\u0027s apparently used by SPIRV-Tools.\n\nI tried implementing this the other way (with fcntl(2)) first, but\neventually realized that that\u0027s more complicated and gives worse\nresults. This implementation assumes that /proc is mounted, but so much\nof libc relies on that at this point that I don\u0027t think there\u0027s any\nrealistic case where the fcntl(2) implementation would be preferable,\nand there are many where it\u0027s not.\n\nThe fact that no-one\u0027s mentioned this until now suggests that it\u0027s not a\nheavily used feature anyway.\n\nI\u0027ve also replaced AssertCloseOnExec() with a CloseOnExec()\nboolean-valued function instead, because it\u0027s really annoying getting\nassertion failures that don\u0027t point you at the test line in question,\nand instead point to some common helper code.\n\nTest: treehugger\nChange-Id: Ia2e53bf2664a4f782581042054ecd492830e2aed\n"
    },
    {
      "commit": "32bc0fcf69dfccb3726fe572833a38b01179580e",
      "tree": "abca656f500087493e0997d5cf38cbcc9ec98eb8",
      "parents": [
        "65f82092a17518080178ff7004cc6db362ebfbcd"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Thu Aug 02 17:31:13 2018 -0700"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Thu Aug 02 18:09:44 2018 -0700"
      },
      "message": "Modernize codebase by replacing NULL with nullptr\n\nFixes -Wzero-as-null-pointer-constant warning.\n\nTest: m\nBug: 68236239\nChange-Id: I5b4123bc6709641315120a191e36cc57541349b2\n"
    },
    {
      "commit": "a7f12944d4154a445ee774683e27447d609de540",
      "tree": "7e2683233d0a36b825f630b1fc0f069e306463e8",
      "parents": [
        "59a6ee963f96eedf01df7db1e57397ff71852b15"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 15 13:55:53 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 15 13:55:53 2017 -0800"
      },
      "message": "A few more trivial tests.\n\nBased on gaps in the list of functions not referenced by the test\nexecutable.\n\nBug: N/A\nTest: ran tests\nChange-Id: I73c238e7cf360f94670c7cd13eb954341c940b7b\n"
    },
    {
      "commit": "294d1e2c9e17873a0ce1c23cb2a559fc04f610be",
      "tree": "15c59b1b6c1d5bf93b3577b6fddb2d1c57382393",
      "parents": [
        "0e32e39df0e487ec86d86627f1d4b43d1c8c524d"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Sun Dec 07 20:43:37 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Sat Dec 13 18:53:34 2014 -0800"
      },
      "message": "better gtest runner for bionic\n\n1. option to run each test in a separate forked process: \"--isolate\".\n2. warnings about slow tests: \"--warnline\".\n3. run multiple tests at the same time: \"-j N\".\n\nBug: 17589740\nChange-Id: Ife5f4cafec43aa051ad7bd9c9b2b7e2e437db0de\n"
    },
    {
      "commit": "68d98d832b7935ed5be23836c481a14f00b19ef1",
      "tree": "8055b8a2ba805a99544318feca3d7d894fe93955",
      "parents": [
        "92a585c91a83e63949431c617de936742b080150"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 12 21:03:26 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 12 21:03:26 2014 -0800"
      },
      "message": "Assume glibc \u003e\u003d 2.15.\n\nThis catches one trivial difference between us and glibc --- the error\nreturned by pthread_setname_np for an invalid pthread_t.\n\nChange-Id: If4c21e22107c6488333d11184f8005f8669096c2\n"
    },
    {
      "commit": "f6824b26ae06cc4e9964dd0d803676731ae7dbe0",
      "tree": "c0daf0fd508da1f98cd4750d38031e8a2802917c",
      "parents": [
        "29f06943a19ef2271a08f4223f597a3383f0d9c0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 28 19:28:35 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 28 19:28:35 2014 -0700"
      },
      "message": "The host prebuilt glibc is 2.11, so remove workarounds for 2.9.\n\nChange-Id: I1072fcebc8b3018580a9d069fe6eca9c4e74e865\n"
    },
    {
      "commit": "b760164dd67929789a4732ed3f5df56a4b66c3ae",
      "tree": "2e7c2cce617951caaf213eb98969811cf465c569",
      "parents": [
        "a0b3232161f6ad60be1a3c4d97044ac2bb14808c"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Tue Apr 15 15:29:32 2014 -0700"
      },
      "committer": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Tue Apr 15 15:29:32 2014 -0700"
      },
      "message": "Fix signed vs unsigned comparison.\n\nOtherwise GCC 4.9 complains.\n\nChange-Id: I7cd3c5e8c78fda709130ca88a85fa1512e6fc024\n"
    },
    {
      "commit": "108f6dc3168fa492a7ba906466ac65749f5fbda5",
      "tree": "e7e68e62f45b3475b707df32107f9f6d41d41545",
      "parents": [
        "aad59fafeaa1f46e1744864167e6407b5a5ae55e"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Mar 31 13:30:22 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Mar 31 22:43:38 2014 -0700"
      },
      "message": "Move accept4 tests into sys_socket_test.cpp.\n\nIn addition, create basic recvmmsg, sendmmsg tests.\n\nChange-Id: Ie9f4954446d98b5eb5e553d3c616c1ee67c3cb66\n"
    },
    {
      "commit": "6ff0c75c838e73d2aeccc0102ab58a7b865172ca",
      "tree": "664bed83a31a736af22e3ac37ff36b14e809724c",
      "parents": [
        "000ffd8ab0b4112173ce319869f4111f08fbe975"
      ],
      "author": {
        "name": "Guillaume Ranquet",
        "email": "guillaumex.ranquet@intel.com",
        "time": "Mon Feb 10 13:11:29 2014 +0100"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 27 14:29:01 2014 -0800"
      },
      "message": "Add recvmmsg and sendmmsg syscalls.\n\nAlso add the corresponding constant, struct, and function declarations\nto \u003csys/socket.h\u003e, and perfunctory tests so we know that the symbols\nactually exist.\n\nSigned-off-by: Guillaume Ranquet \u003cguillaumex.ranquet@intel.com\u003e\nChange-Id: Ib0d854239d3716be90ad70973c579aff4895a4f7\n"
    }
  ]
}
