{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":615002002,"defaultBranch":"main","name":"horus","ownerLogin":"rabbitmq","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-03-16T18:47:13.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/96669?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1710154922.0","currentOid":""},"activityList":{"items":[{"before":"d9ad179878aa755579fe4843d501446cd7a09aa8","after":"088502e763fcdfc30a007d972744bdf45758ed54","ref":"refs/heads/main","pushedAt":"2024-05-16T08:33:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dumbbell","name":"Jean-Sébastien Pédron","path":"/dumbbell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/159804?s=80&v=4"},"commit":{"message":"GitHub Actions: Bump actions components\n\n[Why]\nWe need to fix the \"Node.js 16 actions are deprecated\" warnings.","shortMessageHtmlLink":"GitHub Actions: Bump actions components"}},{"before":"0b07b3dc8cf5f1c6552b241e08abc7493b5194d6","after":"fbd20dec78126db84c63d88af9955c1deba9a22a","ref":"refs/heads/gh-pages","pushedAt":"2024-03-11T10:52:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"deploy: d9ad179878aa755579fe4843d501446cd7a09aa8","shortMessageHtmlLink":"deploy: d9ad179"}},{"before":"5e050228a9425f32bc5068a22221929c99029d4b","after":"d9ad179878aa755579fe4843d501446cd7a09aa8","ref":"refs/heads/main","pushedAt":"2024-03-11T10:52:26.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"dumbbell","name":"Jean-Sébastien Pédron","path":"/dumbbell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/159804?s=80&v=4"},"commit":{"message":"Bump Horus to version 0.2.5","shortMessageHtmlLink":"Bump Horus to version 0.2.5"}},{"before":"35a84ab746a6bd6e7dab6d9ebe2637b20111642e","after":"5e050228a9425f32bc5068a22221929c99029d4b","ref":"refs/heads/main","pushedAt":"2024-03-05T15:46:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"the-mikedavis","name":"Michael Davis","path":"/the-mikedavis","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21230295?s=80&v=4"},"commit":{"message":"Remove spurious semicolon from coverage macro","shortMessageHtmlLink":"Remove spurious semicolon from coverage macro"}},{"before":"a8a7008a6eae1a4bc353ef40e995a9843998b0f4","after":"0b07b3dc8cf5f1c6552b241e08abc7493b5194d6","ref":"refs/heads/gh-pages","pushedAt":"2024-03-05T09:28:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"deploy: 35a84ab746a6bd6e7dab6d9ebe2637b20111642e","shortMessageHtmlLink":"deploy: 35a84ab"}},{"before":"0b6b8169e5105ce1c52c1c586a7384efbb8523bb","after":null,"ref":"refs/heads/md-native-cover","pushedAt":"2024-03-05T09:27:42.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dumbbell","name":"Jean-Sébastien Pédron","path":"/dumbbell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/159804?s=80&v=4"}},{"before":"2f6402961d8d0b995056da91b1541cfd0bacb8db","after":"35a84ab746a6bd6e7dab6d9ebe2637b20111642e","ref":"refs/heads/main","pushedAt":"2024-03-05T09:27:41.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"dumbbell","name":"Jean-Sébastien Pédron","path":"/dumbbell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/159804?s=80&v=4"},"commit":{"message":"Merge pull request #21 from rabbitmq/md-native-cover\n\nSkip isolating cover instructions when native coverage is available","shortMessageHtmlLink":"Merge pull request #21 from rabbitmq/md-native-cover"}},{"before":"de4101304f5d824829310eecaca9f82e66723f74","after":"a8a7008a6eae1a4bc353ef40e995a9843998b0f4","ref":"refs/heads/gh-pages","pushedAt":"2024-03-05T09:25:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"deploy: 2f6402961d8d0b995056da91b1541cfd0bacb8db","shortMessageHtmlLink":"deploy: 2f64029"}},{"before":"8d41c40f0ccfc25de64e066dbff2c8f01db1ae68","after":null,"ref":"refs/heads/md-update-record-unwrap-tr-tag","pushedAt":"2024-03-05T09:25:00.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dumbbell","name":"Jean-Sébastien Pédron","path":"/dumbbell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/159804?s=80&v=4"}},{"before":"7d75f5f9dc517b799a93c32d821f5680ff13a498","after":"2f6402961d8d0b995056da91b1541cfd0bacb8db","ref":"refs/heads/main","pushedAt":"2024-03-05T09:24:59.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"dumbbell","name":"Jean-Sébastien Pédron","path":"/dumbbell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/159804?s=80&v=4"},"commit":{"message":"Merge pull request #19 from rabbitmq/md-update-record-unwrap-tr-tag\n\nUnwrap type-tagged registers for `update_record/5` type hint","shortMessageHtmlLink":"Merge pull request #19 from rabbitmq/md-update-record-unwrap-tr-tag"}},{"before":"495ae550cde1a8b148c1c666efbfbfb57c1ceeb5","after":"0b6b8169e5105ce1c52c1c586a7384efbb8523bb","ref":"refs/heads/md-native-cover","pushedAt":"2024-02-26T19:48:56.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"the-mikedavis","name":"Michael Davis","path":"/the-mikedavis","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21230295?s=80&v=4"},"commit":{"message":"Skip isolating cover instructions when native coverage is available\n\nIf OTP is compiled with native coverage support (OTP 27+ plus JIT),\n`cover` does not attempt to inject counters into the code, so\nisolating the cover instructions fails. We can skip that step when we\ndetect native coverage support.","shortMessageHtmlLink":"Skip isolating cover instructions when native coverage is available"}},{"before":null,"after":"495ae550cde1a8b148c1c666efbfbfb57c1ceeb5","ref":"refs/heads/md-native-cover","pushedAt":"2024-02-26T19:21:36.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"the-mikedavis","name":"Michael Davis","path":"/the-mikedavis","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21230295?s=80&v=4"},"commit":{"message":"Skip isolating cover instructions when native coverage is available\n\nIf OTP is compiled with native coverage support (OTP 27+ plus JIT),\n`cover` does not attempt to inject counters into the code, so\nisolating the cover instructions fails. We can skip that step when we\ndetect native coverage support.","shortMessageHtmlLink":"Skip isolating cover instructions when native coverage is available"}},{"before":"dde38dce7cfdb59792d572c6b54ce3f9b87438bd","after":"7d75f5f9dc517b799a93c32d821f5680ff13a498","ref":"refs/heads/main","pushedAt":"2024-02-26T17:53:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michaelklishin","name":"Michael Klishin","path":"/michaelklishin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1090?s=80&v=4"},"commit":{"message":"README: update (c) line\n\nfor the AVGO era.","shortMessageHtmlLink":"README: update (c) line"}},{"before":null,"after":"8d41c40f0ccfc25de64e066dbff2c8f01db1ae68","ref":"refs/heads/md-update-record-unwrap-tr-tag","pushedAt":"2024-02-21T17:42:27.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"the-mikedavis","name":"Michael Davis","path":"/the-mikedavis","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21230295?s=80&v=4"},"commit":{"message":"update_record/5: Unwrap type-tagged source register\n\nOTP 27.0-rc1 produces properly formed `tr` type-tagged registers for\narguments of the `update_record/5` instruction. `var_info` type hints\nonly support basic registers (`{x,N}`, `{y,N}`) so we must unwrap the\ntype tag.","shortMessageHtmlLink":"update_record/5: Unwrap type-tagged source register"}},{"before":null,"after":"d90636cf732b9e2c3905d0c1fa9fe966b886b48e","ref":"refs/heads/md-fix-otp-27-rabbit-boot-error","pushedAt":"2024-02-21T16:05:05.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"the-mikedavis","name":"Michael Davis","path":"/the-mikedavis","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21230295?s=80&v=4"},"commit":{"message":"Fix rabbit boot error on OTP 27.0-rc1\n\n`update_record/5` might now have a type tag for its source register\n(i.e. `{tr,Reg,Type}`). If we get a type-tagged register we should skip\nadding a type hint instruction: type hints must use regular register\ntuples and not type-tagged registers.","shortMessageHtmlLink":"Fix rabbit boot error on OTP 27.0-rc1"}},{"before":"48ebc3f1542d5f72c4417ae1954542b8558c9c25","after":"de4101304f5d824829310eecaca9f82e66723f74","ref":"refs/heads/gh-pages","pushedAt":"2024-02-06T20:44:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"deploy: dde38dce7cfdb59792d572c6b54ce3f9b87438bd","shortMessageHtmlLink":"deploy: dde38dc"}},{"before":"5d2348bdd1ca2a5b96a0d54029af34d7db2f124d","after":"dde38dce7cfdb59792d572c6b54ce3f9b87438bd","ref":"refs/heads/main","pushedAt":"2024-02-06T20:44:14.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"the-mikedavis","name":"Michael Davis","path":"/the-mikedavis","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21230295?s=80&v=4"},"commit":{"message":"Merge pull request #18 from janpieper/add-missing-curly-bracket\n\nFix missing curly bracket in README","shortMessageHtmlLink":"Merge pull request #18 from janpieper/add-missing-curly-bracket"}},{"before":"29573d2332d4b63859b8137eab8f5c6b2834acb6","after":"48ebc3f1542d5f72c4417ae1954542b8558c9c25","ref":"refs/heads/gh-pages","pushedAt":"2023-11-22T14:49:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"deploy: 5d2348bdd1ca2a5b96a0d54029af34d7db2f124d","shortMessageHtmlLink":"deploy: 5d2348b"}},{"before":"03df616d6e1fa989716a8800d0d5a553d511b27f","after":null,"ref":"refs/heads/copyright-broadcom","pushedAt":"2023-11-22T14:49:31.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"the-mikedavis","name":"Michael Davis","path":"/the-mikedavis","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21230295?s=80&v=4"}},{"before":"253f9af23e539b7370a5105df19dcbb66762b247","after":"5d2348bdd1ca2a5b96a0d54029af34d7db2f124d","ref":"refs/heads/main","pushedAt":"2023-11-22T14:49:31.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"the-mikedavis","name":"Michael Davis","path":"/the-mikedavis","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21230295?s=80&v=4"},"commit":{"message":"Merge pull request #17 from rabbitmq/copyright-broadcom\n\nUpdate copyright","shortMessageHtmlLink":"Merge pull request #17 from rabbitmq/copyright-broadcom"}},{"before":null,"after":"03df616d6e1fa989716a8800d0d5a553d511b27f","ref":"refs/heads/copyright-broadcom","pushedAt":"2023-11-22T14:46:27.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"the-mikedavis","name":"Michael Davis","path":"/the-mikedavis","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21230295?s=80&v=4"},"commit":{"message":"Update copyright","shortMessageHtmlLink":"Update copyright"}},{"before":"66ffdbccaa9babfeec455e3981e9bb3fec6baf3b","after":"253f9af23e539b7370a5105df19dcbb66762b247","ref":"refs/heads/main","pushedAt":"2023-08-21T09:10:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dumbbell","name":"Jean-Sébastien Pédron","path":"/dumbbell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/159804?s=80&v=4"},"commit":{"message":"Bump Horus to version 0.2.4","shortMessageHtmlLink":"Bump Horus to version 0.2.4"}},{"before":"54ee2f1498c41582781b140405449c617f12ad9c","after":"29573d2332d4b63859b8137eab8f5c6b2834acb6","ref":"refs/heads/gh-pages","pushedAt":"2023-08-21T09:06:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"deploy: 66ffdbccaa9babfeec455e3981e9bb3fec6baf3b","shortMessageHtmlLink":"deploy: 66ffdbc"}},{"before":"5e73331916fedb7ceb999374efd9fd33310d3c2e","after":null,"ref":"refs/heads/avoid-hammering-code-server","pushedAt":"2023-08-21T09:06:17.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dumbbell","name":"Jean-Sébastien Pédron","path":"/dumbbell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/159804?s=80&v=4"}},{"before":"47b4295521eb1d1cce65ef3721dfac065be96db8","after":"66ffdbccaa9babfeec455e3981e9bb3fec6baf3b","ref":"refs/heads/main","pushedAt":"2023-08-21T09:06:16.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"dumbbell","name":"Jean-Sébastien Pédron","path":"/dumbbell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/159804?s=80&v=4"},"commit":{"message":"Merge pull request #12 from rabbitmq/avoid-hammering-code-server\n\nAvoid hammerring the Code server","shortMessageHtmlLink":"Merge pull request #12 from rabbitmq/avoid-hammering-code-server"}},{"before":"973b12e67dae36b1f8b753fed97f5d3f80482e04","after":"5e73331916fedb7ceb999374efd9fd33310d3c2e","ref":"refs/heads/avoid-hammering-code-server","pushedAt":"2023-08-21T09:01:14.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dumbbell","name":"Jean-Sébastien Pédron","path":"/dumbbell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/159804?s=80&v=4"},"commit":{"message":"Avoid hammerring the Code server\n\n[Why]\nWhen we are about to execute a standalone function, we first need to\nload the module. This is a synchronous call to the Code server.\n\nSo far, we checked that the module was already loaded using\n`code:is_loaded/1` before doing that to avoid too many useless calls to\nthe Code server.\n\nUnfortunately, up to Erlang/OTP 25, `code:is_loaded/1` is a synchronous\ncall too! It is changed to an ETS query in Erlang/OTP 26, but before\nthat, it remains an expansive and contentious call. If the same\nstandalone function is executed concurrently a lot of time\nsimultaneously, we end up spamming the Code server with a boat load of\n\"is loaded\" queries.\n\n[What]\nTo solve the problem, we introduce a `horus_utils:is_module_loaded/1`\nhelper. On Erlang/OTP 26+, we call `code:is_loaded/1`. However on\nErlang/OTP 25 and before, we replace that with a test of\n`erlang:get_module_info/2`, the function underneath any\n`Module:module_info/1` calls.\n\nThis way, it's a relatively cheap way of checking that the module is\nloaded.\n\nAt the same time, we acquire a lock around that module load code to make\nsure there is only a single attempt to load the module and concurrent\nprocesses will stop at \"is loaded\".","shortMessageHtmlLink":"Avoid hammerring the Code server"}},{"before":"6136414e1badf40f9a983bafbc33eecf568c0da2","after":null,"ref":"refs/heads/add-erts-to-dependencies","pushedAt":"2023-08-21T09:00:12.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dumbbell","name":"Jean-Sébastien Pédron","path":"/dumbbell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/159804?s=80&v=4"}},{"before":"38dafa89196122b11c860be802bf00c210acfa0e","after":"47b4295521eb1d1cce65ef3721dfac065be96db8","ref":"refs/heads/main","pushedAt":"2023-08-21T09:00:11.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"dumbbell","name":"Jean-Sébastien Pédron","path":"/dumbbell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/159804?s=80&v=4"},"commit":{"message":"Merge pull request #15 from rabbitmq/add-erts-to-dependencies\n\nhorus.app: Add `erts` to application dependencies","shortMessageHtmlLink":"Merge pull request #15 from rabbitmq/add-erts-to-dependencies"}},{"before":null,"after":"6136414e1badf40f9a983bafbc33eecf568c0da2","ref":"refs/heads/add-erts-to-dependencies","pushedAt":"2023-08-21T08:26:22.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dumbbell","name":"Jean-Sébastien Pédron","path":"/dumbbell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/159804?s=80&v=4"},"commit":{"message":"horus.app: Add `erts` to application dependencies\n\n[Why]\nHorus relies on the availability of `erts` to initialize the list of\nmodules to skip when it needs to decide if a call should be followed to\nextract a function or if the call should be preserved as is.\n\nIt already depends on `kernel` and `stdlib` for instance. I assumed that\n`erts` was implicit as I don't see how Erlang can work without it. It\nlooks like if `erts` is not included explicitly in an Erlang release\nfile or in the applications it bundles, it is excluded from the release\n(the `erts` Erlang application, not the actual runtime). This breaks\nHorus because it won't know about e.g. the `erlang` module and will try\nand fail to extract functions from that module.\n\nFixes #14.","shortMessageHtmlLink":"horus.app: Add erts to application dependencies"}},{"before":"cd39f2d68ab414e8654b4301362ed57a0afc15a9","after":"54ee2f1498c41582781b140405449c617f12ad9c","ref":"refs/heads/gh-pages","pushedAt":"2023-05-22T14:37:35.700Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"deploy: 38dafa89196122b11c860be802bf00c210acfa0e","shortMessageHtmlLink":"deploy: 38dafa8"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAES1_SZgA","startCursor":null,"endCursor":null}},"title":"Activity · rabbitmq/horus"}