)]}'
{
  "commit": "ccf29a08cb92872b297cad16c53ca7bbede5bd1d",
  "tree": "65e71444d2c93f6c1c50ecf699ea6a6036ea745e",
  "parents": [
    "9e2b64d659da1afe07ce1c9c1dfefc09d188f21e"
  ],
  "author": {
    "name": "Marcel van Lohuizen",
    "email": "mpvl@golang.org",
    "time": "Tue Feb 13 14:47:17 2018 +0100"
  },
  "committer": {
    "name": "Marcel van Lohuizen",
    "email": "mpvl@golang.org",
    "time": "Fri Feb 23 17:23:06 2018 +0000"
  },
  "message": "language: change semantics of CompactIndex\n\nThis is the first CL in a sequence to enhance both the\nperformance and functionality of language Tags.\n\nFirst step is to have CompactIndex implement the\nsemantics that it should have: rather than returning\nUnd when there is no match, it should return the closest\nmatching compact index. CompactIndex is often used\nthis way, and when it is not it was typcially a bug. This\nfixes that.\n\nNext steps are to have the fast-path internal encoding\nof tag be a compact index.\n\nThe step after that is to keep two compact indexes,\nallow representing both the language and locale part\nof a tag like:\n    en-US-va-posix\nand\n    en-GB-rg-gbsct\n\nThe result will allow for dual-mode tags resulting from\nmatching, simplifying the life of an API user.\n(In Java the API users will get two tags from a match\nand will have to decide on a case-by-case basis which\ntag to use for which purpose.)\nThis design also allows for fast converstion to compact\nindices, making it unnecessary for message.Printers to\nextract this index.\n\nChange-Id: I019ac6df4a3e3c7e6c758173fc942667df65ff36\nReviewed-on: https://go-review.googlesource.com/95815\nRun-TryBot: Marcel van Lohuizen \u003cmpvl@golang.org\u003e\nTryBot-Result: Gobot Gobot \u003cgobot@golang.org\u003e\nReviewed-by: Nigel Tao \u003cnigeltao@golang.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "910bdeb02b14b4ddfa95c633ddb0755e40ff563b",
      "old_mode": 33188,
      "old_path": "internal/number/format.go",
      "new_id": "ce1a762a25ecdef7b40e2ad89f063ee1e53b3423",
      "new_mode": 33188,
      "new_path": "internal/number/format.go"
    },
    {
      "type": "modify",
      "old_id": "2a21f07d032685abc7a42add86f8e06e651ec03b",
      "old_mode": 33188,
      "old_path": "internal/number/number.go",
      "new_id": "70c08361ba0d36cd3a0df64f133c868a6d83bc5e",
      "new_mode": 33188,
      "new_path": "internal/number/number.go"
    },
    {
      "type": "modify",
      "old_id": "b65e213ff86f08804cf14ee0fa515c1857834071",
      "old_mode": 33188,
      "old_path": "language/language.go",
      "new_id": "f81f97670c141f598d497d938c9d8ee99efc42ff",
      "new_mode": 33188,
      "new_path": "language/language.go"
    },
    {
      "type": "modify",
      "old_id": "9e42d15dc6fb440297ce21155457213fb41ca816",
      "old_mode": 33188,
      "old_path": "language/language_test.go",
      "new_id": "14bc8a7b60cbd45f4ff7147e67532375a134a1c4",
      "new_mode": 33188,
      "new_path": "language/language_test.go"
    }
  ]
}
