{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":52196052,"defaultBranch":"master","name":"kaitai_struct_compiler","ownerLogin":"kaitai-io","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2016-02-21T07:36:26.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/17322584?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1711994386.0","currentOid":""},"activityList":{"items":[{"before":"8d913def37a571bf8dd817f4f0d0f3bab3751f3a","after":"cc4e73b89bf120e57a6577dd70f72a4abd3d25e8","ref":"refs/heads/master","pushedAt":"2024-09-28T15:58:48.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"generalmimon","name":"Petr Pučil","path":"/generalmimon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47499687?s=80&v=4"},"commit":{"message":"BaseTranslator: remove default doByteArrayLiteral() implementation\n\nNow that I've fixed the translation of byte array literals in\n`JavaScriptTranslator` in the previous commit, which was the only place\nwhere this default implementation of `doByteArrayLiteral()` was actually\nused without being overridden (and it turned out to be a bug - it should\nhave been overridden there as well), I think it's best to remove it and\nrequire each language-specific translator to provide the correct\nimplementation. The fact that all languages override\n`BaseTranslator.doByteArrayLiteral()` proves that it is not a useful\nimplementation. On the contrary, it seems rather harmful: if\n`BaseTranslator` had never implemented `doByteArrayLiteral()`, whoever\nimplemented `JavaScriptTranslator` would have been forced to implement it\nexplicitly, and thus the bug described and fixed in the previous commit\nprobably wouldn't have occurred at all.","shortMessageHtmlLink":"BaseTranslator: remove default doByteArrayLiteral() implementation"}},{"before":"c23ec2ca88d84042edba76f70c1f003d062b7585","after":"8d913def37a571bf8dd817f4f0d0f3bab3751f3a","ref":"refs/heads/master","pushedAt":"2024-09-25T17:05:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"generalmimon","name":"Petr Pučil","path":"/generalmimon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47499687?s=80&v=4"},"commit":{"message":"JS build: fix TypeError when `null` occurs in YAML input\n\nFixes KSC \"crashes\" like this (this stack trace is from\nhttps://ide.kaitai.io/devel/):\n\n```\nTypeError: Cannot convert undefined or null to object\n at Function.keys ()\n at new $c_sjs_js_WrappedDictionary$DictionaryIterator (https://ide.kaitai.io/devel/lib/_npm/kaitai-struct-compiler/kaitai-struct-compiler.js:56693:69)\n at $c_sjs_js_WrappedDictionary.iterator__sc_Iterator (https://ide.kaitai.io/devel/lib/_npm/kaitai-struct-compiler/kaitai-struct-compiler.js:108532:10)\n at $f_scm_Growable__addAll__sc_IterableOnce__scm_Growable (https://ide.kaitai.io/devel/lib/_npm/kaitai-struct-compiler/kaitai-struct-compiler.js:43131:21)\n at $c_sci_MapBuilderImpl.addAll__sc_IterableOnce__sci_MapBuilderImpl (https://ide.kaitai.io/devel/lib/_npm/kaitai-struct-compiler/kaitai-struct-compiler.js:70719:192)\n at $c_sci_Map$.from__sc_IterableOnce__sci_Map (https://ide.kaitai.io/devel/lib/_npm/kaitai-struct-compiler/kaitai-struct-compiler.js:49082:26)\n at $c_Lio_kaitai_struct_format_JavaScriptKSYParser$.yamlJavascriptToScala__O__O (https://ide.kaitai.io/devel/lib/_npm/kaitai-struct-compiler/kaitai-struct-compiler.js:17228:35)\n ...\n```\n\nI think that this is an error that Web IDE users see relatively often\nwhen they're in the middle of writing a .ksy spec directly in the Web\nIDE's built-in editor. Web IDE recompiles the .ksy spec automatically\nwhile the user types, so it's likely that there will be an attempt to\ncompile a non-well-formed .ksy spec like this:\n\n```ksy\nmeta:\n id: js_cannot_convert_null\ninstances:\n foo:\n # NOTE: the following line \"value:\" is equivalent to \"value: null\" in YAML\n value:\n```\n\nNotice that the `value:` line is unfinished, but the Web IDE doesn't\nknow that, so it compiles this spec anyway. As a result, the KSC crashes\nwith the stack trace posted above, because the `yamlJavascriptToScala`\nwasn't prepared for `null` or `undefined` and tried to treat these\nvalues as if they were JS objects (i.e. \"dictionaries\"), which doesn't\nwork. This is fixed in this commit, so the new error message in the Web\nIDE for the above .ksy snippet looks like this:\n\n```\n(main): /instances/foo/value:\n\terror: expected string, got null\n```\n\nThis is consistent with the error message printed by the JVM build:\n\n```console\n$ kaitai-struct-compiler -t python js_cannot_convert_null.ksy\njs_cannot_convert_null.ksy: /instances/foo/value:\n error: expected string, got null\n```\n\n---\n\nA footnote to the code change: I removed `_: Int` because it was\nredundant - JavaScript doesn't have this type. `int` only exists in\nJava, JavaScript uses `_: Double` for all numbers.","shortMessageHtmlLink":"JS build: fix TypeError when null occurs in YAML input"}},{"before":"049b464b27c4d5db0484c66795ed31567b3126ec","after":"c23ec2ca88d84042edba76f70c1f003d062b7585","ref":"refs/heads/master","pushedAt":"2024-09-11T13:09:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"GreyCat","name":"Mikhail Yakshin","path":"/GreyCat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/157154?s=80&v=4"},"commit":{"message":"Bump copyright year","shortMessageHtmlLink":"Bump copyright year"}},{"before":"8610e1d7a796aad7addb64a5be2f9da48289bffc","after":"049b464b27c4d5db0484c66795ed31567b3126ec","ref":"refs/heads/master","pushedAt":"2024-09-07T16:15:17.000Z","pushType":"pr_merge","commitsCount":174,"pusher":{"login":"generalmimon","name":"Petr Pučil","path":"/generalmimon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47499687?s=80&v=4"},"commit":{"message":"Merge pull request #250 from Agile86/rust_basic_support_v2\n\nRust support","shortMessageHtmlLink":"Merge pull request #250 from Agile86/rust_basic_support_v2"}},{"before":"5b1f906f08a6143d075225b0b360f066df09bab4","after":"8610e1d7a796aad7addb64a5be2f9da48289bffc","ref":"refs/heads/master","pushedAt":"2024-08-30T18:21:58.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"generalmimon","name":"Petr Pučil","path":"/generalmimon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47499687?s=80&v=4"},"commit":{"message":"GoTranslator: implement all encodings from EncodingList","shortMessageHtmlLink":"GoTranslator: implement all encodings from EncodingList"}},{"before":"4cd8d59a72b0e23698db20360b3148c3dd9e3f8d","after":"5b1f906f08a6143d075225b0b360f066df09bab4","ref":"refs/heads/master","pushedAt":"2024-08-28T09:52:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"generalmimon","name":"Petr Pučil","path":"/generalmimon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47499687?s=80&v=4"},"commit":{"message":"Improve \"parsing expression '...' failed\" error messages","shortMessageHtmlLink":"Improve \"parsing expression '...' failed\" error messages"}},{"before":"37fd6335e242b3286f228c304c34759f561438c9","after":"4cd8d59a72b0e23698db20360b3148c3dd9e3f8d","ref":"refs/heads/master","pushedAt":"2024-08-27T13:23:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"generalmimon","name":"Petr Pučil","path":"/generalmimon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47499687?s=80&v=4"},"commit":{"message":"TranslatorSpec: fix tests broken in 37fd6335e242","shortMessageHtmlLink":"TranslatorSpec: fix tests broken in 37fd633"}},{"before":"604866249cab73c51838ffedb2c672073dd55e7a","after":"37fd6335e242b3286f228c304c34759f561438c9","ref":"refs/heads/master","pushedAt":"2024-08-27T13:11:27.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"generalmimon","name":"Petr Pučil","path":"/generalmimon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47499687?s=80&v=4"},"commit":{"message":"Ruby: fix `str.substring(0, 0)` returning `str` instead of `\"\"`\n\nSee https://github.com/kaitai-io/kaitai_struct_compiler/pull/277#issuecomment-2000631416\n\nThe bug fixed here is now tested in the ExprStrOps test, see\nhttps://github.com/kaitai-io/kaitai_struct_tests/commit/b70a99d66afc8bd88de95d20685549c7d444f66e","shortMessageHtmlLink":"Ruby: fix str.substring(0, 0) returning str instead of \"\""}},{"before":"3b69fb156c1ec1cf0d3f9c4e4bb06f3128e16b30","after":"604866249cab73c51838ffedb2c672073dd55e7a","ref":"refs/heads/master","pushedAt":"2024-08-26T16:09:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"generalmimon","name":"Petr Pučil","path":"/generalmimon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47499687?s=80&v=4"},"commit":{"message":"Write end offsets to `_debug` even if validation fails\n\nFixes a regression introduced in\n7154301a257423e5d68b200730be1c029e660433 that was well noticeable in the\ndevel Web IDE with the\nhttps://github.com/kaitai-io/kaitai_struct_webide/issues/156 feature: a\nfield with a failed validation (specified by the `contents` or `valid`\nkey) no longer had its byte range highlighted in the hex dump. This is\nbecause the aforementioned commit changed the order of operations in the\ngenerated JavaScript code (in debug mode, or more precisely with\n`--read-pos`) so that the assignment of the end offset to the `_debug`\nmap for a field with `contents` or `valid` was done *after* the `if`\nstatement performing the validation, which meant that the end offset was\nnot assigned if the validation failed.\n\nA nice side effect of this commit is that it eliminates duplicate\n`this._debug.{ATTR_NAME}.arr[i]` assignments in the case of a field with\ntype switching and `repeat`, such as when you compile\nhttps://github.com/kaitai-io/kaitai_struct_tests/blob/9f782819b70db6069674995b969d2b801c86a515/formats/switch_repeat_expr.ksy\nin `--read-pos` mode (in JavaScript, it removes the\n`this._debug.body.arr[i] = ...` assignments from every branch of the\n`switch` statement, which are indeed unnecessary, because the exact same\nassignments already exist around the `switch` statement as well).\n\nNote: this commit unfortunately doesn't have any impact on the current\nset of test formats in\n[`formats/`](https://github.com/kaitai-io/kaitai_struct_tests/tree/9f782819b70db6069674995b969d2b801c86a515/formats)\nwhen compiled with the usual settings in\n[`build-formats`](https://github.com/kaitai-io/kaitai_struct_tests/blob/9f782819b70db6069674995b969d2b801c86a515/build-formats).\nThis is because we only test the debug mode on 4 formats that have the\n`meta/ks-debug: true` key, and none of them has a field with `contents`\nor `valid`. But if you add `--debug` to the KSC incantation in\n`build-formats`, you will see the changes.","shortMessageHtmlLink":"Write end offsets to _debug even if validation fails"}},{"before":"75026ee55a3d58b0b84aa4b59b01f231da05d28e","after":"3b69fb156c1ec1cf0d3f9c4e4bb06f3128e16b30","ref":"refs/heads/master","pushedAt":"2024-08-25T22:41:36.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"generalmimon","name":"Petr Pučil","path":"/generalmimon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47499687?s=80&v=4"},"commit":{"message":"Mark the private class var `_values_*` as `const` also in C++98\n\nIt's `private` anyway, so it shouldn't matter, but it's already `const`\nin C++11 mode, so why not have it in C++98 mode too for consistency.","shortMessageHtmlLink":"Mark the private class var _values_* as const also in C++98"}},{"before":"5929d441dec81180ecde75dd2c58fa1108da97bf","after":"75026ee55a3d58b0b84aa4b59b01f231da05d28e","ref":"refs/heads/master","pushedAt":"2024-08-25T14:57:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"generalmimon","name":"Petr Pučil","path":"/generalmimon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47499687?s=80&v=4"},"commit":{"message":"Implement `valid/in-enum` for C++98, fix MSVC compat for C++11\n\nFixes the ValidFailInEnum test for C++98.\n\nShould also fix EnumIntRangeU and EnumLongRange{S,U} for\n`cpp_stl_11/msvc141-windows-x64`. I haven't tested these locally, but if\nthis change doesn't fix them, I don't know what would.\n\nInstead of creating a set of integers that the enum represents, this\ncommit creates a set of the defined enum values themselves. This should\nbe more portable, as the code no longer needs to take into account what\ninteger type is the underlying type of the enum (despite my best\nefforts, the existing approach didn't work in MSVC anyway for large\ninteger enum values, so the new approach seems to be the only way to\nmake it work on MSVC). Also, given that it was no longer necessary to\nuse `std::underlying_type` (which is only available since C++11), this\nadds support for C++98. It required a workaround for the missing\ninitializer lists, but the result doesn't look too bad.","shortMessageHtmlLink":"Implement valid/in-enum for C++98, fix MSVC compat for C++11"}},{"before":"793ba60476a3b4708f9750542815c04448ec62a9","after":"5929d441dec81180ecde75dd2c58fa1108da97bf","ref":"refs/heads/master","pushedAt":"2024-08-24T20:50:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"generalmimon","name":"Petr Pučil","path":"/generalmimon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47499687?s=80&v=4"},"commit":{"message":"C++: fix translation of large integers in the set of enum values\n\nFixes test EnumLongRangeS for\n`cpp_stl_11/{clang3.4,clang11}-linux-x86_64`\n\nProbably also fixes EnumLongRangeS for `cpp_stl_11/clang14-macos-x86_64` -\nuntested, but seems very likely, given that the build error looks\nexactly the same as in `cpp_stl_11/clang11-linux-x86_64`.\n\nHopefully also fixes the Enum{Int,Long}Range{S,U} tests for\n`cpp_stl_11/msvc141-windows-x64` - I haven't tested that locally, so\nlet's see the result in CI.","shortMessageHtmlLink":"C++: fix translation of large integers in the set of enum values"}},{"before":"3c855b38976df73e8b1500bf85aaad06287d2350","after":"793ba60476a3b4708f9750542815c04448ec62a9","ref":"refs/heads/master","pushedAt":"2024-08-19T17:49:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"generalmimon","name":"Petr Pučil","path":"/generalmimon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47499687?s=80&v=4"},"commit":{"message":"Add `valid/in-enum` to validate enum values\n\nSee https://github.com/kaitai-io/kaitai_struct/issues/435#issuecomment-389597122","shortMessageHtmlLink":"Add valid/in-enum to validate enum values"}},{"before":"a9c55c1b557f73754d446f68778494c640f8cfb2","after":"3c855b38976df73e8b1500bf85aaad06287d2350","ref":"refs/heads/master","pushedAt":"2024-08-11T13:43:19.000Z","pushType":"push","commitsCount":10,"pusher":{"login":"generalmimon","name":"Petr Pučil","path":"/generalmimon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47499687?s=80&v=4"},"commit":{"message":"Graphviz: eliminate duplicate arrows\n\nThis ensures that at most one arrow is drawn for every source and\ndestination pair. Duplicate arrows add no information value and only\nmake the diagram cluttered.\n\nFor example, see\nhttps://github.com/kaitai-io/kaitai_struct_formats/blob/e533644618670a3b94be687253b0bf11a051640c/common/bcd.ksy,\nwhich used to generate many duplicate arrows with the same source and\ndestination. It looks much cleaner now.","shortMessageHtmlLink":"Graphviz: eliminate duplicate arrows"}},{"before":"9fb3a2fc1fd9f7490fa01bb3e55c17e40ba682bb","after":"a9c55c1b557f73754d446f68778494c640f8cfb2","ref":"refs/heads/master","pushedAt":"2024-08-08T14:22:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"generalmimon","name":"Petr Pučil","path":"/generalmimon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47499687?s=80&v=4"},"commit":{"message":"Fix 0.9 release notes: `_bitsizeof` was never implemented\n\nWhen I wrote this, I assumed it was implemented and didn't check.","shortMessageHtmlLink":"Fix 0.9 release notes: _bitsizeof was never implemented"}},{"before":"83df9977348b108fb74e649df39b91ce5cfc465e","after":"9fb3a2fc1fd9f7490fa01bb3e55c17e40ba682bb","ref":"refs/heads/master","pushedAt":"2024-08-07T13:38:39.000Z","pushType":"push","commitsCount":12,"pusher":{"login":"generalmimon","name":"Petr Pučil","path":"/generalmimon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47499687?s=80&v=4"},"commit":{"message":"Nim: add UTF-16 and UTF-32 support to `type: strz`\n\nSee https://github.com/kaitai-io/kaitai_struct/issues/187\n\nThe new methods used in this commit have been implemented in\nhttps://github.com/kaitai-io/kaitai_struct_nim_runtime/commit/f42f323c5168caa6b28231b4de4ea0989c7525f9","shortMessageHtmlLink":"Nim: add UTF-16 and UTF-32 support to type: strz"}},{"before":"74a4c625e077a0ab7989d2240078db9e45f8a741","after":"83df9977348b108fb74e649df39b91ce5cfc465e","ref":"refs/heads/master","pushedAt":"2024-08-06T13:21:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"GreyCat","name":"Mikhail Yakshin","path":"/GreyCat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/157154?s=80&v=4"},"commit":{"message":"JavaMain: homePath: wrap all into safety options and report detailed error messages","shortMessageHtmlLink":"JavaMain: homePath: wrap all into safety options and report detailed …"}},{"before":"54524e19fbe025a560f7111310e716d40c7206a6","after":"74a4c625e077a0ab7989d2240078db9e45f8a741","ref":"refs/heads/master","pushedAt":"2024-07-31T08:07:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"generalmimon","name":"Petr Pučil","path":"/generalmimon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47499687?s=80&v=4"},"commit":{"message":"Only accept values 0-255 in `terminator`/`pad-right`\n\nFixes https://github.com/kaitai-io/kaitai_struct/issues/791","shortMessageHtmlLink":"Only accept values 0-255 in terminator/pad-right"}},{"before":"983060d93b7a8d227604586b565b1a0e956c99c8","after":"54524e19fbe025a560f7111310e716d40c7206a6","ref":"refs/heads/master","pushedAt":"2024-07-16T13:14:35.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"generalmimon","name":"Petr Pučil","path":"/generalmimon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47499687?s=80&v=4"},"commit":{"message":"Go: fix `_index` in `repeat: eos` to start from 0 (not 1)\n\nFixes the following tests for Go:\n\n* ValidFailRepeatAnyofInt\n* ValidFailRepeatContents\n* ValidFailRepeatEqInt\n* ValidFailRepeatExpr\n* ValidFailRepeatInst\n* ValidFailRepeatMaxInt\n* ValidFailRepeatMinInt","shortMessageHtmlLink":"Go: fix _index in repeat: eos to start from 0 (not 1)"}},{"before":"fb7e8624965b94d390703b358e514f1039b15182","after":"983060d93b7a8d227604586b565b1a0e956c99c8","ref":"refs/heads/master","pushedAt":"2024-07-13T00:09:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"generalmimon","name":"Petr Pučil","path":"/generalmimon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47499687?s=80&v=4"},"commit":{"message":"TranslatorSpec: fix tests broken in the previous commit","shortMessageHtmlLink":"TranslatorSpec: fix tests broken in the previous commit"}},{"before":"5d7822f6e66cf22ff1cd8dbb645e703379b14954","after":"fb7e8624965b94d390703b358e514f1039b15182","ref":"refs/heads/master","pushedAt":"2024-07-13T00:02:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"generalmimon","name":"Petr Pučil","path":"/generalmimon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47499687?s=80&v=4"},"commit":{"message":"Go: fix recent regression (broken `intToStr`)\n\nThis partially reverts commit 7be4a2b1163e14441b3d9cd609a5829cd20c5383.\n\nThe above mentioned commit introduced a bug when converting\n`strconv.FormatInt(int64(v), 10)` to `strconv.Itoa(int64(v))` (it should\nhave been `strconv.Itoa(v)`, because https://pkg.go.dev/strconv#Itoa\naccepts `int`, not `int64`). Therefore, apparently all tests using\n`intToStr` were broken since then.\n\nHowever, I don't think the change to `strconv.Itoa` was necessary. The\ndocumentation of [`strconv.Itoa`](https://pkg.go.dev/strconv#Itoa)\nexplains that it is equivalent to `strconv.Itoa(int64(v))`, and it is\napparently also implemented that way:\nhttps://cs.opensource.google/go/go/+/refs/tags/go1.22.5:src/strconv/itoa.go;l=34\n\n`strconv.FormatInt` has the potential advantage that it accepts the\nwidest possible integer type `int64`, not `int` which might be only 32\nbits wide. `strconv.Itoa` seems to be just a convenience alias with a\nless general argument type.","shortMessageHtmlLink":"Go: fix recent regression (broken intToStr)"}},{"before":"27d502025c8b7b2ffeb9b5308c47c62fbda84047","after":"5d7822f6e66cf22ff1cd8dbb645e703379b14954","ref":"refs/heads/master","pushedAt":"2024-07-10T21:51:59.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"generalmimon","name":"Petr Pučil","path":"/generalmimon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47499687?s=80&v=4"},"commit":{"message":"Merge pull request #302 from Mingun/fix-encoding-literals\n\nFix incorrect encoding literals -- escape them","shortMessageHtmlLink":"Merge pull request #302 from Mingun/fix-encoding-literals"}},{"before":"2191070c7a8a7e0c19b01ca79f5616437cc7bc6f","after":"27d502025c8b7b2ffeb9b5308c47c62fbda84047","ref":"refs/heads/master","pushedAt":"2024-06-10T17:21:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"GreyCat","name":"Mikhail Yakshin","path":"/GreyCat","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/157154?s=80&v=4"},"commit":{"message":"Bump sbt version to 1.10.0","shortMessageHtmlLink":"Bump sbt version to 1.10.0"}},{"before":"db78a74647e690f807fda9dfad85da865d958824","after":"2191070c7a8a7e0c19b01ca79f5616437cc7bc6f","ref":"refs/heads/master","pushedAt":"2024-04-15T21:21:00.000Z","pushType":"pr_merge","commitsCount":6,"pusher":{"login":"generalmimon","name":"Petr Pučil","path":"/generalmimon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47499687?s=80&v=4"},"commit":{"message":"Merge pull request #280 from Mingun/fix-parent-calculation\n\nCalculate parent for types that does not used in the current spec","shortMessageHtmlLink":"Merge pull request #280 from Mingun/fix-parent-calculation"}},{"before":"32227fc4130921962ed0418af287682427fbef5c","after":"db78a74647e690f807fda9dfad85da865d958824","ref":"refs/heads/master","pushedAt":"2024-04-15T21:15:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"generalmimon","name":"Petr Pučil","path":"/generalmimon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47499687?s=80&v=4"},"commit":{"message":"C#: fix missing import of `List` for array `params`\n\nFixes test ImportsParamsDefArrayUsertypeImported for C# targets other\nthan `netcore6.0` where it already passes, i.e. for\n`csharp/net48-windows-x64` and\n`csharp/netcore{2.2.103,3.0.100}-linux-x86_64`","shortMessageHtmlLink":"C#: fix missing import of List for array params"}},{"before":"221f617ef84a940c6915a3f5bd9ad4ce6a4f750c","after":"32227fc4130921962ed0418af287682427fbef5c","ref":"refs/heads/master","pushedAt":"2024-04-15T17:54:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"generalmimon","name":"Petr Pučil","path":"/generalmimon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47499687?s=80&v=4"},"commit":{"message":"TranslatorSpec: fix build error after recent changes","shortMessageHtmlLink":"TranslatorSpec: fix build error after recent changes"}},{"before":"128e1790bf0f37d310959ecc4c9cdb31a06e21dd","after":"221f617ef84a940c6915a3f5bd9ad4ce6a4f750c","ref":"refs/heads/master","pushedAt":"2024-04-15T17:28:19.000Z","pushType":"push","commitsCount":17,"pusher":{"login":"generalmimon","name":"Petr Pučil","path":"/generalmimon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47499687?s=80&v=4"},"commit":{"message":"C++: fix missing `#include ` for array `params`\n\nFixes test ImportsParamsDefArrayUsertypeImported for C++98 (not C++11\ndue to some other issue)","shortMessageHtmlLink":"C++: fix missing #include <vector> for array params"}},{"before":"45f3da23adead2fae573d8c762c1cf1a1942a82e","after":"128e1790bf0f37d310959ecc4c9cdb31a06e21dd","ref":"refs/heads/master","pushedAt":"2024-04-07T13:10:06.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"generalmimon","name":"Petr Pučil","path":"/generalmimon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47499687?s=80&v=4"},"commit":{"message":"Rename methods by replacing \"opaque\" with \"external\"\n\nThis is to reflect the new meaning of these methods since\nb2ec9e54d78b1485f27d1b74be8eaf8b868b8ed6, when they were updated to\nprocess all external types from the perspective of the current type, not\nonly opaque types.","shortMessageHtmlLink":"Rename methods by replacing \"opaque\" with \"external\""}},{"before":"9b8dda24648b5a002e797b15c6d40776c739b719","after":"45f3da23adead2fae573d8c762c1cf1a1942a82e","ref":"refs/heads/master","pushedAt":"2024-04-05T12:33:24.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"generalmimon","name":"Petr Pučil","path":"/generalmimon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47499687?s=80&v=4"},"commit":{"message":"JavaScript: use `this` as default `_root` only in top-level types\n\nSee the same change in Lua: 1a0b2c07e5ced55319c18f62d41876159e1b1a62\n\nThis would have fixed the `NestedTypesImport` test for JavaScript if it\nweren't for the missing import of `NestedTypes3` it uses (in other\nwords, this test still fails only because of\nhttps://github.com/kaitai-io/kaitai_struct/issues/703).","shortMessageHtmlLink":"JavaScript: use this as default _root only in top-level types"}},{"before":"751f059f4a34dddcf7d8f75bd8f89c3ee07f53fc","after":"9b8dda24648b5a002e797b15c6d40776c739b719","ref":"refs/heads/master","pushedAt":"2024-04-04T17:27:28.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"generalmimon","name":"Petr Pučil","path":"/generalmimon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47499687?s=80&v=4"},"commit":{"message":"PHP: use `$this` as default `$_root` only in top-level types\n\nSee the same change in Python: e776c982f8ba5b039bdcacd1db48ecbe77588df6\n\nThis commit by itself doesn't fix any observable issue because this\nfallback behavior is also performed in the runtime library:\nhttps://github.com/kaitai-io/kaitai_struct_php_runtime/blob/e21bc2a3/lib/Kaitai/Struct/Struct.php#L12\n\nHowever, this poses a problem because using `$this` as a fallback for\n`$_root` should be done **only** in the top-level type. This is why it\ncan actually only be done here in KSC and not in the runtime library,\nbecause the runtime library has no way of knowing whether it's dealing\nwith a top-level type or not. Therefore, this commit adds the fallback\nin KSC so that it can be removed from the runtime library.\n\nThe fact that the runtime library does it in every type is the reason\nwhy the NestedTypesImport test currently fails (see\nhttps://github.com/kaitai-io/ci_artifacts/blob/f82e17355f/test_out/php/ci.json#L719-L729).\nThe scenario is that `nested_types_import.ksy` contains `type:\nnested_types3::subtype_b` (see\n[`nested_types_import.ksy:15`](https://github.com/kaitai-io/kaitai_struct_tests/blob/ec0fafac31/formats/nested_types_import.ksy#L15)),\nwhich is an external type from the perspective of `nested_types_import`,\nso `_root` is not passed to it and remains `null`. The fact that\n`$_root` is `null` is noticed by the runtime library, which replaces it\nwith `$this`. This is wrong, because the type of `$_root` in\n`NestedTypes3\\SubtypeB` is supposed to be `NestedTypes3`, not\n`NestedTypes3\\SubtypeB`. However, this turns into an actual error once\n`NestedTypes3\\SubtypeB::_read()` creates an instance of\n`NestedTypes3\\SubtypeA\\SubtypeCc` on this line -\n[`NestedTypes3.php:88`](https://github.com/kaitai-io/ci_targets/blob/24ec7d3efd/compiled/php/NestedTypes3.php#L88):\n\n```php\n $this->_m_aCc = new \\Kaitai\\Struct\\Tests\\NestedTypes3\\SubtypeA\\SubtypeCc($this->_io, $this, $this->_root);\n```\n\n`$this->_root` is a `NestedTypes3\\SubtypeB` object, but\n`NestedTypes3\\SubtypeA\\SubtypeCc` requires that the `$_root` argument\ntype is `NestedTypes3`. Since this is not the case, a `TypeError` is\nthrown.","shortMessageHtmlLink":"PHP: use $this as default $_root only in top-level types"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0yOFQxNTo1ODo0OC4wMDAwMDBazwAAAATDbxfa","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNC0wNFQxNzoyNzoyOC4wMDAwMDBazwAAAAQoEOVo"}},"title":"Activity · kaitai-io/kaitai_struct_compiler"}