{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":791357873,"defaultBranch":"master","name":"gala","ownerLogin":"labath","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2024-04-24T15:16:29.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/3129331?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1717588097.0","currentOid":""},"activityList":{"items":[{"before":null,"after":"66ede664cf5cd30a80dd015c01a09e95e3f98c1b","ref":"refs/heads/num_children","pushedAt":"2024-06-05T11:48:17.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"labath","name":"Pavel Labath","path":"/labath","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3129331?s=80&v=4"},"commit":{"message":"Add a pretty printer extension to directly return the number of children\n\nThis avoids us needing to enumerate the children one by one (if the\npretty printer supports the extension).\n\nTo keep the pretty printer interface consistent, I've define the\nextensions in terms of the number of children returned/yielded by the\n`children()` function rather than the number of entries in a map, even\nthough this means that most map pretty printers will need to multiple\nthe number of elemnts by two, only for GALA to divide it again.\n\nI'm also passing down the `max_count` value we get from lldb, in it's\nuseful in some pretty printers for limiting the amount of work.\n\nWith llvm/llvm-project#93946, lldb will pass down reasonable values for\nmax_count, so we might be able to remove the limiting hack on the\nfallback path, but I'm leaving that for a separate patch/discussion.","shortMessageHtmlLink":"Add a pretty printer extension to directly return the number of children"}},{"before":null,"after":"443527278cfc5f8c36f6dfc7d9f44531713f0de7","ref":"refs/heads/getitem","pushedAt":"2024-06-05T11:29:59.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"labath","name":"Pavel Labath","path":"/labath","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3129331?s=80&v=4"},"commit":{"message":"Assorted fixes to __getitem__ implemetnation and test\n\nMy llvm/llvm-project#94455 broke getitem_with_gdbvalue_index test\n(it changed the name of anonymous unions from None to \"\"). This PR\nfixes the implementation to use a more reliable way of detecting\nanonymous unions. It also fixes two other issues:\n- it now looks into anonymous structs as well as unions\n- it recurses into anonymous types\n\nLast, I've refactored the associated test to remove the duplication of\nexpectations and better expose the difference between the two tested\nscenarios.","shortMessageHtmlLink":"Assorted fixes to __getitem__ implemetnation and test"}},{"before":null,"after":"6c2881d5dba2744e8aaaeae3f3c70cfb0dc222b8","ref":"refs/heads/lookup","pushedAt":"2024-05-15T09:02:57.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"labath","name":"Pavel Labath","path":"/labath","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3129331?s=80&v=4"},"commit":{"message":"Use SBType::FindFirstType for gdb.lookup_type\n\n.. instead of `FindTypes(basename)` + custom filtering.\n\nThis makes a huge difference when it comes to performance, because\nsomething like `FindTypes(\"iterator\")` forces lldb to return all\niterator types anywhere in the program. FindFirstType bails out the\nsearch as soon as it finds the first match (which is all that we're\ninterested in).\n\nIt's unclear why the function was implemented as it was, but a part of\nthe reason was likely the fact that FindTypes had problems with looking\nup/parsing compex type names containing templates. This has now been\n(mostly) fixed in llvm/llvm-project#91586, and appears that the\nsimplified version performs satisfactorily.","shortMessageHtmlLink":"Use SBType::FindFirstType for gdb.lookup_type"}},{"before":null,"after":"7e9bab574e10371499bf0091da438a90cd2bdccc","ref":"refs/heads/align","pushedAt":"2024-05-06T08:56:39.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"labath","name":"Pavel Labath","path":"/labath","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3129331?s=80&v=4"},"commit":{"message":"Implement gdb.Type.alignof","shortMessageHtmlLink":"Implement gdb.Type.alignof"}},{"before":null,"after":"a406fa4561f3bbb9bba3c341c3e796fcba529951","ref":"refs/heads/fix-test","pushedAt":"2024-05-03T11:46:28.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"labath","name":"Pavel Labath","path":"/labath","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3129331?s=80&v=4"},"commit":{"message":"Move lookup_in_type commands into a python file\n\nFollowing up on #14. Since some of the checks involve throwing\nexceptions, I needed to add a small wrapper to catch them.","shortMessageHtmlLink":"Move lookup_in_type commands into a python file"}},{"before":"939c5d4ede43d80fe4fdeeb6f9ed5680d5d0b245","after":null,"ref":"refs/heads/lookup","pushedAt":"2024-05-03T11:45:16.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"labath","name":"Pavel Labath","path":"/labath","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3129331?s=80&v=4"}},{"before":"898a0b2d0f67e017315774a82b4f46a0cedb6401","after":null,"ref":"refs/heads/in_type","pushedAt":"2024-05-03T11:45:14.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"labath","name":"Pavel Labath","path":"/labath","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3129331?s=80&v=4"}},{"before":"a406fa4561f3bbb9bba3c341c3e796fcba529951","after":null,"ref":"refs/heads/fix-test","pushedAt":"2024-05-03T11:45:12.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"labath","name":"Pavel Labath","path":"/labath","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3129331?s=80&v=4"}},{"before":null,"after":"a406fa4561f3bbb9bba3c341c3e796fcba529951","ref":"refs/heads/fix-test","pushedAt":"2024-05-02T14:17:54.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"labath","name":"Pavel Labath","path":"/labath","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3129331?s=80&v=4"},"commit":{"message":"Move lookup_in_type commands into a python file\n\nFollowing up on #14. Since some of the checks involve throwing\nexceptions, I needed to add a small wrapper to catch them.","shortMessageHtmlLink":"Move lookup_in_type commands into a python file"}},{"before":"62a8191cebfd416daf5541e019ca31e5a7132cd1","after":"6d168997e89a89764a6e99036d15c744acc7e7a3","ref":"refs/heads/master","pushedAt":"2024-05-02T13:35:48.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"labath","name":"Pavel Labath","path":"/labath","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3129331?s=80&v=4"},"commit":{"message":"Fix print_elements test\n\nThe current implementation of gdb.Value.__str__ doesn't print children,\nand the test wasn't checking that the prettyprinter yielded any\nchildren, so it wasn't really testing anything.\n\nUse the `p` command instead from the test as a workaround (so children\nget printed), and add a positive CHECK to verify that the printer yields\nas many elements as desired, but not more.","shortMessageHtmlLink":"Fix print_elements test"}},{"before":"2a4a66125260c58729b5f4d2dbb2cac91bbf00a6","after":"898a0b2d0f67e017315774a82b4f46a0cedb6401","ref":"refs/heads/in_type","pushedAt":"2024-04-25T11:15:57.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"labath","name":"Pavel Labath","path":"/labath","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3129331?s=80&v=4"},"commit":{"message":"Add two gala_compatibility wrappers for peeking into types\n\n- get_nested_type allows us to use the dedicated lldb api for retrieving\n the nested type. gdb has no comparable API, so this function is\n implemented through gdb.lookup_type (which is faster and more reliable\n than lldb-via-gala implementation of gdb.lookup_type)\n- get_static_constexpr_value_from_type allows one to retrieve a static\n constexpr field from a type. LLDB has a (freshly minted) API for this\n purpose, while on gdb we can use a hackaround casting a null pointer\n to a value of the desired type.","shortMessageHtmlLink":"Add two gala_compatibility wrappers for peeking into types"}},{"before":null,"after":"2a4a66125260c58729b5f4d2dbb2cac91bbf00a6","ref":"refs/heads/in_type","pushedAt":"2024-04-25T11:13:59.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"labath","name":"Pavel Labath","path":"/labath","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3129331?s=80&v=4"},"commit":{"message":"Add two gala_compatibility wrappers for peeking into types\n\n- get_nested_type allows us to use the dedicated lldb api for retrieving\n the nested type. gdb has no comparable API, so this function is\n implemented through gdb.lookup_type (which is faster and more reliable\n than lldb-via-gala implementation of gdb.lookup_type)\n- get_static_constexpr_value_from_type allows one to retrieve a static\n constexpr field from a type. LLDB has a (freshly minted) API for this\n purpose, while on gdb we can use a hackaround casting a null pointer\n to a value of the desired type.","shortMessageHtmlLink":"Add two gala_compatibility wrappers for peeking into types"}},{"before":null,"after":"939c5d4ede43d80fe4fdeeb6f9ed5680d5d0b245","ref":"refs/heads/lookup","pushedAt":"2024-04-24T15:23:10.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"labath","name":"Pavel Labath","path":"/labath","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3129331?s=80&v=4"},"commit":{"message":"Short-circuit lookup_type for builtin types\n\nUse the existing BUILTIN_TYPE_NAME_TO_BASIC_TYPE to quickly return the\ncorresponding builtin type. FindTypes(\"char\") can take a fair amount of\ntime, particularly if the pretty printer does it in a loop, and this can\nresult in significant speedups.\n\nIt also allows us to remove the `unsigned char` hackaround.","shortMessageHtmlLink":"Short-circuit lookup_type for builtin types"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNi0wNVQxMTo0ODoxNy4wMDAwMDBazwAAAARdDUxb","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNi0wNVQxMTo0ODoxNy4wMDAwMDBazwAAAARdDUxb","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNC0yNFQxNToyMzoxMC4wMDAwMDBazwAAAAQ5SORC"}},"title":"Activity ยท labath/gala"}