)]}'
{
  "commit": "cdbf24e87f0d8eaf16a733a293b71bc043fb79c7",
  "tree": "2e6fe51880f641c0a9e62c5f00fe9ab33f0e9b50",
  "parents": [
    "68db8c49d8e4a49a260b8260e24a604c5fdc0458"
  ],
  "author": {
    "name": "Behdad Esfahbod",
    "email": "behdad@behdad.org",
    "time": "Mon Apr 29 21:16:15 2013 -0400"
  },
  "committer": {
    "name": "Behdad Esfahbod",
    "email": "behdad@behdad.org",
    "time": "Thu May 02 15:39:16 2013 -0400"
  },
  "message": "[OTLayout] Accelerate lookups by batching\n\nIf we need to apply many many lookups, we can fasten that up by applying\nthem in batches.  For each batch we keep the union of the coverage of\nthe lookups participating.  We can then skip glyph ranges that do NOT\nparticipate in any lookup in the batch.  The batch partition is\ndetermined optimally by a mathematical probability model on the glyphs\nand a dynamic-program to optimize the partition.\n\nThe net effect is 30% speedup on Amiri.  the downside is more memory\nconsuption as each batch will keep an hb_set_t of its coverage.\n\nI\u0027m not yet convinced that the tradeoff is worth pursuing.  I\u0027m trying\nto find out ways to optimized this more, with less memory overhead.\n\nThis work also ignores the number of subtables per lookup.  That may\nprove to be very important for the performance numbers from here on.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3982cd054f01bec29887d6296963138f85bf6517",
      "old_mode": 33188,
      "old_path": "src/hb-ot-layout-gsub-table.hh",
      "new_id": "dd7d2850b5a4c5db4ad9cd7d359e3ea18d719365",
      "new_mode": 33188,
      "new_path": "src/hb-ot-layout-gsub-table.hh"
    },
    {
      "type": "modify",
      "old_id": "5ed54a6cabf7f594557601f19148ff4bee9258cd",
      "old_mode": 33188,
      "old_path": "src/hb-ot-map-private.hh",
      "new_id": "39421f7561c4c69813223dba9aebe7271f36b38e",
      "new_mode": 33188,
      "new_path": "src/hb-ot-map-private.hh"
    },
    {
      "type": "modify",
      "old_id": "df96a09655eb8148b04cb29ffd4c05b1572e6ec1",
      "old_mode": 33188,
      "old_path": "src/hb-ot-map.cc",
      "new_id": "8734e067d7c09a0407d0e6643b74bacbe4611339",
      "new_mode": 33188,
      "new_path": "src/hb-ot-map.cc"
    },
    {
      "type": "modify",
      "old_id": "8469ad86bdeec848c0edd27e404ecbaaf2867a13",
      "old_mode": 33188,
      "old_path": "src/hb-ot-shape-complex-arabic-fallback.hh",
      "new_id": "66ef1f6ac8d12310ad59c4f5ce9044105f268ad3",
      "new_mode": 33188,
      "new_path": "src/hb-ot-shape-complex-arabic-fallback.hh"
    }
  ]
}
