)]}'
{
  "log": [
    {
      "commit": "2154e31bbae71b6a8ae69e5e5a3350528825f0fc",
      "tree": "764066be806dcba26fb33cd391f8fb47a47a937c",
      "parents": [
        "ff2a072201fd4ec3cf1783e1ab0ecec6d3e7cb94"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@gmail.com",
        "time": "Sun May 14 18:50:10 2023 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@gmail.com",
        "time": "Sun May 14 18:50:10 2023 -0700"
      },
      "message": "Bump to version v0.9.13.\n"
    },
    {
      "commit": "ff2a072201fd4ec3cf1783e1ab0ecec6d3e7cb94",
      "tree": "2c3556b440aeec724ed108fd9460f68be4b58da1",
      "parents": [
        "25ca192ef962ddb2c2680ce0c22ef81f9999b0e2"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@gmail.com",
        "time": "Sun May 14 18:44:54 2023 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@gmail.com",
        "time": "Sun May 14 18:49:07 2023 -0700"
      },
      "message": "Fix GitHub issue #63 - Handle `+Infinity` properly.\n\nThe code handled `Infinity` and `-Infinity` but not `+Infinity`.\nThis change fixes that so all three are handled.\n"
    },
    {
      "commit": "25ca192ef962ddb2c2680ce0c22ef81f9999b0e2",
      "tree": "76677c998f3069710337502283280f3e375627db",
      "parents": [
        "e47b8610da7911b3edd1df47fbdb233395a9c2ee"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@google.com",
        "time": "Thu Mar 16 14:45:55 2023 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@google.com",
        "time": "Thu Mar 16 14:45:55 2023 -0700"
      },
      "message": "Bump version to v0.9.13.\n\n* v0.9.13 (2023-03-16)\n    * [GitHub PR #64](https://github.com/dpranke/pyjson5/pull/64)\n      Remove a field from one of the JSON benchmark files to\n      reduce confusion in Chromium.\n    * No code changes.\n"
    },
    {
      "commit": "e47b8610da7911b3edd1df47fbdb233395a9c2ee",
      "tree": "2d43b88468d2fb2fbb574f7c5d675cf1e4a67bf3",
      "parents": [
        "11e387d6ec20e6138aee5d8a7a433b331a4ea626"
      ],
      "author": {
        "name": "Sylvain Defresne",
        "email": "sdefresne@chromium.org",
        "time": "Thu Mar 16 11:34:17 2023 +0100"
      },
      "committer": {
        "name": "dpranke",
        "email": "dpranke@gmail.com",
        "time": "Thu Mar 16 10:56:30 2023 -0700"
      },
      "message": "Remove reference to additional_target_cpus\n\nThis parameter will be removed from Chromium build system. While\nthis is just a meaningless key in a sample json file used for\nperformance testing, the project is cloned into Chromium and the\nstring \"additional_target_cpus\" shows up when doing search in\nthe codebase of Chromium.\n\nRemoving the line from the sample should change too much the\nvalidity of the performance testing, but it would simplify the\neffort of removing the additional_target_cpus parameter from\nChromium build system as this would remove false positive when\nsearching the codebase.\n\nReference: https://crbug.com/1337780\n"
    },
    {
      "commit": "11e387d6ec20e6138aee5d8a7a433b331a4ea626",
      "tree": "5b3a17f6f728fbb3fd1216ff18e1649aefa7d25b",
      "parents": [
        "578d43b224f6c4d6f5288c157cdf45385b87145e"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@gmail.com",
        "time": "Mon Jan 02 19:08:23 2023 -0800"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@gmail.com",
        "time": "Mon Jan 02 19:08:23 2023 -0800"
      },
      "message": "Bump to version 0.9.12.\n"
    },
    {
      "commit": "578d43b224f6c4d6f5288c157cdf45385b87145e",
      "tree": "0643463a5a412944288d66fa8c917c83a865a687",
      "parents": [
        "967e8fd17b9840452b0f1c3f1b3b9b9c251a4491"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@gmail.com",
        "time": "Mon Jan 02 19:01:07 2023 -0800"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@gmail.com",
        "time": "Mon Jan 02 19:03:08 2023 -0800"
      },
      "message": "Attempt to fix GitHub actions issue.\n\nThis changes the //.github/workflows/ci.yml config\nfile to drop tests for Python 3.6 and add tests for\nPython 3.11. For now we\u0027ll only run tests on an\nold version and a new version and not worry about\nversions in between.\n"
    },
    {
      "commit": "967e8fd17b9840452b0f1c3f1b3b9b9c251a4491",
      "tree": "8281b3537d9a654a1fff5df5efee004ebf6442ad",
      "parents": [
        "e0203937dc32aa477811613396af29b58fd51ca8"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@gmail.com",
        "time": "Mon Jan 02 18:53:12 2023 -0800"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@gmail.com",
        "time": "Mon Jan 02 18:53:12 2023 -0800"
      },
      "message": "Bump to version 0.9.11.\n"
    },
    {
      "commit": "e0203937dc32aa477811613396af29b58fd51ca8",
      "tree": "1b0744f32206f688fbd42b0abb756bd034611020",
      "parents": [
        "e28f7b981aebc9b909ac561fdbc3b3ba4db8d516"
      ],
      "author": {
        "name": "Qingxiao Ren",
        "email": "rqx110@163.com",
        "time": "Tue Nov 29 08:43:22 2022 +0000"
      },
      "committer": {
        "name": "dpranke",
        "email": "dpranke@gmail.com",
        "time": "Mon Jan 02 18:49:22 2023 -0800"
      },
      "message": "fix json dump error on python 2\n"
    },
    {
      "commit": "e28f7b981aebc9b909ac561fdbc3b3ba4db8d516",
      "tree": "7aa4f043707dd67ba54922bab69ee81d7ee88efe",
      "parents": [
        "1f7f8062a76d5899288674b938e73b7bcadf63c3"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@gmail.com",
        "time": "Thu Aug 18 14:16:02 2022 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@gmail.com",
        "time": "Thu Aug 18 14:16:02 2022 -0700"
      },
      "message": "Try to improve docs to address issue #58.\n\nThis library only supports JSON5 documents. It cannot\nparse everything that is legal JavaScript. For example,\nan object with an integer key is legal in JS, but\nnot in JSON5. I\u0027ve updated the text to reflect this.\n"
    },
    {
      "commit": "1f7f8062a76d5899288674b938e73b7bcadf63c3",
      "tree": "dd68326ec234d795d62482a8af5eaadfee8c646c",
      "parents": [
        "4b8217b3327b5f6314241879a47336f493013d01"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@gmail.com",
        "time": "Mon Aug 01 15:20:55 2022 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@gmail.com",
        "time": "Mon Aug 01 15:20:55 2022 -0700"
      },
      "message": "Fixed serialization for custom ints and floats.\n\n[GitHub issue #57](https://github.com/dpranke/pyjson5/issues/57)\nFixed serialization for objects that subclass `int` or `float`:\nPreviously we would use the objects __str__ implementation, but\nthat might result in an illegal JSON5 value if the object had\ncustomized __str__ to return something illegal. Instead,\nwe follow the lead of the `JSON` module and call `int.__repr__`\nor `float.__repr__` directly.\n\nWhile I was at it, I added tests for dumps(-inf) and dumps(nan)\nwhen those were supposed to be disallowed by `allow_nan\u003dFalse`.\n"
    },
    {
      "commit": "4b8217b3327b5f6314241879a47336f493013d01",
      "tree": "8fbabc71d0ac39d240e98e5fa09058b5dd5c4809",
      "parents": [
        "beb97a9dcb640876ef4f84e4ddb4616f6ec13db5"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@gmail.com",
        "time": "Sun May 08 18:47:03 2022 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@gmail.com",
        "time": "Sun May 08 18:47:03 2022 -0700"
      },
      "message": "bump version to 0.9.8\n"
    },
    {
      "commit": "beb97a9dcb640876ef4f84e4ddb4616f6ec13db5",
      "tree": "47490d1c377397b76de88e83fd91b36c4a070fd8",
      "parents": [
        "4c801bd19203ea48a741637082f39468d436d852"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@gmail.com",
        "time": "Sun May 08 18:42:02 2022 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@gmail.com",
        "time": "Sun May 08 18:44:01 2022 -0700"
      },
      "message": "Fix issue #47: syntax error points to wrong position ...\n\nDue to the way the parser was handing nested parts of the JSON5\ngrammar, we would incorrectly report errors as having happened\nat the start of a block of content, rather than where the error\nactually happened.\n\nA simple case of this would be reporting `\"foo\"bar` as happening\nat column 1 rather than column 5. The bug report (#47) has a more\ncomplicated and realistic example.\n\nTo fix this we needed to rev the underlying parser generator (glop)\nto v0.6.4 and also rewrite the JSON5 grammar to use a positive\nlookahead.\n"
    },
    {
      "commit": "4c801bd19203ea48a741637082f39468d436d852",
      "tree": "2ddd0553aea56609893f60e90736208451162033",
      "parents": [
        "2010c8c1d07ef1896ca79e9f61bd072974ea6571"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@gmail.com",
        "time": "Fri May 06 14:47:35 2022 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@gmail.com",
        "time": "Fri May 06 14:47:35 2022 -0700"
      },
      "message": "fix typo\u0027d Development Status in setup.py\n"
    },
    {
      "commit": "2010c8c1d07ef1896ca79e9f61bd072974ea6571",
      "tree": "7102aca33424522d8a5e1e03a0a06fe81fa17a9a",
      "parents": [
        "a58f6254e4b2a52d6336529b06ab6edf4151f93e"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@gmail.com",
        "time": "Fri May 06 14:38:56 2022 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@gmail.com",
        "time": "Fri May 06 14:38:56 2022 -0700"
      },
      "message": "bump version to v0.9.7\n"
    },
    {
      "commit": "a58f6254e4b2a52d6336529b06ab6edf4151f93e",
      "tree": "eaf263e3ff7deeae046859cef23bffc0a23b636a",
      "parents": [
        "50898a40d2052a55ca5e37dceafc349970b3c203"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@gmail.com",
        "time": "Fri May 06 14:29:25 2022 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@gmail.com",
        "time": "Fri May 06 14:29:25 2022 -0700"
      },
      "message": "Remove //.vscode/settings.json .\n\nI think this was accidentally included in 50898a4; at any rate I\ndidn\u0027t notice that this was included, and I don\u0027t want to add\nVSCode settings (or any other file) without being sure that I\nwant it.\n\nSo, I\u0027m happy to re-add this file in a separately reviewed change\nif anyone wants it.\n"
    },
    {
      "commit": "50898a40d2052a55ca5e37dceafc349970b3c203",
      "tree": "6dc759ed05bd8a03eade26ee233c6eab09993961",
      "parents": [
        "8f93d8ff2e24acedf733ab7e854df113b976c38a"
      ],
      "author": {
        "name": "Alexander Regueiro",
        "email": "alexreg@gmail.com",
        "time": "Wed Oct 06 23:34:21 2021 +0100"
      },
      "committer": {
        "name": "dpranke",
        "email": "dpranke@chromium.org",
        "time": "Fri May 06 14:20:51 2022 -0700"
      },
      "message": "Fixed test for `default` fn.\n"
    },
    {
      "commit": "8f93d8ff2e24acedf733ab7e854df113b976c38a",
      "tree": "9153499f941c6845a6b10e1752b9bec0caac7a26",
      "parents": [
        "17f87c0b97244947d5db47202131e9c380ab3576"
      ],
      "author": {
        "name": "Alexander Regueiro",
        "email": "alexreg@gmail.com",
        "time": "Wed Oct 06 21:01:16 2021 +0100"
      },
      "committer": {
        "name": "dpranke",
        "email": "dpranke@chromium.org",
        "time": "Fri May 06 14:20:51 2022 -0700"
      },
      "message": "Fixed behavior of `default` fn in `dump` and `dumps`.\n"
    },
    {
      "commit": "17f87c0b97244947d5db47202131e9c380ab3576",
      "tree": "e67688b8a25d1d3aced7e86eec3dbfebfd0f091a",
      "parents": [
        "337ba00da01ec4c8ec41c8af4e8559183b5365ec"
      ],
      "author": {
        "name": "Alexander Regueiro",
        "email": "alexreg@gmail.com",
        "time": "Wed Oct 06 20:25:31 2021 +0100"
      },
      "committer": {
        "name": "dpranke",
        "email": "dpranke@chromium.org",
        "time": "Mon Oct 11 14:18:12 2021 -0700"
      },
      "message": "Improved docs for `dump` and `dumps` functions.\n\nFixed formatting and incorrect references. Added new parameters `quote_keys`, `trailing_commas`, `allow_duplicate_keys`."
    },
    {
      "commit": "337ba00da01ec4c8ec41c8af4e8559183b5365ec",
      "tree": "2b90faa6b80f20adeb1900dd72b17fcddeeba4b4",
      "parents": [
        "12d9e1f8c54a844f8cfc2e6fd9b9a5529b88173e"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@google.com",
        "time": "Mon Jun 21 17:08:25 2021 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@google.com",
        "time": "Mon Jun 21 17:08:25 2021 -0700"
      },
      "message": "Bump version to v0.9.6, update package classifiers.\n\nAt this point the library can probably be safely considered stable\nand production-suitable, assuming you are aware of and okay with\nthe performance, so this change bumps the setuptools classifiers\naccordingly.\n\nIt also marks the package as tested against the latest Python3 versions\n(3.8 and 3.9) in addition to 2.7 still being supported.\n\nIf this release does not surface any significant regressions, I\u0027ll probably\npromote it to v1.0.0 as well.\n\nIf I do ever get around to either significantly speeding it up or\nadding round-trip editing, that\u0027ll probably be a 2.0 version.\n"
    },
    {
      "commit": "12d9e1f8c54a844f8cfc2e6fd9b9a5529b88173e",
      "tree": "500038648b068cd2dc9eb4d6aa0b42dbedd2687f",
      "parents": [
        "8be03224f416a9fd31fa7e7816afff16f03ed49d"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@google.com",
        "time": "Mon Jun 21 17:07:00 2021 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@google.com",
        "time": "Mon Jun 21 17:07:00 2021 -0700"
      },
      "message": "Fix GH #36 - incorrect serialization of custom subtypes.\n\nPreviously if you had a class deriving from `str` (or `int`, or\n`float`), `dump()` would not handle it correctly.\n\nIn addition, it looks like some of the dynamic type checking\nwe did to look for array-like and object-like objects was probably\njust wrong.\n"
    },
    {
      "commit": "8be03224f416a9fd31fa7e7816afff16f03ed49d",
      "tree": "bc2b67f6939e89212e4fbcdab9f44db7c867ba5e",
      "parents": [
        "9335da8aacb4d6391e25275ecfeda3c968149326"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@google.com",
        "time": "Mon Jun 21 16:58:09 2021 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@google.com",
        "time": "Mon Jun 21 16:58:09 2021 -0700"
      },
      "message": "Make the `hypothesis` library optional in the tests.\n\nThis allows the other tests to run even if hypothesis isn\u0027t\ninstalled.\n"
    },
    {
      "commit": "9335da8aacb4d6391e25275ecfeda3c968149326",
      "tree": "a1a8c058bd86e3304ca5babe97e1b9e41af07c04",
      "parents": [
        "6ddbfe8f1f7edef0ab9780d5babb371c98eb3fd9"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue May 26 16:44:28 2020 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue May 26 16:44:28 2020 -0700"
      },
      "message": "Bump version to v0.9.5\n"
    },
    {
      "commit": "6ddbfe8f1f7edef0ab9780d5babb371c98eb3fd9",
      "tree": "d3cc728434d446a2322bc30502a32999323e4863",
      "parents": [
        "a5777e24cc874fbe4714a32ff694b21162baea1d"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue May 26 14:56:06 2020 -0700"
      },
      "committer": {
        "name": "dpranke",
        "email": "dpranke@chromium.org",
        "time": "Tue May 26 15:10:26 2020 -0700"
      },
      "message": "Modify GitHub Actions to install Hypothesis.\n"
    },
    {
      "commit": "a5777e24cc874fbe4714a32ff694b21162baea1d",
      "tree": "9bc6557f0e6cecd4c44504616f9c5ef6c13fd008",
      "parents": [
        "2576c2e53b053985bfe18d5e72a2e1c8cbfbf567"
      ],
      "author": {
        "name": "Fredrik Fornwall",
        "email": "fredrik@fornwall.net",
        "time": "Thu Apr 09 13:59:42 2020 +0200"
      },
      "committer": {
        "name": "dpranke",
        "email": "dpranke@chromium.org",
        "time": "Mon May 25 19:11:23 2020 -0700"
      },
      "message": "Add property based test using hypothesis\n"
    },
    {
      "commit": "2576c2e53b053985bfe18d5e72a2e1c8cbfbf567",
      "tree": "7ade20550be8296c6f783c738405bfe92c8b3dbc",
      "parents": [
        "257ccae3cb862cd110452027751576a8f9a77875"
      ],
      "author": {
        "name": "Fredrik Fornwall",
        "email": "fredrik@fornwall.net",
        "time": "Tue Apr 14 09:25:44 2020 +0200"
      },
      "committer": {
        "name": "dpranke",
        "email": "dpranke@chromium.org",
        "time": "Mon May 25 19:11:06 2020 -0700"
      },
      "message": "Create ci.yml"
    },
    {
      "commit": "257ccae3cb862cd110452027751576a8f9a77875",
      "tree": "d142e83aef95e68875298e8cbb4d12f57d13d60d",
      "parents": [
        "06720b0c80ab57ae34f67854deb64f64157d7b70"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue May 19 14:40:54 2020 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue May 19 14:40:54 2020 -0700"
      },
      "message": "Fix ZeroDivisionError in benchmarking code.\n\nDue to some sloppy coding on my part, if a particular benchmark\nran too fast in JSON (most likely on Windows, which has a lower\ntime.time() resolution), we would divide by zero when computing\nthe speedup.\n\nThis patch rewrites things to avoid that, and makes the output\na bit more detailed.\n\nThis fixes https://github.com/dpranke/pyjson5/issues/42.\n"
    },
    {
      "commit": "06720b0c80ab57ae34f67854deb64f64157d7b70",
      "tree": "713081bace5c5b8f174ae637a05cc647ce0ee1f0",
      "parents": [
        "755159a110fd982b450f9be24aa1d253d70a5abc"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Mar 26 16:12:33 2020 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Mar 26 16:12:33 2020 -0700"
      },
      "message": "bump version to v0.9.4\n"
    },
    {
      "commit": "755159a110fd982b450f9be24aa1d253d70a5abc",
      "tree": "8ddd62b80cd5ec8000f9d5e3806681057f250239",
      "parents": [
        "e292076966a4b980ca831ac41ac6485d86dba702",
        "b33aabe6b4daba80287fef944957afea86a443fb"
      ],
      "author": {
        "name": "dpranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Mar 26 16:10:01 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 26 16:10:01 2020 -0700"
      },
      "message": "Merge pull request #38 from fornwall/fix-serialization-with-empty-string-key\n\nHandle serialization of empty strings as keys"
    },
    {
      "commit": "b33aabe6b4daba80287fef944957afea86a443fb",
      "tree": "8ddd62b80cd5ec8000f9d5e3806681057f250239",
      "parents": [
        "e292076966a4b980ca831ac41ac6485d86dba702"
      ],
      "author": {
        "name": "Fredrik Fornwall",
        "email": "fredrik@fornwall.net",
        "time": "Fri Mar 27 00:04:17 2020 +0100"
      },
      "committer": {
        "name": "Fredrik Fornwall",
        "email": "fredrik@fornwall.net",
        "time": "Fri Mar 27 00:04:17 2020 +0100"
      },
      "message": "Handle serialization of empty strings as keys\n\nFixes #37.\n"
    },
    {
      "commit": "e292076966a4b980ca831ac41ac6485d86dba702",
      "tree": "4784eb941fabdd239a658664fd03b558bc1771d3",
      "parents": [
        "91d927b66d03816b0dfbca14d101d91801de8704"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Mar 17 12:58:33 2020 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Mar 17 12:58:33 2020 -0700"
      },
      "message": "bump version to v0.9.3\n"
    },
    {
      "commit": "91d927b66d03816b0dfbca14d101d91801de8704",
      "tree": "1aa30fc6f62a42648f6f7fcd627dac62c76ff396",
      "parents": [
        "d0897c81a4040e26097a4899d3113ab9ccd01d54",
        "4a7321b08b6616fb92a35cb2620a3b2522de0506"
      ],
      "author": {
        "name": "dpranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Mar 17 12:35:23 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 17 12:35:23 2020 -0700"
      },
      "message": "Merge pull request #36 from PaschalisSk/master\n\nRemoved tests from setup"
    },
    {
      "commit": "d0897c81a4040e26097a4899d3113ab9ccd01d54",
      "tree": "4624974fbab6b440704d5942ddb009e3b0d5208c",
      "parents": [
        "9a5b8aed102455526edcd6e521164bd4a3982b9a",
        "6de83c37ca222461cd95b273300d61ca73d8f020"
      ],
      "author": {
        "name": "dpranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Mar 17 12:28:34 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 17 12:28:34 2020 -0700"
      },
      "message": "Merge pull request #35 from pastelmind/bugfix/dump-args\n\nFix bug in dump() caused by incorrectly passing args to dumps() - the `cls` arg was being omitted."
    },
    {
      "commit": "4a7321b08b6616fb92a35cb2620a3b2522de0506",
      "tree": "63d44790a234320dc6d6bb9ce278cc0304121d0a",
      "parents": [
        "9a5b8aed102455526edcd6e521164bd4a3982b9a"
      ],
      "author": {
        "name": "Paschalis Skouzos",
        "email": "p.skouzos@novafutur.com",
        "time": "Sun Mar 15 08:08:14 2020 +0000"
      },
      "committer": {
        "name": "Paschalis Skouzos",
        "email": "p.skouzos@novafutur.com",
        "time": "Sun Mar 15 08:08:14 2020 +0000"
      },
      "message": "Removed tests from setup\n"
    },
    {
      "commit": "6de83c37ca222461cd95b273300d61ca73d8f020",
      "tree": "4624974fbab6b440704d5942ddb009e3b0d5208c",
      "parents": [
        "9a5b8aed102455526edcd6e521164bd4a3982b9a"
      ],
      "author": {
        "name": "Ye-hyoung Kang",
        "email": "keepyourhonor@gmail.com",
        "time": "Fri Mar 13 23:23:47 2020 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 13 23:23:47 2020 +0900"
      },
      "message": "dump() properly passes args to dumps()\n\nFix a bug (caused by a missing cls) that caused dump() to pass arguments to dumps() incorrectly."
    },
    {
      "commit": "9a5b8aed102455526edcd6e521164bd4a3982b9a",
      "tree": "5e0eaaa958889a4055af38b594690f983fc63b3b",
      "parents": [
        "8a7c9b9d023e4db1239bbb5684afa711ca9f0070"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Mon Mar 02 12:15:58 2020 -0800"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Mon Mar 02 12:15:58 2020 -0800"
      },
      "message": "Bump version to 0.9.2, update README and fix trailing space.\n"
    },
    {
      "commit": "8a7c9b9d023e4db1239bbb5684afa711ca9f0070",
      "tree": "9f0e98e9793a1f347cfec3d6c78bca29a97ab615",
      "parents": [
        "bd24f56fadf43bcecd2d67ca5acd6453d771df1b",
        "5ca1b6d0bd628165b5420d18bcce18f1b45f1b57"
      ],
      "author": {
        "name": "dpranke",
        "email": "dpranke@chromium.org",
        "time": "Mon Mar 02 12:13:03 2020 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 02 12:13:03 2020 -0800"
      },
      "message": "Merge pull request #34 from roosephu/master\n\nFix indent in nested list/dict"
    },
    {
      "commit": "5ca1b6d0bd628165b5420d18bcce18f1b45f1b57",
      "tree": "9f0e98e9793a1f347cfec3d6c78bca29a97ab615",
      "parents": [
        "bd24f56fadf43bcecd2d67ca5acd6453d771df1b"
      ],
      "author": {
        "name": "Yuping Luo",
        "email": "roosephu@gmail.com",
        "time": "Sun Mar 01 04:56:50 2020 -0500"
      },
      "committer": {
        "name": "Yuping Luo",
        "email": "roosephu@gmail.com",
        "time": "Sun Mar 01 04:56:50 2020 -0500"
      },
      "message": "Fix indent in nested list/dict\n"
    },
    {
      "commit": "bd24f56fadf43bcecd2d67ca5acd6453d771df1b",
      "tree": "20d73d2e5ba3d07af38c1fd08b6faf4e51b1b179",
      "parents": [
        "2ed8a4a1d0a1d709a15d8d58834440205bb9a5c8"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Feb 09 10:31:00 2020 -0800"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Feb 09 10:31:00 2020 -0800"
      },
      "message": "Bump version to v0.9.1, clean up README a bit.\n"
    },
    {
      "commit": "2ed8a4a1d0a1d709a15d8d58834440205bb9a5c8",
      "tree": "5d2fb417183cea154919533147fea9b82fa81648",
      "parents": [
        "91cfdc8562c86716acbe347e5f57fb7d79a4737f"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Feb 09 10:12:05 2020 -0800"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Feb 09 10:27:53 2020 -0800"
      },
      "message": "Fix stray trailing comma when dumping an object with an invalid key.\n\njson5.dumps({\"foo\": 1, (1, 2): 2}, skip_keys\u003dtrue) would incorrectly print\na trailing comma if the `(1, 2)` item was found as the second item in\nthe list.\n\nThis was reported in https://github.com/dpranke/pyjson5/issues/33. This\nonly showed up in Python3 and not Python2, because of differences in the\nordering of the dictionary keys. This change also rewrites the test for\nthis to use OrderedDicts() to address that, and adds a test for a dict\nwith only invalid keys as well, for comprehensiveness.\n"
    },
    {
      "commit": "91cfdc8562c86716acbe347e5f57fb7d79a4737f",
      "tree": "34b791d4064824483c6dd33ad6d08ce8acf1e684",
      "parents": [
        "cdcd82c78eb9a81624540fc6e4bba8a36eb08f36"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Jan 30 16:50:17 2020 -0800"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Jan 30 16:50:17 2020 -0800"
      },
      "message": "Bump version to v0.9.0.\n"
    },
    {
      "commit": "cdcd82c78eb9a81624540fc6e4bba8a36eb08f36",
      "tree": "fa3fcaa9c949a8bf4515cb89825078a14adb26c2",
      "parents": [
        "0d12ee16893b74b0d79e4de3b857cbfb4a841351"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Jan 30 16:40:02 2020 -0800"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Jan 30 16:49:03 2020 -0800"
      },
      "message": "Note bug fixes #30, #29 in the README, fix other typos.\n"
    },
    {
      "commit": "0d12ee16893b74b0d79e4de3b857cbfb4a841351",
      "tree": "34d5338cadc2f2a1379b35248b2a8df9fd5f650f",
      "parents": [
        "ffcd19fc95b542ca1590342b9d1308205cbc9d61"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Jan 30 16:35:26 2020 -0800"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Jan 30 16:48:48 2020 -0800"
      },
      "message": "GH #30: Fix bug in handling circular references.\n\nThis change addresses https://github.com/dpranke/pyjson5/issues/30,\nwhere objects with other objects as values weren\u0027t tracked correctly,\nleading the implementation to incorrectly think there were\ncircular data structures in some cases.\n"
    },
    {
      "commit": "ffcd19fc95b542ca1590342b9d1308205cbc9d61",
      "tree": "db3ea570e9d9e78196b057f29d76bc2ad2c1fbc3",
      "parents": [
        "3ac998246c904bacabc8d6afc8cc98276c4865e0"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Jan 28 19:12:21 2020 -0800"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Jan 30 16:47:15 2020 -0800"
      },
      "message": "GH #29: Fix quoting for object key that start with a reserved word.\n\nThis addresses https://github.com/dpranke/pyjson5/issues/29, where\nan the object key `newbie` in `{newbie: true}` was being incorrectly\nquoted since newbie starts with the reserved word `new`.\n"
    },
    {
      "commit": "3ac998246c904bacabc8d6afc8cc98276c4865e0",
      "tree": "251af189cdd17fd188a7793b13486540b8295986",
      "parents": [
        "5a4fd7f6ad1d538bc29db830ebadc09b96f4221c"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Jan 28 19:06:34 2020 -0800"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Jan 30 16:46:00 2020 -0800"
      },
      "message": "GH#27: Remove README from package data.\n\nThis change addresses https://github.com/dpranke/pyjson5/issues/27,\nwhere README.md was being included in the source distribution (and in\na bad location, to boot); it is not necessary to include it, since\nthe contents are in the longdesc field of the package.\n"
    },
    {
      "commit": "5a4fd7f6ad1d538bc29db830ebadc09b96f4221c",
      "tree": "caba364909eab638ac12317d3d4e3407430ef751",
      "parents": [
        "bde65a88bd1bb76c17d49992f50a244997262ad5"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Jan 30 16:07:15 2020 -0800"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Jan 30 16:44:33 2020 -0800"
      },
      "message": "Add allow_duplicate_keys\u003dFalse to dump()/dumps().\n\nCommit 46ca46 fixed an issue with dump()/dumps() but introduced\nthe possibility for the routine to generate ill-formed JSON.\n\nThis change adds an optional `allow_duplicate_keys` keyword parameter\nto the routines. By default the value is True, and duplicates will\nbe allowed, to match the behavior of json.dump() and json.dumps().\nHowever, if you pass `allow_duplicate_keys\u003dFalse`, any duplicates that\nresult from the string conversions will produce a ValueError exception\ninstead.\n"
    },
    {
      "commit": "bde65a88bd1bb76c17d49992f50a244997262ad5",
      "tree": "49f6162fc346307119597b8b0b42f3fcb8d838d8",
      "parents": [
        "c530c7425047b0493edfc0b34df1761b21669559"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Jan 30 15:48:33 2020 -0800"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Jan 30 16:44:33 2020 -0800"
      },
      "message": "GH #32: Allow for non-string keys in dicts.\n\nThis fixes https://github.com/dpranke/pyjson5/issues/32, where\njson5.dumps({1: \"foo\"}) didn\u0027t work correctly. It will now match\nthe `json` module\u0027s output by casting 1 to a string, i.e., producing\n\u0027{\"1\": \"foo\"}\u0027.\n\nNote that this means that by default, you may produce ill-formed JSON\nin some caes, with duplicate keys if you mix numbers and strings.\n\nFor example, {1: \"foo\", \"1\": \"bar\"} -\u003e \u0027{\"1\": \"foo\", \"1\": \"bar\"}\u0027.\nThis matches the `json` module\u0027s behavior, for better or worse.\n"
    },
    {
      "commit": "c530c7425047b0493edfc0b34df1761b21669559",
      "tree": "b3554870628e1b57e2ad4a8bac0cd071b17e71bc",
      "parents": [
        "6c4038e449e2083f1f09328a1f92cbe702607dea"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Jan 30 15:53:20 2020 -0800"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Jan 30 15:53:20 2020 -0800"
      },
      "message": "bump version to 0.9-dev\n"
    },
    {
      "commit": "6c4038e449e2083f1f09328a1f92cbe702607dea",
      "tree": "7c4ba70cd51ee084f89c99672202fb56efa7547f",
      "parents": [
        "3e1696be3d2503d96dcaa3391d57e8ee72750915"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Jul 04 19:18:45 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Jul 04 19:18:45 2019 -0700"
      },
      "message": "bump version to v0.8.5\n"
    },
    {
      "commit": "3e1696be3d2503d96dcaa3391d57e8ee72750915",
      "tree": "15c61225b9eaeddf90fd03dae47b545ec7e26e0f",
      "parents": [
        "71ae0b300e19fb954e739ac179681110598399d2"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Jul 04 19:08:17 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Jul 04 19:08:17 2019 -0700"
      },
      "message": "Fix bad error reporting on partial matches.\n\nThis patch addresses an error reported in\nhttps://github.com/dpranke/pyjson5/issues/26, where calling\n`json.loads(\u0027[ ,]\u0027) would report an error on column 4, not column 3.\n\nThe reason for this had to do with the way the optional whitespace (sp*)\nrule was coded in the grammar, and a bug in the underlying parser generator\n(glop), where if you had a rule like (a ?())* and you matched a and not b,\nthe errposition wouldn\u0027t be properly rolled back before the conditional\nexpression. That bug was fixed in glop v0.6.2; this CL regenerates the\nJSON5 parser with that version of the parser generator, and then adds\njson5-specific tests to check for the correct position reporting.\n"
    },
    {
      "commit": "71ae0b300e19fb954e739ac179681110598399d2",
      "tree": "516d1b0d4f1368d395f8df72a7053a7aae8f4a75",
      "parents": [
        "053acf56f17d79effb75726e82a9f549f4af72c0"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Wed Jul 03 21:26:09 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Wed Jul 03 21:26:09 2019 -0700"
      },
      "message": "Include README.md, LICENSE in the source distribution.\n\nThis addresses https://github.com/dpranke/pyjson5/issues/25\nand adds //README.md and //LICENSE to the sdist files.\n"
    },
    {
      "commit": "053acf56f17d79effb75726e82a9f549f4af72c0",
      "tree": "39db3e4f96b9685be96366f18fe4e0c3f27ec7d6",
      "parents": [
        "63eaa05da999d578f2d3d8087254a374c5c380c3"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Wed Jul 03 21:15:32 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Wed Jul 03 21:15:32 2019 -0700"
      },
      "message": "Fix dumps([], indent\u003d2).\n\nThis addresses https://github.com/dpranke/pyjson5/issues/26:\n`json5.dumps([], indent\u003d2)` incorrectly returned \u0027[\\n  ,\\n]\u0027,\nwhen it should\u0027ve returned \u0027[]\u0027 (and the did the same thing for\nobjects).\n"
    },
    {
      "commit": "63eaa05da999d578f2d3d8087254a374c5c380c3",
      "tree": "0b4444ec0013345dfe331f991268999e7100f31b",
      "parents": [
        "0b9e71c09818db6cf1f829bfce5d42c76f01aa58"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Jun 11 18:55:09 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Jun 11 18:55:09 2019 -0700"
      },
      "message": "update version history properly, bump version to 0.8.4\n"
    },
    {
      "commit": "0b9e71c09818db6cf1f829bfce5d42c76f01aa58",
      "tree": "d65e36a6cfaa98e8f092148382f4d273de9a5a6b",
      "parents": [
        "4ad75d46cd8aee28d23e3887dd756b781ffb352d"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Jun 11 18:52:58 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Jun 11 18:52:58 2019 -0700"
      },
      "message": "Bump to v0.8.3 and update README.md a bit.\n"
    },
    {
      "commit": "4ad75d46cd8aee28d23e3887dd756b781ffb352d",
      "tree": "e488fb78a15a8d25336ec4d3b2fc756dcd6eacb4",
      "parents": [
        "71801d8b7871e3eb1a98e3b407283c49ec02c19e"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Jun 11 18:39:49 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Jun 11 18:39:49 2019 -0700"
      },
      "message": "bump version to 0.8.2\n"
    },
    {
      "commit": "71801d8b7871e3eb1a98e3b407283c49ec02c19e",
      "tree": "5500e6284b9e21f487ec725fd69df637826c4526",
      "parents": [
        "8ab148b172f75384e3d20b967f6c22ad136900e1"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Jun 11 18:34:13 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Jun 11 18:35:13 2019 -0700"
      },
      "message": "fix setup.py bug w/ description field\n"
    },
    {
      "commit": "8ab148b172f75384e3d20b967f6c22ad136900e1",
      "tree": "6ded46da1b1b190501e291c38ead994af01bb016",
      "parents": [
        "0e1ded623863652120609bf82f180c8237bfe35f"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Jun 11 18:30:14 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Jun 11 18:30:14 2019 -0700"
      },
      "message": "bump version to 0.8.0\n"
    },
    {
      "commit": "0e1ded623863652120609bf82f180c8237bfe35f",
      "tree": "061c9315e409a2a16ce60c91c5692f5914c71707",
      "parents": [
        "97f83f4300dd2a9f3c5068b74b7a139a6a5a3318"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Jun 11 18:27:46 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Jun 11 18:27:46 2019 -0700"
      },
      "message": "Make checking for duplicate keys possible.\n\nThis adds an optional `allow_duplicate_keys` parameter to load()\nand loads(). The parameter is True by default, but, if set to False\nand an object contains duplicate keys, a ValueError will be raised.\n\nDuplicate key checking is off by default for compatibility with\njson.load(), earlier versions of json5.load(), and because it\u0027s not\nclear if people actually want duplicate key checking enabled by default.\n\nThis addresses https://github.com/dpranke/pyjson5/issues/24.\n"
    },
    {
      "commit": "97f83f4300dd2a9f3c5068b74b7a139a6a5a3318",
      "tree": "3e0975e892226e99e739a7d4d34dacffe4801d3b",
      "parents": [
        "d0a975fcde469bd4267563c3a6b1107fc2f869af"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Mar 31 21:38:24 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Mar 31 21:38:24 2019 -0700"
      },
      "message": "bump version to 0.7.0\n"
    },
    {
      "commit": "d0a975fcde469bd4267563c3a6b1107fc2f869af",
      "tree": "24dcd98bdf3c3086d583e2caded1349de9ed3057",
      "parents": [
        "2baac1f438acd9e84380ff5c9ea64e41e48f68af"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Mar 31 21:36:04 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Mar 31 21:36:04 2019 -0700"
      },
      "message": "fix lint warnings, duplicate methods\n"
    },
    {
      "commit": "2baac1f438acd9e84380ff5c9ea64e41e48f68af",
      "tree": "dc493ba64236334a1cedf9f4630e675d00a76211",
      "parents": [
        "f16a611dccfccb49767fd28028776195ac83232f"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Mar 31 21:35:52 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Mar 31 21:35:52 2019 -0700"
      },
      "message": "add missing blank line\n"
    },
    {
      "commit": "f16a611dccfccb49767fd28028776195ac83232f",
      "tree": "a80c7113132e3fe2fba9980c590fa73909b36106",
      "parents": [
        "4bbe03b74ba395288c254af873c22f6f753b3722"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Mar 31 17:59:42 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Mar 31 17:59:42 2019 -0700"
      },
      "message": "update run to reflect new directory structure\n"
    },
    {
      "commit": "4bbe03b74ba395288c254af873c22f6f753b3722",
      "tree": "7ced3e42324841248551ae1d8dff56235da3517a",
      "parents": [
        "f8959e29bd9086d8983668fafac1631b7d3410a9"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Mar 31 17:40:36 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Mar 31 17:40:54 2019 -0700"
      },
      "message": "use relative import for .host_fake for safety in tool_test\n"
    },
    {
      "commit": "f8959e29bd9086d8983668fafac1631b7d3410a9",
      "tree": "696b15660cb0a153a0ee9fb4cef6ff162c83ce33",
      "parents": [
        "bffacaf1a49e58cf23249c67b0bcea8f00b33858"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Mar 31 17:37:14 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Mar 31 17:37:14 2019 -0700"
      },
      "message": "fix perms on parser.py\n"
    },
    {
      "commit": "bffacaf1a49e58cf23249c67b0bcea8f00b33858",
      "tree": "dfc67842d21f757cbe05cd2c32c1054b6f6a0748",
      "parents": [
        "8b842b0597ca2b6b0fac5ac4e204358ecb7acdbc"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Mar 31 17:36:09 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Mar 31 17:36:09 2019 -0700"
      },
      "message": "Move tests out of json5 into their own top-level directory.\n\nThis\u0027ll keep them from being distributed w/ the module.\n"
    },
    {
      "commit": "8b842b0597ca2b6b0fac5ac4e204358ecb7acdbc",
      "tree": "4a5a499e6d78fc0a16dc40a9518e47f3977fbb5b",
      "parents": [
        "60aed615a1feddd2333a0ec70f1404be47cb644f"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Mar 31 15:11:23 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Mar 31 15:11:23 2019 -0700"
      },
      "message": "add tests for host.py\n"
    },
    {
      "commit": "60aed615a1feddd2333a0ec70f1404be47cb644f",
      "tree": "2166fdd7e04767aa300e6dc64a0a883321e80b90",
      "parents": [
        "4124be2cc37611879a5151339ef601ace211e637"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Mar 31 15:11:03 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Mar 31 15:11:03 2019 -0700"
      },
      "message": "add `run coverage` for coverage reports\n"
    },
    {
      "commit": "4124be2cc37611879a5151339ef601ace211e637",
      "tree": "1e4af246d5c2dd7290b0cde81f0c2bd3a3dae4dc",
      "parents": [
        "7ce645e2afa49b34ec3e530bf8716c0534106410"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Mar 31 14:39:51 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Mar 31 14:39:51 2019 -0700"
      },
      "message": "lint //run\n"
    },
    {
      "commit": "7ce645e2afa49b34ec3e530bf8716c0534106410",
      "tree": "739260fa423d935f833ac56328be0c7eb89aa4ee",
      "parents": [
        "a14fb38dbf50440d25fcd3fdce36bd75fbd4f7c2"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Mar 31 14:35:35 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Mar 31 14:35:35 2019 -0700"
      },
      "message": "add .coverage to gitignore\n"
    },
    {
      "commit": "a14fb38dbf50440d25fcd3fdce36bd75fbd4f7c2",
      "tree": "49d1ca7de6c36c1495dcf7ed5a3f289494b9bf60",
      "parents": [
        "0dbefbe9a53b6d5e1c6cf9b145742e026c081f16"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Mar 31 14:34:14 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Mar 31 14:34:14 2019 -0700"
      },
      "message": "Lint almost everything.\n\nThis CL strips out a bunch of stuff in the default pylint configuration\nand then cleans up all of the pylint errors except for errors in\nthe generated json5/parser.py file (those will need to be fixed in\nthe parser generator).\n"
    },
    {
      "commit": "0dbefbe9a53b6d5e1c6cf9b145742e026c081f16",
      "tree": "8434327ac73407f7d7e829d8190a38b533140ea8",
      "parents": [
        "2deff583c2a9715ffbf37ac7afefe570d990aebb"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Mar 31 14:33:54 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Mar 31 14:33:54 2019 -0700"
      },
      "message": "Update README.md with version history / release notes.\n"
    },
    {
      "commit": "2deff583c2a9715ffbf37ac7afefe570d990aebb",
      "tree": "bbd083fa527956db9d71aa6135255b1fa2bf4993",
      "parents": [
        "15ed6b72741b4ed18020650e5c13ba426a8c3918"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Mar 31 13:45:33 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Mar 31 13:45:33 2019 -0700"
      },
      "message": "rename json5_test.py -\u003e lib_test.py\n"
    },
    {
      "commit": "15ed6b72741b4ed18020650e5c13ba426a8c3918",
      "tree": "bbd0d67774290497361986d6df6c256467d98430",
      "parents": [
        "e03ccc4e24ca59ebdbc5981831c0683d5a614f45"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Mar 31 13:41:53 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Mar 31 13:41:53 2019 -0700"
      },
      "message": "add lots more tests, bug fixes\n"
    },
    {
      "commit": "e03ccc4e24ca59ebdbc5981831c0683d5a614f45",
      "tree": "1ff418cd7f735c83775c595b552a29e87695b630",
      "parents": [
        "abb9122e3225443daa254748c915437fc6a1edf1"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Mar 31 12:17:15 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Mar 31 12:17:15 2019 -0700"
      },
      "message": "Add quote_keys, trailing_commas to dump()/dumps().\n\nThis adds support for two new keyword arguments to dump() and dumps().\n\nBy default, if an object key is a valid identifier, it will not be\nquoted in the output. If you pass quote_keys\u003dTrue, it will be quoted.\n\nAlso, by default, if an object or an array is printed across multiple\nlines (i.e., if indent \u003e\u003d 0), then a trailing comma will be added\nafter the last item. If you pass trailing_commas\u003dFalse, it will not\nbe added.\n\nCalling json5.dumps(obj, quote_keys\u003dTrue, trailing_commas\u003dFalse) should\nproduce the same output as calling json.dumps(obj).\n\nThis CL also adds the --quote-keys and --no-trailing-commas arguments\nto json5.tool, and passing --as-json is now implemented by doing those\ntwo things.\n"
    },
    {
      "commit": "abb9122e3225443daa254748c915437fc6a1edf1",
      "tree": "ea869b1c3176eb627e71161279b83c51a91194e5",
      "parents": [
        "7144e6b026a96f06be8f422a6ac29c0aec0d86a9"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Mar 30 18:43:24 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Mar 30 18:43:24 2019 -0700"
      },
      "message": "update setup.py to use README.md\n"
    },
    {
      "commit": "7144e6b026a96f06be8f422a6ac29c0aec0d86a9",
      "tree": "c2e2970840f370cba1729a748ee90abd32484be5",
      "parents": [
        "8bed54c2aee2b8e5ced4d8a07a486e33bcfd68f4"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Mar 30 18:38:26 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Mar 30 18:38:26 2019 -0700"
      },
      "message": "Switch to README.md\n"
    },
    {
      "commit": "8bed54c2aee2b8e5ced4d8a07a486e33bcfd68f4",
      "tree": "bee0adcb00afbb8510449d9566ebc972e05864fa",
      "parents": [
        "cd9aa4c997e00da6092c65b667d7ff17768e4fb1"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Mar 30 18:09:00 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Mar 30 18:09:00 2019 -0700"
      },
      "message": "escape chars \u003c 0x20 as well\n"
    },
    {
      "commit": "cd9aa4c997e00da6092c65b667d7ff17768e4fb1",
      "tree": "34da2cdbbc38d5cdfcfb2fb4468997d60c8366a6",
      "parents": [
        "10e4e823acb542c91310c4231ffc37b0cf7c8c57"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Mar 30 18:04:56 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Mar 30 18:04:56 2019 -0700"
      },
      "message": "use surrogates for supplemental planes in dump()\n"
    },
    {
      "commit": "10e4e823acb542c91310c4231ffc37b0cf7c8c57",
      "tree": "855d4e615c2e44e35fbbab3e16011b2ffc67ccbc",
      "parents": [
        "7d914c1794ed8f02d8569b6bddb04e662bcd447f"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Mar 30 17:59:10 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Mar 30 17:59:10 2019 -0700"
      },
      "message": "dump strings directly, removing remaining dependency on json module\n"
    },
    {
      "commit": "7d914c1794ed8f02d8569b6bddb04e662bcd447f",
      "tree": "2bf9fec4bf82d9f8d8ff44bf44fcb22f4b088c0f",
      "parents": [
        "634ea2f6ce7295e88e7e584fc90479b2e2107aeb"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Mar 30 17:35:34 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Mar 30 17:35:34 2019 -0700"
      },
      "message": "implement default for dump\n"
    },
    {
      "commit": "634ea2f6ce7295e88e7e584fc90479b2e2107aeb",
      "tree": "a8254bccab220f7d716d8234f637b845b2b6cc0d",
      "parents": [
        "e88fd2dedc5665420a52927075b29b5c1675b2c3"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Mar 30 17:24:52 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Mar 30 17:24:52 2019 -0700"
      },
      "message": "implement check_circular\n"
    },
    {
      "commit": "e88fd2dedc5665420a52927075b29b5c1675b2c3",
      "tree": "919828a687a04ba488e728d276d79255171a9fae",
      "parents": [
        "0d3a4be34b9564e6f9cb16374ef437610954f54a"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Mar 30 17:14:11 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Mar 30 17:14:11 2019 -0700"
      },
      "message": "implement ensure_ascii, allow_nan in dump()\n"
    },
    {
      "commit": "0d3a4be34b9564e6f9cb16374ef437610954f54a",
      "tree": "6cda282b2f074145f4020419c30e277bbf1f8a2e",
      "parents": [
        "2679d1013bc5f5f742a23d1e0ef3c97ad7800da5"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Mar 30 16:39:30 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Mar 30 16:39:30 2019 -0700"
      },
      "message": "implement skip_keys for dump()\n"
    },
    {
      "commit": "2679d1013bc5f5f742a23d1e0ef3c97ad7800da5",
      "tree": "9bd50066692b857742f3a05a7a587d34d82753de",
      "parents": [
        "acbc5eb70077ac0f12fed30851f00c08b42d943c"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Mar 30 16:09:25 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Mar 30 16:09:25 2019 -0700"
      },
      "message": "add future reserved words and null/false/true to reserved words for idenitifiers\n"
    },
    {
      "commit": "acbc5eb70077ac0f12fed30851f00c08b42d943c",
      "tree": "5fd6d8a36ab07636a2cc7c127a463f8670484184",
      "parents": [
        "5f182b316aef7ba1206d713afd774fcad2c8c9b5"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Mon Mar 25 10:20:55 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Mon Mar 25 10:20:55 2019 -0700"
      },
      "message": "handle reserved word keys, implement sort_keys, assert on other unsupported kwargs in dumps()\n"
    },
    {
      "commit": "5f182b316aef7ba1206d713afd774fcad2c8c9b5",
      "tree": "e91906c73031bbb59d7fa44c140ad7aac090b53b",
      "parents": [
        "52790a266469df8ca8973dd04c3aed454d1f2b16"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Mar 10 12:25:46 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Mar 10 12:26:19 2019 -0700"
      },
      "message": "clean up run wrapper\n"
    },
    {
      "commit": "52790a266469df8ca8973dd04c3aed454d1f2b16",
      "tree": "4d8e81d72c5c1e6dc21c236181838a9f909b38ee",
      "parents": [
        "32481a906e00a1c5d301e6227ab43cf8feba31e0"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Mar 10 12:21:09 2019 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Mar 10 12:21:09 2019 -0700"
      },
      "message": "Miscellaneous cleanup, fixes\n\n- remove coverage_test.py\n- add --indent to json5.tool\n- add trailing commas to lists and dicts in dump()\n- clean up usage in json5.tool\n"
    },
    {
      "commit": "32481a906e00a1c5d301e6227ab43cf8feba31e0",
      "tree": "9d3b1823f2ba7b930696115bf7911c05b4bdaa14",
      "parents": [
        "0288ffdb438d21f625a48f265b40bbe6ae5565e3"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Mar 09 20:27:09 2019 -0800"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Mar 09 20:27:09 2019 -0800"
      },
      "message": "fix double-import trap\n"
    },
    {
      "commit": "0288ffdb438d21f625a48f265b40bbe6ae5565e3",
      "tree": "fca7f4d0a7fdf2055f31b9d342cf769452becbe7",
      "parents": [
        "1eba95af135be268f957a6d968716e863b8fd1fd"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Mar 09 20:20:41 2019 -0800"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Mar 09 20:20:41 2019 -0800"
      },
      "message": "fix separators\n"
    },
    {
      "commit": "1eba95af135be268f957a6d968716e863b8fd1fd",
      "tree": "09568c0a345d1ad755d78528befcd26c79fb9acb",
      "parents": [
        "94e2ddee6988ec09de48cdb9aad8f6ce10d7fc05"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Mar 09 20:17:12 2019 -0800"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Mar 09 20:17:12 2019 -0800"
      },
      "message": "Re-implement dumps().\n"
    },
    {
      "commit": "94e2ddee6988ec09de48cdb9aad8f6ce10d7fc05",
      "tree": "b10f29ce1dcbac6e8f29c2240fed38a42b940a4f",
      "parents": [
        "24420cbccb6ae09fdd5539ea1984eb29f99831e8"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Mar 08 14:49:49 2019 -0800"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Mar 08 14:49:49 2019 -0800"
      },
      "message": "Simplify json5.dump() and json5.dumps().\n\nI don\u0027t remember at this  point why I added the `compact`\nand `as_json` kwargs to .dump() and .dumps(). I\u0027m guessing it was\nsome combination of being lazy and/or being conservative in\nimplementation. The net result of it, though, was that unless\nyou specified compact\u003dTrue, you got json-formatted output, not\njson5-formatted output. And that now seems wrong.\n\n[ I suppose it\u0027s possible that I wanted compact\u003dFalse by default\nin order to get the speedup from json\u0027s native implementation, though. ].\n\nThis CL removes the compact keyword, and changes the implementation\nto always print json5-formatted output (as if you always specified\ncompact\u003dTrue).\n\nIt also removes the \u0027as_json\u0027 keyword; if you want json-formatted\noutput, just use json.dump() instead of json5.dump().\n\njson5.tool keeps support for the --as-json keyword, though, because\nthat allows you to use json5.tool to convert json5 to json, and\nthat still seems useful.\n\nAlso, this fixes a bug I discovered when I turned compact\u003dTrue by\ndefault -- :) -- which is that in Python, apparently bools are subclasses\nof ints, and the constants `False` and `True` have integer values 0 and 1\nrespectively. This means that \u00270 \u003d\u003d False\u0027 is true. In order to\ntest if something is a bool, you have to use `is` or check the type\nexplicitly.\n"
    },
    {
      "commit": "24420cbccb6ae09fdd5539ea1984eb29f99831e8",
      "tree": "e21bf497cd203bdc0ac543ce7415ad258501dc0e",
      "parents": [
        "fc2a2fca23f2d25c2a412f85d276b09803ba449b"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Mar 08 14:13:17 2019 -0800"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Mar 08 14:29:31 2019 -0800"
      },
      "message": "Fix github issue #23, not parsing an escape char case properly.\n\nIt turns out that unrecognized characters in escape sequences\nshould be tolerated and passed through. This change implements that and\nalso adds support for \\0 in string literals:\n\n    $ python3\n    \u003e\u003e\u003e import json5\n    \u003e\u003e\u003e json5.loads(r\u0027\"\\/\"\u0027)\n    \u0027/\u0027\n    \u003e\u003e\u003e json5.loads(r\u0027\"\\0\"\u0027)\n    \u0027\\x00\u0027\n    \u003e\u003e\u003e quit()\n    $\n"
    },
    {
      "commit": "fc2a2fca23f2d25c2a412f85d276b09803ba449b",
      "tree": "98915e13722fc14a80e1971ace0b6e7668ce00f5",
      "parents": [
        "23dcb723c45f58f7c8b3a4bc11da57b5dfaf299a"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Mar 08 14:22:34 2019 -0800"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Mar 08 14:29:31 2019 -0800"
      },
      "message": "okay, turn \\xa0 back into u\\00a0\n"
    },
    {
      "commit": "23dcb723c45f58f7c8b3a4bc11da57b5dfaf299a",
      "tree": "7725f87368b1cf9cd3f430c60477933473550d56",
      "parents": [
        "268dba8be99529cabaec36456924ed1c5511a56c"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Mar 08 13:35:13 2019 -0800"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Mar 08 13:39:32 2019 -0800"
      },
      "message": "Regenerate parser with latest glop version.\n\nUsing glop@64fc1bf (v.0.6.0-pre), regenerate parser.py from\nthe json5 grammar using:\n\n  $ python \u003cpath-to\u003e/glop/tool.py -c -o parser.py json5.g \\\n      --no-main --no-memoize\n\nThe only difference appears to be a minor change where we now specify\na hex literal instead of a unicode literal for \\u00a0 (no-break space).\nI\u0027m not sure why this would\u0027ve changed, but don\u0027t care enough to dig\ninto it at the moment :).\n"
    },
    {
      "commit": "268dba8be99529cabaec36456924ed1c5511a56c",
      "tree": "2275eb141375dab56baedd90688db9820b6097dd",
      "parents": [
        "e2eb06bb50ee7a9a3b5b33d086b3aca39ed9ef1a"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Dec 07 22:01:01 2017 -0800"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Dec 07 22:01:01 2017 -0800"
      },
      "message": "bump version to 0.7.0-pre\n"
    },
    {
      "commit": "e2eb06bb50ee7a9a3b5b33d086b3aca39ed9ef1a",
      "tree": "927d9bb54065acdfa79c4f86297b9fba787817c1",
      "parents": [
        "a8d5d807d172af13b77bb5e2c291da86dc2f9524"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Nov 28 08:26:18 2017 -0800"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Nov 28 08:26:18 2017 -0800"
      },
      "message": "bump version to v0.6.0\n"
    },
    {
      "commit": "a8d5d807d172af13b77bb5e2c291da86dc2f9524",
      "tree": "cd2339dea8dd648121470fd9ad1d178a4ce8e580",
      "parents": [
        "e9e3a74dda254f2a6cba5049ff8b54e2ed3d2604"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Sep 29 18:05:26 2017 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Sep 29 18:05:26 2017 -0700"
      },
      "message": "fix unicode literals\n"
    },
    {
      "commit": "e9e3a74dda254f2a6cba5049ff8b54e2ed3d2604",
      "tree": "b33a601f1f5d628b992bc01dd496668b2c6c1e84",
      "parents": [
        "81b20f9c8505cfd5126620e3c354e597618f57bc"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Sep 29 17:10:57 2017 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Sep 29 17:16:16 2017 -0700"
      },
      "message": "Revamp grammar, parser, bump version to 0.6.0-pre.\n\nThis uses an updated version of the parser generated\nfrom the latest version of glop.\n\nStylistically, the major difference is that the\ngenerated code doesn\u0027t rely on nested functions;\nit also uses lambdas and more helper methods to\nreduce the number of lines of code, making the file\n2.5x smaller.\n\nThe grammar change is a no-op to the language it\nrecognizes, but by switching from recursion to\niteration on the array and member lists, this\nprevents a large class of potential stack overflows\nin the python interpreter, and also speeds things\nup.\n\nThe latest version of glop can optionally produce\na memoizing parser, but that appears to be unneeded\nhere and actually slows things down.\n\nThe current version is 100x - 150x slower than the\npure python version of the equivalent json parser;\nthis appears to be 1.3 to 2.5x faster than v0.5.1.\n\n(Memoizing made it ~20% slower).\n"
    },
    {
      "commit": "81b20f9c8505cfd5126620e3c354e597618f57bc",
      "tree": "b87969892c9ab8e410dc049e3775d6c750c9c6e1",
      "parents": [
        "782878bea9aefac8cb2c7c193b5c326940ed454b"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Wed Sep 06 16:17:55 2017 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Wed Sep 06 16:17:55 2017 -0700"
      },
      "message": "Bump version to 0.5.1.\n"
    },
    {
      "commit": "782878bea9aefac8cb2c7c193b5c326940ed454b",
      "tree": "ef63c4a12bdda6e296fa326cc87b16e3e0edc33b",
      "parents": [
        "32f359acd1c6b0189c31bdbacd64076c112a03b3"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Wed Sep 06 13:14:15 2017 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Wed Sep 06 13:14:15 2017 -0700"
      },
      "message": "s/0.5.1/0.5.1-pre/\n"
    },
    {
      "commit": "32f359acd1c6b0189c31bdbacd64076c112a03b3",
      "tree": "b87969892c9ab8e410dc049e3775d6c750c9c6e1",
      "parents": [
        "b2a030449383367127b35235643b06889ee6e886"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Wed Sep 06 13:12:26 2017 -0700"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Wed Sep 06 13:12:26 2017 -0700"
      },
      "message": "bump version to 0.5.1\n"
    }
  ],
  "next": "b2a030449383367127b35235643b06889ee6e886"
}
