{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":510621196,"defaultBranch":"dev/mmtk-overrides-default","name":"ruby","ownerLogin":"mmtk","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2022-07-05T06:53:56.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/32701511?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1726716017.0","currentOid":""},"activityList":{"items":[{"before":"29612e349e01951af3562be9fc1e309e5268d9ff","after":"8e171bfca85e20e7ac8ccc88f71f9dd10c7441d3","ref":"refs/heads/update/enable-2024-09-10","pushedAt":"2024-09-19T07:00:57.000Z","pushType":"push","commitsCount":9,"pusher":{"login":"wks","name":"Kunshan Wang","path":"/wks","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/370317?s=80&v=4"},"commit":{"message":"Merge branch 'dev/mmtk-overrides-default' into update/enable-2024-09-10","shortMessageHtmlLink":"Merge branch 'dev/mmtk-overrides-default' into update/enable-2024-09-10"}},{"before":"cba87337cc9f1197bacf68afa9273a3b2ac8ba03","after":"f38ff7179b58479b2f9cdddbfdaf457cd1521bfc","ref":"refs/heads/dev/mmtk-overrides-default","pushedAt":"2024-09-19T06:13:30.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"wks","name":"Kunshan Wang","path":"/wks","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/370317?s=80&v=4"},"commit":{"message":"Do not use rb_str_tmp_frozen_no_embed_acquire with MMTk\n\nIt was intended to work around https://bugs.ruby-lang.org/issues/20169,\nbut it is unnecessary for MMTk.","shortMessageHtmlLink":"Do not use rb_str_tmp_frozen_no_embed_acquire with MMTk"}},{"before":null,"after":"f38ff7179b58479b2f9cdddbfdaf457cd1521bfc","ref":"refs/heads/fix/str-nofree","pushedAt":"2024-09-19T03:20:17.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"wks","name":"Kunshan Wang","path":"/wks","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/370317?s=80&v=4"},"commit":{"message":"Do not use rb_str_tmp_frozen_no_embed_acquire with MMTk\n\nIt was intended to work around https://bugs.ruby-lang.org/issues/20169,\nbut it is unnecessary for MMTk.","shortMessageHtmlLink":"Do not use rb_str_tmp_frozen_no_embed_acquire with MMTk"}},{"before":"b93a9dc9bc0b7aeec7ec41f14fabfb1b064bdcfb","after":"9a607cf225dbcb5567c7061d3595c4e0ad931e0a","ref":"refs/heads/dev/gc-mmtk","pushedAt":"2024-09-18T15:24:40.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"peterzhu2118","name":"Peter Zhu","path":"/peterzhu2118","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15860699?s=80&v=4"},"commit":{"message":"Implement dummy rb_gc_impl_latest_gc_info","shortMessageHtmlLink":"Implement dummy rb_gc_impl_latest_gc_info"}},{"before":"eae75e105bb347af043f3c76867aa1d457145349","after":"b93a9dc9bc0b7aeec7ec41f14fabfb1b064bdcfb","ref":"refs/heads/dev/gc-mmtk","pushedAt":"2024-09-16T18:17:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"peterzhu2118","name":"Peter Zhu","path":"/peterzhu2118","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15860699?s=80&v=4"},"commit":{"message":"Add forking support","shortMessageHtmlLink":"Add forking support"}},{"before":"12ca817b3d6a75bb083b39822d43714e5b3f072e","after":"eae75e105bb347af043f3c76867aa1d457145349","ref":"refs/heads/dev/gc-mmtk","pushedAt":"2024-09-16T17:22:14.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"peterzhu2118","name":"Peter Zhu","path":"/peterzhu2118","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15860699?s=80&v=4"},"commit":{"message":"Implement rb_gc_impl_mark_weak","shortMessageHtmlLink":"Implement rb_gc_impl_mark_weak"}},{"before":"725a60918fe53651465dbdabe7bbda1ef838d79a","after":"12ca817b3d6a75bb083b39822d43714e5b3f072e","ref":"refs/heads/dev/gc-mmtk","pushedAt":"2024-09-12T15:35:29.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"peterzhu2118","name":"Peter Zhu","path":"/peterzhu2118","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15860699?s=80&v=4"},"commit":{"message":"Fix WebAssembly build","shortMessageHtmlLink":"Fix WebAssembly build"}},{"before":"68d95d79cbea0a64f80fdce12dae1466283fa967","after":"cba87337cc9f1197bacf68afa9273a3b2ac8ba03","ref":"refs/heads/dev/mmtk-overrides-default","pushedAt":"2024-09-12T11:54:39.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"wks","name":"Kunshan Wang","path":"/wks","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/370317?s=80&v=4"},"commit":{"message":"Rewrite MMTk-specific code with WHEN_USING_MMTK\n\nWhen the \"#if USE_MMTK\" directive and the `if (rb_mmtk_enabled_p())`\nstatement are used together, it will be very complicated and confusing.\nWe rewrite `string.c` using the convenient `WHEN_USING_MMTK`,\n`WHEN_NOT_USING_MMTK` and `WHEN_USING_MMTK2` macros when possible.\n\nThis commit does not change the semantics of the existing code in\n`string.c`.","shortMessageHtmlLink":"Rewrite MMTk-specific code with WHEN_USING_MMTK"}},{"before":"cd5e3561b6d564a9e5e70a12703873aa8a5f8252","after":"68d95d79cbea0a64f80fdce12dae1466283fa967","ref":"refs/heads/dev/mmtk-overrides-default","pushedAt":"2024-09-12T03:09:58.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"wks","name":"Kunshan Wang","path":"/wks","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/370317?s=80&v=4"},"commit":{"message":"Merge pull request #92 from mmtk/mmtk-fix-missing-shared-strbuf\n\nFix missing strbuf","shortMessageHtmlLink":"Merge pull request #92 from mmtk/mmtk-fix-missing-shared-strbuf"}},{"before":"defff97de388022d18f7bf7bd2f500e05920bd9c","after":"ca89e442341bd4b1da38885d7067d0df955b364d","ref":"refs/heads/mmtk-fix-missing-shared-strbuf","pushedAt":"2024-09-11T22:03:57.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"eileencodes","name":"Eileen M. Uchitelle","path":"/eileencodes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1080678?s=80&v=4"},"commit":{"message":"Fix missing strbuf\n\nIn CI (and locally) we were seeing a failed assertion for the\n`test_gem_remote_fetcher` test. After much debugging it was clear that\nfor this test the strbuf was missing on `shared` so when `orig` moved,\n`shared` didn't follow`. This caused the offset to be very off.\n\n```\nAssertion Failed: string.c:1805:str_new_frozen_buffer:ofs >= 0\nruby 3.4.0dev (2024-08-09T19:42:38Z reproduction-for-s.. a5b29b5277) +MMTk(Immix) [arm64-darwin23]\n```\n\nWith a `GC_ASSERT` we tracked down a missing `rb_mmtk_str_set_strbuf` in\n`rb_str_tmp_frozen_no_embed_acquire`.\n\nFixes: mmtk/ruby#85","shortMessageHtmlLink":"Fix missing strbuf"}},{"before":null,"after":"defff97de388022d18f7bf7bd2f500e05920bd9c","ref":"refs/heads/mmtk-fix-missing-shared-strbuf","pushedAt":"2024-09-11T22:02:48.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"eileencodes","name":"Eileen M. Uchitelle","path":"/eileencodes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1080678?s=80&v=4"},"commit":{"message":"Fix missing strbuf\n\nIn CI (and locally) we were seeing a failed assertion for the\n`test_gem_remote_fetcher` test. After much debugging it was clear that\nfor this test the strbuf was missing on `shared` so when `orig` moved,\n`shared` didn't follow`. This caused the offset to be very off.\n\n```\nAssertion Failed: string.c:1805:str_new_frozen_buffer:ofs >= 0\nruby 3.4.0dev (2024-08-09T19:42:38Z reproduction-for-s.. a5b29b5277) +MMTk(Immix) [arm64-darwin23]\n```\n\nWith a `GC_ASSERT` we tracked down a missing `rb_mmtk_str_set_strbuf` in\n`rb_str_tmp_frozen_no_embed_acquire`.\n\nAfter fixing that case a standard string like `\"hi\"` would still fail\nthe `GC_ASSERT`. This is because we also need to return early if the\n`new_root` of a shared object has the `STR_NOFREE` flag. In those cases,\nthe object does not have a strbuf to copy.\n\nAfter these changes, both the `test_string.rb` and\n`test_gem_remote_fetcher.rb` tests pass.\n\nFixes: mmtk/ruby#85","shortMessageHtmlLink":"Fix missing strbuf"}},{"before":"3826932ab9fc565995a1303ee39f59da5a23c36b","after":"725a60918fe53651465dbdabe7bbda1ef838d79a","ref":"refs/heads/dev/gc-mmtk","pushedAt":"2024-09-11T17:12:43.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"peterzhu2118","name":"Peter Zhu","path":"/peterzhu2118","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15860699?s=80&v=4"},"commit":{"message":"Add time to GC.stat","shortMessageHtmlLink":"Add time to GC.stat"}},{"before":"8b7123bc15706da8187a9306b66e9d78d78aae4f","after":"3826932ab9fc565995a1303ee39f59da5a23c36b","ref":"refs/heads/dev/gc-mmtk","pushedAt":"2024-09-11T14:09:42.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"peterzhu2118","name":"Peter Zhu","path":"/peterzhu2118","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15860699?s=80&v=4"},"commit":{"message":"Implement dummy functions for compatibility","shortMessageHtmlLink":"Implement dummy functions for compatibility"}},{"before":"ab463c6395bd2e9a839e0aff9a8ec4d8430ac923","after":"8b7123bc15706da8187a9306b66e9d78d78aae4f","ref":"refs/heads/dev/gc-mmtk","pushedAt":"2024-09-10T15:32:34.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"peterzhu2118","name":"Peter Zhu","path":"/peterzhu2118","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15860699?s=80&v=4"},"commit":{"message":"Fix build for WebAssembly","shortMessageHtmlLink":"Fix build for WebAssembly"}},{"before":null,"after":"29612e349e01951af3562be9fc1e309e5268d9ff","ref":"refs/heads/update/enable-2024-09-10","pushedAt":"2024-09-10T07:12:53.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"wks","name":"Kunshan Wang","path":"/wks","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/370317?s=80&v=4"},"commit":{"message":"Enable TestIRB::ContextTest#test_prompt_main_truncate\n\nThe \"pointer being freed was not allocated\" error is not reproducible.\nIf it is reproduced in the future, we shall report an issue and try to\nfix that.","shortMessageHtmlLink":"Enable TestIRB::ContextTest#test_prompt_main_truncate"}},{"before":"05a1347c64fff10092524a98e81d3b04c6b043ee","after":"ab463c6395bd2e9a839e0aff9a8ec4d8430ac923","ref":"refs/heads/dev/gc-mmtk","pushedAt":"2024-09-09T21:30:37.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"peterzhu2118","name":"Peter Zhu","path":"/peterzhu2118","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15860699?s=80&v=4"},"commit":{"message":"Don't lock vm in rb_vm_ci_free","shortMessageHtmlLink":"Don't lock vm in rb_vm_ci_free"}},{"before":"797a25513f6949c9d4ac5b8eedca57e1aab4e6eb","after":"05a1347c64fff10092524a98e81d3b04c6b043ee","ref":"refs/heads/dev/gc-mmtk","pushedAt":"2024-09-03T22:00:35.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"peterzhu2118","name":"Peter Zhu","path":"/peterzhu2118","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15860699?s=80&v=4"},"commit":{"message":"Fix unprefixed leaked symbol","shortMessageHtmlLink":"Fix unprefixed leaked symbol"}},{"before":"da5e57a3cf1a5969a6d5b05cf371f613d21f42f7","after":"cd5e3561b6d564a9e5e70a12703873aa8a5f8252","ref":"refs/heads/dev/mmtk-overrides-default","pushedAt":"2024-09-02T02:29:40.000Z","pushType":"push","commitsCount":157,"pusher":{"login":"wks","name":"Kunshan Wang","path":"/wks","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/370317?s=80&v=4"},"commit":{"message":"Remove argument\n\nAn upstream commit changed the parameter list","shortMessageHtmlLink":"Remove argument"}},{"before":null,"after":"cd5e3561b6d564a9e5e70a12703873aa8a5f8252","ref":"refs/heads/update/merge-2024-08-30","pushedAt":"2024-09-02T01:19:52.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"wks","name":"Kunshan Wang","path":"/wks","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/370317?s=80&v=4"},"commit":{"message":"Remove argument\n\nAn upstream commit changed the parameter list","shortMessageHtmlLink":"Remove argument"}},{"before":"06356dbe77074bd0fd88ff903b801f744db420d4","after":"797a25513f6949c9d4ac5b8eedca57e1aab4e6eb","ref":"refs/heads/dev/gc-mmtk","pushedAt":"2024-08-28T16:23:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"peterzhu2118","name":"Peter Zhu","path":"/peterzhu2118","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15860699?s=80&v=4"},"commit":{"message":"Fix unprefixed leaked symbol","shortMessageHtmlLink":"Fix unprefixed leaked symbol"}},{"before":"cbe1a1ab9ab454ae52f79c9a97aa3741195f156b","after":"06356dbe77074bd0fd88ff903b801f744db420d4","ref":"refs/heads/dev/gc-mmtk","pushedAt":"2024-08-27T20:21:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"peterzhu2118","name":"Peter Zhu","path":"/peterzhu2118","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15860699?s=80&v=4"},"commit":{"message":"Fix stack scanning","shortMessageHtmlLink":"Fix stack scanning"}},{"before":"99312eb8925030e7655464635aef292013ef12e6","after":"cbe1a1ab9ab454ae52f79c9a97aa3741195f156b","ref":"refs/heads/dev/gc-mmtk","pushedAt":"2024-08-26T20:28:26.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"peterzhu2118","name":"Peter Zhu","path":"/peterzhu2118","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15860699?s=80&v=4"},"commit":{"message":"Initial implementation of Mark & Sweep","shortMessageHtmlLink":"Initial implementation of Mark & Sweep"}},{"before":"9903af45b366238734403ad3b709102e418598d1","after":"99312eb8925030e7655464635aef292013ef12e6","ref":"refs/heads/dev/gc-mmtk","pushedAt":"2024-08-26T19:26:38.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"peterzhu2118","name":"Peter Zhu","path":"/peterzhu2118","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15860699?s=80&v=4"},"commit":{"message":"Initial implementation of Mark & Sweep","shortMessageHtmlLink":"Initial implementation of Mark & Sweep"}},{"before":"8c5bd19b7a73c5156c4e2b9ee25cbf89c66816b8","after":"da5e57a3cf1a5969a6d5b05cf371f613d21f42f7","ref":"refs/heads/dev/mmtk-overrides-default","pushedAt":"2024-08-23T15:16:38.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"wks","name":"Kunshan Wang","path":"/wks","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/370317?s=80&v=4"},"commit":{"message":"Support heap traversal\n\nWe use the object enumeration feature in mmtk-core to implement heap\ntraversal. This enables `ObjectSpace.each_object` as well as the\n`TracePoint` utility which needs heap traversal to enumerate objects and\nset hooks.\n\nTest cases involving each_object and TracePoint are no longer excluded.\nThe TestTracepointObj test case remains excluded because we have not\nimplemented querying GC statistics from TracePoint.","shortMessageHtmlLink":"Support heap traversal"}},{"before":"fd77eb5b3bd85f1e1ae15a8cfd704e027b25b0a5","after":"da5e57a3cf1a5969a6d5b05cf371f613d21f42f7","ref":"refs/heads/feature/each-object2","pushedAt":"2024-08-23T11:46:57.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"wks","name":"Kunshan Wang","path":"/wks","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/370317?s=80&v=4"},"commit":{"message":"Support heap traversal\n\nWe use the object enumeration feature in mmtk-core to implement heap\ntraversal. This enables `ObjectSpace.each_object` as well as the\n`TracePoint` utility which needs heap traversal to enumerate objects and\nset hooks.\n\nTest cases involving each_object and TracePoint are no longer excluded.\nThe TestTracepointObj test case remains excluded because we have not\nimplemented querying GC statistics from TracePoint.","shortMessageHtmlLink":"Support heap traversal"}},{"before":"482db1b960623260dcca01e82d36d38a6226c9bf","after":"fd77eb5b3bd85f1e1ae15a8cfd704e027b25b0a5","ref":"refs/heads/feature/each-object2","pushedAt":"2024-08-23T10:38:56.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"wks","name":"Kunshan Wang","path":"/wks","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/370317?s=80&v=4"},"commit":{"message":"Support heap traversal\n\nWe use the object enumeration feature in mmtk-core to implement heap\ntraversal. This enables `ObjectSpace.each_object` as well as the\n`TracePoint` utility which needs heap traversal to enumerate objects and\nset hooks.\n\nTest cases involving each_object and TracePoint are no longer excluded.\nThe TestTracepointObj test case remains excluded because we have not\nimplemented querying GC statistics from TracePoint.","shortMessageHtmlLink":"Support heap traversal"}},{"before":null,"after":"482db1b960623260dcca01e82d36d38a6226c9bf","ref":"refs/heads/feature/each-object2","pushedAt":"2024-08-23T10:04:06.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"wks","name":"Kunshan Wang","path":"/wks","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/370317?s=80&v=4"},"commit":{"message":"Support heap traversal\n\nWe use the object enumeration feature in mmtk-core to implement heap\ntraversal. This enables `ObjectSpace.each_object` as well as the\n`TracePoint` utility which needs heap traversal to enumerate objects and\nset hooks.\n\nTest cases involving each_object and TracePoint are no longer excluded.\nThe TestTracepointObj test case remains excluded because we have not\nimplemented querying GC statistics from TracePoint.","shortMessageHtmlLink":"Support heap traversal"}},{"before":"a55df63fcc186880f2262ab7e54b442f2637ff2b","after":"8c5bd19b7a73c5156c4e2b9ee25cbf89c66816b8","ref":"refs/heads/dev/mmtk-overrides-default","pushedAt":"2024-08-22T10:18:15.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"wks","name":"Kunshan Wang","path":"/wks","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/370317?s=80&v=4"},"commit":{"message":"Exclude TestString2, too.","shortMessageHtmlLink":"Exclude TestString2, too."}},{"before":"3d80746fe833ae8bf8e8bb353d6e23ee90e96aea","after":"8c5bd19b7a73c5156c4e2b9ee25cbf89c66816b8","ref":"refs/heads/cherry-pick/mmtk-ci-build","pushedAt":"2024-08-22T09:37:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"wks","name":"Kunshan Wang","path":"/wks","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/370317?s=80&v=4"},"commit":{"message":"Exclude TestString2, too.","shortMessageHtmlLink":"Exclude TestString2, too."}},{"before":null,"after":"3d80746fe833ae8bf8e8bb353d6e23ee90e96aea","ref":"refs/heads/cherry-pick/mmtk-ci-build","pushedAt":"2024-08-22T08:16:25.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"wks","name":"Kunshan Wang","path":"/wks","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/370317?s=80&v=4"},"commit":{"message":"Enable CI for MMTk/Ruby\n\nThis PR enables CI for MMTk's fork of CRuby. There are a few notable\nchanges:\n\n- Adds CI builds via github actions for all mmtk plans.\n- Adds skip files for all the tests that can't run on mmtk because of\nimplementation details (ie no garbage compaction, tracepoints, etc).\n- Fixes issues in the tests, see original PR commits for descriptions.\n\nWhat's not fixed:\n\n- All the plans still sometimes fail. Immix, StickyImmix, and MarkSweep\nsometimes pass so the CRuby tests are fixed, but there are panics coming\nfrom the rust side of things that we need to fix. I've not been able to\nrepro these on macos yet.\n- NoGC in the current state, can't pass because github actions doesn't\nhave enough memory.\n\nCo-authored-by: Matthew Valentine-House \nCo-authored-by: Peter Zhu \n\nCherry-picked from: 9c6856156ce43ad0bd581b86d5bd58c183979f46\nOriginal PR: https://github.com/mmtk/ruby/pull/80","shortMessageHtmlLink":"Enable CI for MMTk/Ruby"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xOVQwNzowMDo1Ny4wMDAwMDBazwAAAAS6gc-d","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xOVQwNzowMDo1Ny4wMDAwMDBazwAAAAS6gc-d","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0yMlQwODoxNjoyNS4wMDAwMDBazwAAAAShBriR"}},"title":"Activity ยท mmtk/ruby"}