{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":33539908,"defaultBranch":"main","name":"inko","ownerLogin":"inko-lang","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2015-04-07T11:47:03.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/127962159?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1726789059.0","currentOid":""},"activityList":{"items":[{"before":"fa651e2ecc31f5b3a4721053cc6229e635bc264a","after":null,"ref":"refs/heads/futures","pushedAt":"2024-09-19T23:37:39.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"yorickpeterse","name":"Yorick Peterse","path":"/yorickpeterse","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86065?s=80&v=4"}},{"before":"e0feaaee9d5050056737bd473afe8fb2f7109df4","after":"fa651e2ecc31f5b3a4721053cc6229e635bc264a","ref":"refs/heads/main","pushedAt":"2024-09-19T22:29:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"yorickpeterse","name":"Yorick Peterse","path":"/yorickpeterse","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86065?s=80&v=4"},"commit":{"message":"Reintroduce futures using Future and Promise\n\nThis commit reintroduces futures, allowing messages to send their\nresults back to the sender of the message, without the need for a\nchannel. Futures are split into two user facing types: Future and\nPromise. A Future is a proxy for a value to be computed in the future,\nwhile a Promise is used for specifying what that value is. Both a Future\nand Promise can only be used once (e.g. Future.get consumes its\nreceiver). This in turn allows for a simple and efficient\nimplementation, rather than the more complex implementation of the old\nChannel type.\n\nThe Channel type is re-implemented using a process, Future and Promise\npairs, and the new std.deque.Deque type. This implementation is an\n_unbounded_ channel, as making a bounded channel using processes is a\nlittle more tricky and not necessarily beneficial. The new Channel type\nis just a regular type and doesn't use atomic reference counting,\nrequiring explicit calls to `Channel.clone` paired with a `recover` to\nallow moving the channel between processes.\n\nChangelog: changed","shortMessageHtmlLink":"Reintroduce futures using Future and Promise"}},{"before":"b40cb05cfd9b5b7ae69c147c47fc6616192ee582","after":"fa651e2ecc31f5b3a4721053cc6229e635bc264a","ref":"refs/heads/futures","pushedAt":"2024-09-19T19:56:15.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"yorickpeterse","name":"Yorick Peterse","path":"/yorickpeterse","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86065?s=80&v=4"},"commit":{"message":"Reintroduce futures using Future and Promise\n\nThis commit reintroduces futures, allowing messages to send their\nresults back to the sender of the message, without the need for a\nchannel. Futures are split into two user facing types: Future and\nPromise. A Future is a proxy for a value to be computed in the future,\nwhile a Promise is used for specifying what that value is. Both a Future\nand Promise can only be used once (e.g. Future.get consumes its\nreceiver). This in turn allows for a simple and efficient\nimplementation, rather than the more complex implementation of the old\nChannel type.\n\nThe Channel type is re-implemented using a process, Future and Promise\npairs, and the new std.deque.Deque type. This implementation is an\n_unbounded_ channel, as making a bounded channel using processes is a\nlittle more tricky and not necessarily beneficial. The new Channel type\nis just a regular type and doesn't use atomic reference counting,\nrequiring explicit calls to `Channel.clone` paired with a `recover` to\nallow moving the channel between processes.\n\nChangelog: changed","shortMessageHtmlLink":"Reintroduce futures using Future and Promise"}},{"before":"bb26d3f4000a101be268ce08ea275779f115dea3","after":"b40cb05cfd9b5b7ae69c147c47fc6616192ee582","ref":"refs/heads/futures","pushedAt":"2024-09-19T17:42:21.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"yorickpeterse","name":"Yorick Peterse","path":"/yorickpeterse","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86065?s=80&v=4"},"commit":{"message":"Reintroduce futures using Future and Promise\n\nThis commit reintroduces futures, allowing messages to send their\nresults back to the sender of the message, without the need for a\nchannel. Futures are split into two user facing types: Future and\nPromise. A Future is a proxy for a value to be computed in the future,\nwhile a Promise is used for specifying what that value is. Both a Future\nand Promise can only be used once (e.g. Future.get consumes its\nreceiver). This in turn allows for a simple and efficient\nimplementation, rather than the more complex implementation of the old\nChannel type.\n\nThe Channel type is re-implemented using a process, Future and Promise\npairs, and the new std.deque.Deque type. This implementation is an\n_unbounded_ channel, as making a bounded channel using processes is a\nlittle more tricky and not necessarily beneficial. The new Channel type\nis just a regular type and doesn't use atomic reference counting,\nrequiring explicit calls to `Channel.clone` paired with a `recover` to\nallow moving the channel between processes.\n\nChangelog: changed","shortMessageHtmlLink":"Reintroduce futures using Future and Promise"}},{"before":"91d0730cb96cbba17f0cf5746dbb35528358d99b","after":"bb26d3f4000a101be268ce08ea275779f115dea3","ref":"refs/heads/futures","pushedAt":"2024-09-18T22:48:22.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"yorickpeterse","name":"Yorick Peterse","path":"/yorickpeterse","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86065?s=80&v=4"},"commit":{"message":"WIP: deque","shortMessageHtmlLink":"WIP: deque"}},{"before":"a4122b162c3ea98110609f6a6a3e38a854f535e4","after":"91d0730cb96cbba17f0cf5746dbb35528358d99b","ref":"refs/heads/futures","pushedAt":"2024-09-18T19:44:55.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"yorickpeterse","name":"Yorick Peterse","path":"/yorickpeterse","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86065?s=80&v=4"},"commit":{"message":"WIP: deque","shortMessageHtmlLink":"WIP: deque"}},{"before":"752f038e74633dc88e19f45656249d106f20e129","after":"a4122b162c3ea98110609f6a6a3e38a854f535e4","ref":"refs/heads/futures","pushedAt":"2024-09-18T13:40:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"yorickpeterse","name":"Yorick Peterse","path":"/yorickpeterse","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86065?s=80&v=4"},"commit":{"message":"WIP: deque","shortMessageHtmlLink":"WIP: deque"}},{"before":"56d7b6f012fda5768e460d6d0502e5c6a2432611","after":"752f038e74633dc88e19f45656249d106f20e129","ref":"refs/heads/futures","pushedAt":"2024-09-17T23:48:12.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"yorickpeterse","name":"Yorick Peterse","path":"/yorickpeterse","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86065?s=80&v=4"},"commit":{"message":"Reintroduce futures using Future and Promise\n\nThis commit reintroduces futures, allowing messages to send their\nresults back to the sender of the message, without the need for a\nchannel. Futures are split into two user facing types: Future and\nPromise. A Future is a proxy for a value to be computed in the future,\nwhile a Promise is used for specifying what that value is. Both a Future\nand Promise can only be used once (e.g. Future.get consumes its\nreceiver). This in turn allows for a simple and efficient\nimplementation, rather than the more complex implementation of the old\nChannel type.\n\nTODO: add deque\nTODO: replace channels\n\nChangelog: changed","shortMessageHtmlLink":"Reintroduce futures using Future and Promise"}},{"before":"6e62dc0ae7238e3a0882a4323acb7d342a8e8483","after":"56d7b6f012fda5768e460d6d0502e5c6a2432611","ref":"refs/heads/futures","pushedAt":"2024-09-17T23:42:27.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"yorickpeterse","name":"Yorick Peterse","path":"/yorickpeterse","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86065?s=80&v=4"},"commit":{"message":"Reintroduce futures using Future and Promise\n\nThis commit reintroduces futures, allowing messages to send their\nresults back to the sender of the message, without the need for a\nchannel. Futures are split into two user facing types: Future and\nPromise. A Future is a proxy for a value to be computed in the future,\nwhile a Promise is used for specifying what that value is. Both a Future\nand Promise can only be used once (e.g. Future.get consumes its\nreceiver). This in turn allows for a simple and efficient\nimplementation, rather than the more complex implementation of the old\nChannel type.\n\nTODO: add deque\nTODO: replace channels\n\nChangelog: changed","shortMessageHtmlLink":"Reintroduce futures using Future and Promise"}},{"before":"61702ef290b5a5fb5f325a1f919119039f78d0e9","after":"6e62dc0ae7238e3a0882a4323acb7d342a8e8483","ref":"refs/heads/futures","pushedAt":"2024-09-17T23:07:09.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"yorickpeterse","name":"Yorick Peterse","path":"/yorickpeterse","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86065?s=80&v=4"},"commit":{"message":"Reintroduce futures using Future and Promise\n\nThis commit reintroduces futures, allowing messages to send their\nresults back to the sender of the message, without the need for a\nchannel. Futures are split into two user facing types: Future and\nPromise. A Future is a proxy for a value to be computed in the future,\nwhile a Promise is used for specifying what that value is. Both a Future\nand Promise can only be used once (e.g. Future.get consumes its\nreceiver). This in turn allows for a simple and efficient\nimplementation, rather than the more complex implementation of the old\nChannel type.\n\nTODO: add deque\nTODO: replace channels\n\nChangelog: changed","shortMessageHtmlLink":"Reintroduce futures using Future and Promise"}},{"before":"4c62d3175c6ea1f38720c8d87a8c7f21a3da33f5","after":"61702ef290b5a5fb5f325a1f919119039f78d0e9","ref":"refs/heads/futures","pushedAt":"2024-09-17T23:04:14.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"yorickpeterse","name":"Yorick Peterse","path":"/yorickpeterse","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86065?s=80&v=4"},"commit":{"message":"Reintroduce futures using Future and Promise\n\nThis commit reintroduces futures, allowing messages to send their\nresults back to the sender of the message, without the need for a\nchannel. Futures are split into two user facing types: Future and\nPromise. A Future is a proxy for a value to be computed in the future,\nwhile a Promise is used for specifying what that value is. Both a Future\nand Promise can only be used once (e.g. Future.get consumes its\nreceiver). This in turn allows for a simple and efficient\nimplementation, rather than the more complex implementation of the old\nChannel type.\n\nTODO: add deque\nTODO: replace channels\n\nChangelog: changed","shortMessageHtmlLink":"Reintroduce futures using Future and Promise"}},{"before":"1e33f03080985831b5cf89362ad3d791a16d6c49","after":"4c62d3175c6ea1f38720c8d87a8c7f21a3da33f5","ref":"refs/heads/futures","pushedAt":"2024-09-17T19:52:15.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"yorickpeterse","name":"Yorick Peterse","path":"/yorickpeterse","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86065?s=80&v=4"},"commit":{"message":"Reintroduce futures using Future and Promise\n\nThis commit reintroduces futures, allowing messages to send their\nresults back to the sender of the message, without the need for a\nchannel. Futures are split into two user facing types: Future and\nPromise. A Future is a proxy for a value to be computed in the future,\nwhile a Promise is used for specifying what that value is. Both a Future\nand Promise can only be used once (e.g. Future.get consumes its\nreceiver). This in turn allows for a simple and efficient\nimplementation, rather than the more complex implementation of the old\nChannel type.\n\nTODO: add deque\nTODO: replace channels\n\nChangelog: changed","shortMessageHtmlLink":"Reintroduce futures using Future and Promise"}},{"before":"442ecabe2d74ee53af679abc6caaae737b626235","after":"1e33f03080985831b5cf89362ad3d791a16d6c49","ref":"refs/heads/futures","pushedAt":"2024-09-17T19:15:57.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"yorickpeterse","name":"Yorick Peterse","path":"/yorickpeterse","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86065?s=80&v=4"},"commit":{"message":"Reintroduce futures using Future and Promise\n\nThis commit reintroduces futures, allowing messages to send their\nresults back to the sender of the message, without the need for a\nchannel. Futures are split into two user facing types: Future and\nPromise. A Future is a proxy for a value to be computed in the future,\nwhile a Promise is used for specifying what that value is. Both a Future\nand Promise can only be used once (e.g. Future.get consumes its\nreceiver). This in turn allows for a simple and efficient\nimplementation, rather than the more complex implementation of the old\nChannel type.\n\nTODO: add deque\nTODO: replace channels\n\nChangelog: changed","shortMessageHtmlLink":"Reintroduce futures using Future and Promise"}},{"before":"71cb9713f2b696d438fbe4f5a3d19eb86cc090f2","after":"442ecabe2d74ee53af679abc6caaae737b626235","ref":"refs/heads/futures","pushedAt":"2024-09-17T18:33:48.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"yorickpeterse","name":"Yorick Peterse","path":"/yorickpeterse","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86065?s=80&v=4"},"commit":{"message":"Reintroduce futures using Future and Promise\n\nThis commit reintroduces futures, allowing messages to send their\nresults back to the sender of the message, without the need for a\nchannel. Futures are split into two user facing types: Future and\nPromise. A Future is a proxy for a value to be computed in the future,\nwhile a Promise is used for specifying what that value is. Both a Future\nand Promise can only be used once (e.g. Future.get consumes its\nreceiver). This in turn allows for a simple and efficient\nimplementation, rather than the more complex implementation of the old\nChannel type.\n\nTODO: add deque\nTODO: replace channels\n\nChangelog: changed","shortMessageHtmlLink":"Reintroduce futures using Future and Promise"}},{"before":"a1a8b4ed116e3676dc7d94b89706aa64c2153203","after":"71cb9713f2b696d438fbe4f5a3d19eb86cc090f2","ref":"refs/heads/futures","pushedAt":"2024-09-17T00:39:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"yorickpeterse","name":"Yorick Peterse","path":"/yorickpeterse","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86065?s=80&v=4"},"commit":{"message":"WIP: squash with others\n\nBool and Nil now use LLVM's i1 type, which turns into a byte. In\naddition, this commit sets things up for supporting futures.","shortMessageHtmlLink":"WIP: squash with others"}},{"before":null,"after":"a1a8b4ed116e3676dc7d94b89706aa64c2153203","ref":"refs/heads/futures","pushedAt":"2024-09-16T14:21:40.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"yorickpeterse","name":"Yorick Peterse","path":"/yorickpeterse","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86065?s=80&v=4"},"commit":{"message":"Fix creating pointers to field values\n\nThis fixes expressions such as `mut @some_field` and\n`mut rec.some_field` to correctly return a pointer to the field, rather\nthan creating a pointer to a copy of the returned value.\n\nChangelog: fixed","shortMessageHtmlLink":"Fix creating pointers to field values"}},{"before":"33408cb07a55a771cc78e46e29fe052d79ab021d","after":null,"ref":"refs/heads/message-sizes","pushedAt":"2024-09-16T14:21:05.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"yorickpeterse","name":"Yorick Peterse","path":"/yorickpeterse","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86065?s=80&v=4"}},{"before":"3f1719f37a9c83ed6587b74aab6f3cfcbcbd69e0","after":"e0feaaee9d5050056737bd473afe8fb2f7109df4","ref":"refs/heads/main","pushedAt":"2024-09-13T15:06:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"yorickpeterse","name":"Yorick Peterse","path":"/yorickpeterse","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86065?s=80&v=4"},"commit":{"message":"Fix building the compiler on Alpine/musl\n\nWith https://gitlab.com/taricorp/llvm-sys.rs/-/issues/44 solved, it's\nnow possible to build the compiler on Alpine/musl targets. This commit\nupdates the LLVM dependencies for that, fixes a few deprecation\nwarnings, and updates the CI configuration such that we run tests on\nAlpine.\n\nThis fixes https://github.com/inko-lang/inko/issues/644\n\nChangelog: fixed","shortMessageHtmlLink":"Fix building the compiler on Alpine/musl"}},{"before":"7ae964e0d11c93a423ed5e1e048568b36c72b2cb","after":null,"ref":"refs/heads/alpine","pushedAt":"2024-09-13T15:06:35.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"yorickpeterse","name":"Yorick Peterse","path":"/yorickpeterse","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86065?s=80&v=4"}},{"before":"3de7248a7a85b997c08b2c066dd881ccbb3b05f9","after":"7ae964e0d11c93a423ed5e1e048568b36c72b2cb","ref":"refs/heads/alpine","pushedAt":"2024-09-13T14:59:46.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"yorickpeterse","name":"Yorick Peterse","path":"/yorickpeterse","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86065?s=80&v=4"},"commit":{"message":"Fix building the compiler on Alpine/musl\n\nWith https://gitlab.com/taricorp/llvm-sys.rs/-/issues/44 solved, it's\nnow possible to build the compiler on Alpine/musl targets. This commit\nupdates the LLVM dependencies for that, fixes a few deprecation\nwarnings, and updates the CI configuration such that we run tests on\nAlpine.\n\nChangelog: fixed","shortMessageHtmlLink":"Fix building the compiler on Alpine/musl"}},{"before":"d5137d19c4530522ecba091a995c772eae8436d2","after":"3f1719f37a9c83ed6587b74aab6f3cfcbcbd69e0","ref":"refs/heads/main","pushedAt":"2024-09-13T14:54:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"yorickpeterse","name":"Yorick Peterse","path":"/yorickpeterse","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86065?s=80&v=4"},"commit":{"message":"Fix the path regex for the containers job","shortMessageHtmlLink":"Fix the path regex for the containers job"}},{"before":"742e1c2ce7fdfa8f7105d0da6db046e7fb845805","after":"d5137d19c4530522ecba091a995c772eae8436d2","ref":"refs/heads/main","pushedAt":"2024-09-13T14:50:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"yorickpeterse","name":"Yorick Peterse","path":"/yorickpeterse","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86065?s=80&v=4"},"commit":{"message":"Update the dependencies needed on Alpine\n\nWithout the static libraries the compiler _does_ build, but crashes when\ncreating an LLVM context for reasons unknown. Using the static libraries\nresults in everything working just fine and results in more portable\nexecutables anyway, so let's just require that.","shortMessageHtmlLink":"Update the dependencies needed on Alpine"}},{"before":null,"after":"3de7248a7a85b997c08b2c066dd881ccbb3b05f9","ref":"refs/heads/alpine","pushedAt":"2024-09-13T14:28:49.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"yorickpeterse","name":"Yorick Peterse","path":"/yorickpeterse","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86065?s=80&v=4"},"commit":{"message":"Fix building the compiler on Alpine/musl\n\nWith https://gitlab.com/taricorp/llvm-sys.rs/-/issues/44 solved, it's\nnow possible to build the compiler on Alpine/musl targets. This commit\nupdates the LLVM dependencies for that, fixes a few deprecation\nwarnings, and updates the CI configuration such that we run tests on\nAlpine.\n\nChangelog: fixed","shortMessageHtmlLink":"Fix building the compiler on Alpine/musl"}},{"before":"3a17396f1a58f7f8986f9ccf51577fa94e040f89","after":"742e1c2ce7fdfa8f7105d0da6db046e7fb845805","ref":"refs/heads/main","pushedAt":"2024-09-13T14:24:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"yorickpeterse","name":"Yorick Peterse","path":"/yorickpeterse","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86065?s=80&v=4"},"commit":{"message":"Build an Alpine container for CI\n\nThis will be used for running tests using Alpine/musl.","shortMessageHtmlLink":"Build an Alpine container for CI"}},{"before":"b7c66216e2de760f9f5e9ed5ef30bb62dd5faa53","after":"3a17396f1a58f7f8986f9ccf51577fa94e040f89","ref":"refs/heads/main","pushedAt":"2024-09-12T19:52:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"yorickpeterse","name":"Yorick Peterse","path":"/yorickpeterse","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86065?s=80&v=4"},"commit":{"message":"Limit the number of threads for subprocess tests\n\nTests created using std.test.Tests.fork now limit the number of Inko\nthreads the subprocess uses, reducing the chances of such tests reaching\nthread count limits and thus crashing the test.\n\nChangelog: fixed","shortMessageHtmlLink":"Limit the number of threads for subprocess tests"}},{"before":"f463691ea8938b767447631c514cba8e66b398fb","after":"b7c66216e2de760f9f5e9ed5ef30bb62dd5faa53","ref":"refs/heads/main","pushedAt":"2024-09-12T19:48:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"yorickpeterse","name":"Yorick Peterse","path":"/yorickpeterse","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86065?s=80&v=4"},"commit":{"message":"Make scheduler thread errors a little better\n\nThese errors can surface when hitting some sort of limit on the number\nof threads a user can create.","shortMessageHtmlLink":"Make scheduler thread errors a little better"}},{"before":"33408cb07a55a771cc78e46e29fe052d79ab021d","after":"f463691ea8938b767447631c514cba8e66b398fb","ref":"refs/heads/main","pushedAt":"2024-09-11T16:23:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"yorickpeterse","name":"Yorick Peterse","path":"/yorickpeterse","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86065?s=80&v=4"},"commit":{"message":"Reduce cost of creating process stacks\n\nWhen spawning a process, we use mmap(2) to set up the memory used for\nthe process' stack. As part of this, we write some data to the start of\nthe stack, such as a pointer to the process itself. This can trigger a\npage fault when the stack is new, resulting in the kernel committing the\nfirst page. This in turn can be rather slow: somewhere between 5 and 10\nmicroseconds, depending on how lucky you are.\n\nTo work around this, we now reserve a number of stacks per thread upon\nstartup, and we (volatile) write a dummy value to the private data\nsection of the stack. This allows hiding of the cost for the reserved\nstacks, though depending on the number of processes spawned and how long\nthey stick around one can still run into this cost.\n\nChangelog: performance","shortMessageHtmlLink":"Reduce cost of creating process stacks"}},{"before":"55e6c915785f55bc650dafe01f44033999896255","after":"33408cb07a55a771cc78e46e29fe052d79ab021d","ref":"refs/heads/main","pushedAt":"2024-09-10T19:51:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"yorickpeterse","name":"Yorick Peterse","path":"/yorickpeterse","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86065?s=80&v=4"},"commit":{"message":"Refactor messages to support non-word arguments\n\nMessages are no longer allocated using runtime functions, instead the\nstandard library uses the system allocator (= malloc) to allocate chunks\nof the right size. This ensures that sending of data that isn't word\nsized between processes works correctly.\n\nSee https://github.com/inko-lang/inko/issues/755 for more details.\n\nChangelog: fixed","shortMessageHtmlLink":"Refactor messages to support non-word arguments"}},{"before":null,"after":"33408cb07a55a771cc78e46e29fe052d79ab021d","ref":"refs/heads/message-sizes","pushedAt":"2024-09-10T19:46:13.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"yorickpeterse","name":"Yorick Peterse","path":"/yorickpeterse","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86065?s=80&v=4"},"commit":{"message":"Refactor messages to support non-word arguments\n\nMessages are no longer allocated using runtime functions, instead the\nstandard library uses the system allocator (= malloc) to allocate chunks\nof the right size. This ensures that sending of data that isn't word\nsized between processes works correctly.\n\nSee https://github.com/inko-lang/inko/issues/755 for more details.\n\nChangelog: fixed","shortMessageHtmlLink":"Refactor messages to support non-word arguments"}},{"before":"e93cb49313a734f8eb0c8389e6b708d091bb9afe","after":"55e6c915785f55bc650dafe01f44033999896255","ref":"refs/heads/main","pushedAt":"2024-09-08T22:53:49.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"yorickpeterse","name":"Yorick Peterse","path":"/yorickpeterse","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86065?s=80&v=4"},"commit":{"message":"Fix some tests that fail on Alpine","shortMessageHtmlLink":"Fix some tests that fail on Alpine"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xOVQyMzozNzozOS4wMDAwMDBazwAAAAS7aAu3","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xOVQyMzozNzozOS4wMDAwMDBazwAAAAS7aAu3","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0wOFQyMjo1Mzo0OS4wMDAwMDBazwAAAASwUgdu"}},"title":"Activity ยท inko-lang/inko"}