)]}'
{
  "log": [
    {
      "commit": "086c279722edf85fb95da929376bc41f0eeb5c1d",
      "tree": "d6d1d70618edcd4bb8a71a716f6dd5eed248aa83",
      "parents": [
        "8a162a5a01a0b9c6748028bcc9efd6e8dd9daf0c"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:03:22 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:03:22 2008 +0000"
      },
      "message": "Oops - dont\u0027 use server.config anymore for alterl tutorial\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666459 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "8a162a5a01a0b9c6748028bcc9efd6e8dd9daf0c",
      "tree": "7554b6aa0f685507e58902b8a47fe476c4eba361",
      "parents": [
        "fe7ce1b3b380f29450d74db694147d560556b949"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:03:16 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:03:16 2008 +0000"
      },
      "message": "New tutorial for alterl bindings - include working client + server\n\nTest plan:\n\n  ./client.sh\n  server:start().\n  client:t().\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666458 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "fe7ce1b3b380f29450d74db694147d560556b949",
      "tree": "feea623342386b12d099b1ad6cb102c3d3ef62d1",
      "parents": [
        "daeed4d3b693765b5eabcf8420339f9081241252"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:03:10 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:03:10 2008 +0000"
      },
      "message": "Remove another TODO - no need to set \"id\" field of stop markers\n\nTest plan: tested on our price service\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666457 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "daeed4d3b693765b5eabcf8420339f9081241252",
      "tree": "0a2f1a45c294904bbf92fb87c9b2406290c829c0",
      "parents": [
        "d74b023d9aaa2dac8e63d07154acae95f2cb438a"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:03:03 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:03:03 2008 +0000"
      },
      "message": "Remove two TODO notes for cpiro that are no longer applicable.\n\nReviewed by: cpiro\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666456 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "d74b023d9aaa2dac8e63d07154acae95f2cb438a",
      "tree": "836306ba877fb3a4ffe11176284ec3f7d7712ef9",
      "parents": [
        "7956f23d4e5ae4be1da85d3fd91b9823531b19b6"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:02:55 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:02:55 2008 +0000"
      },
      "message": "testing return of empty binary from 0-length thrrift read\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666455 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "7956f23d4e5ae4be1da85d3fd91b9823531b19b6",
      "tree": "7a338622f8a331162b137c8dfa696928ed0d8ac3",
      "parents": [
        "c49dd1e9e2bdeae5d48f7b9a4d57d3414fbe3dc0"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:02:47 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:02:47 2008 +0000"
      },
      "message": "add a case clause to bubble timeouts\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666454 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c49dd1e9e2bdeae5d48f7b9a4d57d3414fbe3dc0",
      "tree": "1aa7da5d69ce6361ec5a9e620f382a3fe00ec9e9",
      "parents": [
        "ddffed5ff4f5d03bbaccaa3070ac9b7b865b37cf"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:02:39 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:02:39 2008 +0000"
      },
      "message": "adding explicit timeout handling and error_logging\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666453 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "ddffed5ff4f5d03bbaccaa3070ac9b7b865b37cf",
      "tree": "4bc48ab14587c71010466e57d77387cf8281e398",
      "parents": [
        "2fe905e366dfa4d83d71a2cf6b56d88bafd19553"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:02:31 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:02:31 2008 +0000"
      },
      "message": "Make invocation of \u0027find\u0027 in alterl Makefile more compatible\n\nSummary: find . -name instead of find -name\n\nTest Plan: still works, now works on Darwin too\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666452 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "2fe905e366dfa4d83d71a2cf6b56d88bafd19553",
      "tree": "d81458e32c9f7a135593132b0f76050633ea3710",
      "parents": [
        "e5a4d0c576a30e7a324890ec552e190afdd6ac27"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:02:23 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:02:23 2008 +0000"
      },
      "message": "adding socket options to thrift client\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666451 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "e5a4d0c576a30e7a324890ec552e190afdd6ac27",
      "tree": "ab7b8add3c7153c56b12a137715c61a39182df71",
      "parents": [
        "672968d6e913e02931cc689f1221aa7e87ca4d8e"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:02:10 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:02:10 2008 +0000"
      },
      "message": "erlang: move thrift_client connect logic into a handle_call and call it in start_link\n\nSummary: a failure in thrift_client:init would cause the invoker to exit, but we\u0027d rather just return {error, Error} from start_link and let the invoker crash if it wants\n\nReviewed By: eletuchy\n\nTest Plan: makes mouths happy\n\nRevert Plan: ok\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666450 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "672968d6e913e02931cc689f1221aa7e87ca4d8e",
      "tree": "b182d4be92839cba702dadf04fb8b6bbe7380338",
      "parents": [
        "c920faf0f0cb7075be3d290389d7b0eac98aae09"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:02:03 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:02:03 2008 +0000"
      },
      "message": "erlang thrift_client: wrap gen_tcp:connect in a catch ... leave nothing to chance\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666449 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c920faf0f0cb7075be3d290389d7b0eac98aae09",
      "tree": "4117862658db1948ed5370ab36bf07a204b6e674",
      "parents": [
        "914ebb4b69dc8fe351efce4f029e68cde3c3ba3d"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:01:56 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:01:56 2008 +0000"
      },
      "message": "erlang thrift_client will return {stop, Error} in start_link on a gen_tcp:connect error rather than exiting\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666448 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "914ebb4b69dc8fe351efce4f029e68cde3c3ba3d",
      "tree": "f84eb838cceb7424b2e69ab67e77e5e1e53ab6ca",
      "parents": [
        "1af1868457221f257bc5c4dd83028dd5628e67bd"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:01:48 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:01:48 2008 +0000"
      },
      "message": "Erlang: add framed_transport and non-strict binary_protocol\n\n- thrift_client now takes as its fourth parameter Options: framed, strict_{read,write}, connect_timeout (P.S. fourth param used to be Timeout)\n- binary protocol now takes options: strict_{read,write}\n- buffers in framed and buffered transport are now iolists and not reversed lists of binaries\n- rename buffer in buffered transport \"write_buffer\" to match framed transport\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666447 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "1af1868457221f257bc5c4dd83028dd5628e67bd",
      "tree": "7ff35515971187f9156ffe0478fd9ae7b9cbf388",
      "parents": [
        "4ec777e9986b24f12a20fbe37775f3f59ef2a330"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:01:36 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:01:36 2008 +0000"
      },
      "message": "replacing an io format with error_logger call\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666446 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "4ec777e9986b24f12a20fbe37775f3f59ef2a330",
      "tree": "44675ae94b3f1b13ba07fa1ea3dd2335fc2aea5d",
      "parents": [
        "6f1cd53a1e4d364198922dc53deeb24baf9cd8c4"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:01:29 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:01:29 2008 +0000"
      },
      "message": "make read(string) return a binary rather than a list\ntested server side ... still need to test client side\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666445 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "6f1cd53a1e4d364198922dc53deeb24baf9cd8c4",
      "tree": "c82c49e3a7d9b94c623cf95a7cb80e471627f1d0",
      "parents": [
        "4fd7818efa089d8475a9dc54b71e6d3090ef2b74"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:01:21 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:01:21 2008 +0000"
      },
      "message": "small buffered_transport and client improvements\n\nmoved close of wrapped transport into terminate/2\nmade thrift_client:close into a cast rather than call\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666444 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "4fd7818efa089d8475a9dc54b71e6d3090ef2b74",
      "tree": "1001ba57dea8d6afdea379b50baf63540419d602",
      "parents": [
        "af652d2f5141f5c8f53b16c1abe178c6a1c76768"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:01:13 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:01:13 2008 +0000"
      },
      "message": "add optional (connect) Timeout parameter to thrift_client:start_link\n\nSummary: will fail ungracefully if the timeout is hit, or anything bad happens.  will fix.\n\nReviewed By: eletuchy\n\nTest Plan: did some stuff with it\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666443 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "af652d2f5141f5c8f53b16c1abe178c6a1c76768",
      "tree": "61bccb2ebd6e5d3e52a1971b23ac380e7e2cc09d",
      "parents": [
        "4cf5a6a81f17d6ad16cb44c8f7b1f6c36554ebe8"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:01:06 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:01:06 2008 +0000"
      },
      "message": "removing more debug_rlogs\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666442 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "4cf5a6a81f17d6ad16cb44c8f7b1f6c36554ebe8",
      "tree": "d2b053a1a0299875618627270fda278aa2f53b90",
      "parents": [
        "190d769481f30cc27a591ec5134d3fd3352d6e6f"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:00:59 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:00:59 2008 +0000"
      },
      "message": "ok: good to go\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666441 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "190d769481f30cc27a591ec5134d3fd3352d6e6f",
      "tree": "92f03f42f1d277e154f3d5c896625d19c612625d",
      "parents": [
        "464e3000540738f9864626f4afe6036bcf89d2f5"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:00:52 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:00:52 2008 +0000"
      },
      "message": "don\u0027t do an exit(normal)\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666440 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "464e3000540738f9864626f4afe6036bcf89d2f5",
      "tree": "fb4e56b2037c8a1fd53188e9949cd2f868f81143",
      "parents": [
        "06272addb16218249abd94833c78233d98991fdf"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:00:45 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:00:45 2008 +0000"
      },
      "message": "add a close to thrift_client to close the underlying transport\n\nReviewed By: eletuchy\n\nNotes: the thrift_buffered_transport exits with {normal,{gen_server,call,[Pid,close]}} right now, but it should only exit with normal.  marked todo.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666439 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "06272addb16218249abd94833c78233d98991fdf",
      "tree": "1dc49262facf72a2fa6fdab679026edb472fb62a",
      "parents": [
        "80664fe23327544bfdfdee9a8f38f61761d5641e"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:00:37 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:00:37 2008 +0000"
      },
      "message": "don\u0027t need to use gen_server:reply\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666438 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "80664fe23327544bfdfdee9a8f38f61761d5641e",
      "tree": "08b59b87b708fd17bead61163c5eba63fca4fc18",
      "parents": [
        "b7c8802d36209e0ffb8af0cdb0a2c5422d8e8ad2"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:00:30 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:00:30 2008 +0000"
      },
      "message": "changing thrift_processor shutdown to compy with proc_lib standards\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666437 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "b7c8802d36209e0ffb8af0cdb0a2c5422d8e8ad2",
      "tree": "c171d8eb8298a5d59339b795d5a837e0d04bb593",
      "parents": [
        "919a801a285b3ec158d0ff31b05c03d829e6bb3f"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:00:20 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:00:20 2008 +0000"
      },
      "message": "allow configurable recv_timeouts\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666435 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "919a801a285b3ec158d0ff31b05c03d829e6bb3f",
      "tree": "28d866c82fa86fa1feb46ae10ea5ce420890026c",
      "parents": [
        "7255ed4c46581996012e48fe20c7788b9f925e5c"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:00:12 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:00:12 2008 +0000"
      },
      "message": "removing two more debug messages\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666434 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "7255ed4c46581996012e48fe20c7788b9f925e5c",
      "tree": "d819341b9967393333805590be5c6ae9de78794f",
      "parents": [
        "80862313de217c0ce234730f7c92f8033ffc4537"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:00:04 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:00:04 2008 +0000"
      },
      "message": "removed extra debugging statements\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666433 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "80862313de217c0ce234730f7c92f8033ffc4537",
      "tree": "85539a4f40c10080e927982e6e671fe899f2e77f",
      "parents": [
        "c11734efaca5e67a394997548293d940124de42f"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:59:55 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:59:55 2008 +0000"
      },
      "message": "oops forgot a file\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666432 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c11734efaca5e67a394997548293d940124de42f",
      "tree": "369f8c9b52b2be040d7dd459e541687ead31bc14",
      "parents": [
        "a5a53dbfcc22df3e50aa419c5e317d609c90dc9e"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:59:48 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:59:48 2008 +0000"
      },
      "message": "mochiweb style avoidance of gen_tcp:controlling_process\n\nTODO: remove extraneous debug_rlogs\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666431 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a5a53dbfcc22df3e50aa419c5e317d609c90dc9e",
      "tree": "b3ffaf947383b669e20e2c6f41a98fede73bdf3e",
      "parents": [
        "c525745c0e77daa03acb65739b26d1b87e50e496"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:59:34 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:59:34 2008 +0000"
      },
      "message": "Fix thrift_buffered_transport leak in erl bindings\n\nSummary:\n  - Was leaking processes when the client cleanly disconnected since the\n    thrift_processor process was exiting with \u0027normal\u0027 Reason. Changed it\n    to \u0027protocol_closed\u0027\n\nTest plan:\n  - Telnet to thrift service port and close (^]close) before the read timeout\n    elapses. Verify that erlang:system_info(process_count) does not increase\n    after doing this multiple times.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666430 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c525745c0e77daa03acb65739b26d1b87e50e496",
      "tree": "8ac7e64016aaff0b22697f33d8df76bff3e4c262",
      "parents": [
        "3b9c342fa41d1c0d85cdf033b3bd392f41dbf6be"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:59:27 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:59:27 2008 +0000"
      },
      "message": "if instead of case for a guard comparison\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666429 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "3b9c342fa41d1c0d85cdf033b3bd392f41dbf6be",
      "tree": "58a4ab15c11474120b0182b59eb1e1be5c679e11",
      "parents": [
        "11d855c83708eeed967b701db1ea1b057653d5e3"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:59:19 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:59:19 2008 +0000"
      },
      "message": "fixing behavior declaration for thrift_transport\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666428 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "11d855c83708eeed967b701db1ea1b057653d5e3",
      "tree": "846dacc233c4b217baeae7d3819402185d7c1731",
      "parents": [
        "6b3e40fd7362ee56dba1aa8004e3b2b6f21b89d7"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:59:12 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:59:12 2008 +0000"
      },
      "message": "micro optimization in thrift_processor\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666427 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "6b3e40fd7362ee56dba1aa8004e3b2b6f21b89d7",
      "tree": "16510bb28c97f1eb9bd3b7153993e8d48dbc85ca",
      "parents": [
        "6563f3426318ccd702ae0d5fa31e4cf42b9b5126"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:59:03 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:59:03 2008 +0000"
      },
      "message": "use type-appropriate methods for size and map for dict and set structures\n\nReviewed By: cpiro\n\nTest Plan: TODO\n\nRevert Plan: sure\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666426 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "6563f3426318ccd702ae0d5fa31e4cf42b9b5126",
      "tree": "5b73ca68c1072fa6436af780ec74357b22478f3a",
      "parents": [
        "225db732c2195e183bcf95ed6b496d09054b0eba"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:58:55 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:58:55 2008 +0000"
      },
      "message": "adding make dialyzer for fun and profit\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666425 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "225db732c2195e183bcf95ed6b496d09054b0eba",
      "tree": "8faed44e2f08b4348fe18b557e4d3807c8784f9a",
      "parents": [
        "81b473b4a15db38b9f0e9220cfb7a30e371dd273"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:58:48 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:58:48 2008 +0000"
      },
      "message": "allow writing binaries in thrift_binary_protocol\n\nSummary: they come packed in {string, Bin} so pull them out\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666424 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "81b473b4a15db38b9f0e9220cfb7a30e371dd273",
      "tree": "f09b3209521c4afaf2999d27d69f4832091abdfc",
      "parents": [
        "1d8b75297176d810aa63b5f58f3269b8ddca133a"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:58:41 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:58:41 2008 +0000"
      },
      "message": "Fix warning in generated source for alterl bindings\n\nSummary:\n  - Was previously including both the fall-through to the base service as well as the \"dummy\" fallthrough function clause. This generated a warning like:\n\n  gen-erl/redacted_thrift.erl:134: Warning: this clause cannot match because a previous clause at line 132 always matches\n\n  Now we only include the \"dummy\" function if there is no base class to fall through to.\n\nTest plan: Generated tutorial.thrift and shared.thrift, compiled without warnings\n\nNotes: It\u0027s probably possible to have a circular inheritance graph, which would cause an infinite loop at runtime. Do we care about this?\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666423 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "1d8b75297176d810aa63b5f58f3269b8ddca133a",
      "tree": "9dd4dd0b251a5efcf76104db9db170d5ec44ed2c",
      "parents": [
        "55ff70f8d65ca7f3aa3eaf906d95f82a17be7c92"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:58:33 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:58:33 2008 +0000"
      },
      "message": "Implement inheritance in the alterl generator\n\nSummary:\n  - Simply forwards function_info calls through to the base service\n\nTest plan: cpiro will test it?\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666422 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "55ff70f8d65ca7f3aa3eaf906d95f82a17be7c92",
      "tree": "fab213e13e6a8d6d7146d7b75fcca41c82bb01a0",
      "parents": [
        "702019c9144f910b7aa5040a37f886c36fb91746"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:58:25 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:58:25 2008 +0000"
      },
      "message": "Implement TApplicationException handling in alt_erl client\n\nSummary:\n  Throws a \u0027TApplicationException\u0027 record\n\nTest plan:\n  Changed cpp TestServer so that if testException is called with \"ApplicationException\" as an argument, it throws a TException which is serialized back as an EXCEPTION type message\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666421 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "702019c9144f910b7aa5040a37f886c36fb91746",
      "tree": "6877910005b7b69e14777c9f7df1b2790774d9b9",
      "parents": [
        "8cadf3e0fa1a1b16a5ebc77217454d9b795e6419"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:58:13 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:58:13 2008 +0000"
      },
      "message": "Add a README to alterl which shows how to use thrift_client\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666420 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "8cadf3e0fa1a1b16a5ebc77217454d9b795e6419",
      "tree": "34b51b408f9e2f36a1147515c99d521806534e1c",
      "parents": [
        "2c534031ee16aa4889cbb98ab997bcce34912ad4"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:58:07 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:58:07 2008 +0000"
      },
      "message": "Remove extra debugging from thrift_client.erl\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666419 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "2c534031ee16aa4889cbb98ab997bcce34912ad4",
      "tree": "9f4c554b4ea8cf30a619e14c575eab8d19605bad",
      "parents": [
        "8cf694d62d314de3501872656a662a825ff6c98d"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:58:00 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:58:00 2008 +0000"
      },
      "message": "Add a thrift client to alterl bindings\n\nTest plan:\n  f(), {ok, C} \u003d thrift_client:start_link(\"localhost\", 9090, thriftTest_thrift).\n  thrift_client:call(C, testAsync, [1234]).\n  thrift_client:call(C, testVoid, []).\n  thrift_client:call(C, testList, [[1,2,3,4,5]]).\n\n  - Should write an actual test suite that exercises all of ThriftTest but I\u0027m lazy right now\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666418 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "8cf694d62d314de3501872656a662a825ff6c98d",
      "tree": "be47de8fbf4dc18fd480df6c3df92b09b5aacf77",
      "parents": [
        "5541d658643bbd2c2e1c62ee489e25a7706b9d62"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:57:54 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:57:54 2008 +0000"
      },
      "message": "Change alterl thrift_server to use non-blocking TCP calls and properly set the processor as the controlling process for the client sockets.\n\nSummary:\n  - Removes the non-OTP \"acceptor\" process\n  - The processor becomes the socket\u0027s controlling process instead of the transport, which is kind of messy, but it means we don\u0027t have to make a process for the socket_transport.\n  - See http://www.trapexit.org/Building_a_Non-blocking_TCP_server_using_OTP_principles for non-blocking server info\n\nTest plan:\n  - Ran ThriftTest and StressTest\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666417 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "5541d658643bbd2c2e1c62ee489e25a7706b9d62",
      "tree": "8121b28949bf224fe5c2e721d38cd67520e9a5a5",
      "parents": [
        "cdf8d1994a4fb39029964af0d4dc4a636029ab92"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:57:42 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:57:42 2008 +0000"
      },
      "message": "Fix thrift_processor so that exceptions thrown in async void functions don\u0027t get serialized\n\nTest plan: Made testAsync() in test_server always crash with a badmatch 1 \u003d 0,\n           and made sure that the badmatch was caught and logged but not\n\t   serialized back to the client\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666416 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "cdf8d1994a4fb39029964af0d4dc4a636029ab92",
      "tree": "4fa0602e3b2b8e529dd123c999acc8cc4c93aaa3",
      "parents": [
        "fc44c41253a5d56e15facadeef3677162ae6f90f"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:57:35 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:57:35 2008 +0000"
      },
      "message": "Implement async_void in alterl bindings\n\nSummary:\n  - reply_type for async void functions is now async_void instead of\n    the empty struct definition\n  - async void functions should return \"ok\". otherwise the processor\n    will crash and the connection will be killed. Is this behaviour\n    expected?\n\nTest Plan: tested using testAsync() in ThriftTest. Didn\u0027t used to work\n           but works now\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666415 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "fc44c41253a5d56e15facadeef3677162ae6f90f",
      "tree": "7645100a33881ba3e7472993e975d25fb73c2651",
      "parents": [
        "77f6f7f5676c82652ef40c7e618b2d23029c41a9"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:57:19 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:57:19 2008 +0000"
      },
      "message": "Comment out some noisy output from thrift_processor and thrift_server\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666414 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "77f6f7f5676c82652ef40c7e618b2d23029c41a9",
      "tree": "8cf5320ca049fc012471dd1ee5aad65e115837b9",
      "parents": [
        "abded23ed43bf025d5b78ad7f664ae996024592b"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:57:11 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:57:11 2008 +0000"
      },
      "message": "Add build/ dir for alterl bindings and remove them from .gitignore\n\nSummary: These files are copied from the erl/build dir. I don\u0027t know why\n         I accidentally gitignored them before.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666413 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "abded23ed43bf025d5b78ad7f664ae996024592b",
      "tree": "5f79643370871864e6a70bcd21f72ef76fae6067",
      "parents": [
        "c85a6955882467c97b28c45853af76985e95a1d2"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:57:01 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:57:01 2008 +0000"
      },
      "message": "Implement testAsync for python tests\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666412 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c85a6955882467c97b28c45853af76985e95a1d2",
      "tree": "9d5235d5f5871ebbbe93cd2209697116f667e261",
      "parents": [
        "f4761e324ea111d5e26c5c506286cc59306e581a"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:56:55 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:56:55 2008 +0000"
      },
      "message": "Add mkdir ${TARGET_DIR} to erl test Makefile since the empty ebin/ dir doesn\u0027t stay in git\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666411 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "f4761e324ea111d5e26c5c506286cc59306e581a",
      "tree": "f8fa7bf139bf0a8fd8dec9aa4628d017f49cdff1",
      "parents": [
        "da07067489851ce502e34393f073fe4709b30e64"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:56:49 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:56:49 2008 +0000"
      },
      "message": "Fix thrift_server to create transport and protocol inside the processor rather than inside the acceptor.\n\nThis fixes a process and file descriptor leak -- previously, the thrift_buffered_transport process was linked to the acceptor, which never died.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666409 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "da07067489851ce502e34393f073fe4709b30e64",
      "tree": "cdc202fe1437f209a6f257eacf48ac8d35c8913b",
      "parents": [
        "920959a655028e93409572f44535aaf6c5a398d7"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:56:42 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:56:42 2008 +0000"
      },
      "message": "Fix error logging to actually print error and stack trace for caught errors\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666408 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "920959a655028e93409572f44535aaf6c5a398d7",
      "tree": "68492ff24bcd432859112a7db1b8fd38f3cfec11",
      "parents": [
        "c308d6989eb29eab51224975ebc154dbffe7499a"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:56:35 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:56:35 2008 +0000"
      },
      "message": "Handle crashes/errors in the processor by sending back a serialized exception\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666407 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c308d6989eb29eab51224975ebc154dbffe7499a",
      "tree": "fb46dbe4a14cd6ab1b236201eaee98e377c7fb5a",
      "parents": [
        "60b50cf3850cf88d6f6c4b23703b03f134f50b73"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:56:25 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:56:25 2008 +0000"
      },
      "message": "Add thrift_server:stop/1 to stop a running server\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666405 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "60b50cf3850cf88d6f6c4b23703b03f134f50b73",
      "tree": "60ba625c0497345b2d3bdd65e72122b1eee12a0e",
      "parents": [
        "cc10b8a80cbd4b56f2953951b8c9485dbac21a24"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:59:10 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:59:10 2008 +0000"
      },
      "message": "Add stress test implementation for new Erlang\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666389 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "cc10b8a80cbd4b56f2953951b8c9485dbac21a24",
      "tree": "44fbebd5416563d0a634c440c5f4ac3430518c42",
      "parents": [
        "c0cce962ac7f440427ab211bc965bde0490aa5da"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:59:02 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:59:02 2008 +0000"
      },
      "message": "Don\u0027t actually ignore all makefiles in .gitignore -- erl makefiles are important!\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666388 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c0cce962ac7f440427ab211bc965bde0490aa5da",
      "tree": "a162e95b3760e6b4d343012159975015b8d49e9a",
      "parents": [
        "90b4083d4cd468aa33bd441268c5069e5674da81"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:58:58 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:58:58 2008 +0000"
      },
      "message": "Oops - forgot to add the test/erl/Makefile to git\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666387 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "90b4083d4cd468aa33bd441268c5069e5674da81",
      "tree": "2c81965ffab771fd2186d4d780e1d793f2578f3c",
      "parents": [
        "57b4d9a4acc1dee83097a8149ce8acac48bb3da1"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:58:52 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:58:52 2008 +0000"
      },
      "message": "Implement buffered transport\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666386 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "57b4d9a4acc1dee83097a8149ce8acac48bb3da1",
      "tree": "7d0649e7c0a1d67c7fed062d70d536ec5e0888fb",
      "parents": [
        "982c72de7b412c95de1878d0ab8b859977188ff0"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:58:39 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:58:39 2008 +0000"
      },
      "message": "Test server for erlang\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666385 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "982c72de7b412c95de1878d0ab8b859977188ff0",
      "tree": "1898b85a73e35cd847548a4d2066ac91716a1496",
      "parents": [
        "eea8298ee36ea7e9a04b71e059915e8e89f2886f"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:58:33 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:58:33 2008 +0000"
      },
      "message": "Properly handle exceptions\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666384 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "eea8298ee36ea7e9a04b71e059915e8e89f2886f",
      "tree": "3e7aadf4d86e137343208c3884412e81f31e22f1",
      "parents": [
        "e1a7998837787ef4065337cb326586dc6a3cd0bf"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:58:21 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:58:21 2008 +0000"
      },
      "message": "Fix reading of empty structs/arg lists\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666383 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "e1a7998837787ef4065337cb326586dc6a3cd0bf",
      "tree": "54ae57584094113ab2c6e166f9aa3b9292510f2a",
      "parents": [
        "d93521b8807cc2431d4f2f873e366b4685a8d7cc"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:58:14 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:58:14 2008 +0000"
      },
      "message": "Fix responses for void functions\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666382 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "d93521b8807cc2431d4f2f873e366b4685a8d7cc",
      "tree": "54f3f10461aff3ce413c034f77a08c71ac57391d",
      "parents": [
        "07a725f038acd66632502d54d3fa7129562365f4"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:58:07 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:58:07 2008 +0000"
      },
      "message": "Make strings read as lists, not as binary\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666381 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "07a725f038acd66632502d54d3fa7129562365f4",
      "tree": "57477151e189b03995cad8102fb6feac367e120c",
      "parents": [
        "11300fe8726715e068c00aeb6b85421c73e0c01a"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:57:59 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:57:59 2008 +0000"
      },
      "message": "Make signedness of integers explicit, and fix double read/write.\nAlso fix typo of i63 for i64\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666380 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "11300fe8726715e068c00aeb6b85421c73e0c01a",
      "tree": "f32343bb31266ea41ce361cb9feb692d4534906a",
      "parents": [
        "0c9b516506acf7074ac61f74525e1aaec3a35aa8"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:57:52 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:57:52 2008 +0000"
      },
      "message": "Properly uncapitalize package names when referencing structs\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666379 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "0c9b516506acf7074ac61f74525e1aaec3a35aa8",
      "tree": "da950d6ebae8fd29f5063854bf451492f65335de",
      "parents": [
        "76f0d11dc90ceb910375042d23509e6bc0c3a6ec"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:57:44 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:57:44 2008 +0000"
      },
      "message": "Fix generation when multiple services are in the same service definition\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666378 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "76f0d11dc90ceb910375042d23509e6bc0c3a6ec",
      "tree": "496d1e0415d41346fc04fca4d3dd1858f72a9d35",
      "parents": [
        "1c1ca74237bee683cf05eff54ee844156ad5e905"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:57:35 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:57:35 2008 +0000"
      },
      "message": "Generator for alternative erl bindings, as well as a few more changes to lib code.\n\n- Exceptions don\u0027t work yet, but it looks like everything else does.\n- Seems to work fine on our pricing service\n- Code could need some cleanup\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666377 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "1c1ca74237bee683cf05eff54ee844156ad5e905",
      "tree": "a2ef3a427bf77d632386a554f1ace1d115a15cc1",
      "parents": [
        "ae756f4561047df087f7b1130d7e2b056b05e4b0"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:57:21 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:57:21 2008 +0000"
      },
      "message": "Make processor use a service definition and handler to determine types\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666376 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "ae756f4561047df087f7b1130d7e2b056b05e4b0",
      "tree": "51e80b484440e92225673c2b72fe6bb09b23ef29",
      "parents": [
        "ac549554f425cf2b28ff391c6fefeaa0fe703a32"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:57:11 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:57:11 2008 +0000"
      },
      "message": "Read and write of structs, lists, maps, and sets\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666375 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "ac549554f425cf2b28ff391c6fefeaa0fe703a32",
      "tree": "a4b8528635476208cb14a7838665347aa59e22bd",
      "parents": [
        "176ed368a30623a204f04f056b49c7ab9805ee8d"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:56:59 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:56:59 2008 +0000"
      },
      "message": "Initial commit of alternative erlang lib\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666374 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "176ed368a30623a204f04f056b49c7ab9805ee8d",
      "tree": "c4ac5951eb6a01d1d4f4bf2103d6e59bcec10ef9",
      "parents": [
        "a1e0a6f0d8c419447fcb95fcb914a9543677bb32"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:56:48 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:56:48 2008 +0000"
      },
      "message": "Avoid a filename collision on case-insensitive filesystems.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666373 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a1e0a6f0d8c419447fcb95fcb914a9543677bb32",
      "tree": "8ff8439f92769fd68ad2d2956e39f0ad61ef841b",
      "parents": [
        "87e9ac638241ca215846bb7643ef8af4ec6fe893"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:56:43 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:56:43 2008 +0000"
      },
      "message": "Don\u0027t generate a constants file if there are no constants (Java only).\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666372 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "87e9ac638241ca215846bb7643ef8af4ec6fe893",
      "tree": "aa6298cfe6c425b536ed27ca4796417f9ef3fd32",
      "parents": [
        "5245f40b3e13c65ef6537a8121b74128a9e61ed4"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:56:34 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:56:34 2008 +0000"
      },
      "message": "Fix a bug with initialization in JavaBean-style generated code.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666371 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "5245f40b3e13c65ef6537a8121b74128a9e61ed4",
      "tree": "297094b76c9545b46d94f1d68fc92d816787b983",
      "parents": [
        "9d866ac23165206b2bdc72054d61df8cfd2be1c9"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:56:26 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:56:26 2008 +0000"
      },
      "message": "Print an error instead of segfaulting with a bad compiler command line.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666370 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "9d866ac23165206b2bdc72054d61df8cfd2be1c9",
      "tree": "1c9bedadd08846fd9b972526a00b9c2ec60212f0",
      "parents": [
        "0babe40d74f05e7a23ca72b44d74493f3b2fc1a4"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:56:19 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:56:19 2008 +0000"
      },
      "message": "Add newlines to some warning messages in the compiler.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666369 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "0babe40d74f05e7a23ca72b44d74493f3b2fc1a4",
      "tree": "cf52afca489122b15fd699aed9eb6f9b8636b97c",
      "parents": [
        "13aea4600c7e170a0f178d72d7d68d3bddd7ef9a"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:56:12 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:56:12 2008 +0000"
      },
      "message": "Fix some warnings caused by treating string literals as non-const.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666368 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "13aea4600c7e170a0f178d72d7d68d3bddd7ef9a",
      "tree": "241b7993b4aa3d9009be6405952d1e30cd98de77",
      "parents": [
        "d14f4f86d4a521dd2327789f9230ab239b1c342b"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:56:04 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:56:04 2008 +0000"
      },
      "message": "Fix IPv6 on FreeBSD.\n\nOn FreeBSD (and possibly other BSDs), binding to ipv6 is restricted unless the\nsysctl net.inet6.ip6.v6only\u003d0 or the socket option IPV6_V6ONLY is turned off.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666367 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "d14f4f86d4a521dd2327789f9230ab239b1c342b",
      "tree": "64b9ee47ac05fd26f09e7abc6e12d937bb20bbbc",
      "parents": [
        "c0092f973d79f309c1b89ae5e55ad8094b87763a"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:55:54 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:55:54 2008 +0000"
      },
      "message": "Fix some indentation in the PHP generator.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666366 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c0092f973d79f309c1b89ae5e55ad8094b87763a",
      "tree": "3e9d66208cb0969f0d0b8e65c566f5f592adc092",
      "parents": [
        "b04df765b5c9fe1b8fb6ded0ed2750188278fe50"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:55:46 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:55:46 2008 +0000"
      },
      "message": "PHP Generator: Throw an exception on bad types.\n\nSummary:\nPreviously, if you set a structure field to, say, an int when it was\nsupposed to be a container (array) or struct (object), the serialization\ncode would either produce corrupt output (container) or cause a fatal\nerror (struct).  Now they both throw exceptions.\n\nReviewed By: mcslee\n\nTest Plan: Looked at generated code.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666365 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "b04df765b5c9fe1b8fb6ded0ed2750188278fe50",
      "tree": "f17c1607c606385270d72107893a7941fe8fa081",
      "parents": [
        "bcaa2ad0d6799066ed680f53051c469e4f58771b"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:55:38 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:55:38 2008 +0000"
      },
      "message": "Change Python servers to use the standard logging module.\n\nPreviously Thrift was using `print` to report errors.  Thrift is infrastructure\nand should not impose its error logging mechanism on the apps that use it.  For\nexample, [elided] uses the logging module to send logs to a particular file.\n\nI ran the unit test.  That exercises most of the error handling routines.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666364 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "bcaa2ad0d6799066ed680f53051c469e4f58771b",
      "tree": "4ad3270f088b90add3e0566d179f433adf50152c",
      "parents": [
        "c6dab613003c704f072542f39214f7af64fc0412"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:55:26 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:55:26 2008 +0000"
      },
      "message": "Python forking server should close connection in parent.\n\nWhen a function called by the forking python thrift server throws an\nexception the client will hang.  This happens because the parent of the\nforked process does not properly close the socket fd.\n\nUnder normal operation the server operation completes and returns a value to\nthe client.  However, when an exception occurs the \u0027end\u0027 message is never\nsent to the client so the client relies on a connection close to abort the\ncall (this is how the threading server works I believe).\n\nThis fails with the forking server because the parent process never closes\nthe socket fd.  The child has closed the fd at this point, but the\nconnection will not actually be closed until all open instances of the fd\nare closed. Since the client is waiting for a message and the server never\ncloses it the client is forced to wait until a read timeout occurs many\nminutes later.\n\nThis diff closes the parent\u0027s copy of the socket fd immediately after the\nfork occurs.\n\nI modified my load test server to throw an exception.  The client did not hang.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666363 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c6dab613003c704f072542f39214f7af64fc0412",
      "tree": "6cf0c32408e229af01a44f79023d29747ba6fde7",
      "parents": [
        "e3a64923e9620ebf99ff51ed5bfcb366e503c79e"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:55:13 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:55:13 2008 +0000"
      },
      "message": "Thrift: Allow for alternative Mutex initializers.\n\nSummary:\nAdd an argument to the Mutex constructor.\nIt takes a pointer to a function that initializes the internal pthread_mutex_t.\nWe provide initializers for default pthread_mutex_t (which is our default),\nadaptive mutexes, and recursive mutexes.\n\nReviewed By: hzhao, psaab, mcslee\n\nTest Plan: Built libthrift.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666362 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "e3a64923e9620ebf99ff51ed5bfcb366e503c79e",
      "tree": "2d7212edec32b8f46d3451ed6a0dc8c3fa5173f8",
      "parents": [
        "791a57f528e12829acd6d2950d50e65139080f49"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:55:04 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:55:04 2008 +0000"
      },
      "message": "Fix locking bug in ThreadManager.\n\nIt looks like the scheduler waits on monitor_, but the worker notifies\nworkerMonitor_. Also, it does so out of critical section.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666361 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "791a57f528e12829acd6d2950d50e65139080f49",
      "tree": "b675279ceb1ff2397453e38b573b8e49bea4ba03",
      "parents": [
        "665365490f3e14cf3e40205f16d9dc9b5a833f1e"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:54:56 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:54:56 2008 +0000"
      },
      "message": "FunctionRunner Utility Class.\n\nRuns arbitrary functions of form \u0027void(void)\u0027 and \u0027void*(void*)\u0027\nwithout need to create custom Runnable classes.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666360 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "665365490f3e14cf3e40205f16d9dc9b5a833f1e",
      "tree": "bc1906ec9842ade416bef56498df5360af96b272",
      "parents": [
        "af296954ea59369129b4129633e263fd65b503de"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:54:49 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:54:49 2008 +0000"
      },
      "message": "Forking Python server.\n\nThe python threading model does not provide concurrency for CPU-bound\nprocesses.  Process forking is the current recommended way of writing\nscalable Python servers.\n\nHarry Wang ran the [elided] backend with this change for 3 days and observed\nno errors.  The threaded backend caused unexplained lockups under this load\nafter 24 hours.\n\nI also ran a CPU-bound load test against this server with 32 concurrent\nclients.  It completed 5X faster than the threaded implementation.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666359 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "af296954ea59369129b4129633e263fd65b503de",
      "tree": "b70c053a513508b8b8708d37622c79260744d2fc",
      "parents": [
        "c89e4de50947b91b658a952da4671033e333c9df"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:54:40 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:54:40 2008 +0000"
      },
      "message": "Add ProfilerRegisterThead() to PosixThread.\n\nAdds an #ifdef\u0027d block that calls ProfilerRegisterThread() if\n\"REGISTER_THREAD_GOOGLE_PERFTOOLS\" is set.  Apparently, this makes the\nGoogle perftools CPU profiler work much better on x86-64.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666358 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c89e4de50947b91b658a952da4671033e333c9df",
      "tree": "4b7d431be0260678ba883ed87652b88541b557c7",
      "parents": [
        "7dab93e23790f6a2d647ad5d4a7a34f24a464778"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:54:32 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:54:32 2008 +0000"
      },
      "message": "Make sure list\u003cbyte\u003e is List\u003cByte\u003e in Java gen\u0027d code.\n\nReviewed By: dreiss\n\nTest Plan: Generate list\u003cbyte\u003e into Java\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666357 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "7dab93e23790f6a2d647ad5d4a7a34f24a464778",
      "tree": "1d496585a4a4b720e0fca148e7d4dac395f1ffe5",
      "parents": [
        "f9b5b12f4d7e86e9834dd39ae4393383cab809af"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri May 09 19:18:29 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri May 09 19:18:29 2008 +0000"
      },
      "message": "Fix a few copy-paste errors in TBufferTransports (not code).\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665684 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "f9b5b12f4d7e86e9834dd39ae4393383cab809af",
      "tree": "c7cf2ffbb2127c169bd6b0fbfdd072d25f298e0e",
      "parents": [
        "33fc5adb2be8568b1279414a7bb33043ac875a2c"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri May 09 07:17:35 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri May 09 07:17:35 2008 +0000"
      },
      "message": "Tweak Java Makefile.ams to fix \"make distclean\".\n\nThe Java Makefile.ams assume the existence of ANT, but \"make distclean\"\nruns in the Java directories even if ENABLE_JAVA is off.  This change\nmakes the clean-local target handle the absence of ANT, fixing\n\"make distclean\".\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665683 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "33fc5adb2be8568b1279414a7bb33043ac875a2c",
      "tree": "a026501bad065d1b0cd05dfcf666c5d0772f3685",
      "parents": [
        "80097936bd1258f074a226396f9546d98d060964"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri May 09 07:17:34 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri May 09 07:17:34 2008 +0000"
      },
      "message": "Check for ptrdiff_t and fail if we don\u0027t have it.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665682 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "80097936bd1258f074a226396f9546d98d060964",
      "tree": "be8903db3543110e45d9ad056a19cb1bbff10d6c",
      "parents": [
        "47714584327a9a8240f28e8ef4493534a1d047ba"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri May 09 07:14:10 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri May 09 07:14:10 2008 +0000"
      },
      "message": "C++/TFramedTransport: Don\u0027t write an empty frame on flush.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665681 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "47714584327a9a8240f28e8ef4493534a1d047ba",
      "tree": "24bb6dd7e13bc8bf12964f0ee059ce0805c9e321",
      "parents": [
        "8df6c82aa751f65100b6b283dee205e251753aa8"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri May 09 00:40:26 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri May 09 00:40:26 2008 +0000"
      },
      "message": "Fix a small logic error in TBufferedTransport::borrowSlow.\n\nWas using an unsigned int for a value that could be negative.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665680 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "8df6c82aa751f65100b6b283dee205e251753aa8",
      "tree": "cd2646ab73b1e430ee18b168d9d53f858373709b",
      "parents": [
        "de59292f38e11e738a34c8bd2f722beb128c752e"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Sun May 04 03:00:22 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Sun May 04 03:00:22 2008 +0000"
      },
      "message": "Switch md5 implementations.\n\nSpecifically, switch from the legally-ambiguous RSA implementation to\na zlib-licensed RFC-based implementation from SourceForge.\n\nGenerated some files with \"dense\" and made sure the output hadn\u0027t changed.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665679 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "de59292f38e11e738a34c8bd2f722beb128c752e",
      "tree": "7af7fb093b13a8bab87370d32064664a5d653033",
      "parents": [
        "f233e46a2dc705f017d5980baa6ad97922b72291"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu May 01 20:51:03 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu May 01 20:51:03 2008 +0000"
      },
      "message": "Remove an unnecessary include of boost/lexical_cast.hpp\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665678 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "f233e46a2dc705f017d5980baa6ad97922b72291",
      "tree": "1ace8edd19a260f76b55e117ce615da8b1e200b9",
      "parents": [
        "28f298dd5d9b68c9c0dbaefa95c88d51ed8e430a"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu May 01 06:21:04 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu May 01 06:21:04 2008 +0000"
      },
      "message": "Throw a transport exception if fstat fails.\n\nThis was failing on an NFS mount that was dying.\nBetter to fail hard then return uninitialized data.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665677 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "28f298dd5d9b68c9c0dbaefa95c88d51ed8e430a",
      "tree": "4c089343bfd96f8eddb653ec2f746a27d7a8ec9a",
      "parents": [
        "9a4edfa07fe0c09865015a15d26695823cd4a5fd"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu May 01 06:17:36 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu May 01 06:17:36 2008 +0000"
      },
      "message": "Memory-based transport rewrite.\n\nThe old implementations of the memory-based transports (TBufferedTransport,\nTFramedTransport, and TMemoryBuffer) shared very little code and all worked\na bit differently.  This change unifies them all as subclasses of a single\nbase (TBufferBase) which handles the fast-path operations (when requests\ncan be satisfied by the buffer) with inline methods (that will eventually\nbe made nonvirtual in the template branch) and calls out to pure-virutal\nmethods to handle full/empty buffers.  All of the buffer-management is now\ndone in terms of \"base and bound\" pointers rather than \"pos\" integers.\n\nThese classes were moved to TBufferTransports.{h,cpp}.  The .h is included\nin TTransportUtils for backwards compatibility.\n\nAlso added a \"TShortReadTransport\" to assist testing transports.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665676 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "9a4edfa07fe0c09865015a15d26695823cd4a5fd",
      "tree": "2707bc870fa22a62e47da6add1889fb083f9a4c1",
      "parents": [
        "372126079cb1e1bce5f186293980209a0e5629ec"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu May 01 05:52:50 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu May 01 05:52:50 2008 +0000"
      },
      "message": "Properly handle constants of typedef\u0027ed types.\n\nAlso throw an error in the compiler if we cannot generate a constant for a\ndeclared const because of its type.  Added a test of this functionality in\nConstantsDemo.thrift.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665675 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "372126079cb1e1bce5f186293980209a0e5629ec",
      "tree": "1d8e865ad3452aa7bede447ca475080bff5e2b92",
      "parents": [
        "e39e9379119b99c2bad7613b8cd32c11482b9558"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu May 01 05:52:49 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu May 01 05:52:49 2008 +0000"
      },
      "message": "Eliminate an unused local variable.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665674 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "e39e9379119b99c2bad7613b8cd32c11482b9558",
      "tree": "9247055d9281c2092c68306010ee529bc9022e52",
      "parents": [
        "64120001437477569524be5cfc1f5054b27ee807"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu May 01 05:52:48 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu May 01 05:52:48 2008 +0000"
      },
      "message": "Remove a few unnecessary includes to speed up compiles.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665673 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "64120001437477569524be5cfc1f5054b27ee807",
      "tree": "8efc3e3b991173c848e2332fa4b04890bd920191",
      "parents": [
        "74672b6719903332c0b5969fa0bffd12c13cf121"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Apr 29 23:12:24 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Apr 29 23:12:24 2008 +0000"
      },
      "message": "C++: Make write{Struct,Field}Begin take \"name\" as a const char*.\n\nSummary:\nThese methods previously took name as a const string\u0026.  While that way\nis more idiomatic, it requires a temporary string to be constructed\nwhen we pass a string literal (which is always).  This was significantly\nslowing down the serialization of field-heavy structures.  This change\nwill break ABI compatibility, but the serialization speed boost with\nno external API changes is too important to pass up.\n\nReviewed By: mcslee, aditya\n\nTest Plan: make check\n\nTracCamp Project: Thrift\n\nRevert Plan: ok\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665672 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "74672b6719903332c0b5969fa0bffd12c13cf121",
      "tree": "72509ae7bcf1eae8792910b26a272211b659c5f4",
      "parents": [
        "051fbd4e57ff6818231754143d67fa59b9746a4d"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Apr 29 23:09:11 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Apr 29 23:09:11 2008 +0000"
      },
      "message": "Java: In toString for generated structs, handle nulls.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665671 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "051fbd4e57ff6818231754143d67fa59b9746a4d",
      "tree": "b8fed64d4b7619c26d596c293f52efffa570ad1b",
      "parents": [
        "c17fe6b918015166d145936414a411589f03255c"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Apr 29 00:29:45 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Apr 29 00:29:45 2008 +0000"
      },
      "message": "Thrift REST parsing allows null object params\n\nSummary: If JSON objects are passed in allow them to be null and don\u0027\\\u0027\u0027t default construct.\n\nReviewed By: dreiss\n\nTest Plan: Regenerate API code and test on object args.\n\nRevert: OK\n\nDiffCamp Revision: 12407\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665670 13f79535-47bb-0310-9956-ffa450edef68\n"
    }
  ],
  "next": "c17fe6b918015166d145936414a411589f03255c"
}
