{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":6887813,"defaultBranch":"master","name":"crystal","ownerLogin":"crystal-lang","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2012-11-27T17:32:32.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/6539796?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1726847763.0","currentOid":""},"activityList":{"items":[{"before":"c74f6bc6523510d9d8a86640b2b180bafa40649d","after":"b679b563db6cde5b633bd8bf92f32e3e476d2b78","ref":"refs/heads/master","pushedAt":"2024-09-21T11:00:58.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"straight-shoota","name":"Johannes Müller","path":"/straight-shoota","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/466378?s=80&v=4"},"commit":{"message":"Add `Exception::CallStack.empty` (#15017)\n\nThis is a follow-up on https://github.com/crystal-lang/crystal/pull/15002 which explicitly assigns a dummy callstack to `RetryLookupWithLiterals` for performance reasons.\r\n`CallStack.empty` is intended to make this use case a bit more ergonomical. It doesn't require allocating a dummy instance with fake data. Instead, it's an explicitly empty callstack. This makes this mechanism easier to re-use in other places (ref https://github.com/crystal-lang/crystal/issues/11658#issuecomment-2352649774).","shortMessageHtmlLink":"Add Exception::CallStack.empty (#15017)"}},{"before":"5f018fcafbf020c4e965ffb401df5246d082aa59","after":"c74f6bc6523510d9d8a86640b2b180bafa40649d","ref":"refs/heads/master","pushedAt":"2024-09-21T11:00:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"straight-shoota","name":"Johannes Müller","path":"/straight-shoota","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/466378?s=80&v=4"},"commit":{"message":"Compiler: enable parallel codegen with MT (#14748)\n\nImplements parallel codegen of object files when MT is enabled in the compiler (`-Dpreview_mt`).\r\n\r\nIt only impacts codegen for compilations with more than one compilation unit (module), that is when neither of `--single-module`, `--release` or `--cross-compile` is specified. This behavior is identical to the fork based codegen.\r\n\r\n**Advantages:**\r\n\r\n- allows parallel codegen on Windows (untested);\r\n- no need to fork many processes;\r\n- no repeated GC collections in each forked processes;\r\n- a simple Channel to distribute work efficiently (no need for IPC).\r\n\r\nThe main points are increased portability and simpler logic, despite having to take care of LLVM thread safety quirks (see comments).\r\n\r\nCo-authored-by: Johannes Müller ","shortMessageHtmlLink":"Compiler: enable parallel codegen with MT (#14748)"}},{"before":"d18482290bb5b069ed4852eda508b31f0213a98a","after":"5f018fcafbf020c4e965ffb401df5246d082aa59","ref":"refs/heads/master","pushedAt":"2024-09-21T10:59:53.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"straight-shoota","name":"Johannes Müller","path":"/straight-shoota","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/466378?s=80&v=4"},"commit":{"message":"Reduce calls to `Crystal::Type#remove_indirection` in module dispatch (#14992)\n\nModule types are expanded into unions during Crystal's codegen phase when the receiver of a call has a module type. This patch makes this expansion occur once for the entire call, instead of once for each including type.","shortMessageHtmlLink":"Reduce calls to Crystal::Type#remove_indirection in module dispatch ("}},{"before":"c2488f6e9dea40d3225ed18a1a589db62973e482","after":"d18482290bb5b069ed4852eda508b31f0213a98a","ref":"refs/heads/master","pushedAt":"2024-09-21T09:24:07.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"straight-shoota","name":"Johannes Müller","path":"/straight-shoota","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/466378?s=80&v=4"},"commit":{"message":"Fix compiler artifact name in WindowsCI (#15021)\n\nBefore https://github.com/crystal-lang/crystal/pull/15000 we had two\r\ndifferent builds of the compiler in every CI run, a release build and a\r\nnon-release. Now we only have a release build and there's no need to\r\ndifferentiate by name.\r\nGoing back to `crystal` makes the install-crystal action work again.","shortMessageHtmlLink":"Fix compiler artifact name in WindowsCI (#15021)"}},{"before":"56b727577e2329221ae95fae4ced4c021bc4c535","after":"97e79d1ec114be09eac17888e884a5d38ea5ef7b","ref":"refs/heads/infra/ci-test","pushedAt":"2024-09-20T16:29:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"straight-shoota","name":"Johannes Müller","path":"/straight-shoota","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/466378?s=80&v=4"},"commit":{"message":"8g","shortMessageHtmlLink":"8g"}},{"before":null,"after":"56b727577e2329221ae95fae4ced4c021bc4c535","ref":"refs/heads/infra/ci-test","pushedAt":"2024-09-20T15:56:03.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"straight-shoota","name":"Johannes Müller","path":"/straight-shoota","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/466378?s=80&v=4"},"commit":{"message":"trial","shortMessageHtmlLink":"trial"}},{"before":"37da284f8d9ecab90c51b3f1aa8c125cebd4826d","after":"c2488f6e9dea40d3225ed18a1a589db62973e482","ref":"refs/heads/master","pushedAt":"2024-09-20T09:54:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"straight-shoota","name":"Johannes Müller","path":"/straight-shoota","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/466378?s=80&v=4"},"commit":{"message":"Update previous Crystal release 1.13.3 (#15016)","shortMessageHtmlLink":"Update previous Crystal release 1.13.3 (#15016)"}},{"before":"20ec40206af07c384746644ab1aa33afb56e4385","after":"cde878bb0e6776234b1d63da66659be5b19524a7","ref":"refs/heads/changelog/1.14.0","pushedAt":"2024-09-19T20:40:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"straight-shoota","name":"Johannes Müller","path":"/straight-shoota","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/466378?s=80&v=4"},"commit":{"message":"Update changelog for 1.14.0","shortMessageHtmlLink":"Update changelog for 1.14.0"}},{"before":"05adb04d78bf2b52e931daaa948fa2f615bc5daf","after":"20ec40206af07c384746644ab1aa33afb56e4385","ref":"refs/heads/changelog/1.14.0","pushedAt":"2024-09-19T17:06:10.000Z","pushType":"push","commitsCount":38,"pusher":{"login":"straight-shoota","name":"Johannes Müller","path":"/straight-shoota","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/466378?s=80&v=4"},"commit":{"message":"Merge branch 'master' into changelog/1.14.0","shortMessageHtmlLink":"Merge branch 'master' into changelog/1.14.0"}},{"before":"b3fb59ad3ebbb145433548ef9e0c876ba181c4a7","after":"05adb04d78bf2b52e931daaa948fa2f615bc5daf","ref":"refs/heads/changelog/1.14.0","pushedAt":"2024-09-19T17:05:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"straight-shoota","name":"Johannes Müller","path":"/straight-shoota","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/466378?s=80&v=4"},"commit":{"message":"Update changelog for 1.14.0","shortMessageHtmlLink":"Update changelog for 1.14.0"}},{"before":"47d174825e674c57c0d3b2036fa6975277528614","after":"37da284f8d9ecab90c51b3f1aa8c125cebd4826d","ref":"refs/heads/master","pushedAt":"2024-09-19T13:21:03.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"straight-shoota","name":"Johannes Müller","path":"/straight-shoota","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/466378?s=80&v=4"},"commit":{"message":"Add missing `@[Link(dll:)]` annotation to MPIR (#15003)","shortMessageHtmlLink":"Add missing @[Link(dll:)] annotation to MPIR (#15003)"}},{"before":"62541690fe775778b9b1be2728202e71d2e76dda","after":"47d174825e674c57c0d3b2036fa6975277528614","ref":"refs/heads/master","pushedAt":"2024-09-19T13:20:55.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"straight-shoota","name":"Johannes Müller","path":"/straight-shoota","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/466378?s=80&v=4"},"commit":{"message":"Support Unicode 16.0.0 (#14997)","shortMessageHtmlLink":"Support Unicode 16.0.0 (#14997)"}},{"before":"edfe1f484c728e25a12bfb2edc43d71c9b59a983","after":"62541690fe775778b9b1be2728202e71d2e76dda","ref":"refs/heads/master","pushedAt":"2024-09-19T13:20:45.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"straight-shoota","name":"Johannes Müller","path":"/straight-shoota","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/466378?s=80&v=4"},"commit":{"message":"Use our own `libffi` repository on Windows CI (#14998)\n\nI forked the libffi upstream and wrote [my own `CMakeLists.txt`](https://github.com/crystal-lang/libffi/blob/441390ce33ae2d9bf2916184fe6b7207b306dd3e/CMakeLists.txt). It only handles x64 MSVC, but we could easily extend it to support ARM64 in the near future.\r\nNote that the Windows CI already uses libffi since there are interpreter tests and stdlib tests running with the interpreter.","shortMessageHtmlLink":"Use our own libffi repository on Windows CI (#14998)"}},{"before":"626e8f7c55cc573c321476b5fc4dd2e0986167bb","after":"edfe1f484c728e25a12bfb2edc43d71c9b59a983","ref":"refs/heads/master","pushedAt":"2024-09-19T10:47:34.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"straight-shoota","name":"Johannes Müller","path":"/straight-shoota","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/466378?s=80&v=4"},"commit":{"message":"Merge branch 'release/1.13'","shortMessageHtmlLink":"Merge branch 'release/1.13'"}},{"before":"f17b565cd5cd9bd96dbba85d1e94c7d2cacbf21b","after":"626e8f7c55cc573c321476b5fc4dd2e0986167bb","ref":"refs/heads/master","pushedAt":"2024-09-18T21:01:49.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"straight-shoota","name":"Johannes Müller","path":"/straight-shoota","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/466378?s=80&v=4"},"commit":{"message":"Remove `XML::Error.errors` (#14936)\n\nCo-authored-by: Beta Ziliani ","shortMessageHtmlLink":"Remove XML::Error.errors (#14936)"}},{"before":"898d2ee797b9eca4c9cd6199701dacf58d714550","after":null,"ref":"refs/heads/changelog/1.13.3","pushedAt":"2024-09-18T13:43:41.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"straight-shoota","name":"Johannes Müller","path":"/straight-shoota","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/466378?s=80&v=4"}},{"before":"ced75401dac79f9abfe77e2aa6181a62c1283107","after":"d14d04562125ee1f2c3985d756c5f0e4cd68a9c2","ref":"refs/heads/release/1.13","pushedAt":"2024-09-18T13:43:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"straight-shoota","name":"Johannes Müller","path":"/straight-shoota","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/466378?s=80&v=4"},"commit":{"message":"Changelog for 1.13.3 (#14991)","shortMessageHtmlLink":"Changelog for 1.13.3 (#14991)"}},{"before":"a948289ccc803c5a79fbec9eb9cccfe27dc6a9a8","after":"898d2ee797b9eca4c9cd6199701dacf58d714550","ref":"refs/heads/changelog/1.13.3","pushedAt":"2024-09-18T07:21:45.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"straight-shoota","name":"Johannes Müller","path":"/straight-shoota","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/466378?s=80&v=4"},"commit":{"message":"Merge branch 'release/1.13' into changelog/1.13.3","shortMessageHtmlLink":"Merge branch 'release/1.13' into changelog/1.13.3"}},{"before":"879ec124747c287605e349183a3c9143174659e8","after":"ced75401dac79f9abfe77e2aa6181a62c1283107","ref":"refs/heads/release/1.13","pushedAt":"2024-09-17T19:31:30.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"straight-shoota","name":"Johannes Müller","path":"/straight-shoota","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/466378?s=80&v=4"},"commit":{"message":"Fix `String#index` and `#rindex` for `Char::REPLACEMENT` (#14937)\n\nIf the string consists only of ASCII characters and invalid UTF-8 byte sequences, all the latter should correspond to `Char::REPLACEMENT`, and so `#index` and `#rindex` should detect them, but this was broken since #14461.","shortMessageHtmlLink":"Fix String#index and #rindex for Char::REPLACEMENT (#14937)"}},{"before":"e6d7527b9c52782c6ac0496411dbd6b36ec75928","after":"a948289ccc803c5a79fbec9eb9cccfe27dc6a9a8","ref":"refs/heads/changelog/1.13.3","pushedAt":"2024-09-17T19:28:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"straight-shoota","name":"Johannes Müller","path":"/straight-shoota","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/466378?s=80&v=4"},"commit":{"message":"Update changelog for 1.13.3","shortMessageHtmlLink":"Update changelog for 1.13.3"}},{"before":"261b1cb93acce45c6dca4ecc29203f62a46aa74b","after":"e6d7527b9c52782c6ac0496411dbd6b36ec75928","ref":"refs/heads/changelog/1.13.3","pushedAt":"2024-09-17T19:18:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"straight-shoota","name":"Johannes Müller","path":"/straight-shoota","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/466378?s=80&v=4"},"commit":{"message":"Update changelog for 1.13.3","shortMessageHtmlLink":"Update changelog for 1.13.3"}},{"before":"6c310e5a7f7be082bcdb69df733dad832109b833","after":null,"ref":"refs/heads/infra/runs-on","pushedAt":"2024-09-17T19:17:42.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"straight-shoota","name":"Johannes Müller","path":"/straight-shoota","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/466378?s=80&v=4"}},{"before":"5c18900fb7fa65bfb6cdb4da1f3d763700022b8c","after":"f17b565cd5cd9bd96dbba85d1e94c7d2cacbf21b","ref":"refs/heads/master","pushedAt":"2024-09-17T19:17:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"straight-shoota","name":"Johannes Müller","path":"/straight-shoota","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/466378?s=80&v=4"},"commit":{"message":"Enable runners from `runs-on.com` for Aarch64 CI (#15007)\n\nhttps://runs-on.com is a service that provisions machines on AWS on demand to run workflow jobs.\r\nIt triggers when a job is tagged as `runs-on` and you can configure what kind of machine you like this to run on. The machine specification could likely use some fine tuning (we can use other instance types, and theoretically 8GB should be sufficient). But that'll be a follow-up. For now we know that this works.\r\nWe expect this to be more price-efficient setup than renting a fixed server or a CI runner service.\r\n\r\nThis patch also includes an update to the latest base image. The old arm base images were using Crystal 1.0 and some outdated libraries which caused problems on the new runners (#15005). The build images are based on the docker images from [84codes/crystal](https://hub.docker.com/r/84codes/crystal).","shortMessageHtmlLink":"Enable runners from runs-on.com for Aarch64 CI (#15007)"}},{"before":"9f5c977edb4d2a1bb403285e205cdc87211cbb0a","after":"6c310e5a7f7be082bcdb69df733dad832109b833","ref":"refs/heads/infra/runs-on","pushedAt":"2024-09-17T15:48:00.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"straight-shoota","name":"Johannes Müller","path":"/straight-shoota","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/466378?s=80&v=4"},"commit":{"message":"Enable `runs-on` runners for Aarch64 CI","shortMessageHtmlLink":"Enable runs-on runners for Aarch64 CI"}},{"before":null,"after":"9f5c977edb4d2a1bb403285e205cdc87211cbb0a","ref":"refs/heads/infra/runs-on","pushedAt":"2024-09-17T15:38:45.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"straight-shoota","name":"Johannes Müller","path":"/straight-shoota","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/466378?s=80&v=4"},"commit":{"message":"Enable `runs-on` runners for Aarch64 CI","shortMessageHtmlLink":"Enable runs-on runners for Aarch64 CI"}},{"before":"53e88455bc27793ff2d3f0f0164f12514291e4d0","after":"261b1cb93acce45c6dca4ecc29203f62a46aa74b","ref":"refs/heads/changelog/1.13.3","pushedAt":"2024-09-17T11:48:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"straight-shoota","name":"Johannes Müller","path":"/straight-shoota","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/466378?s=80&v=4"},"commit":{"message":"Update changelog for 1.13.3","shortMessageHtmlLink":"Update changelog for 1.13.3"}},{"before":"42bd6834a5ff12bb2c17dd85c543324142cae844","after":"30804fb7cc514e9c1082d740bd62b5c6568b52e8","ref":"refs/heads/test/runs-on","pushedAt":"2024-09-17T11:16:11.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"straight-shoota","name":"Johannes Müller","path":"/straight-shoota","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/466378?s=80&v=4"},"commit":{"message":"`ram=16` for test-stdlib","shortMessageHtmlLink":"ram=16 for test-stdlib"}},{"before":"8cbce4defcb38024c6631f489bab8d937bb42e3a","after":"42bd6834a5ff12bb2c17dd85c543324142cae844","ref":"refs/heads/test/runs-on","pushedAt":"2024-09-17T10:49:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"straight-shoota","name":"Johannes Müller","path":"/straight-shoota","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/466378?s=80&v=4"},"commit":{"message":"fixup! Skip OpenSSL spec on aarch64-linux-gnu","shortMessageHtmlLink":"fixup! Skip OpenSSL spec on aarch64-linux-gnu"}},{"before":"9134f9f3ba27b099ebbf048b20560c473cdeb87f","after":"5c18900fb7fa65bfb6cdb4da1f3d763700022b8c","ref":"refs/heads/master","pushedAt":"2024-09-17T10:47:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"straight-shoota","name":"Johannes Müller","path":"/straight-shoota","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/466378?s=80&v=4"},"commit":{"message":"Use Cygwin to build libiconv on Windows CI (#14999)\n\nThis uses the official releases and build instructions.\r\n\r\nTo compile code with this patch using a Windows Crystal compiler without this patch, either the new library files (`lib\\iconv.lib`, `lib\\iconv-dynamic.lib`, `iconv-2.dll`) shall be copied to that existing Crystal installation, or `CRYSTAL_LIBRARY_PATH` shall include the new `lib` directory so that the `@[Link]` annotation will pick up the new `iconv-2.dll` on program builds. Otherwise, compiled programs will continue to look for the old `libiconv.dll`, and silently break if it is not in `%PATH%` (which is hopefully rare since most of the time Crystal itself is also in `%PATH%`).\r\n\r\nCygwin's location is currently hardcoded to `C:\\cygwin64`, the default installation location for 64-bit Cygwin.\r\n\r\nCygwin itself doesn't have native ARM64 support, but cross-compilation should be possible by simply using the x64-to-ARM64 cross tools MSVC developer prompt on an ARM64 machine.","shortMessageHtmlLink":"Use Cygwin to build libiconv on Windows CI (#14999)"}},{"before":"f20ad4f52cf1f25344c6ff4a26413717ff83f41c","after":"8cbce4defcb38024c6631f489bab8d937bb42e3a","ref":"refs/heads/test/runs-on","pushedAt":"2024-09-17T08:59:04.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"straight-shoota","name":"Johannes Müller","path":"/straight-shoota","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/466378?s=80&v=4"},"commit":{"message":"Revert \"tmate\"\n\nThis reverts commit f20ad4f52cf1f25344c6ff4a26413717ff83f41c.","shortMessageHtmlLink":"Revert \"tmate\""}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0yMVQxMTowMDo1OC4wMDAwMDBazwAAAAS8qeNx","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0yMVQxMTowMDo1OC4wMDAwMDBazwAAAAS8qeNx","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xN1QwODo1OTowNC4wMDAwMDBazwAAAAS4TNJe"}},"title":"Activity · crystal-lang/crystal"}