)]}'
{
  "commit": "53c87773a5b3cfde47d3c904101847ae20143622",
  "tree": "300040061f7cf1bb499a248edd59529e8213f243",
  "parents": [
    "0a0adaeaa9cc7739d508d6fde5c08b4b970f673c"
  ],
  "author": {
    "name": "Jukka Lehtosalo",
    "email": "jukka.lehtosalo@iki.fi",
    "time": "Mon Jan 30 09:33:06 2023 +0000"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Jan 30 09:33:06 2023 +0000"
  },
  "message": "Add mypyc native int types i64, i32, i16 and u8 (#31)\n\nIn code compiled with mypyc, these can be used in annotations to use\r\nfaster native int operations that don\u0027t check for overflow, as an\r\nalternative to the default arbitrary-precision int type.\r\n\r\nSee mypyc/mypyc/issues/837 for more context. Note that only i64 and\r\ni32 are currently supported by mypyc, but I\u0027m adding the planned i16\r\nand u8 types as well since their implementation is essentially the\r\nsame.\r\n\r\nThese are not real classes. In particular, there can be no instances\r\nof these types. In code that is not compiled with mypyc, there are\r\njust regular \u0027int\u0027 objects, in order to allow code using these types\r\nto be run without compilation. In code compiled with mypyc, these are\r\nrepresented as native integers that don\u0027t have a 1:1 Python\r\nreplacement. The native integers are impliciticly converted to/from\r\n\u0027int\u0027 objects when boxed/unboxed.\r\n\r\nI originally was planning to make these aliases of `int`, but there\r\nare runtime type checking and introspection use cases where it\u0027s\r\nimportant to make these distinct objects.\r\n\r\nThe types only support a few runtime operations:\r\n\r\n* Conversions from numbers and strings\r\n* `isinstance` checks\r\n\r\nWe could also add at least the `from_bytes` class method, but it\r\ndoesn\u0027t seem urgent as long as mypyc doesn\u0027t support it as a primitive\r\noperation.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "73b786b66b6f962598eaaa99938600de575a4855",
      "old_mode": 33188,
      "old_path": "README.md",
      "new_id": "4b280a9b34ea4323eed15efd8e9df618bd63defb",
      "new_mode": 33188,
      "new_path": "README.md"
    },
    {
      "type": "modify",
      "old_id": "cf90b66963af4d27baf302034c2165c703517f38",
      "old_mode": 33188,
      "old_path": "mypy_extensions.py",
      "new_id": "6600b21157c9a7a262c6ca8395c8d3b2e006b6e1",
      "new_mode": 33188,
      "new_path": "mypy_extensions.py"
    },
    {
      "type": "modify",
      "old_id": "861962de50738d4e1c0f8a08453d991e3b455666",
      "old_mode": 33188,
      "old_path": "tests/testextensions.py",
      "new_id": "991c4e5458b3a634c0746f2c9e5f3f7bb93fed71",
      "new_mode": 33188,
      "new_path": "tests/testextensions.py"
    }
  ]
}
