)]}'
{
  "log": [
    {
      "commit": "2e8e5e60b6ecbcfe2110242e41b9ec5340b11cf5",
      "tree": "8810a00e508e0dd698d23f513432fff2e513e87e",
      "parents": [
        "ee1c45f88f5fcd1b1d43c325e0de366cc3d0ce36"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Apr 20 12:58:31 2017 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Apr 20 16:57:25 2017 -0700"
      },
      "message": "DO NOT MERGE: The future is now.\n\n__INTRODUCED_IN_FUTURE -\u003e __INTRODUCED_IN(26)\n\nBug: http://b/37437368\nTest: treehugger\nChange-Id: I601a23da83b65a0cd582cc840ed3856a9031b673\n(cherry picked from commit cb302f932a3532f1484e1e70894e9b1199384283)\n"
    },
    {
      "commit": "7b737e43f82682bcfaa086af116ddcddb9c1de8d",
      "tree": "a30c4a77b57beacacce71afeba2b905f389cde1d",
      "parents": [
        "e656a3acaf1001cdb8bf3ae9be84ed070ebe93f2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 25 15:57:02 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 25 15:57:02 2016 -0700"
      },
      "message": "Remove #pragma GCC visibility.\n\nWe have better control over visibility now.\n\nBug: http://b/24767418\nChange-Id: Ifa9a1e5af4bd4217db08422050908770247b3b69\n"
    },
    {
      "commit": "3ba55f8022f3d5c5ca94a3df46fa658eda791987",
      "tree": "9e500c17531ea742e86de6848cc10ebca7ef28cb",
      "parents": [
        "93bae32c27f41e55e1cf9a6f5f8a05fbc1feaf1d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 08 18:11:23 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 09 17:40:19 2016 -0700"
      },
      "message": "Rationalize visibility.\n\nIf it\u0027s C or POSIX, it\u0027s in. If it\u0027s BSD or GNU, it\u0027s guarded by __USE_BSD\nor __USE_GNU.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d194631\nChange-Id: Ife51a21c2b37b060db56780d29c929805b199cb6\n"
    },
    {
      "commit": "34c599a8b0b04f66b065c4d84b809f74dd44382d",
      "tree": "3f7e5541c600bb4f6f3f733f68d6ae697076ca86",
      "parents": [
        "14adff1cfa06a3d4d3281a9bf7848b556d84c20d"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Apr 29 13:45:25 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Apr 29 16:39:50 2016 -0700"
      },
      "message": "Add __INTRODUCED_IN_FUTURE for unreleased APIs.\n\nFuture API levels aren\u0027t known (e.g. 25 could be a maintenance release\nof N that doesn\u0027t contain any bionic updates), so use a placeholder\nmacro that we can find and replace with the actual API level before each\nrelease.\n\nBug: http://b/28178111\nChange-Id: I667fe53ea1ac49b64135170fc30d5dbe9df94e29\n"
    },
    {
      "commit": "14adff1cfa06a3d4d3281a9bf7848b556d84c20d",
      "tree": "ce1fb2867f69e49f57d0bbe8a9099b09beda0c19",
      "parents": [
        "5a3d5cac642f9e58b2c510eab23789fb4fc3a753"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Apr 29 12:00:55 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Apr 29 16:39:50 2016 -0700"
      },
      "message": "Add versioning information to symbols.\n\nBug: http://b/28178111\nChange-Id: I46bf95accd819f4521afb1173d8badcc5e9df31c\n"
    },
    {
      "commit": "afe835d540000d2378e744b764d71406b410761d",
      "tree": "e7e2f42e0aa8f049fe431360a4b79b3ec3f8ae9a",
      "parents": [
        "2152a8ca3550ff0c9c998bfd4d6ab741758063ec"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Apr 02 08:36:33 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Apr 02 08:36:33 2016 -0700"
      },
      "message": "Move math headers in with the other headers.\n\nKeeping them separate is a pain for the NDK, and doesn\u0027t help the platform.\n\nChange-Id: I96b8beef307d4a956e9c0a899ad9315adc502582\n"
    },
    {
      "commit": "9ee6adb003eb5a9855ff6c47f9c150b415a11299",
      "tree": "d9c7c155a7847fa13c03e909af11895e3f52c3cd",
      "parents": [
        "470de8f4d7b8e2e4a926f645870ab0419706fa78"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 11 14:49:13 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 11 15:03:25 2016 -0800"
      },
      "message": "Add missing \u003ccomplex.h\u003e functions.\n\nFreeBSD doesn\u0027t seem interested in having low-quality implementations of\nthese functions:\n\n  cacoshl, cacosl, casinhl, casinl, catanhl, catanl, ccoshl, ccosl, cexpl,\n  clog, clogf, clogl, cpow, cpowf, cpowl, csinhl, csinl, ctanhl, ctanl.\n\nAnd they still haven\u0027t got round to writing good implementations, so for\nnow let\u0027s just take the NetBSD ones so we have the full set.\n\nBug: http://b/27555792\nChange-Id: I6b72003cf749b1043f006377a01fffe5e1d659bc\n"
    },
    {
      "commit": "b8ee16f1dc1253e3f1c99b4a6b9df249515cd919",
      "tree": "4152e094e7565f35f4c232cf1bb7ebe8d184fd56",
      "parents": [
        "a80f11ba99a078515aa7e06dc99db62a475a7b53"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 06 11:16:55 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 06 11:16:55 2014 -0800"
      },
      "message": "Fix our \u003ccomplex.h\u003e support.\n\nWe build libm with -fvisibility\u003dhidden, so we weren\u0027t exporting any\nof the \u003ccomplex.h\u003e functions.\n\nWe also weren\u0027t building many of the functions anyway.\n\nWe were also missing the complex inverse trigonometric functions.\n\nAnd because we didn\u0027t even have perfunctory \"call each function once\"\ntests, we didn\u0027t notice that we weren\u0027t exporting any symbols, so this\npatch adds at least that level of testing.\n\nChange-Id: Ibcf2843f507126c51d134cc5fc8d67747e033a0d\n"
    },
    {
      "commit": "a0ee07829a9ba7e99ef68e8c12551301cc797f0f",
      "tree": "fefc432ee572779579a16d2868d4181a33399281",
      "parents": [
        "a990cf5b3392c5aef767aee1e67b4d7ef651afc6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 30 19:06:37 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 01 14:51:19 2013 -0800"
      },
      "message": "Upgrade libm.\n\nThis brings us up to date with FreeBSD HEAD, fixes various bugs, unifies\nthe set of functions we support on ARM, MIPS, and x86, fixes \"long double\",\nadds ISO C99 support, and adds basic unit tests.\n\nIt turns out that our \"long double\" functions have always been broken\nfor non-normal numbers. This patch fixes that by not using the upstream\nimplementations and just forwarding to the regular \"double\" implementation\ninstead (since \"long double\" on Android is just \"double\" anyway, which is\nwhat BSD doesn\u0027t support).\n\nAll the tests pass on ARM, MIPS, and x86, plus glibc on x86-64.\n\nBug: 3169850\nBug: 8012787\nBug: https://code.google.com/p/android/issues/detail?id\u003d6697\nChange-Id: If0c343030959c24bfc50d4d21c9530052c581837\n"
    }
  ]
}
