{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":296460306,"defaultBranch":"main","name":"ai","ownerLogin":"skyra-project","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2020-09-17T23:00:03.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/59655788?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1716717293.0","currentOid":""},"activityList":{"items":[{"before":"2a0bc7dc47a1f99872a1c5f271b87b44868ca9c4","after":"9aeebb6818b2cfac0969e18545f75811a6ff0ab5","ref":"refs/heads/main","pushedAt":"2024-05-26T09:49:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyranet","name":"Aura","path":"/kyranet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24852502?s=80&v=4"},"commit":{"message":"2.0.1","shortMessageHtmlLink":"2.0.1"}},{"before":"4c77d1bc50662c268ec24f13f34cb108f4325dd1","after":null,"ref":"refs/heads/ci/fix-x86_64-apple-darwin","pushedAt":"2024-05-26T09:46:06.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"kyranet","name":"Aura","path":"/kyranet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24852502?s=80&v=4"}},{"before":"233820a2eb5e6b2be2c528c5fdb4860e4c4974cc","after":"2a0bc7dc47a1f99872a1c5f271b87b44868ca9c4","ref":"refs/heads/main","pushedAt":"2024-05-26T09:46:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"kyranet","name":"Aura","path":"/kyranet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24852502?s=80&v=4"},"commit":{"message":"ci: use `macos-13` for `x86_64-apple-darwin` (#231)","shortMessageHtmlLink":"ci: use macos-13 for x86_64-apple-darwin (#231)"}},{"before":"3ed0c025f9d7546717e9a5f73d7883303cd6ff19","after":"4c77d1bc50662c268ec24f13f34cb108f4325dd1","ref":"refs/heads/ci/fix-x86_64-apple-darwin","pushedAt":"2024-05-26T09:37:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyranet","name":"Aura","path":"/kyranet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24852502?s=80&v=4"},"commit":{"message":"ci: use `macos-13` for x86-64 MacOS","shortMessageHtmlLink":"ci: use macos-13 for x86-64 MacOS"}},{"before":null,"after":"3ed0c025f9d7546717e9a5f73d7883303cd6ff19","ref":"refs/heads/ci/fix-x86_64-apple-darwin","pushedAt":"2024-05-26T09:18:02.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"kyranet","name":"Aura","path":"/kyranet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24852502?s=80&v=4"},"commit":{"message":"ci: specify target for `x86_64-apple-darwin`","shortMessageHtmlLink":"ci: specify target for x86_64-apple-darwin"}},{"before":"b875636ece41b87021c55da811176452c386e071","after":null,"ref":"refs/heads/renovate/all-minor-patch","pushedAt":"2024-05-26T00:42:57.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"}},{"before":"cd9921f0c4e97ac7c979b1cc7a91dd38285c1955","after":"233820a2eb5e6b2be2c528c5fdb4860e4c4974cc","ref":"refs/heads/main","pushedAt":"2024-05-26T00:42:56.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"},"commit":{"message":"chore(deps): update dependency lint-staged to ^15.2.5 (#230)\n\nCo-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>","shortMessageHtmlLink":"chore(deps): update dependency lint-staged to ^15.2.5 (#230)"}},{"before":null,"after":"b875636ece41b87021c55da811176452c386e071","ref":"refs/heads/renovate/all-minor-patch","pushedAt":"2024-05-26T00:36:55.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"},"commit":{"message":"chore(deps): update dependency lint-staged to ^15.2.5","shortMessageHtmlLink":"chore(deps): update dependency lint-staged to ^15.2.5"}},{"before":"34c854fc8b119ca853a5bcd3b84917b8768ee85c","after":"cd9921f0c4e97ac7c979b1cc7a91dd38285c1955","ref":"refs/heads/main","pushedAt":"2024-05-20T19:56:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyranet","name":"Aura","path":"/kyranet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24852502?s=80&v=4"},"commit":{"message":"2.0.0","shortMessageHtmlLink":"2.0.0"}},{"before":"213c58579d3937798a41e7ea0dbf7fde2b228ccf","after":"34c854fc8b119ca853a5bcd3b84917b8768ee85c","ref":"refs/heads/main","pushedAt":"2024-05-20T19:43:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyranet","name":"Aura","path":"/kyranet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24852502?s=80&v=4"},"commit":{"message":"refactor: use `gen_` prefix rather than `make_` and `generate_`","shortMessageHtmlLink":"refactor: use gen_ prefix rather than make_ and generate_"}},{"before":"086237b4ff21aedf6eb100cbe687cc9382c70bdb","after":null,"ref":"refs/heads/refactor/add-evaluation","pushedAt":"2024-05-20T19:40:09.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"kyranet","name":"Aura","path":"/kyranet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24852502?s=80&v=4"}},{"before":"05fed01689a37d30f35137a5717caa78ba9eb3b3","after":"213c58579d3937798a41e7ea0dbf7fde2b228ccf","ref":"refs/heads/main","pushedAt":"2024-05-20T19:40:08.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"kyranet","name":"Aura","path":"/kyranet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24852502?s=80&v=4"},"commit":{"message":"refactor(connect-four): add board evaluation (#228)\n\nCo-authored-by: Tyler J Russell ","shortMessageHtmlLink":"refactor(connect-four): add board evaluation (#228)"}},{"before":"78e92d818cb1d98a3aa3e2ee01ea3464596a050a","after":"086237b4ff21aedf6eb100cbe687cc9382c70bdb","ref":"refs/heads/refactor/add-evaluation","pushedAt":"2024-05-20T16:04:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyranet","name":"Aura","path":"/kyranet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24852502?s=80&v=4"},"commit":{"message":"ci: use `NPM_PUBLISH_TOKEN` instead of `NPM_TOKEN`\n\nThat's the name of the token we use for publish","shortMessageHtmlLink":"ci: use NPM_PUBLISH_TOKEN instead of NPM_TOKEN"}},{"before":"f00e50e95e9a63a5fc4a08ea670aa095e15c9005","after":"05fed01689a37d30f35137a5717caa78ba9eb3b3","ref":"refs/heads/main","pushedAt":"2024-05-19T10:12:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"favna","name":"Jeroen Claassens","path":"/favna","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4019718?s=80&v=4"},"commit":{"message":"chore(deps): update all non-major dependencies (#229)\n\nCo-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>","shortMessageHtmlLink":"chore(deps): update all non-major dependencies (#229)"}},{"before":"7749fd0afd7225fdbf9b5a5d511e3ecc7b01e96d","after":null,"ref":"refs/heads/renovate/all-minor-patch","pushedAt":"2024-05-19T10:12:47.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"favna","name":"Jeroen Claassens","path":"/favna","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4019718?s=80&v=4"}},{"before":null,"after":"7749fd0afd7225fdbf9b5a5d511e3ecc7b01e96d","ref":"refs/heads/renovate/all-minor-patch","pushedAt":"2024-05-19T04:08:51.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"},"commit":{"message":"chore(deps): update all non-major dependencies","shortMessageHtmlLink":"chore(deps): update all non-major dependencies"}},{"before":"336abaad007b5d8dcdc37f094d042ac66356c4a5","after":"78e92d818cb1d98a3aa3e2ee01ea3464596a050a","ref":"refs/heads/refactor/add-evaluation","pushedAt":"2024-05-16T09:50:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyranet","name":"Aura","path":"/kyranet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24852502?s=80&v=4"},"commit":{"message":"perf: improve `evaluate_window`'s performance even further\n\nThe code prior to this commit was already quite fast, at 37 instructions.\n\nFor this commit, I did two things:\n\n1. I read all the indexes once per line instead of once per window, this\n allowed the code to read the values as a sequence of contiguous `u8`\n values instead of a sequence that jumps around in memory. This by\n itself allows the `evaluate_window` function to use a slice rather\n than having to create a new array per window. This change reduced the\n number of instructions in `evaluate_window` from 37 to 23.\n2. I changed `ConnectFour` to add a `score_player_mask` field containing\n the `Simd` value, rather than having to make a new one on every\n `evaluate_window` call. This change reduced the number of instructions\n in `evaluate_window` from 23 to 19.\n\nThe final x86 assembly code for `evaluate_window` is as follows:\n\n```asm\n; fn evaluate_window(&self, player: Player, window: &[u8; 4]) -> i32 {\n movdqa xmm0, xmmword, ptr, [rdx]\n pxor xmm1, xmm1\n movdqa xmm2, xmm0\n pcmpeqb xmm2, xmm1\n xorps xmm3, xmm3\n movss xmm3, xmm2\n pmovmskb eax, xmm3\n; match mask.to_bitmask() {\n movzx eax, al\n pcmpeqb xmm0, xmmword, ptr, [rcx]\n lea rcx, [rip, +, switch.table._ZN8skyra_ai5games12connect_four11ConnectFour15evaluate_window17hbe62da8767e17f32E]\n movss xmm1, xmm0\n pmovmskb edx, xmm1\n movzx edx, dl\n lea r8, [rip, +, switch.table._ZN8skyra_ai5games12connect_four11ConnectFour15evaluate_window17hbe62da8767e17f32E.300]\n movzx edx, byte, ptr, [rdx, +, r8]\n; let mask: u8 = (player_pieces << 3) | empty_pieces;\n or dl, byte, ptr, [rax, +, rcx]\n movsx rax, dl\n; match mask {\n lea rcx, [rip, +, switch.table._ZN8skyra_ai5games12connect_four11ConnectFour15evaluate_window17hbe62da8767e17f32E.299]\n mov eax, dword, ptr, [rcx, +, 4*rax, -, 4]\n; }\n ret\n```","shortMessageHtmlLink":"perf: improve evaluate_window's performance even further"}},{"before":"f4ee0bbac091dc86562aac56b0dfa59fda20d41b","after":"336abaad007b5d8dcdc37f094d042ac66356c4a5","ref":"refs/heads/refactor/add-evaluation","pushedAt":"2024-05-16T09:00:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyranet","name":"Aura","path":"/kyranet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24852502?s=80&v=4"},"commit":{"message":"chore: better documentation\n\nCo-authored-by: Tyler J Russell ","shortMessageHtmlLink":"chore: better documentation"}},{"before":"e665c82dc34102192c7e14c7ac4d776a19e2dfd1","after":"f4ee0bbac091dc86562aac56b0dfa59fda20d41b","ref":"refs/heads/refactor/add-evaluation","pushedAt":"2024-05-14T00:54:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyranet","name":"Aura","path":"/kyranet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24852502?s=80&v=4"},"commit":{"message":"perf: fix reversion with jump table","shortMessageHtmlLink":"perf: fix reversion with jump table"}},{"before":"d69b50f5ac14e1c1d3d3cd0161d6da3afaff1932","after":"e665c82dc34102192c7e14c7ac4d776a19e2dfd1","ref":"refs/heads/refactor/add-evaluation","pushedAt":"2024-05-14T00:19:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyranet","name":"Aura","path":"/kyranet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24852502?s=80&v=4"},"commit":{"message":"docs(`evaluate_window`): move the documentation for `mask`","shortMessageHtmlLink":"docs(evaluate_window): move the documentation for mask"}},{"before":"187388b9fe8a4dd282f5a0d8638417d3aab2e738","after":"d69b50f5ac14e1c1d3d3cd0161d6da3afaff1932","ref":"refs/heads/refactor/add-evaluation","pushedAt":"2024-05-13T23:57:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyranet","name":"Aura","path":"/kyranet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24852502?s=80&v=4"},"commit":{"message":"ci: fix `aarch64-unknown-linux-gnu`","shortMessageHtmlLink":"ci: fix aarch64-unknown-linux-gnu"}},{"before":"2c1fbd8a3aad7e60de9905ac49d253f0a60ecf13","after":"187388b9fe8a4dd282f5a0d8638417d3aab2e738","ref":"refs/heads/refactor/add-evaluation","pushedAt":"2024-05-13T23:40:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyranet","name":"Aura","path":"/kyranet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24852502?s=80&v=4"},"commit":{"message":"refactor: better `evaluate_window` mask creation\n\nFrom 1 SSE2 and a jump, to 2 SSE instructions and no jump","shortMessageHtmlLink":"refactor: better evaluate_window mask creation"}},{"before":"d611caf21288e0dced7664ac80b0d9b093d92dd6","after":"2c1fbd8a3aad7e60de9905ac49d253f0a60ecf13","ref":"refs/heads/refactor/add-evaluation","pushedAt":"2024-05-13T23:02:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyranet","name":"Aura","path":"/kyranet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24852502?s=80&v=4"},"commit":{"message":"refactor: use macro to generate offset arrays","shortMessageHtmlLink":"refactor: use macro to generate offset arrays"}},{"before":"4b707c9206d3aff938c711804466ae88934c76d2","after":"d611caf21288e0dced7664ac80b0d9b093d92dd6","ref":"refs/heads/refactor/add-evaluation","pushedAt":"2024-05-13T22:38:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyranet","name":"Aura","path":"/kyranet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24852502?s=80&v=4"},"commit":{"message":"docs: document `bitmask_to_count`'s reason to exist","shortMessageHtmlLink":"docs: document bitmask_to_count's reason to exist"}},{"before":"5932eb562417ed4a05e864443a4225efa1406945","after":"4b707c9206d3aff938c711804466ae88934c76d2","ref":"refs/heads/refactor/add-evaluation","pushedAt":"2024-05-13T22:30:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyranet","name":"Aura","path":"/kyranet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24852502?s=80&v=4"},"commit":{"message":"refactor: better code","shortMessageHtmlLink":"refactor: better code"}},{"before":"13f8bb9e330be58ce9343c98cbb7ab65cc97db1a","after":"5932eb562417ed4a05e864443a4225efa1406945","ref":"refs/heads/refactor/add-evaluation","pushedAt":"2024-05-13T21:57:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyranet","name":"Aura","path":"/kyranet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24852502?s=80&v=4"},"commit":{"message":"refactor: better `evaluate_window` perf","shortMessageHtmlLink":"refactor: better evaluate_window perf"}},{"before":"142bfe8873d90b04925dced18996539d027f9a9b","after":"13f8bb9e330be58ce9343c98cbb7ab65cc97db1a","ref":"refs/heads/refactor/add-evaluation","pushedAt":"2024-05-13T16:27:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyranet","name":"Aura","path":"/kyranet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24852502?s=80&v=4"},"commit":{"message":"ci: use nightly","shortMessageHtmlLink":"ci: use nightly"}},{"before":"aa7f52217326a66f8f497ff7575dace5f8573592","after":"142bfe8873d90b04925dced18996539d027f9a9b","ref":"refs/heads/refactor/add-evaluation","pushedAt":"2024-05-12T13:32:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyranet","name":"Aura","path":"/kyranet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24852502?s=80&v=4"},"commit":{"message":"refactor: better performance","shortMessageHtmlLink":"refactor: better performance"}},{"before":null,"after":"aa7f52217326a66f8f497ff7575dace5f8573592","ref":"refs/heads/refactor/add-evaluation","pushedAt":"2024-05-12T00:40:54.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"kyranet","name":"Aura","path":"/kyranet","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24852502?s=80&v=4"},"commit":{"message":"refactor(connect-four): add board evaluation","shortMessageHtmlLink":"refactor(connect-four): add board evaluation"}},{"before":"3a48b9b8a713428f47a598695b2935bb3510b4d9","after":null,"ref":"refs/heads/renovate/all-minor-patch","pushedAt":"2024-05-12T00:25:34.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEVBSmuQA","startCursor":null,"endCursor":null}},"title":"Activity ยท skyra-project/ai"}