{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":98653972,"defaultBranch":"master","name":"msgpack-ruby","ownerLogin":"Shopify","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2017-07-28T13:48:56.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/8085?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1700643424.0","currentOid":""},"activityList":{"items":[{"before":"2501bb6514aef98fa38ae2c7dd73c2394d3fa72d","after":null,"ref":"refs/heads/handle-missing-compaction","pushedAt":"2023-11-22T08:57:04.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"}},{"before":"7d7bdef0106e2bbf0a508cc58f22c1c65d07dadd","after":"2501bb6514aef98fa38ae2c7dd73c2394d3fa72d","ref":"refs/heads/handle-missing-compaction","pushedAt":"2023-11-21T07:10:20.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Fix test suite on platforms without compaction support\n\nFix: #354","shortMessageHtmlLink":"Fix test suite on platforms without compaction support"}},{"before":null,"after":"7d7bdef0106e2bbf0a508cc58f22c1c65d07dadd","ref":"refs/heads/handle-missing-compaction","pushedAt":"2023-11-21T07:08:00.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Fix test suite on platforms without compaction support\n\nFix: #354","shortMessageHtmlLink":"Fix test suite on platforms without compaction support"}},{"before":"b92bef8dc9138bbaecda18afb5a2c18e5cf80961","after":"e3cfc3944cd43218e52d66f6e044e0dccf3d32c6","ref":"refs/heads/master","pushedAt":"2023-11-07T07:47:27.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Release 1.7.2","shortMessageHtmlLink":"Release 1.7.2"}},{"before":"96b21a491660f34a7aae16949beff2ca34fcbf9a","after":"b92bef8dc9138bbaecda18afb5a2c18e5cf80961","ref":"refs/heads/master","pushedAt":"2023-11-07T07:46:04.000Z","pushType":"push","commitsCount":10,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Implement escapeURIComponent in Java","shortMessageHtmlLink":"Implement escapeURIComponent in Java"}},{"before":"c05999da82f22647a7c35ef28fc3974700fc314a","after":"e4ca627b7f87eaf86c5a83fb149531193a9d10e5","ref":"refs/heads/better-buffer-stack-fix","pushedAt":"2023-07-17T15:39:16.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Better fix for marking buffers held on the stack\n\nFollowup: https://github.com/msgpack/msgpack-ruby/pull/347\n\nAs discussed previously, the `alloca` hack was just a quick fix,\nit's not good as it could lead to stack overflows and also could\nbe optimized away by compilers etc.\n\nHere instead we copy all the VALUE references into a dedicated object\nthat is in change of holding and pinning these references.","shortMessageHtmlLink":"Better fix for marking buffers held on the stack"}},{"before":"c47abb87c37a5ef45bd81552cada6010a94f5875","after":null,"ref":"refs/heads/341-store-mapped-strings-on-stack","pushedAt":"2023-07-17T15:20:18.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"}},{"before":null,"after":"c05999da82f22647a7c35ef28fc3974700fc314a","ref":"refs/heads/better-buffer-stack-fix","pushedAt":"2023-07-17T15:16:41.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Better fix for marking buffers held on the stack\n\nFollowup: https://github.com/msgpack/msgpack-ruby/pull/347\n\nAs discussed previously, the `alloca` hack was just a quick fix,\nit's not good as it could lead to stack overflows and also could\nbe optimized away by compilers etc.\n\nHere instead we copy all the VALUE references into a dedicated object\nthat is in change of holding and pinning these references.","shortMessageHtmlLink":"Better fix for marking buffers held on the stack"}},{"before":"d283b847c3748f12a10207fa5f63056991939b91","after":"c47abb87c37a5ef45bd81552cada6010a94f5875","ref":"refs/heads/341-store-mapped-strings-on-stack","pushedAt":"2023-07-13T15:04:05.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Stop testing JRuby 9.2","shortMessageHtmlLink":"Stop testing JRuby 9.2"}},{"before":"0ef63323ac7559ea873a0b332290a74974b217fa","after":"d283b847c3748f12a10207fa5f63056991939b91","ref":"refs/heads/341-store-mapped-strings-on-stack","pushedAt":"2023-07-13T14:51:13.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Stop testing JRuby 9.2","shortMessageHtmlLink":"Stop testing JRuby 9.2"}},{"before":"54a09ca3288a06db6fc740687e70dfcd844c070e","after":"0ef63323ac7559ea873a0b332290a74974b217fa","ref":"refs/heads/341-store-mapped-strings-on-stack","pushedAt":"2023-07-13T14:42:42.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Stop testing JRuby 9.2","shortMessageHtmlLink":"Stop testing JRuby 9.2"}},{"before":"a536ba689cbda28f70319161f37b5efcfbb951e0","after":null,"ref":"refs/heads/feed-empty-string","pushedAt":"2023-07-13T08:09:18.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"}},{"before":null,"after":"a536ba689cbda28f70319161f37b5efcfbb951e0","ref":"refs/heads/feed-empty-string","pushedAt":"2023-07-13T07:58:48.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Ignore empty strings when feeding buffers\n\nFix: https://github.com/msgpack/msgpack-ruby/issues/345","shortMessageHtmlLink":"Ignore empty strings when feeding buffers"}},{"before":"2645c262e76c1dec51e5544369365320bf8d3705","after":"54a09ca3288a06db6fc740687e70dfcd844c070e","ref":"refs/heads/341-store-mapped-strings-on-stack","pushedAt":"2023-07-13T07:33:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Stop testing JRuby 9.2","shortMessageHtmlLink":"Stop testing JRuby 9.2"}},{"before":"2e667e93c27b0cee6c53363dce048aeaf19eaa00","after":"2645c262e76c1dec51e5544369365320bf8d3705","ref":"refs/heads/341-store-mapped-strings-on-stack","pushedAt":"2023-07-13T07:32:24.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Packer: store the parent buffer mapped strings on the stack\n\nSince the parent buffer isn't marked while we're executing the\nextension proc, we need to ensure all the chunks `mapped_strings`\nwon't be GCed nor moved.\n\nTo do that, we copy all of them onto the stack.\n\nIt's a bit disgusting, but until we refactor the buffer implementation\nto support recursive extensions better, it's the simplest solution.","shortMessageHtmlLink":"Packer: store the parent buffer mapped strings on the stack"}},{"before":"e5482d31b3e84f971354abfe5a24cb75e6a4e5fd","after":"2e667e93c27b0cee6c53363dce048aeaf19eaa00","ref":"refs/heads/341-store-mapped-strings-on-stack","pushedAt":"2023-07-13T07:26:13.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Packer: store the parent buffer mapped strings on the stack\n\nSince the parent buffer isn't marked while we're executing the\nextension proc, we need to ensure all the chunks `mapped_strings`\nwon't be GCed nor moved.\n\nTo do that, we copy all of them onto the stack.\n\nIt's a bit disgusting, but until we refactor the buffer implementation\nto support recursive extensions better, it's the simplest solution.","shortMessageHtmlLink":"Packer: store the parent buffer mapped strings on the stack"}},{"before":"1bccaa053d69d4e741186e3e4945193e9400924f","after":"e5482d31b3e84f971354abfe5a24cb75e6a4e5fd","ref":"refs/heads/341-store-mapped-strings-on-stack","pushedAt":"2023-07-13T07:21:01.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Packer: store the parent buffer mapped strings on the stack\n\nWIP","shortMessageHtmlLink":"Packer: store the parent buffer mapped strings on the stack"}},{"before":null,"after":"1bccaa053d69d4e741186e3e4945193e9400924f","ref":"refs/heads/341-store-mapped-strings-on-stack","pushedAt":"2023-07-13T07:17:35.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Packer: store the parent buffer mapped strings on the stack\n\nWIP","shortMessageHtmlLink":"Packer: store the parent buffer mapped strings on the stack"}},{"before":"1aa5d7c8e883702a27fb3123f9d9d2038b0f8e46","after":"3471667ccc50e3fe605ed068528d529900cf6b5b","ref":"refs/heads/clean-341-repro","pushedAt":"2023-07-12T15:21:12.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Mark buffers held onto the stack.\n\nWe instantiate a special Buffer that we keep on the stack\nand is in change of marking the parent buffer we copied.\n\nThis really isn't ideal as we have to go over the linked list\nto update the pointer to the tail.\n\nThe buffer implementation is in need of a more serious refactor\nbut this patch is a quick fix.","shortMessageHtmlLink":"Mark buffers held onto the stack."}},{"before":null,"after":"848f3132dc08bf7570538acb3d5a9d4e2870bf66","ref":"refs/heads/clean-repro-for-saved-buffers","pushedAt":"2023-07-12T15:20:10.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Implement a simpler regression test for #341\n\nWhat is happening is that when we call into a recursive packing\nproc, we first save the packer buffer state onto the stack\nand then reset the buffer.\n\nOnce we return from the proc, the original buffer state is copied\nback.\n\nThe problem with this is that if any of the chunk has a mapped string\nthen they are not reachable by any Ruby object and may be garbage collected\nat any moment.","shortMessageHtmlLink":"Implement a simpler regression test for msgpack#341"}},{"before":"511a4a55328e1ea062f345f2798faee5da3e2ffb","after":"1aa5d7c8e883702a27fb3123f9d9d2038b0f8e46","ref":"refs/heads/clean-341-repro","pushedAt":"2023-07-12T15:13:12.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Mark buffers held onto the stack.\n\nWe instantiate a special Buffer that we keep on the stack\nand is in change of marking the parent buffer we copied.\n\nThis really isn't ideal as we have to go over the linked list\nto update the pointer to the tail.\n\nThe buffer implementation is in need of a more serious refactor\nbut this patch is a quick fix.","shortMessageHtmlLink":"Mark buffers held onto the stack."}},{"before":"9f36c7f682daa3a74066cbc36e7f28c6da3b9d89","after":"511a4a55328e1ea062f345f2798faee5da3e2ffb","ref":"refs/heads/clean-341-repro","pushedAt":"2023-07-12T15:05:23.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Mark buffers held onto the stack.\n\nWe instantiate a special Buffer that we keep on the stack\nand is in change of marking the parent buffer we copied.\n\nThis really isn't ideal as we have to go over the linked list\nto update the pointer to the tail.\n\nThe buffer implementation is in need of a more serious refactor\nbut this patch is a quick fix.","shortMessageHtmlLink":"Mark buffers held onto the stack."}},{"before":null,"after":"9f36c7f682daa3a74066cbc36e7f28c6da3b9d89","ref":"refs/heads/clean-341-repro","pushedAt":"2023-07-12T14:59:04.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Mark buffers held onto the stack.\n\nWe instantiate a special Buffer that we keep on the stack\nand is in change of marking the parent buffer we copied.\n\nThis really isn't ideal as we have to go over the linked list\nto update the pointer to the tail.\n\nThe buffer implementation is in need of a more serious refactor\nbut this patch is a quick fix.","shortMessageHtmlLink":"Mark buffers held onto the stack."}},{"before":"ad67a6130253dbb8a70b92a4bce47e527fd47aec","after":"96b21a491660f34a7aae16949beff2ca34fcbf9a","ref":"refs/heads/master","pushedAt":"2023-07-12T11:01:07.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Merge pull request #342 from Shopify/zero-buffer-chunks-on-alloc\n\nZero-out msgpack_buffer_chunk_t after allocation","shortMessageHtmlLink":"Merge pull request msgpack#342 from Shopify/zero-buffer-chunks-on-alloc"}},{"before":"9e770d6b067331e28d6cfb9b1eeaa1554c4812fe","after":"96443f2306f8d4a20f908634aa13bf5537d9e5cf","ref":"refs/heads/buffer-mark-t-none","pushedAt":"2023-07-12T10:31:32.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"_msgpack_buffer_add_new_chunk zero-out the newly allocated tail\n\nFix: https://github.com/msgpack/msgpack-ruby/pull/342\n\nReseting the memory in _msgpack_buffer_alloc_new_chunk was pointless\nbecause the previous `tail` is immediately copied into it, and it's\nthe `tail` that is then used by the caller. So it's the `tail` we\nshould zero-out.","shortMessageHtmlLink":"_msgpack_buffer_add_new_chunk zero-out the newly allocated tail"}},{"before":null,"after":"9e770d6b067331e28d6cfb9b1eeaa1554c4812fe","ref":"refs/heads/buffer-mark-t-none","pushedAt":"2023-07-12T10:25:00.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"_msgpack_buffer_add_new_chunk zero-out the newly allocated tail\n\nFix: https://github.com/msgpack/msgpack-ruby/pull/342\n\nReseting the memory in _msgpack_buffer_alloc_new_chunk was pointless\nbecause the previous `tail` is immediately copied into it, and it's\nthe `tail` that is then used by the caller. So it's the `tail` we\nshould zero-out.","shortMessageHtmlLink":"_msgpack_buffer_add_new_chunk zero-out the newly allocated tail"}},{"before":null,"after":"1b627c1e1ccfae4568a817429e2272e5ab4b53c3","ref":"refs/heads/zero-buffer-chunks-on-alloc","pushedAt":"2023-06-29T07:55:19.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Zero-out msgpack_buffer_chunk_t after allocation\n\nFix: https://github.com/msgpack/msgpack-ruby/issues/341\n\nThese struct contain a VALUE reference so if we don't zero\nit out, it could be pointing at a T_NONE or some other old\nobject slot.\n\nEspecially since we can re-use existing chunks.","shortMessageHtmlLink":"Zero-out msgpack_buffer_chunk_t after allocation"}},{"before":"70a2968e040083be24b8b0cd48972939a18b5a05","after":"ad67a6130253dbb8a70b92a4bce47e527fd47aec","ref":"refs/heads/master","pushedAt":"2023-06-29T07:52:23.000Z","pushType":"push","commitsCount":20,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Merge pull request #339 from Shopify/remove-useless-st-check\n\nRemove useless check for st.h","shortMessageHtmlLink":"Merge pull request msgpack#339 from Shopify/remove-useless-st-check"}},{"before":null,"after":"ced445cd74d0ad3eaf9969768318632c9958cd15","ref":"refs/heads/remove-useless-st-check","pushedAt":"2023-05-26T14:00:09.988Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Remove useless check for st.h\n\nThis was added 10 years ago for Ruby 1.8 support.\nWe no longer need it.","shortMessageHtmlLink":"Remove useless check for st.h"}},{"before":"2b39f35082a528cd5f32645a44418e0bd80d4438","after":"d33269d7f356c681cbf68386ec9fbf6adcc55ee1","ref":"refs/heads/rb_proc_call","pushedAt":"2023-05-26T13:51:19.338Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Use rb_proc_call* rather than rb_funcall\n\nIt's a tiny bit faster, however it requires the receiver to be\nan actual Proc.\n\nBy refactoring the register_type interface we can eagerly cast\nall callbacks to actual procs.\n\nIn the end it makes the C side of the code simpler which is nice.\n\nThere is an extremely minor backward incompatibility in `#registered_types`\nwhich no longer return the original callable, but always returns a Proc.","shortMessageHtmlLink":"Use rb_proc_call* rather than rb_funcall"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAADtQL5DgA","startCursor":null,"endCursor":null}},"title":"Activity ยท Shopify/msgpack-ruby"}