)]}'
{
  "log": [
    {
      "commit": "54505f1d50c2d1f4676f5e87090b64a117fd980e",
      "tree": "135f4ea4b4c31e809bdbaba6221da5cffb29fd88",
      "parents": [
        "73c0c8c61b84e268bafd961bf304b2e4d296142f"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Aug 03 02:28:03 2015"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Aug 03 02:36:27 2015"
      },
      "message": "help clang with inlining important fast-path functions\n\nClang\u0027s recent focus on code size doesn\u0027t help us in malloc fast-path\nbecause somehow clang completely ignores inline directives.\n\nIn order to help clang generate code that was actually intended by\noriginal authors, we\u0027re adding always_inline attribute to key\nfast-path functions.\n\nClang also guessed likely branch \"wrong\" in couple places. Which is\nnow addressed by UNLIKELY declarations there.\n"
    },
    {
      "commit": "73c0c8c61b84e268bafd961bf304b2e4d296142f",
      "tree": "9e1d8f5f043480e50305b190697752aff461a7c1",
      "parents": [
        "41aca070e85258d9d47b0ac47f5eddece8bf45ba"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Aug 03 02:09:02 2015"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Aug 03 02:09:02 2015"
      },
      "message": "moved do_mallor_or_cpp_alloc in better place\n"
    },
    {
      "commit": "41aca070e85258d9d47b0ac47f5eddece8bf45ba",
      "tree": "0a4391a40199dbec9c4f1dc52118552fca116953",
      "parents": [
        "c4493874cd3b662d2778f3b79a3096ae61569b67"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Aug 02 17:53:32 2015"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Aug 03 02:06:21 2015"
      },
      "message": "always set errno to ENOMEM on OOM condition and in single place\n\nWhile standards do not require us to set errno to ENOMEM in certain\nplaces (like posix_memalign), existing code may sometimes set it\n(i.e. because mmap or sbrk couldn\u0027t get memory from kernel)\nanyways. And from my reading of glibc, it\u0027s malloc is doing more or\nless same by just always setting ENOMEM on OOM condition.\n\nThis commit also eliminates some functions (XXX_no_errno) that are not\nneeded anymore.\n"
    },
    {
      "commit": "c4493874cd3b662d2778f3b79a3096ae61569b67",
      "tree": "9d572d23f8c6880eb125af92deb4b7a3a0f4ec3e",
      "parents": [
        "09448a8fe977eaa083340c2504caac8820832179"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Aug 02 05:20:15 2015"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Aug 03 02:06:21 2015"
      },
      "message": "deal with OOM handling in one place and prior to returning result\n\nThis commit removes 4 (four!) duplicates of C++ OOM handling. And\nintroduces one helper for that.\n\nOther change is that malloc doesn\u0027t have to check tc_new_mode anymore\nuntil it _actually_ deals with OOM condition. Which shaves off couple\ninstructions from fast-path.\n"
    },
    {
      "commit": "09448a8fe977eaa083340c2504caac8820832179",
      "tree": "2e41ce5fe7a83569fef0766baca11235b83f38f0",
      "parents": [
        "73fb7c7eb37e488bab8298be4110e30d83af2184"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Aug 03 01:11:04 2015"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Aug 03 01:12:16 2015"
      },
      "message": "added tcmalloc_unittest path with TCMALLOC_HEAP_LIMIT_MB\u003d512\n\nI.e. so that we can exercise \"voluntary\" OOM conditions better.\n"
    },
    {
      "commit": "73fb7c7eb37e488bab8298be4110e30d83af2184",
      "tree": "8db533da17dbba54eb302ef5953ff0958e4b8196",
      "parents": [
        "eb725ff26371dfb5ae2523802c6abe75833cacef"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Aug 02 08:47:55 2015"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Aug 03 01:12:16 2015"
      },
      "message": "added test on errno \u003d ENOMEM on out of memory\n"
    },
    {
      "commit": "eb725ff26371dfb5ae2523802c6abe75833cacef",
      "tree": "932fdd3286ec0892f2bea72bf0b2d0aca9a77609",
      "parents": [
        "53833298f3822b2b8b78c9dc85160d65d78a6857"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Aug 02 03:54:39 2015"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Aug 03 00:25:13 2015"
      },
      "message": "unbreak heap-profiler-unittest on gcc 5\n\ngcc 5 has got nice new optimization (-fipa-icf) which merges identical\nfunctions into one. And that causes heap-profiler_unittest to fail\nsince it expects to see both Allocate and Allocate2 in heap\nprofiles. And smart GCC detects that they are same function and makes\none function out of two and thus breaks this test.\n\nNew code simply adds (disabled) logging calls to make those functions\nnon-identical.\n"
    },
    {
      "commit": "53833298f3822b2b8b78c9dc85160d65d78a6857",
      "tree": "569639ac7d0d9419534118f8cf881ded83a1ddc6",
      "parents": [
        "024bae96ce8e1591993fc0da191ce0a92d609481"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Aug 02 02:46:34 2015"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Aug 02 23:53:24 2015"
      },
      "message": "unbreak heap_checker_unittest on gcc 5\n\nGCC 5 ended up too smart and optimized out assignment of allocated\nblock to global variable. Which caused test to fail since it triggered\nunexpected \"leak\".\n"
    },
    {
      "commit": "024bae96ce8e1591993fc0da191ce0a92d609481",
      "tree": "837b16dc57b73fb7b1d2d962892390ce66a2b562",
      "parents": [
        "64e0133901a20f83c41adb36748fd19d21228515"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Aug 02 00:41:42 2015"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Aug 02 23:53:24 2015"
      },
      "message": "dropped support for PREANSINEW define which nobody needs anymore\n"
    },
    {
      "commit": "64e0133901a20f83c41adb36748fd19d21228515",
      "tree": "86d91f813f7c800fc00d4027419d1bc9170b0ead",
      "parents": [
        "e1d1311cfb6312cd44e086c879f3e95cbfa0eb9d"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun May 03 19:55:47 2015"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Aug 02 23:53:19 2015"
      },
      "message": "added trivial malloc fast-path benchmark\n\nWhile this is not good representation of real-world production malloc\nbehavior, it is representative of length (instruction-wise and well as\ncycle-wise) of fast-path. So this is better than nothing.\n"
    },
    {
      "commit": "e1d1311cfb6312cd44e086c879f3e95cbfa0eb9d",
      "tree": "dc74b1b2ecdd97a419c9acd4a7cd6355a47f7c55",
      "parents": [
        "b5b79860fd2b8e1a9b0573e93f942695f2992b59"
      ],
      "author": {
        "name": "Tom Conerly",
        "email": "tomconerly@gmail.com",
        "time": "Mon Jul 27 18:35:29 2015"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Aug 01 19:34:08 2015"
      },
      "message": "issue-699: Free list on error paths\n"
    },
    {
      "commit": "b5b79860fd2b8e1a9b0573e93f942695f2992b59",
      "tree": "27ca4f4850d0498fcc33c96f57ed2870b5715983",
      "parents": [
        "7df7f14c949d89d9c3f5c7c339bbdda81fb8abc7"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Aug 01 18:24:56 2015"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Aug 01 18:24:56 2015"
      },
      "message": "issue-702: correctly declare arg-less functions in profiler.h\n\nThis is patch by user mitchblank.\n\nFrom his words:\n\nThe problem is pretty simple.  Ancient C code allowed declarations\nwithout argument prototypes, i.e.\n\n  int foo();\n\nFor compatibility this is still accepted.  If you want to declare a\nfunction with zero prototypes the correct way to do it is:\n\n   int foo(void);\n\nC++ also accepts this syntax, but it\u0027s not needed there.\n\nNormally compilers still accept the old-style entries, but with\nsufficient warning flags gcc will complain about them.  It is good for\nheader files to have the explicit \"void\" argument so all compilers are\nkept happy.\n\nI\u0027m attaching a simple patch to add the \"void\" parameter to that file.\nI haven\u0027t checked if other headers have the same problem (I\u0027m just\nusing the profiler at the moment)\n\n\u003cend of quote\u003e\n\nIn fact \"int foo()\" means \"foo accepts any args\" and we really want\n\"foo has no args\". For which int foo (void) is right declaration.\n"
    },
    {
      "commit": "7df7f14c949d89d9c3f5c7c339bbdda81fb8abc7",
      "tree": "a49d0694aea16d85382255ff0af419a24bc2ffc5",
      "parents": [
        "cb998e56d763cfe901cf30a692d4cfd4f85259ae"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Jun 14 04:35:06 2015"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Jun 28 04:17:48 2015"
      },
      "message": "issue-693: enable futex usage on arm\n\nThis patch was contributed by user spotrh.\n"
    },
    {
      "commit": "cb998e56d763cfe901cf30a692d4cfd4f85259ae",
      "tree": "0e18fb01323b615723f61670e8283dbc5534529f",
      "parents": [
        "36066b8df4bc516ade5209a1f60bd84d6448b531"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Jun 14 04:28:28 2015"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Jun 28 04:17:48 2015"
      },
      "message": "issue-693: convert sys_futex to it\u0027s 6-arg form\n\nBecause sys_futex actually takes 6 args in more recent kernels (even\nthough last two args are unused for FUTEX_{WAKE,WAIT}.\n\nThis is patch contributed by user spotrh.\n"
    },
    {
      "commit": "36066b8df4bc516ade5209a1f60bd84d6448b531",
      "tree": "f030202c792deb13d207b4704512b449d74da06e",
      "parents": [
        "c4069d2d37b67296d675c2d1de42a46dc6d43efc"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Jun 28 04:15:30 2015"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Jun 28 04:15:30 2015"
      },
      "message": "issue-695: implementated TCMALLOC_TRACE_FILE variable\n\nThis is contributed by Paolo Bonzini.\n\nThis commit adds TCMALLOC_TRACE_FILE environment variable, which if\ndefined overrides location of malloc trace file.\n"
    },
    {
      "commit": "c4069d2d37b67296d675c2d1de42a46dc6d43efc",
      "tree": "623663557077c18952f3b1ffdc072f52cd1c3178",
      "parents": [
        "019362fefcdca39a46d1a831ed46266c24b9a273"
      ],
      "author": {
        "name": "Brian Silverman",
        "email": "bsilver16384@gmail.com",
        "time": "Tue Jun 16 23:56:48 2015"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Wed Jun 17 02:58:56 2015"
      },
      "message": "Add empty virtual destructor to class with virtual methods.\n\nClang 3.5 has a warning about deleting objects with virtual methods\nthrough non-virtual destructors which was triggered. I\u0027m not sure\nwhether this actually creates any undefined or otherwise incorrect\nbehavior, but it seems like a good thing to fix regardless.\n\nExample compiler warning:\nthird_party/gperftools/src/tests/profile-handler_unittest.cc:282:5: error:\n  delete called on \u0027(anonymous namespace)::BusyThread\u0027 that has virtual\n  functions but non-virtual destructor [-Wdelete-non-virtual-dtor]\n    delete busy_worker_;\n    ^\n"
    },
    {
      "commit": "019362fefcdca39a46d1a831ed46266c24b9a273",
      "tree": "f7c9d9a429b0aa77c4d28788de3ede2e310f84ca",
      "parents": [
        "81d8d2a9e7f941a2051781fd0fe62c683c32f1ef"
      ],
      "author": {
        "name": "Patrick LoPresti",
        "email": "lopresti@gmail.com",
        "time": "Mon May 25 18:56:51 2015"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat May 30 17:25:42 2015"
      },
      "message": "Add support for CPUPROFILE_TIMER_SIGNAL environment variable.\n\nWhich both enables per-thread timers and allows the signal number for\nthe timer to be selected.\n\n[alk@tut.by: reformatted commit message for subject line length]\nSigned-off-by: Aliaksey Kandratsenka \u003calk@tut.by\u003e\n"
    },
    {
      "commit": "81d8d2a9e7f941a2051781fd0fe62c683c32f1ef",
      "tree": "dd5bcd30dfa63e4d249c3ac81973955eaa5a9a4f",
      "parents": [
        "64d1a86cb8da245c982d470a7dfdd635197e6e5e"
      ],
      "author": {
        "name": "Milton Chiang",
        "email": "milton.chiang@mediatek.com",
        "time": "Wed May 13 13:53:05 2015"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat May 23 19:01:48 2015"
      },
      "message": "Add \"ARMv8-A\" to the supporting list of ARM architecture.\n"
    },
    {
      "commit": "64d1a86cb8da245c982d470a7dfdd635197e6e5e",
      "tree": "57d9ddf28a9aa68f68904beb1ce1082212d2ee9f",
      "parents": [
        "7013b219970a329d1db58fbd7fa7c907bec8dbba"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat May 09 22:38:12 2015"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat May 09 22:38:12 2015"
      },
      "message": "include time.h for struct timespec on Visual Studio 2015\n\nThis patch was submitted by user wmamrak.\n"
    },
    {
      "commit": "7013b219970a329d1db58fbd7fa7c907bec8dbba",
      "tree": "1496a9991f9ade6c289e06b511263b5708c7dbc1",
      "parents": [
        "f25f8e0bf2d361f852929848d79d7ba54586c352"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat May 09 19:48:11 2015"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat May 09 21:56:58 2015"
      },
      "message": "hook mi_force_{un,}lock on OSX instead of pthread_atfork\n\nThis is patch by Anton Samokhvalov.\n\nApparently it helps with locking around forking on OSX.\n"
    },
    {
      "commit": "f25f8e0bf2d361f852929848d79d7ba54586c352",
      "tree": "b57ec1b8f982d48bc7737db5c93a2a9aa052a7d5",
      "parents": [
        "772a686c45455893708178d3b59b1d3b571015aa"
      ],
      "author": {
        "name": "Angus Gratton",
        "email": "gus@projectgus.com",
        "time": "Sun May 03 22:18:43 2015"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat May 09 19:03:17 2015"
      },
      "message": "Clarify that only tcmalloc_minimal is supported on Windows.\n"
    },
    {
      "commit": "772a686c45455893708178d3b59b1d3b571015aa",
      "tree": "2977a96c0210f2fa6f88188067eb43d5ad1f74d9",
      "parents": [
        "0a3bafd645764250732f3c0627534142568f6f1f"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun May 03 20:15:16 2015"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun May 03 20:15:16 2015"
      },
      "message": "issue-683: fix compile error in clang with -m32 and 64-bit off_t\n"
    },
    {
      "commit": "0a3bafd645764250732f3c0627534142568f6f1f",
      "tree": "7c6d461ff970a55da1c882762feecfbc795024db",
      "parents": [
        "6ce10a2a05f13803061538d5c77e89695de59be4"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Apr 11 17:35:53 2015"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Apr 11 17:35:53 2015"
      },
      "message": "fix typo in PrintAvailability code\n\nThis is patch contributed by user ssubotin.\n"
    },
    {
      "commit": "6ce10a2a05f13803061538d5c77e89695de59be4",
      "tree": "1b46b0da2c951c16837c45e5eea0cdee12107659",
      "parents": [
        "2c1a165fa56a6f8dff8fa2662ceda971ad676ead"
      ],
      "author": {
        "name": "Matt Cross",
        "email": "mat.cross@gmail.com",
        "time": "Thu Mar 26 20:13:56 2015"
      },
      "committer": {
        "name": "Matt Cross",
        "email": "matt.cross@cacheio.com",
        "time": "Thu Mar 26 20:24:11 2015"
      },
      "message": "Add support for printing collapsed stacks for generating flame graphs.\n"
    },
    {
      "commit": "2c1a165fa56a6f8dff8fa2662ceda971ad676ead",
      "tree": "eef8e5bbc6583438de7de4454a0c30b8be794a16",
      "parents": [
        "2e654956287043a30aeaec20e5c19650358af618"
      ],
      "author": {
        "name": "Matt Cross",
        "email": "matt.cross@gmail.com",
        "time": "Thu Mar 26 16:10:23 2015"
      },
      "committer": {
        "name": "Matt Cross",
        "email": "matt.cross@cacheio.com",
        "time": "Thu Mar 26 16:14:56 2015"
      },
      "message": "Add support for reading debug symbols automatically on systems where shared libraries with debug symbols are installed at \"/usr/lib/debug/\u003coriginalpath\u003e.debug\", such as RHEL and CentOS.\n"
    },
    {
      "commit": "2e654956287043a30aeaec20e5c19650358af618",
      "tree": "1f7e8c7aa7a886c8d7cc0cb0d459c9542f5188c6",
      "parents": [
        "90d7408d381cf2ad68ce4974cbccd51ed5222ca3"
      ],
      "author": {
        "name": "Jonathan Lambrechts",
        "email": "jonathan@aljl.eu",
        "time": "Fri Feb 13 17:52:21 2015"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Feb 14 01:54:21 2015"
      },
      "message": "callgrind : handle inlined functions\n"
    },
    {
      "commit": "90d7408d381cf2ad68ce4974cbccd51ed5222ca3",
      "tree": "eeef71a64ccd9f056c821bd18e59369be5e42ba3",
      "parents": [
        "aa963a24ae7a74b095a631ea6a86cd071c453911"
      ],
      "author": {
        "name": "Jonathan Lambrechts",
        "email": "jonathan@aljl.eu",
        "time": "Fri Feb 13 17:51:33 2015"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Feb 14 01:54:14 2015"
      },
      "message": "pprof : callgrind : fix unknown files\n"
    },
    {
      "commit": "aa963a24ae7a74b095a631ea6a86cd071c453911",
      "tree": "572a960067d36972caf4f4aa544acfd2be9e60f2",
      "parents": [
        "c66aeabdbacbfd3aff7a6633f34526ca32642f67"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Feb 09 16:35:03 2015"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Feb 09 16:35:03 2015"
      },
      "message": "issue-672: fixed date of news entry of gperftools 2.4 release\n\nIt is 2015 and not 2014. Spotted and reported by Armin Rigo.\n"
    },
    {
      "commit": "c66aeabdbacbfd3aff7a6633f34526ca32642f67",
      "tree": "4f868d66735ec384064c7afb2b2bfe16f9475280",
      "parents": [
        "689e4a5bb4b2a8afecb85e83b8e4f294f80b6124"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Jan 10 22:35:54 2015"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Jan 10 22:35:54 2015"
      },
      "message": "fixed default value of HEAP_PROFILER_TIME_INTERVAL in .html doc\n"
    },
    {
      "commit": "689e4a5bb4b2a8afecb85e83b8e4f294f80b6124",
      "tree": "eef942a509d00cb51fad0db7306434893de3c8fe",
      "parents": [
        "3f5f1bba0c2cb4862c38b0c9050f1cede8a5c344"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Jan 10 20:26:51 2015"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Jan 10 20:26:51 2015"
      },
      "message": "bumped version to 2.4\n"
    },
    {
      "commit": "3f5f1bba0c2cb4862c38b0c9050f1cede8a5c344",
      "tree": "f9b12334f65464a8aa27f5dc995ad5af7f441ab7",
      "parents": [
        "c4dfdebc796c2e802db686a7eea483f3d31edbcf"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Dec 29 02:18:27 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Dec 29 02:28:18 2014"
      },
      "message": "bumped version to 2.4rc\n"
    },
    {
      "commit": "c4dfdebc796c2e802db686a7eea483f3d31edbcf",
      "tree": "28279533ba758fda066b33069ae7653d490a2ad9",
      "parents": [
        "0096be5f6f0bb2a01438ee78b7bb6158ffa5a1fb"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Dec 29 01:53:02 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Dec 29 02:28:15 2014"
      },
      "message": "updated NEWS for gperftools 2.4rc\n"
    },
    {
      "commit": "0096be5f6f0bb2a01438ee78b7bb6158ffa5a1fb",
      "tree": "67bdc071566a027b22ecc76552cfc89bf75f4cbc",
      "parents": [
        "4859d8020579cd8db8b1f8bc6af382104b38f96f"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Dec 21 01:17:41 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Dec 28 23:35:54 2014"
      },
      "message": "pprof: allow disabling auto-removal of \"constant 2nd frame\"\n\n\"constand 2nd frame\" feature is supposed to detect and workaround\nincorrect cpu profile stack captures where parts of or whole cpu\nprofiling signal handler frames are not skipped.\n\nI\u0027ve seen programs where this feature incorrectly removes non-signal\nframes.\n\nPlus it actually hides bugs in stacktrace capturing which we want be\nable to spot.\n\nThere is now --no-auto-signal-frm option for disabling it.\n"
    },
    {
      "commit": "4859d8020579cd8db8b1f8bc6af382104b38f96f",
      "tree": "0d63e8c99cc2a0640b45a01275116d4cf4dac123",
      "parents": [
        "812ab1ee7e4365e6a9568834c7e8f4aef10018fb"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Dec 21 03:56:13 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Dec 28 23:35:54 2014"
      },
      "message": "cpuprofiler: drop correct number of signal handler frames\n\nWe actually have 3 and not 2 of them.\n"
    },
    {
      "commit": "812ab1ee7e4365e6a9568834c7e8f4aef10018fb",
      "tree": "dbc8122128984524cf1f9974a3fe92a960a67608",
      "parents": [
        "e6e78315e4761ad121a5eeb4fdffe3571d81ac17"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Dec 21 03:53:12 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Dec 28 23:35:54 2014"
      },
      "message": "pprof: eliminate duplicate top frames if dropping signal frames\n\nIn cpu profiles that had parts of signal handler we could have\nsituation like that:\n\n* PC\n* signal handler frame\n* PC\n\nSpecifically when capturing stacktraces via libunwind.\n\nFor such stacktraces pprof used to draw self-cycle in functions\nconfusing everybody. Given that me might have a number of such\nprofiles in the wild it makes sense to treat that duplicate PC issue.\n"
    },
    {
      "commit": "e6e78315e4761ad121a5eeb4fdffe3571d81ac17",
      "tree": "09bedd1b361233390292954736152eb2dd516ffa",
      "parents": [
        "24b8ec28464712bc124af5655ebf877fb3f79032"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Dec 21 03:04:43 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Dec 28 23:35:54 2014"
      },
      "message": "cpuprofiler: better explain deduplication of top stacktrace entry\n"
    },
    {
      "commit": "24b8ec28464712bc124af5655ebf877fb3f79032",
      "tree": "a42e9aa757e85bc8bb34bffcf38312e0068d7630",
      "parents": [
        "83588de7204124c8d60703f169c2f3af8aa0ce5f"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Dec 21 01:10:38 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Dec 28 23:35:54 2014"
      },
      "message": "cpuprofiler: disable capturing stacktrace from signal\u0027s ucontext\n\nThis was reported to cause problems due to libunwind occasionally\nreturning top level pc that is 1 smaller than real pc which causes\nproblems.\n"
    },
    {
      "commit": "83588de7204124c8d60703f169c2f3af8aa0ce5f",
      "tree": "a23c68c0c17eb64ee43c724780fa23940afbfd35",
      "parents": [
        "2f29c9b06220ce6ad75d5ab2b98e9f63ade79eea"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Dec 21 01:04:10 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Dec 28 23:35:54 2014"
      },
      "message": "pprof: added support for dumping stacks in --text mode\n\nWhich is very useful for diagnosing stack capturing and processing\nbugs.\n"
    },
    {
      "commit": "2f29c9b06220ce6ad75d5ab2b98e9f63ade79eea",
      "tree": "92a5951d5d1198cf123e5d5360c09058eade9d81",
      "parents": [
        "b8b027d09a53dd6292d2f7c45aec40198628a808"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Dec 21 01:03:36 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Dec 28 23:35:54 2014"
      },
      "message": "pprof: made --show-addresses work\n"
    },
    {
      "commit": "b8b027d09a53dd6292d2f7c45aec40198628a808",
      "tree": "36ecab226590f84d33e6d07ed3b2c01c83ab0a78",
      "parents": [
        "3f55d874be8812aef9f0f567048188584962b4c1"
      ],
      "author": {
        "name": "Raphael Moreira Zinsly",
        "email": "rzinsly@linux.vnet.ibm.com",
        "time": "Tue Dec 23 12:55:22 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Tue Dec 23 18:51:54 2014"
      },
      "message": "Make PPC64 use 64K of internal page size for tcmalloc by default\n\nThis patch set the default tcmalloc internal page size to 64K when\nbuilt on PPC.\n"
    },
    {
      "commit": "3f55d874be8812aef9f0f567048188584962b4c1",
      "tree": "70b3412fe3c0980e18487bb68363eae704d637cb",
      "parents": [
        "1035d5c18f64d114ac790b92a96f3b3a1a301eb9"
      ],
      "author": {
        "name": "Raphael Moreira Zinsly",
        "email": "rzinsly@linux.vnet.ibm.com",
        "time": "Tue Dec 23 12:29:49 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Tue Dec 23 18:51:51 2014"
      },
      "message": "New configure flags to set the alignment and page size of tcmalloc\n\nAdded two new configure flags, --with-tcmalloc-pagesize and\n--with-tcmalloc-alignment, in order to set the tcmalloc internal page\nsize and tcmalloc allocation alignment without the need of a compiler\ndirective and to make the choice of the page size independent of the\nallocation alignment.\n"
    },
    {
      "commit": "1035d5c18f64d114ac790b92a96f3b3a1a301eb9",
      "tree": "2d84bb39e78eccd349eb5e02f3f455e8ff5eb125",
      "parents": [
        "d570a6391cf4c5a5570e22ada5cf0b324c7b8dfd"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Dec 22 03:52:34 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Dec 22 03:52:34 2014"
      },
      "message": "start building malloc_extension_c_test even with static linking\n\nComment in Makefile.am stating that it doesn\u0027t work with static\nlinking is not accurate anymore.\n"
    },
    {
      "commit": "d570a6391cf4c5a5570e22ada5cf0b324c7b8dfd",
      "tree": "662ec5cc273e3f40e6b977f5117c918d0fe09d15",
      "parents": [
        "4ace8dbbe2e04da1029a539c72b90dee1724c33f"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Dec 22 03:33:25 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Dec 22 03:33:25 2014"
      },
      "message": "unbreak malloc_extension_c_test on clang\n\nLooks like even force_malloc trick was not enough to force clang to\nactually call malloc. I\u0027m now calling tc_malloc directly to prevent\nthat smartness.\n"
    },
    {
      "commit": "4ace8dbbe2e04da1029a539c72b90dee1724c33f",
      "tree": "f08d3226b9eb9543241ac211ff138868ba0e2da4",
      "parents": [
        "f72e37c3f99d942dd648e392abc65f294aa94fa8"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Dec 22 02:49:47 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Dec 22 02:49:47 2014"
      },
      "message": "added subdir-objects automake options\n\nThis is suggested by automake itself regarding future-compat.\n"
    },
    {
      "commit": "f72e37c3f99d942dd648e392abc65f294aa94fa8",
      "tree": "e0c8621a828f19e14da383d2e6094c0638454fcd",
      "parents": [
        "f94ff0cc0943c7b7bb9390f9d83a57c9d9e11fd0"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Dec 22 02:27:03 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Dec 22 02:27:03 2014"
      },
      "message": "fixed C++ comment warning in malloc_extension_c.h from C compiler\n"
    },
    {
      "commit": "f94ff0cc0943c7b7bb9390f9d83a57c9d9e11fd0",
      "tree": "54ef84eb1db8bfba07edd926add089322ce21fd3",
      "parents": [
        "987a724c23df4b29eb457e96bb5c1bbab15dc90e"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Nov 09 22:41:36 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Dec 21 05:20:43 2014"
      },
      "message": "made AtomicOps_x86CPUFeatureStruct hidden\n\nSo that access to has_sse2 is faster under -fPIC.\n"
    },
    {
      "commit": "987a724c23df4b29eb457e96bb5c1bbab15dc90e",
      "tree": "de066755cd2b0ef6358a94c21ce2991f44cfa243",
      "parents": [
        "7da5bd014d77ddaf694054b1e3ae0a3ef92ab384"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Nov 09 22:20:20 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Dec 21 05:20:43 2014"
      },
      "message": "dropped atopmicops workaround for irrelevant Opteron locking bug\n\nIt\u0027s not cheap at all when done in this way (i.e. without runtime\npatching) and apparently useless.\n\nIt looks like Linux kernel never got this workaround at all. See\nbugzilla ticket: https://bugzilla.kernel.org/show_bug.cgi?id\u003d11305\n\nAnd I see no traces of this workaround in glibc either.\n\nOn the other hand, opensolaris folks apparently still have it (or\nsomething similar, based on comments on linux bugzilla) in their code:\nhttps://github.com/illumos/illumos-gate/blob/32842aabdc7c6f8f0c6140a256cf42cf5404fefb/usr/src/uts/i86pc/os/mp_startup.c#L1136\n\nAnd affected CPUs (if any) are from year 2008 (that\u0027s 6 years now).\n\nPlus even if somebody still uses those cpus (which is unlikely), they\nwon\u0027t have working kernel and glibc anyways.\n"
    },
    {
      "commit": "7da5bd014d77ddaf694054b1e3ae0a3ef92ab384",
      "tree": "72744e6ab6bcb0246d31df2c96b8750013f52a0a",
      "parents": [
        "51b0ad55b3267caff6cd2d25815bfb913179b526"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Dec 21 05:18:07 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Dec 21 05:18:07 2014"
      },
      "message": "enabled aggressive decommit by default\n\nTCMALLOC_AGGRESSIVE_DECOMMIT\u003df is one way to disable it and\nSetNumericProperty is another.\n"
    },
    {
      "commit": "51b0ad55b3267caff6cd2d25815bfb913179b526",
      "tree": "7990d13988f24255b037fb6f7393479796f6ba3b",
      "parents": [
        "bce72dda078d2cb3e9745077f9903e642a966131"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Nov 10 01:36:49 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Dec 08 01:46:04 2014"
      },
      "message": "added basic unit test for singular malloc hooks\n"
    },
    {
      "commit": "bce72dda078d2cb3e9745077f9903e642a966131",
      "tree": "943e3d582ab6ab5cd88302319030f50cea05c01b",
      "parents": [
        "4f051fddcd7af53e1607b6a4866ffa461a0033ef"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Nov 10 01:12:05 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Dec 08 01:46:04 2014"
      },
      "message": "inform compiler that tcmalloc allocation sampling is unlikely\n\nNow compiler generates slightly better code which produces jump-less\ncode for common case of not sampling allocations.\n"
    },
    {
      "commit": "4f051fddcd7af53e1607b6a4866ffa461a0033ef",
      "tree": "433ad878607abd2c4462419ed2e3d153d4cff892",
      "parents": [
        "81291ac3992ec7500faf2026c72feb80c9634dc3"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Mar 15 20:18:28 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Dec 08 01:46:04 2014"
      },
      "message": "eliminated CheckIfKernelSupportsTLS\n\nWe don\u0027t care about pre-2.6.0 kernels anymore. So we can assume that\nif compile time check worked, then at runtime it\u0027ll work.\n"
    },
    {
      "commit": "81291ac3992ec7500faf2026c72feb80c9634dc3",
      "tree": "b89171be2c494d0054ddaabf459c1718ea2584ea",
      "parents": [
        "105c004d0c84137f32cc71b8d3f7899fcc8c2e72"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Nov 10 00:48:45 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Dec 08 01:46:04 2014"
      },
      "message": "set elf visibility to hidden for malloc hooks\n\nTo speed up access to them under -fPIC.\n"
    },
    {
      "commit": "105c004d0c84137f32cc71b8d3f7899fcc8c2e72",
      "tree": "e27d1e7370d3b5c2aeef502190b4deab1dc7794b",
      "parents": [
        "6a6c49e1f53df3d00a0661a86090534146ce686c"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Nov 09 22:40:30 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Dec 08 01:46:04 2014"
      },
      "message": "introduced ATTRIBUTE_VISIBILITY_HIDDEN\n\nSo that we can disable elf symbol interposition for certain\nperf-sensitive symbols.\n"
    },
    {
      "commit": "6a6c49e1f53df3d00a0661a86090534146ce686c",
      "tree": "ddb5d479170c75a2aa500ff8f5454a291d18363c",
      "parents": [
        "ba0441785bae214566008e69adcd915800d9dbb3"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Nov 10 00:23:06 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Dec 08 01:46:04 2014"
      },
      "message": "replaced separate singular malloc hooks with faster HookList\n\nSpecifically, we can now check in one place if hooks are set at all,\ninstead of two places. Which makes fast path shorter.\n"
    },
    {
      "commit": "ba0441785bae214566008e69adcd915800d9dbb3",
      "tree": "afec655eca13667f567639ba4a03a921495de201",
      "parents": [
        "890f34c77ef79dfe1e00ce36a3f91aee7fe759b7"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Nov 10 00:13:54 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Dec 08 01:46:04 2014"
      },
      "message": "removed extra barriers in malloc hooks mutation methods\n\nBecause those are already done under spinlock and read-only and\nlockless Traverse is already tolerant to slight inconsistencies.\n"
    },
    {
      "commit": "890f34c77ef79dfe1e00ce36a3f91aee7fe759b7",
      "tree": "636fce91b8f36166cb261d1850d1a1a8faa8d2b7",
      "parents": [
        "81ed7dff11de915b12c4111d403e52c81c786f82"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Nov 10 00:08:59 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Dec 08 01:46:04 2014"
      },
      "message": "introduced support for deprecated singular hooks into HookList\n\nSo that we can later drop separate singular hooks.\n"
    },
    {
      "commit": "81ed7dff11de915b12c4111d403e52c81c786f82",
      "tree": "029c7a1e36be95d43faae86b7d7a5f89c2a4944b",
      "parents": [
        "463a619408219fff8955d47a71de1aab31ebd129"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Dec 07 21:33:40 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Dec 07 21:33:40 2014"
      },
      "message": "returned date of 2.3rc in NEWS back\n"
    },
    {
      "commit": "463a619408219fff8955d47a71de1aab31ebd129",
      "tree": "6966dde23ec011cfd98f5025b840152ca26a67bd",
      "parents": [
        "76e8138e12567e2ee1f638e8fcffadc2ca1de83d"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Dec 07 20:53:35 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Dec 07 20:53:35 2014"
      },
      "message": "bumped version to 2.3\n"
    },
    {
      "commit": "76e8138e12567e2ee1f638e8fcffadc2ca1de83d",
      "tree": "f2520f09b6dee7521f76c0c959504a1700be1c93",
      "parents": [
        "8eb4ed785ae883acb6425fd980e9d3e6bdcab89d"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Dec 07 20:46:49 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Dec 07 20:46:49 2014"
      },
      "message": "updated NEWS for gperftools 2.3\n"
    },
    {
      "commit": "8eb4ed785ae883acb6425fd980e9d3e6bdcab89d",
      "tree": "7ec6f11956e52450c8f1e2a1720f61369bf5788c",
      "parents": [
        "3b94031d21fac39ce5be820f4f8bc37626ed4c08"
      ],
      "author": {
        "name": "Raphael Moreira Zinsly",
        "email": "rzinsly@linux.vnet.ibm.com",
        "time": "Thu Nov 27 16:11:09 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Thu Nov 27 20:51:33 2014"
      },
      "message": "Added option to disable libunwind linking\n\nThis patch adds a configure option to enable or disable libunwind linking.\nThe patch also disables libunwind on ppc by default.\n"
    },
    {
      "commit": "3b94031d21fac39ce5be820f4f8bc37626ed4c08",
      "tree": "0b672d7d91588aca62e40169a42ada92cb87d087",
      "parents": [
        "3ace468202a8647a16134d0bb42fa497fa3ec0d4"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Thu Nov 27 19:48:08 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Thu Nov 27 20:30:36 2014"
      },
      "message": "compile libunwind unwinder only of __thread is supported\n\nThis fixed build on certain OSX that I have access to.\n"
    },
    {
      "commit": "3ace468202a8647a16134d0bb42fa497fa3ec0d4",
      "tree": "675a6b2976e0a33958c76bdafadd5f93b845e4f5",
      "parents": [
        "e7d5e512b068fb76f5eeed7985bebd9c0d14e226"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Thu Nov 27 18:43:11 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Thu Nov 27 18:45:53 2014"
      },
      "message": "issue-658: correctly close socketpair fds when socketpair fails\n\nThis applies patch by glider.\n"
    },
    {
      "commit": "e7d5e512b068fb76f5eeed7985bebd9c0d14e226",
      "tree": "11be16b1f7f56688de7835fe4e5084f4528130d4",
      "parents": [
        "1d44d378513a8782c058833118b664f38214810b"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Nov 03 04:02:12 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Nov 03 04:13:33 2014"
      },
      "message": "bumped version to 2.3rc\n"
    },
    {
      "commit": "1d44d378513a8782c058833118b664f38214810b",
      "tree": "beeacd569678b9cd26e4831ac9d7e40afde64e2e",
      "parents": [
        "1108d83cf4a1692fce3b736e16d3e98c33329177"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Nov 03 03:38:29 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Nov 03 03:59:05 2014"
      },
      "message": "updated NEWS for gperftools 2.3rc\n"
    },
    {
      "commit": "1108d83cf4a1692fce3b736e16d3e98c33329177",
      "tree": "9448adf78207da3b9007bbf5de0793d64fa8851a",
      "parents": [
        "714bd93e42535e759716324a90fbb395506499d2"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Sep 07 20:09:14 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Nov 03 02:29:55 2014"
      },
      "message": "implemented cpu-profiling mode that profiles threads separately\n\nDefault mode of operation of cpu profiler uses itimer and\nSIGPROF. This timer is by definition per-process and no spec defines\nwhich thread is going to receive SIGPROF. And it provides correct\nprofiles only if we assume that probability of picking threads will be\nproportional to cpu time spent by threads.\n\nIt is easy to see, that recent Linux (at least on common SMP hardware)\ndoesn\u0027t satisfy that assumption. Quite big skews of SIGPROF ticks\nbetween threads is visible. I.e. I could see as big as 70%/20%\ndivision instead of 50%/50% for pair of cpu-hog threads. (And I do see\nit become 50/50 with new mode)\n\nFortunately POSIX provides mechanism to track per-thread cpu time via\nposix timers facility. And even more fortunately, Linux also provides\nmechanism to deliver timer ticks to specific threads.\n\nInterestingly, it looks like FreeBSD also has very similar facility\nand seems to suffer from same skew.  But due to difference in a way\nhow threads are identified, I haven\u0027t bothered to try to support this\nmode on FreeBSD.\n\nThis commit implements new profiling mode where every thread creates\nposix timer which tracks thread\u0027s cpu time. Threads also also set up\nsignal delivery to itself on overflows of that timer.\n\nThis new mode requires every thread to be registered in cpu\nprofiler. Existing ProfilerRegisterThread function is used for that.\n\nBecause registering threads requires application support (or suitable\nLD_PRELOAD-able wrapper for thread creation API), new mode is off by\ndefault. And it has to be manually activated by setting environment\nvariable CPUPROFILE_PER_THREAD_TIMERS.\n\nNew mode also requires librt symbols to be available. Which we do not\nlink to due to librt\u0027s dependency on libpthread.  Which we avoid due\nto perf impact of bringing in libpthread to otherwise single-threaded\nprograms. So it has to be either already loaded by profiling program\nor LD_PRELOAD-ed.\n"
    },
    {
      "commit": "714bd93e42535e759716324a90fbb395506499d2",
      "tree": "23044611d22894b50252b9489a65cffa2e20ec2f",
      "parents": [
        "8de46e66fcd2577758ab297b553bb0f468d8a97a"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Aug 11 03:28:11 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Nov 03 02:29:55 2014"
      },
      "message": "drop workaround for too old redhat 7\n\nNote that this is _not_ RHEL7 but original redhat 7 from early 2000s.\n"
    },
    {
      "commit": "8de46e66fcd2577758ab297b553bb0f468d8a97a",
      "tree": "a0da4c1da89cbab2e94ca04bad018978ad2fdcb6",
      "parents": [
        "2e5ee0488996437aeef2028ad95d969b56abcad1"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Aug 11 02:38:07 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Nov 03 02:29:55 2014"
      },
      "message": "don\u0027t add leaf function twice to profile under libunwind\n"
    },
    {
      "commit": "2e5ee0488996437aeef2028ad95d969b56abcad1",
      "tree": "b98b72380e998b695f72f1c0b9ce15cd3116dcee",
      "parents": [
        "6efe96b41c9531f68f806faa0464445f884178ce"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Aug 10 19:19:45 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Nov 03 02:29:55 2014"
      },
      "message": "pprof: indicate if using remote profile\n\nMissing profile file is common source of confusion. So a bit more\nclarify is useful.\n"
    },
    {
      "commit": "6efe96b41c9531f68f806faa0464445f884178ce",
      "tree": "978ec1b994d6531c43a0d57b7949214944a3baec",
      "parents": [
        "8e97626378d5c4151a480dea1964e25969c9311d"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Oct 11 22:09:18 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Nov 03 02:29:38 2014"
      },
      "message": "issue-493: correctly detect __ARM_ARCH_6ZK__ for MemoryBarrier\n\nWhich should fix issue reported by user pedronavf\n"
    },
    {
      "commit": "8e97626378d5c4151a480dea1964e25969c9311d",
      "tree": "9f138dd0a5fb01280f14538ebbbdb642e7df4baa",
      "parents": [
        "8c3dc52fcfe02412a529769a22cbc75388a5d368"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Nov 02 19:28:30 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Nov 02 19:28:30 2014"
      },
      "message": "issue-655: use safe getenv for aggressive decommit mode flag\n\nBecause otherwise we risk deadlock due to too early use of getenv on\nwindows.\n"
    },
    {
      "commit": "8c3dc52fcfe02412a529769a22cbc75388a5d368",
      "tree": "b83c4963199bd98891fef1cb01046f236e40b8ab",
      "parents": [
        "44c61ce6c4c713b194330641f400bbf64fd2abec"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Oct 18 23:35:57 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Oct 18 23:35:57 2014"
      },
      "message": "issue-654: [pprof] handle split text segments\n\nThis applies patch by user simonb.\n\nQuoting:\n\nRelocation packing splits a single executable load segment into two.  Before:\n\n  LOAD           0x000000 0x00000000 0x00000000 0x2034d28 0x2034d28 R E 0x1000\n  LOAD           0x2035888 0x02036888 0x02036888 0x182d38 0x1a67d0 RW  0x1000\n\nAfter:\n  LOAD           0x000000 0x00000000 0x00000000 0x14648 0x14648 R E 0x1000\n  LOAD           0x014648 0x0020c648 0x0020c648 0x1e286e0 0x1e286e0 R E 0x1000\n  ...\n  LOAD           0x1e3d888 0x02036888 0x02036888 0x182d38 0x1a67d0 RW  0x1000\n\nThe .text section is in the second LOAD, and this is not at\noffset/address zero.  The result is that this library shows up in\n/proc/self/maps as multiple executable entries, for example (note:\nthis trace is not from the library dissected above, but rather from an\nearlier version of it):\n\n  73b0c000-73b21000 r-xp 00000000 b3:19 786460 /data/.../libchrome.2160.0.so\n  73b21000-73d12000 ---p 00000000 00:00 0\n  73d12000-75a90000 r-xp 00014000 b3:19 786460 /data/.../libchrome.2160.0.so\n  75a90000-75c0d000 rw-p 01d91000 b3:19 786460 /data/.../libchrome.2160.0.so\n\nWhen parsing this, pprof needs to merge the two r-xp entries above\ninto a single entry, otherwise the addresses it prints are incorrect.\n\nThe following fix against 2.2.1 was sufficient to make pprof --text\nprint the correct output.  Untested with other pprof options.\n"
    },
    {
      "commit": "44c61ce6c4c713b194330641f400bbf64fd2abec",
      "tree": "3570dc165781c12a771d88e99b8700114281a5cb",
      "parents": [
        "2a28ef24ddf8013bff59914b10902f1fb07bf9b2"
      ],
      "author": {
        "name": "Ricardo M. Correia",
        "email": "rcorreia@wizy.org",
        "time": "Wed Oct 08 02:39:14 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Oct 11 23:37:29 2014"
      },
      "message": "Fix parsing /proc/pid/maps dump in CPU profile data file\n\nWhen trying to use pprof on my machine, the symbols of my program were\nnot being recognized.\n\nIt turned out that pprof, when calculating the offset of the text list\nof mapped objects (the last section of the CPU profile data file), was\nassuming that the slot size was always 4 bytes, even on 64-bit machines.\n\nThis led to ParseLibraries() reading a lot of garbage data at the\nbeginning of the map, and consequently the regex was failing to match on\nthe first line of the real (non-garbage) map.\n"
    },
    {
      "commit": "2a28ef24ddf8013bff59914b10902f1fb07bf9b2",
      "tree": "89fb95d44f0120b3aaf6e642ae5a0fba22f2db1e",
      "parents": [
        "bbf346a856d4a7c5c2ab0e65d7cccf3dc1f23f13"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Sep 06 23:49:24 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Sep 06 23:49:24 2014"
      },
      "message": "Added remaining memory allocated info to \u0027Exiting\u0027 dump message\n\nThis applies patch by user yurivict.\n"
    },
    {
      "commit": "bbf346a856d4a7c5c2ab0e65d7cccf3dc1f23f13",
      "tree": "f6d6b68f53c74a8f668f425175e5690832aa5305",
      "parents": [
        "b08d760958dbacc8da822f7f3db76d58c95a114d"
      ],
      "author": {
        "name": "Adam McNeeney",
        "email": "adam@meliorist.co.uk",
        "time": "Fri Aug 22 09:01:24 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Aug 23 21:59:30 2014"
      },
      "message": "Cope with new addr2line outputs for DWARF4\n\nCopes with ? for line number (converts to 0).\nCopes with (discriminator \u003cnum\u003e) suffixes to file/linenum (removes).\n\nChange-Id: I96207165e4852c71d3512157864f12d101cdf44a\n"
    },
    {
      "commit": "b08d760958dbacc8da822f7f3db76d58c95a114d",
      "tree": "2f44a5b74dca9397cf80d96930de1c43449fa90e",
      "parents": [
        "3c326d9f200a527bba45f1d222aa6aff20d42bc3"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Aug 23 21:45:08 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Aug 23 21:47:04 2014"
      },
      "message": "issue-641: Added --show_addresses option\n\nThis applies patch by user yurivict.\n"
    },
    {
      "commit": "3c326d9f200a527bba45f1d222aa6aff20d42bc3",
      "tree": "230bc3e669a69672763f93f06c3e7e0ffe551626",
      "parents": [
        "f1ae3c446f34f6e8ac901caba281051ec269e4df"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Tue Aug 19 15:14:08 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Tue Aug 19 15:30:07 2014"
      },
      "message": "issue-644: fix possible out-of-bounds access in GetenvBeforeMain\n\nAs suggested by user Ivan L.\n"
    },
    {
      "commit": "f1ae3c446f34f6e8ac901caba281051ec269e4df",
      "tree": "7e114e1d6fdc58678129b528017d164fbed09136",
      "parents": [
        "a12890df2519d254d1c497b8e0a65bb8fc9e1ab2"
      ],
      "author": {
        "name": "jiakai",
        "email": "jia.kai66@gmail.com",
        "time": "Mon Jul 28 18:28:03 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Aug 02 05:14:16 2014"
      },
      "message": "Add an option to allow disabling stripping template argument in pprof\n"
    },
    {
      "commit": "a12890df2519d254d1c497b8e0a65bb8fc9e1ab2",
      "tree": "304e23b3f54cdeb02842001cd70d2d4a4e846fc2",
      "parents": [
        "d5e36788d8bc626403dc020a86213cfc740ee73d"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Jul 26 21:12:42 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Jul 26 21:12:42 2014"
      },
      "message": "issue-635: allow whitespace in libraries paths\n\nThis applies change suggested by user mich...@sebesbefut.com\n"
    },
    {
      "commit": "d5e36788d8bc626403dc020a86213cfc740ee73d",
      "tree": "80a5bbe7a1157ed30656eabdd226f16792052973",
      "parents": [
        "4b788656bb9c480640d917d27d8a94a5eae436f5"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Jul 26 20:59:22 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Jul 26 21:04:26 2014"
      },
      "message": "issue-636: fix prof/web command on Windows/MinGW\n\nThis applies patch sent by user chaishushan.\n"
    },
    {
      "commit": "4b788656bb9c480640d917d27d8a94a5eae436f5",
      "tree": "29fa20fbadc5708e6a43384f7eac20abacfcf115",
      "parents": [
        "3abb5cb819bafe7004363f041c194afd827cb053"
      ],
      "author": {
        "name": "Michael Pasieka",
        "email": "michael.pasieka@highwinds.com",
        "time": "Mon Jul 14 01:09:35 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Jul 14 01:15:20 2014"
      },
      "message": "added option to display stack traces in output for heap checker\n\nQuoting from email:\n\nI had the same question as William posted to stack overflow back on\nDec 9,2013: How to display symbols in stack trace of google-perftools\nheap profiler (*).  I dug into the source and realized the\nfunctionality was not there but could be added. I am hoping that\nsomeone else will find this useful/helpful.\n\nThe patch I created will not attach so I am adding below.\n\nEnjoy!\n\n-- Michael\n\n* http://stackoverflow.com/questions/20476918/how-to-display-symbols-in-stack-trace-of-google-perftools-heap-profiler\n"
    },
    {
      "commit": "3abb5cb819bafe7004363f041c194afd827cb053",
      "tree": "aa8b72d3421968bd7ad3357697b1476499187451",
      "parents": [
        "fd81ec257883c6d5486e4568c955dff86dbed5c8"
      ],
      "author": {
        "name": "WenSheng He",
        "email": "zhsBernie@gmail.com",
        "time": "Mon Jun 30 06:39:13 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Mon Jul 07 01:51:27 2014"
      },
      "message": "issue-630: The env var should be \"CPUPROFILE\"\n\nTo enable cpu profile, the env var should be \"CPUPROFILE\", not \"PROFILE\"\nactually.\n\nSigned-off-by: Aliaksey Kandratsenka \u003calk@tut.by\u003e\n"
    },
    {
      "commit": "fd81ec257883c6d5486e4568c955dff86dbed5c8",
      "tree": "6a5f35a1bd1c93af86e0457af5f7d57fb1bea681",
      "parents": [
        "2e90b6fd72fec33aedf547d1977bdee6b77645b9"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Jun 28 20:05:12 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Jun 28 20:05:12 2014"
      },
      "message": "issue-631: fixed miscompilation of debugallocation without mmap\n\nThis applies patch sent by user iamxujian.\n\nClearly, when I updated debugallocation to fix issue-464 I\u0027ve broken\nno-mmap path by forgetting closing brace.\n"
    },
    {
      "commit": "2e90b6fd72fec33aedf547d1977bdee6b77645b9",
      "tree": "01a595626f75d992cce7e285e46762989f7cb069",
      "parents": [
        "577b940cc0a0ef207115d071a81127f93f02c083"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Jun 21 22:45:44 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Jun 21 22:52:34 2014"
      },
      "message": "bumped version to 2.2.1\n"
    },
    {
      "commit": "577b940cc0a0ef207115d071a81127f93f02c083",
      "tree": "3411b2328ad1ea15533fe99a2623bb27bb04561b",
      "parents": [
        "2fe4b329ad4d3f242b0bd73295375e70be79187b"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Jun 21 22:39:46 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Jun 21 22:52:31 2014"
      },
      "message": "updated NEWS for 2.2.1\n"
    },
    {
      "commit": "2fe4b329ad4d3f242b0bd73295375e70be79187b",
      "tree": "962d7fdfdf89c854373fe2a8fd8e3f51c13a6fea",
      "parents": [
        "c009398e3239be8ae6185ad83685caf7458c49bb"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun May 18 17:59:06 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Jun 21 19:12:04 2014"
      },
      "message": "applied chromium patch fixing some build issue on android\n\nThis applies patch from: https://codereview.chromium.org/284843002/ by\njungjik.lee@samsung.com\n"
    },
    {
      "commit": "c009398e3239be8ae6185ad83685caf7458c49bb",
      "tree": "5278d4570fb4d6dec09d3b016ce91a1b03a0fbf1",
      "parents": [
        "81d99f21ede78ab8d5fec15d0055416ac1b581f3"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Jun 15 19:53:14 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Jun 15 19:58:29 2014"
      },
      "message": "issue-628:package missing stacktrace_powerpc-{linux,darwin}-inl.h\n\nThis headers were missing in .tar.gz because they were not mentioned\nanywhere in Makefile.am.\n"
    },
    {
      "commit": "81d99f21ede78ab8d5fec15d0055416ac1b581f3",
      "tree": "d69fb265d5e98aab9c669618d845c91b49e5ef77",
      "parents": [
        "846b775dfadb77901202ae7ddbac30ad1de7df01"
      ],
      "author": {
        "name": "Adhemerval Zanella",
        "email": "azanella@linux.vnet.ibm.com",
        "time": "Tue Jun 03 12:50:56 2014"
      },
      "committer": {
        "name": "Adhemerval Zanella",
        "email": "azanella@linux.vnet.ibm.com",
        "time": "Tue Jun 03 12:50:56 2014"
      },
      "message": "issue-626: Fix SetupAggressiveDecommit initialization\n\nThis patch fixes the SetupAggressiveDecommit initialization to run after\npageheap_ creation.  Current code it not enforcing it, since\nInitStaticVars is being called outside the static_vars module.\n"
    },
    {
      "commit": "846b775dfadb77901202ae7ddbac30ad1de7df01",
      "tree": "a530f38c9e817e4f46e2361d058992ba890f317b",
      "parents": [
        "cdf8e1e932016bd5f1737e1f10bce07226228d15"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun May 04 00:50:11 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun May 04 01:01:12 2014"
      },
      "message": "bumped version to 2.2\n"
    },
    {
      "commit": "cdf8e1e932016bd5f1737e1f10bce07226228d15",
      "tree": "83cd2711c00c25e2dd19d5f129ba178705205d4e",
      "parents": [
        "0807476f56b9dc024375467be0f0b07fae3ee7fb"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun May 04 00:44:38 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun May 04 00:59:42 2014"
      },
      "message": "updated NEWS for 2.2\n"
    },
    {
      "commit": "0807476f56b9dc024375467be0f0b07fae3ee7fb",
      "tree": "a7af1778f2eea6ea6be605ee8fc64e36c47dcf20",
      "parents": [
        "facd7e83b341e069875b7c1cd7774cf671d932b5"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun May 04 00:38:14 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun May 04 00:38:14 2014"
      },
      "message": "issue-620: windows dll patching: fixed delete of old stub code\n\nAfter code for issue 359 was applied PreamblePatcher started using\nit\u0027s own code to manage memory of stub code fragments. It\u0027s not using\nnew[] anymore. And it automatically frees stub code memory on\nUnpatch.\n\nClearly, author of that code forgot to remote that no more needed\ndelete call. With that delete call we end up trying to free memory\nthat was never allocated with any of known allocators and crash.\n"
    },
    {
      "commit": "facd7e83b341e069875b7c1cd7774cf671d932b5",
      "tree": "48f3efc06ef0931d8c65813bb9dfead25ef32e56",
      "parents": [
        "e8e082af25952e9bd10c37c3f028c91fcbbd1cbd"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Apr 19 18:08:51 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Apr 19 20:16:20 2014"
      },
      "message": "bumped version to 2.1.90\n"
    },
    {
      "commit": "e8e082af25952e9bd10c37c3f028c91fcbbd1cbd",
      "tree": "5588b1b6f95bc9f81fb000de1061e789e0944a75",
      "parents": [
        "802fdb739e7aabcb15443030842a2137a5559338"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Apr 19 20:16:02 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Apr 19 20:16:20 2014"
      },
      "message": "updated NEWS for 2.2rc\n"
    },
    {
      "commit": "802fdb739e7aabcb15443030842a2137a5559338",
      "tree": "93ef89e5e1423c8c35717473b26daf999d6d6404",
      "parents": [
        "6b83516adefcf0806825f6dba2eb2232615d744b"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Apr 13 01:07:11 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Apr 13 01:08:46 2014"
      },
      "message": "issue-610: use TCMallocGetenvSafe from inside malloc\n\nInstead of plain getenv. So that windows getenv implementation that\nmay call malloc does not deadlock.\n"
    },
    {
      "commit": "6b83516adefcf0806825f6dba2eb2232615d744b",
      "tree": "5eee46db8ee1103132d2adf05300222051b36271",
      "parents": [
        "aeef3b44201ba663c19ca1c97792b724346e84a9"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Apr 13 01:06:32 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Apr 13 01:06:32 2014"
      },
      "message": "issue-610: made dynamic_annotations.c use TCMallocGetenvSafe\n"
    },
    {
      "commit": "aeef3b44201ba663c19ca1c97792b724346e84a9",
      "tree": "dd8fb3b279030f4890f507329dceeb5c13f30dad",
      "parents": [
        "125e5ed58b72550e6b74e0139c2c3dd5e262a6ec"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Apr 13 01:05:59 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Apr 13 01:05:59 2014"
      },
      "message": "issue-610: introduced TCMallocGetenvSafe\n\nThis is version of GetenvBeforeMain that\u0027s available to C code.\n"
    },
    {
      "commit": "125e5ed58b72550e6b74e0139c2c3dd5e262a6ec",
      "tree": "e59c23c3c6d497cb288c57ba09116ad2381d88c4",
      "parents": [
        "75b65f96b0bb44d70e0a461a03a3f8c928390283"
      ],
      "author": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Apr 12 19:38:19 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sun Apr 13 01:05:37 2014"
      },
      "message": "don\u0027t enable backtrace() for stacktrace capturing by default\n\nBecause we don\u0027t yet have a treatment for deadlocks that are caused by\n(recursive) use of malloc from within that facility.\n"
    },
    {
      "commit": "75b65f96b0bb44d70e0a461a03a3f8c928390283",
      "tree": "39ff71b4b9cb501bdf2ff5444ed26fd1d840ed5b",
      "parents": [
        "8deea9ff2a3e6eef8af64ea0727d6cb840c13769"
      ],
      "author": {
        "name": "Raphael Moreira Zinsly",
        "email": "rzinsly@linux.vnet.ibm.com",
        "time": "Tue Apr 08 20:45:13 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Apr 12 18:14:43 2014"
      },
      "message": "PowerPC: stacktrace function refactor and fixes\n\nThis patch fixes the stacktrace creating when the function is\ninterrupted by a signal. For Linux, the vDSO signal trampoline symbol is\ncompared against LR from stack backchain and handled different in that\ncase (since the signal trampoline layout a different stack frame).\n\nBecause of this extensive change the PowerPC stacktrace code has now\nbeen refactored to split in Linux and Darwin specific codes.\n"
    },
    {
      "commit": "8deea9ff2a3e6eef8af64ea0727d6cb840c13769",
      "tree": "3d3c3e8953c646acc8995ccaa83200246423cd67",
      "parents": [
        "9d5e1a0aa5a6ad1c7af18b65016fa5c9b7fccb47"
      ],
      "author": {
        "name": "Raphael Moreira Zinsly",
        "email": "rzinsly@linux.vnet.ibm.com",
        "time": "Tue Apr 08 20:44:08 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Apr 12 18:14:43 2014"
      },
      "message": "VDSOsupport cleanup\n\nThis patch cleans up unused VDSO getcpu racking from VDSOsupport class,\nsince the code is not used anywhere in gperftools and symbol name is not\narchitecture independent.\n"
    },
    {
      "commit": "9d5e1a0aa5a6ad1c7af18b65016fa5c9b7fccb47",
      "tree": "2f1d7585c594ad02beecf9e82640762d69ce748f",
      "parents": [
        "49237462c8ae7920332c1034c623e57b50a6109c"
      ],
      "author": {
        "name": "Raphael Moreira Zinsly",
        "email": "rzinsly@linux.vnet.ibm.com",
        "time": "Tue Apr 08 20:43:11 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Apr 12 18:14:43 2014"
      },
      "message": "Fixed issues with heap checker on PPC64 LE.\n\nFixed the wrapper for the syscall sys_clone and the test for heap\nchecker on PPC64 LE. Both use the ODP structure, which is only\nused on BE architectures.\n"
    },
    {
      "commit": "49237462c8ae7920332c1034c623e57b50a6109c",
      "tree": "79e83b5b96152ea6ef202e60144c47e3c84564e3",
      "parents": [
        "a1ae66ef110bd87ff97903e86fd84c745db24646"
      ],
      "author": {
        "name": "Raphael Moreira Zinsly",
        "email": "rzinsly@linux.vnet.ibm.com",
        "time": "Tue Apr 08 20:42:17 2014"
      },
      "committer": {
        "name": "Aliaksey Kandratsenka",
        "email": "alk@tut.by",
        "time": "Sat Apr 12 18:14:42 2014"
      },
      "message": "Fixed the way that pprof packed profile data in BE.\n\npprof was writing profile data in a way that only works for little-endian\nfiles, this patch verifies if the system is big-endian and writes packed\ndata correctly.\n"
    }
  ],
  "next": "a1ae66ef110bd87ff97903e86fd84c745db24646"
}
