)]}'
{
  "log": [
    {
      "commit": "bf03c01b38898a20fdd485173bca483880400828",
      "tree": "b920801ecdab88a4782fc07e1cf43dce626e3b38",
      "parents": [
        "fd2eb42006fd1b51beb98e5c4e3e3ae2e676173e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 05 11:38:29 2020 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 05 11:39:35 2020 -0800"
      },
      "message": "Remove bionic\u0027s internal ctype-like inlines.\n\nBug: http://b/144165498\nTest: treehugger\nChange-Id: Ifcf352525abc74850053a1a019f90c72e488b71c\n"
    },
    {
      "commit": "4956c372cf320328952665629b2626e7cbc84c54",
      "tree": "7a02304c6c2eadc93b1b7a357fb31a143b661a89",
      "parents": [
        "e592dacfa254f59bb097c98d118d0c860b181da1"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Dec 19 16:35:51 2019 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Jan 02 14:09:50 2020 -0800"
      },
      "message": "Move bionic_macros.h from private to platform.\n\nTest: treehugger\nChange-Id: Ie473914f4c8924c7240b3ac22093a9daf42fc948\n"
    },
    {
      "commit": "fa5410fdb7664e4561f5adcee406b1913f520d77",
      "tree": "4dc35e592835307b61e88534a7a054dc90cf0759",
      "parents": [
        "a7573441c1274bbdb3fc992d068ebf97b30a0208"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Aug 13 17:44:06 2018 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Wed Aug 15 10:11:08 2018 -0700"
      },
      "message": "libc: enable -Wimplicit-fallthrough\n\nlibc had some -Wimplicit-fallthrough warnings. They all seem to be\nbenign. We\u0027re trying to enable this flag globally, so we need to\nannotate these breaks here.\n\nBug: 112564944\nTest: Builds\nChange-Id: I5afae694cc4cf26ad1a61e2c8ae91f00cda7c733\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": "3048a36a34c5124a435df8a1d343b791f59a7f0b",
      "tree": "faa8a603ab38fdde244f7121527291e7e9c7b86c",
      "parents": [
        "2b66844a0beffff0d2fcf20938e64cdd387131ac"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 19 17:58:07 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 19 17:58:07 2018 -0800"
      },
      "message": "Simplify CT_CCL and CT_STRING inner loop.\n\nMakes no difference to the benchmarks, but does make the code a bit\nmore readable.\n\nBug: http://b/68672236\nTest: ran tests, benchmarks\nChange-Id: I63fa5f78d077c86e4f4f194f2c76ab5510c29109\n"
    },
    {
      "commit": "38e4aefe6c7804d809cfe9e05619ac1a6935e565",
      "tree": "162d29d0e7128f5e7fdf59bb6ad072cc57d79d0a",
      "parents": [
        "0d63a3c233040af004cc470d5f76547f3adc0148"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 18 10:21:29 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 19 14:53:55 2018 -0800"
      },
      "message": "Support %mc/%ms/%m[ in sscanf.\n\nAlso support the \"long\" (wchar_t) variants.\n\nBug: http://b/68672236\nTest: ran tests\nChange-Id: I060e98b4d2feb61e12986d9d51e4710b2b1d9724\n"
    },
    {
      "commit": "1133fecde3899183b5c0edee9c92736ad878a290",
      "tree": "00c55fa5d1a6971e5cbf47d4c6d84112c5c9165c",
      "parents": [
        "9dc37b9439063df2b0db6d1b3a37b491bc3cd427"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 19 16:30:55 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 19 16:37:01 2017 -0800"
      },
      "message": "Use inline ctype functions for ato*/strto* and scanf.\n\nThis also let us remove the `unsigned char` casts, since we define our\ninlines to work for all values.\n\nBefore:\n\n  Benchmark                      Time           CPU Iterations\n  -------------------------------------------------------------\n  BM_inttypes_strtoimax        112 ns        112 ns    6222193\n  BM_inttypes_strtoumax        104 ns        104 ns    6725010\n  BM_stdlib_strtol             113 ns        113 ns    6195861\n  BM_stdlib_strtoll            113 ns        113 ns    6195633\n  BM_stdlib_strtoul            105 ns        105 ns    6691394\n  BM_stdlib_strtoull           105 ns        105 ns    6690695\n\n  BM_stdio_scanf_d                    504 ns        503 ns    1385224\n  BM_stdio_scanf_maps                1900 ns       1898 ns     369260\n  BM_stdio_scanf_maps_baseline       1030 ns       1030 ns     678832\n  BM_stdio_scanf_s                    433 ns        432 ns    1619086\n\nAfter:\n\n  BM_inttypes_strtoimax         91 ns         91 ns    7718194\n  BM_inttypes_strtoumax         82 ns         82 ns    8508052\n  BM_stdlib_strtol              92 ns         92 ns    7674694\n  BM_stdlib_strtoll             91 ns         91 ns    7639228\n  BM_stdlib_strtoul             83 ns         82 ns    8500304\n  BM_stdlib_strtoull            82 ns         82 ns    8504929\n\n  BM_stdio_scanf_d                    465 ns        465 ns    1507891\n  BM_stdio_scanf_maps                1836 ns       1836 ns     381082\n  BM_stdio_scanf_maps_baseline        846 ns        845 ns     830881\n  BM_stdio_scanf_s                    419 ns        419 ns    1671979\n\nBug: N/A\nTest: ran tests, benchmarks\nChange-Id: I44681daf16c4328b060770cf11fc0633157c427f\n"
    },
    {
      "commit": "bf9cb9e404e7fefb6097db447883940a547fc7ac",
      "tree": "5cef4c306b57f11f151514ae00333524d8dffc2c",
      "parents": [
        "eb7347aedbc61ba45555aef3e6e863f0d90b407b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 11 12:39:01 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 12 17:10:51 2017 -0800"
      },
      "message": "More scanf cleanup.\n\nMerge CT_CCL and CT_STRING handling before we add %m.\n\nAlso fix an accidental scanf/wscanf difference.\n\nAdd currently-disabled tests for questionable behavior noticed during\ncode review that isn\u0027t a regression, but should be fixed later.\n\nBug: http://b/68672236\nBug: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id\u003d202240\nTest: ran tests\nChange-Id: I3eec9b7dfce84f63c68426406224822c52551d64\n"
    },
    {
      "commit": "0d3ba1f04701e8ba0f8bd0cd6a0f4c8bb9d558b5",
      "tree": "bf2dd2d19ddfe12813314323b8b28141f5b0a3eb",
      "parents": [
        "c1f6219c32543cb1d6701b13eb53b82abe1e0a12"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 06 16:41:35 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 07 14:13:57 2017 -0800"
      },
      "message": "Add sscanf %[ tests and fix the bug that fell out.\n\nStrictly, POSIX says \"If a \u0027-\u0027 is in the scanlist and is not the first\nwide character, nor the second where the first wide character is a \u0027^\u0027,\nnor the last wide character, the behavior is implementation-defined\",\nbut it seems unreasonable for swscanf to interpret `a-c` differently\nfrom sscanf. Make ours behave the same as each other by making swscanf\nwork the same as sscanf.\n\nBug: http://b/68672236\nTest: ran tests\nChange-Id: Ia84805897628d7128e901b468e02504373730e61\n"
    },
    {
      "commit": "345b727e9606e8e159dd6b56854436168e9e8666",
      "tree": "8fc2972c3852c102f028ecb34b8f61acfd027878",
      "parents": [
        "843e34087454268fdb77fd4f02178b779553842b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 10 16:20:43 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 10 16:20:43 2017 -0800"
      },
      "message": "Move public scanf functions away from implementation.\n\nBug: N/A\nTest: ran tests\nChange-Id: Ifb8bd91132865f8c6d0b95baf1021af3b3b3c353\n"
    },
    {
      "commit": "2f9c8ce38a885791dfa4cefb6370b5025c55ae82",
      "tree": "efbdbe306e126b1bad2d3bd455e23e49639f0a64",
      "parents": [
        "0cbbdaa5cfa131e33dbfc80ce9b34c9fe1523f08"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 01 13:54:47 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 01 18:13:36 2017 -0700"
      },
      "message": "Start de-duplicating the regular and wide printf implementations.\n\nThis patch switches to C++ (in anticipation of needing it later), removes\na little duplication (via a macro for now), and ensures uniform support\nfor %C/%lc and %S/%ls between regular and wide (with new tests).\n\nSince it\u0027s so hard to debug problems in printf (as the time I\u0027ve wasted\nalready today will testify), that\u0027s all I want to do in this change. The\nother 500 lines of diff can wait...\n\n(Also merge \"floatio.h\" into \"local.h\" now all the users are in forked\ncode.)\n\nBug: http://b/67371539\nTest: ran tests\nChange-Id: I083353d89c32b9302d759ca6967cc6d8a62cd8a5\n"
    },
    {
      "commit": "c8f2c520fa42a5515ebe4d0d5f1dc1d3ce036236",
      "tree": "1a3546a42b9fedda0ce4fbd59ba5530c186a1167",
      "parents": [
        "f6dfe57e415570d1eb854473416e2a6ce5dbefd6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 31 13:07:51 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 31 13:07:51 2017 -0700"
      },
      "message": "clang-format the printf/scanf implementation.\n\nBug: N/A\nTest: builds\nChange-Id: I490fdc1d568cba901c123b9efe0b9053b0d83b64\n"
    },
    {
      "commit": "d9a7de1b77d41aa197a849bb9c97acaebf1c1c83",
      "tree": "14a1f7356389ff166755d624955501915f57b8a6",
      "parents": [
        "8142b5c5b03dd7d4a47895edc9df38746e71e46f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 31 09:55:40 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 31 09:55:40 2017 -0700"
      },
      "message": "Remove some always-on #ifdefery.\n\nBug: N/A\nTest: ran tests\nChange-Id: I02d3c0a639f48ae9c415fb59f37ade015e6f46a2\n"
    },
    {
      "commit": "7f0849fd113691e62af0400989936d3eff151e37",
      "tree": "166fa5afeed341e2685091c89d9d8418acb66e5d",
      "parents": [
        "a2b947e0a5ff4106e36f8110232131dab1356c25"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 26 16:17:17 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 07 15:01:54 2016 -0700"
      },
      "message": "Fix sscanf/wcstod parsing of NaNs.\n\nThe parsefloat routines -- which let us pass NaNs and infinities on to\nstrto(f|d|ld) -- come from NetBSD.\n\nAlso fix LP64\u0027s strtold to return a NaN, and fix all the architectures\nto return quiet NaNs.\n\nAlso fix wcstof/wcstod/wcstold to use parsefloat so they support hex\nfloats.\n\nLots of new tests.\n\nBug: http://b/31101647\nChange-Id: Id7d46ac2d8acb8770b5e8c445e87cfabfde6f111\n"
    },
    {
      "commit": "a2b947e0a5ff4106e36f8110232131dab1356c25",
      "tree": "ff7fd27b8cdecc121e4b80b563f93ba49a4b1c80",
      "parents": [],
      "author": {
        "name": "Tamas Berghammer",
        "email": "tberghammer@google.com",
        "time": "Wed Sep 07 15:14:09 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 07 15:14:09 2016 +0000"
      },
      "message": "Merge \"Fix unittests broken by 545808a\""
    }
  ]
}
