)]}'
{
  "commit": "ebe61bd709bf23d7baddbb34e79084d7d156be04",
  "tree": "2efd7da6ec6557b9aaed7932d19e07e1beade288",
  "parents": [
    "0a10e4fe7402e37a43d9b62c15bfeac1cd4ef272"
  ],
  "author": {
    "name": "alandonovan",
    "email": "adonovan@google.com",
    "time": "Fri Feb 12 16:57:32 2021 -0500"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Feb 12 16:57:32 2021 -0500"
  },
  "message": "starlark: add \u0027bytes\u0027 data type, for binary strings (#330)\n\nTHIS IS AN INCOMPATIBLE LANGUAGE CHANGE; see below\r\n\r\nThis change defines a \u0027bytes\u0027 data type, an immutable string of\r\nbytes. In this Go implementation of Starlark, ordinary strings\r\nare also strings of bytes, so the behavior of the two is very similar.\r\nHowever, that is not required by the spec. Other implementations of\r\nStarlark, notably in Java, may use strings of UTF-16 codes for the\r\nordinary string type, and thus need a distinct type for byte strings.\r\n\r\nSee testdata/bytes.star for a tour of the API, and some remaining\r\nquestions. See the attached issue for an outline of the proposed\r\nspec change. A Java implementation is underway, but is greatly\r\ncomplicated by Bazel\u0027s unfortunate misdecoding of UTF-8 files as\r\nLatin1.\r\n\r\nThe string.elems iterable view is now indexable.\r\n\r\nThe old syntax.quote function (which was in fact not used\r\nexcept in tests) has been replaced by syntax.Quote,\r\nwhich is similar to Go\u0027s strconv.Quote.\r\n\r\nThis change removes go.starlark.net.lib.proto.Bytes.\r\n\r\nIMPORTANT: string literals that previously used hex escapes\r\n\\xXX or octal escapes \\OOO to denote byte values greater than 127\r\nwill now result in a compile error advising you to use \\u\r\nescapes instead if you want the UTF-8 encoding of a code point\r\nin the range U+80 to U+FF. A string literal can no longer\r\ndenote invalid text, such as the 1-element string formerly\r\nwritten \"\\xff\".\r\n\r\nUpdates https://github.com/bazelbuild/starlark/issues/112\r\nFixes https://github.com/google/starlark-go/issues/222\r\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "50bc0004d6e14a6a784a6da545ab1f0f168a5df2",
      "old_mode": 33188,
      "old_path": "go.mod",
      "new_id": "d14060ec236b72fe58d3eae36aa849c91e6f8963",
      "new_mode": 33188,
      "new_path": "go.mod"
    },
    {
      "type": "modify",
      "old_id": "b40c868a583a6a028779974dc2435617ee6452ee",
      "old_mode": 33188,
      "old_path": "go.sum",
      "new_id": "90a8048b12a5d8b07565b39855cb4a078e3cfc9e",
      "new_mode": 33188,
      "new_path": "go.sum"
    },
    {
      "type": "modify",
      "old_id": "ab6701859bd64368802bd03dd88c8b8b59ebc525",
      "old_mode": 33188,
      "old_path": "internal/compile/compile.go",
      "new_id": "c314e6e63858e470914089b740f1d245d6188e7c",
      "new_mode": 33188,
      "new_path": "internal/compile/compile.go"
    },
    {
      "type": "modify",
      "old_id": "0107ef9cdf5def766640dafcca89b3cdd64080eb",
      "old_mode": 33188,
      "old_path": "internal/compile/serial.go",
      "new_id": "adadabfc22d1944cf5897fbdac004f6847a53d10",
      "new_mode": 33188,
      "new_path": "internal/compile/serial.go"
    },
    {
      "type": "modify",
      "old_id": "84aa0d63d4c4831c1da3fff6a2714f7231333144",
      "old_mode": 33188,
      "old_path": "lib/proto/proto.go",
      "new_id": "149162db4def8c49a3b0b1c2f8b8e148dc0abfbd",
      "new_mode": 33188,
      "new_path": "lib/proto/proto.go"
    },
    {
      "type": "modify",
      "old_id": "c9bbb67b6d340c7633a9b396b4db5a2b296b4a58",
      "old_mode": 33188,
      "old_path": "starlark/eval.go",
      "new_id": "d0ad91fbec85aa806fac3a0892da6fc71a1738f5",
      "new_mode": 33188,
      "new_path": "starlark/eval.go"
    },
    {
      "type": "modify",
      "old_id": "4ce08d3a9a578e1909c7827fa371f0f56b8c135b",
      "old_mode": 33188,
      "old_path": "starlark/eval_test.go",
      "new_id": "9752fe8e21da2ebcf0af7a51866b26c01603b7be",
      "new_mode": 33188,
      "new_path": "starlark/eval_test.go"
    },
    {
      "type": "modify",
      "old_id": "d4250194ab619c7721b55a55bf453ef96b695d51",
      "old_mode": 33188,
      "old_path": "starlark/hashtable.go",
      "new_id": "27990b5496dc326c55e807686fc1a7c0dc9d8b0d",
      "new_mode": 33188,
      "new_path": "starlark/hashtable.go"
    },
    {
      "type": "modify",
      "old_id": "56454186874128940406fa29a889e42e87b427ed",
      "old_mode": 33188,
      "old_path": "starlark/library.go",
      "new_id": "562042620e339b6af78cc30bea3c73666e2fc4ed",
      "new_mode": 33188,
      "new_path": "starlark/library.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d5004037dcdbd72c889b9b26b9c4ccc7d093d999",
      "new_mode": 33188,
      "new_path": "starlark/testdata/bytes.star"
    },
    {
      "type": "modify",
      "old_id": "ef33d91a7dff638fdffd3ac4429270ddf42f7dee",
      "old_mode": 33188,
      "old_path": "starlark/testdata/json.star",
      "new_id": "7c7b316c27d4652237dd7a3e448058b43dc38a58",
      "new_mode": 33188,
      "new_path": "starlark/testdata/json.star"
    },
    {
      "type": "modify",
      "old_id": "84c6791e7b47ee130a3e1cc025ebd83fe0fd6f19",
      "old_mode": 33188,
      "old_path": "starlark/testdata/string.star",
      "new_id": "b317d1afe666fe8c2bcac248e1ea60c58981246c",
      "new_mode": 33188,
      "new_path": "starlark/testdata/string.star"
    },
    {
      "type": "modify",
      "old_id": "bcec7508490b2f3872b79278b8d95ea74667347c",
      "old_mode": 33188,
      "old_path": "starlark/value.go",
      "new_id": "81e29ed10b947569d9d019cb6167804f9694bc25",
      "new_mode": 33188,
      "new_path": "starlark/value.go"
    },
    {
      "type": "modify",
      "old_id": "50b808743ee4548dcfd3b52e10dabccd8cd95ab3",
      "old_mode": 33188,
      "old_path": "syntax/parse.go",
      "new_id": "f4c8fff4d7428e0e6711836314cd15063f68050f",
      "new_mode": 33188,
      "new_path": "syntax/parse.go"
    },
    {
      "type": "modify",
      "old_id": "6052e794e27967e482de601914f7a2d86c4c56f4",
      "old_mode": 33188,
      "old_path": "syntax/parse_test.go",
      "new_id": "fedbb3e81ef4b33db712e8a926861b4d43917ca7",
      "new_mode": 33188,
      "new_path": "syntax/parse_test.go"
    },
    {
      "type": "modify",
      "old_id": "49cb259cfdb10b1f18eeeac66209ad8241c38f2d",
      "old_mode": 33188,
      "old_path": "syntax/quote.go",
      "new_id": "741e106ad7dfbc485b141d5e64dce104a5e013b1",
      "new_mode": 33188,
      "new_path": "syntax/quote.go"
    },
    {
      "type": "modify",
      "old_id": "f9068eee1f5fee324caa0fad3c9ebd3daca3b468",
      "old_mode": 33188,
      "old_path": "syntax/quote_test.go",
      "new_id": "be7498b08088f6fe5b0c65c3ce06d4c9d7f25055",
      "new_mode": 33188,
      "new_path": "syntax/quote_test.go"
    },
    {
      "type": "modify",
      "old_id": "a162264987da47d2fc311f3f26601ff33cf242db",
      "old_mode": 33188,
      "old_path": "syntax/scan.go",
      "new_id": "bb4165e9d2637b4f990f3be196636750b6b16c75",
      "new_mode": 33188,
      "new_path": "syntax/scan.go"
    },
    {
      "type": "modify",
      "old_id": "0f2d9f22ed588884b24811e4610261b9eaab542f",
      "old_mode": 33188,
      "old_path": "syntax/scan_test.go",
      "new_id": "9582bd7e4c52566492516858a3ae175ac29fbf11",
      "new_mode": 33188,
      "new_path": "syntax/scan_test.go"
    },
    {
      "type": "modify",
      "old_id": "8bbf5c0f808b931576c159a53dfd05d4da2efd1f",
      "old_mode": 33188,
      "old_path": "syntax/syntax.go",
      "new_id": "20b28bb606f020711fa91409ef29b57730c09d89",
      "new_mode": 33188,
      "new_path": "syntax/syntax.go"
    }
  ]
}
