)]}'
{
  "commit": "99170a5dbf4cfee78b578672b6821e855f92594b",
  "tree": "06892b1118241d608a9ff6893736d7ea619443bd",
  "parents": [
    "2c1816160639f00489aa8bac6178e44bb51e7adb"
  ],
  "author": {
    "name": "Christian Heimes",
    "email": "christian@cheimes.de",
    "time": "Wed Dec 19 02:07:34 2007"
  },
  "committer": {
    "name": "Christian Heimes",
    "email": "christian@cheimes.de",
    "time": "Wed Dec 19 02:07:34 2007"
  },
  "message": "Merged revisions 59541-59561 via svnmerge from\nsvn+ssh://pythondev@svn.python.org/python/trunk\n\n........\n  r59544 | raymond.hettinger | 2007-12-18 01:13:45 +0100 (Tue, 18 Dec 2007) | 1 line\n\n  Add more namedtuple() test cases.  Neaten the code and comments.\n........\n  r59545 | christian.heimes | 2007-12-18 04:38:03 +0100 (Tue, 18 Dec 2007) | 3 lines\n\n  Fixed for #1601: IDLE not working correctly on Windows (Py30a2/IDLE30a1)\n\n  Amaury\u0027s ideas works great. Should we build the Python core with WINVER\u003d0x0500 and _WIN32_WINNT\u003d0x0500, too?\n........\n  r59546 | christian.heimes | 2007-12-18 10:00:13 +0100 (Tue, 18 Dec 2007) | 1 line\n\n  Make it a bit easier to test Tcl/Tk and idle from a build dir.\n........\n  r59547 | christian.heimes | 2007-12-18 10:12:10 +0100 (Tue, 18 Dec 2007) | 1 line\n\n  Removed several unused files from the PCbuild9 directory. They are relics from the past.\n........\n  r59548 | raymond.hettinger | 2007-12-18 19:26:18 +0100 (Tue, 18 Dec 2007) | 29 lines\n\n  Speed-up dictionary constructor by about 10%.\n\n  New opcode, STORE_MAP saves the compiler from awkward stack manipulations\n  and specializes for dicts using PyDict_SetItem instead of PyObject_SetItem.\n\n  Old disassembly:\n                0 BUILD_MAP                0\n                3 DUP_TOP\n                4 LOAD_CONST               1 (1)\n                7 ROT_TWO\n                8 LOAD_CONST               2 (\u0027x\u0027)\n               11 STORE_SUBSCR\n               12 DUP_TOP\n               13 LOAD_CONST               3 (2)\n               16 ROT_TWO\n               17 LOAD_CONST               4 (\u0027y\u0027)\n               20 STORE_SUBSCR\n\n  New disassembly:\n                0 BUILD_MAP                0\n                3 LOAD_CONST               1 (1)\n                6 LOAD_CONST               2 (\u0027x\u0027)\n                9 STORE_MAP\n               10 LOAD_CONST               3 (2)\n               13 LOAD_CONST               4 (\u0027y\u0027)\n               16 STORE_MAP\n........\n  r59549 | thomas.heller | 2007-12-18 20:00:34 +0100 (Tue, 18 Dec 2007) | 2 lines\n\n  Issue #1642: Fix segfault in ctypes when trying to delete attributes.\n........\n  r59551 | guido.van.rossum | 2007-12-18 21:10:42 +0100 (Tue, 18 Dec 2007) | 2 lines\n\n  Issue #1645 by Alberto Bertogli.  Fix a comment.\n........\n  r59553 | raymond.hettinger | 2007-12-18 22:24:09 +0100 (Tue, 18 Dec 2007) | 12 lines\n\n  Give meaning to the oparg for BUILD_MAP:  estimated size of the dictionary.\n\n  Allows dictionaries to be pre-sized (upto 255 elements) saving time lost\n  to re-sizes with their attendant mallocs and re-insertions.\n\n  Has zero effect on small dictionaries (5 elements or fewer), a slight\n  benefit for dicts upto 22 elements (because they had to resize once\n  anyway), and more benefit for dicts upto 255 elements (saving multiple\n  resizes during the build-up and reducing the number of collisions on\n  the first insertions).  Beyond 255 elements, there is no addional benefit.\n........\n  r59554 | christian.heimes | 2007-12-18 22:56:09 +0100 (Tue, 18 Dec 2007) | 1 line\n\n  Fixed #1649: IDLE error: dictionary changed size during iteration\n........\n  r59557 | raymond.hettinger | 2007-12-18 23:21:27 +0100 (Tue, 18 Dec 2007) | 1 line\n\n  Simplify and speedup _asdict() for named tuples.\n........\n  r59558 | christian.heimes | 2007-12-19 00:22:54 +0100 (Wed, 19 Dec 2007) | 3 lines\n\n  Applied patch #1635: Float patch for inf and nan on Windows (and other platforms).\n\n  The patch unifies float(\"inf\") and repr(float(\"inf\")) on all platforms.\n........\n  r59559 | raymond.hettinger | 2007-12-19 00:51:15 +0100 (Wed, 19 Dec 2007) | 1 line\n\n  Users demand iterable input for named tuples. The author capitulates.\n........\n  r59560 | raymond.hettinger | 2007-12-19 01:21:06 +0100 (Wed, 19 Dec 2007) | 1 line\n\n  Beef-up tests for dict literals\n........\n  r59561 | raymond.hettinger | 2007-12-19 01:27:21 +0100 (Wed, 19 Dec 2007) | 1 line\n\n  Zap a duplicate line\n........\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e3533f0908919d3a289c458c03ba3f837e3481ef",
      "old_mode": 33188,
      "old_path": "Doc/c-api/utilities.rst",
      "new_id": "18e2733a2c5e7813fd5c763812ad98a4b835b566",
      "new_mode": 33188,
      "new_path": "Doc/c-api/utilities.rst"
    },
    {
      "type": "modify",
      "old_id": "1982187450fb14f30129b7fe324b3564313583b9",
      "old_mode": 33188,
      "old_path": "Doc/library/collections.rst",
      "new_id": "e01c52e1defee8d235b892fe1355f5a504aa281c",
      "new_mode": 33188,
      "new_path": "Doc/library/collections.rst"
    },
    {
      "type": "modify",
      "old_id": "14fd1a7378ee4e19eada0c209e8cf0fdfc17e502",
      "old_mode": 33188,
      "old_path": "Doc/library/functions.rst",
      "new_id": "02c709c28ff79f2d89e39b513fa3cf7821db6152",
      "new_mode": 33188,
      "new_path": "Doc/library/functions.rst"
    },
    {
      "type": "modify",
      "old_id": "6dd374f8d18f4996e975ab67bacdf1fc1fbf2643",
      "old_mode": 33188,
      "old_path": "Doc/library/stdtypes.rst",
      "new_id": "196ad49c9edd79ce7f962a8ccdb3670da9eca968",
      "new_mode": 33188,
      "new_path": "Doc/library/stdtypes.rst"
    },
    {
      "type": "modify",
      "old_id": "fef57b4d5e6cf49e25419544fe1ec98ffff840bb",
      "old_mode": 33188,
      "old_path": "Include/Python.h",
      "new_id": "d8c2a56d2dde0a0fe042bb74e756e49cad1bedcd",
      "new_mode": 33188,
      "new_path": "Include/Python.h"
    },
    {
      "type": "modify",
      "old_id": "0d8a09bce13969a907987b11db21528d767a3441",
      "old_mode": 33188,
      "old_path": "Include/dictobject.h",
      "new_id": "afc55afa3ff51820e4a904296de54d15d3591ae6",
      "new_mode": 33188,
      "new_path": "Include/dictobject.h"
    },
    {
      "type": "modify",
      "old_id": "100262af2e0ab6130fff4bcb102e14ca2ac6eba0",
      "old_mode": 33188,
      "old_path": "Include/opcode.h",
      "new_id": "7bdf1c9ad825c4a8d1f055ce737a0c322e68bb63",
      "new_mode": 33188,
      "new_path": "Include/opcode.h"
    },
    {
      "type": "modify",
      "old_id": "266c13a310dae1cea8f012b490d4db3315178c9e",
      "old_mode": 33188,
      "old_path": "Include/pyport.h",
      "new_id": "82d305ce32301b2f569d6f81533d480e2d70dfdd",
      "new_mode": 33188,
      "new_path": "Include/pyport.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "edb12397e3cbcc761a5ba28221215a62193a48ba",
      "new_mode": 33188,
      "new_path": "Include/pystrcmp.h"
    },
    {
      "type": "modify",
      "old_id": "2a7bb6286d9a23983647da6d7cd8724e6fc5902b",
      "old_mode": 33188,
      "old_path": "Lib/collections.py",
      "new_id": "d539683be1756d317bc9e93cfc8db9462e47cf81",
      "new_mode": 33188,
      "new_path": "Lib/collections.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0f4d58691b55e7dfef3303e2bf15b782363f5ff1",
      "new_mode": 33188,
      "new_path": "Lib/ctypes/test/test_delattr.py"
    },
    {
      "type": "modify",
      "old_id": "0726a51b92bf3f61987a5b2f9418155fb5ebd843",
      "old_mode": 33188,
      "old_path": "Lib/lib-tk/FixTk.py",
      "new_id": "8820cba9b83c75ccb94954fba2f3557935376d49",
      "new_mode": 33188,
      "new_path": "Lib/lib-tk/FixTk.py"
    },
    {
      "type": "modify",
      "old_id": "ac265834248d01459735a08876580bf9d125f1d7",
      "old_mode": 33188,
      "old_path": "Lib/opcode.py",
      "new_id": "6fe380fbd744f50ded612ce641f48e0d256e0cb6",
      "new_mode": 33188,
      "new_path": "Lib/opcode.py"
    },
    {
      "type": "modify",
      "old_id": "5a4029d356579e1004b425d38cc80630f0995bd3",
      "old_mode": 33188,
      "old_path": "Lib/test/test_collections.py",
      "new_id": "fdc82fc233f3f7c01e1c37a136435619325fde6c",
      "new_mode": 33188,
      "new_path": "Lib/test/test_collections.py"
    },
    {
      "type": "modify",
      "old_id": "56ce722033aadcd6d151ccb1e557797a0ca1e20e",
      "old_mode": 33188,
      "old_path": "Lib/test/test_dict.py",
      "new_id": "53e6446a995c18aa15ecf0ceec41e2a2fc1537dd",
      "new_mode": 33188,
      "new_path": "Lib/test/test_dict.py"
    },
    {
      "type": "modify",
      "old_id": "922de7aa04fab5ddfb65d9c685917aed5f004238",
      "old_mode": 33188,
      "old_path": "Lib/test/test_float.py",
      "new_id": "0de65cb1a58b4a40d6c161914653f192ea5e0c7f",
      "new_mode": 33188,
      "new_path": "Lib/test/test_float.py"
    },
    {
      "type": "modify",
      "old_id": "8197b80b6d977996a8a6f8f7fc58ea92e01d6c24",
      "old_mode": 33188,
      "old_path": "Makefile.pre.in",
      "new_id": "660cb6fe682d048a62335d1886eed4f8dab72855",
      "new_mode": 33188,
      "new_path": "Makefile.pre.in"
    },
    {
      "type": "modify",
      "old_id": "54e79638137e2d16411a48093e0fc5c09713db83",
      "old_mode": 33188,
      "old_path": "Modules/_ctypes/_ctypes.c",
      "new_id": "dd4b754c511b313734d0c41141e6a063b3a20e48",
      "new_mode": 33188,
      "new_path": "Modules/_ctypes/_ctypes.c"
    },
    {
      "type": "modify",
      "old_id": "f29fc6664f6d77425b0f3f2f2dd777e3762ac7cb",
      "old_mode": 33188,
      "old_path": "Modules/_ctypes/cfield.c",
      "new_id": "a873642a7e0fe5343f688aad07c794401cfb7430",
      "new_mode": 33188,
      "new_path": "Modules/_ctypes/cfield.c"
    },
    {
      "type": "modify",
      "old_id": "c1fb5aa9e6c02d7c1c5b5c5f4deba0accf7a791d",
      "old_mode": 33188,
      "old_path": "Modules/socketmodule.c",
      "new_id": "ddffd23bdf0efa7ce9009fa581e3adc9c0140fc9",
      "new_mode": 33188,
      "new_path": "Modules/socketmodule.c"
    },
    {
      "type": "modify",
      "old_id": "05252d7f53dbab44361f70e9c500632732457d93",
      "old_mode": 33188,
      "old_path": "Objects/dictobject.c",
      "new_id": "abedfaf75d028d2be0429366557d34c609163f27",
      "new_mode": 33188,
      "new_path": "Objects/dictobject.c"
    },
    {
      "type": "modify",
      "old_id": "48d29d7042c3902c22016ac4a905b30f5016b334",
      "old_mode": 33188,
      "old_path": "Objects/floatobject.c",
      "new_id": "c876c7406354f01cf3f5f4e97dae3fabf3bd1d4c",
      "new_mode": 33188,
      "new_path": "Objects/floatobject.c"
    },
    {
      "type": "modify",
      "old_id": "36cc0c99af93402bb16a36f4bdc7914874ce4295",
      "old_mode": 33188,
      "old_path": "PC/pyconfig.h",
      "new_id": "eb92b4115def000cb23b332ebf433fd9c3f7e962",
      "new_mode": 33188,
      "new_path": "PC/pyconfig.h"
    },
    {
      "type": "modify",
      "old_id": "2ac8e25d2753cd659f4d14332e1a6b8aaae6f8e1",
      "old_mode": 33188,
      "old_path": "PCbuild/pythoncore.vcproj",
      "new_id": "9f2fa005e552b329f59539cdcaa7545952051176",
      "new_mode": 33188,
      "new_path": "PCbuild/pythoncore.vcproj"
    },
    {
      "type": "modify",
      "old_id": "1a780225e3200e429afaf73a8ad008354bddb92b",
      "old_mode": 33188,
      "old_path": "PCbuild8/pythoncore/pythoncore.vcproj",
      "new_id": "0fe33907476f12f9b5a4f2464638709b9023e18f",
      "new_mode": 33188,
      "new_path": "PCbuild8/pythoncore/pythoncore.vcproj"
    },
    {
      "type": "delete",
      "old_id": "216dd30c350285338872d0f43b44beb5ccfa9622",
      "old_mode": 33188,
      "old_path": "PCbuild9/Uninstal.wse",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "2de179fdf5972d97cd5e0097be9dd01ef3f6a4ab",
      "old_mode": 33188,
      "old_path": "PCbuild9/_bsddb.rc",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "f89894c343f8db32cb6d77305df8fee0501467da",
      "old_mode": 33188,
      "old_path": "PCbuild9/_tkinter.vcproj",
      "new_id": "e3baa5cee17da484a94f14b6f94124c53a3089b7",
      "new_mode": 33188,
      "new_path": "PCbuild9/_tkinter.vcproj"
    },
    {
      "type": "modify",
      "old_id": "3e24d00a8eb7be314510374c8d0850bb2cdcdf11",
      "old_mode": 33188,
      "old_path": "PCbuild9/build_tkinter.py",
      "new_id": "dada3865f9e5088c6c7d44fa7a4b10812ba39ab6",
      "new_mode": 33188,
      "new_path": "PCbuild9/build_tkinter.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "dcb0485af7d365503b4983bc4d083fdd96596f1e",
      "new_mode": 33188,
      "new_path": "PCbuild9/idle.bat"
    },
    {
      "type": "modify",
      "old_id": "e8252c05d5ca8b81462e8b0ebb17640e62ffcd11",
      "old_mode": 33188,
      "old_path": "PCbuild9/pyproject.vsprops",
      "new_id": "64cadc3625acb667c59a87823d7ad63880acaa78",
      "new_mode": 33188,
      "new_path": "PCbuild9/pyproject.vsprops"
    },
    {
      "type": "delete",
      "old_id": "0f155135049ea761dc7debeabd6ffe15c71a7f48",
      "old_mode": 33188,
      "old_path": "PCbuild9/python.build",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "480b8c1d7405b6fe84fda8ce979fc950cadb2999",
      "old_mode": 33188,
      "old_path": "PCbuild9/python.iss",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "da2df69b211b31389b93e8fb051baf496df98a9b",
      "old_mode": 33188,
      "old_path": "PCbuild9/python20.wse",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "42eaa2e4046098a52235f5484480768fc6f1ab74",
      "old_mode": 33188,
      "old_path": "PCbuild9/pythoncore.vcproj",
      "new_id": "b26307fe5265b6c382dff9579f9ba7b8922456af",
      "new_mode": 33188,
      "new_path": "PCbuild9/pythoncore.vcproj"
    },
    {
      "type": "modify",
      "old_id": "20ea34964add8e8f674795f9d576869eab1ff841",
      "old_mode": 33188,
      "old_path": "Python/ceval.c",
      "new_id": "57e6cd5c1e2ba6ba7fa1aa33306e4d285d7a6334",
      "new_mode": 33188,
      "new_path": "Python/ceval.c"
    },
    {
      "type": "modify",
      "old_id": "8951331053ab81641670bdf5571672176f25a574",
      "old_mode": 33188,
      "old_path": "Python/compile.c",
      "new_id": "c3ef67ad48c2e011cc6337e5760b575b11ecc354",
      "new_mode": 33188,
      "new_path": "Python/compile.c"
    },
    {
      "type": "modify",
      "old_id": "9db8fb03fa595c47b4c379bbb40dafe1dc3fc4bf",
      "old_mode": 33188,
      "old_path": "Python/import.c",
      "new_id": "a7f6a48d36a315bd0d4c13290fe90722d63693f7",
      "new_mode": 33188,
      "new_path": "Python/import.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0012ef33bc3878e5f2b63298e3fbbd4cf6aba502",
      "new_mode": 33188,
      "new_path": "Python/pystrcmp.c"
    },
    {
      "type": "modify",
      "old_id": "a2a57985a9ae14baa516b7fa49d80a282e394b6f",
      "old_mode": 33261,
      "old_path": "configure",
      "new_id": "5ebd03347ffd3d6768a5bfbf2b88bf20053c7bef",
      "new_mode": 33261,
      "new_path": "configure"
    },
    {
      "type": "modify",
      "old_id": "915599d92b2a03f9648c85bd4296dc92aedb3464",
      "old_mode": 33188,
      "old_path": "configure.in",
      "new_id": "05ab7afa084560ca5d9f5b8aa7f956fb95cdeda5",
      "new_mode": 33188,
      "new_path": "configure.in"
    },
    {
      "type": "modify",
      "old_id": "4f45cb96aa9f8b9cc781a30194567e7ab4583266",
      "old_mode": 33188,
      "old_path": "pyconfig.h.in",
      "new_id": "ac6d9f634c429d324d4d024ae7329a8ee7816616",
      "new_mode": 33188,
      "new_path": "pyconfig.h.in"
    }
  ]
}
