|
4 | 4 | Entries from before version 0.10.0 are no longer included, but can be viewed |
5 | 5 | [here](https://github.com/inko-lang/inko/blob/f9c01b86af70596021e649be5d43ec2a22b6d298/CHANGELOG.md). |
6 | 6 |
|
| 7 | +## 0.20.0 (2026-04-20) |
| 8 | + |
| 9 | +### Added |
| 10 | + |
| 11 | +- [Include "mut" in field signatures](https://github.com/inko-lang/inko/commit/b9a1d8d6b450bf6144993ffc9e7270a053afef6d) |
| 12 | +- [Implement escape analysis](https://github.com/inko-lang/inko/commit/d9e9a56fe991e6040344e9b89ab0b9268cf3d675) |
| 13 | +- [Add std.log for structured logging of wide events](https://github.com/inko-lang/inko/commit/4bfb5d483e10c61802f1c56583aefdfe1fad8727) |
| 14 | +- [Support inko init .](https://github.com/inko-lang/inko/commit/03fe08138a13f2756ebbdd5127ea838dcaeb854f) |
| 15 | +- [Add std.reflect and reduce enum tag sizes](https://github.com/inko-lang/inko/commit/eca25ba9979ce2915923c046d1f8f5d919e824ce) |
| 16 | +- [Support explicit type arguments for method calls](https://github.com/inko-lang/inko/commit/74a898b51d7cc658565067630ffb0ff60f6af7f3) |
| 17 | +- [Accept a Bytes when generating CSV data](https://github.com/inko-lang/inko/commit/7b75cc7b0f59dcf12930f74299d8ba08f3018839) |
| 18 | +- [Add support for manually closing HTTP connections](https://github.com/inko-lang/inko/commit/151c8f2065d00addea1413825bb64ea00036853d) |
| 19 | +- [Add support for TLS certificate chains](https://github.com/inko-lang/inko/commit/316487d21a2fe0fa1d02e57ab4baf8b8730f3874) |
| 20 | +- [Add methods for dynamically building URI paths](https://github.com/inko-lang/inko/commit/f1cbccf3ecbf3b7dc4b966b243fb3314759afdf3) |
| 21 | +- [Add `Array.split_last` and `Slice.split_last`](https://github.com/inko-lang/inko/commit/251e1fe38db6a3cfae43c6707a30f7bdef91311d) |
| 22 | +- [Give forking tests greater control over processes](https://github.com/inko-lang/inko/commit/427bf5db8d439b9719e096b101281e2393279373) |
| 23 | +- [Add array.Slice.last to get the last value](https://github.com/inko-lang/inko/commit/3a8e25de7e35fbd98c5b0caec786961f9ce18b5f) |
| 24 | +- [Include the host name in HTTP access logs](https://github.com/inko-lang/inko/commit/553874f059416055246873c495fb9fc9946f87ff) |
| 25 | +- [Add `Directory.file`](https://github.com/inko-lang/inko/commit/52e8102062b3908fbe4e17cc82b913efd9beb8ca) |
| 26 | +- [Add Status.not_found?](https://github.com/inko-lang/inko/commit/af8d1f91a2307d1d48009c72e74fb2cb4cd5f288) |
| 27 | +- [Add AtomicInt and AtomicBool for atomic operations](https://github.com/inko-lang/inko/commit/4363c3e013dba85cf6f780f15b99910e66094f8d) |
| 28 | +- [Add support for atomically reference counted types](https://github.com/inko-lang/inko/commit/2ca8a8957960a74934e9ddf8e68da3df7599012a) |
| 29 | +- [Add support for ALPN/SNI in std.net.tls](https://github.com/inko-lang/inko/commit/b70f66f064506427fc2d2e7b210a3d9e46045daa) |
| 30 | +- [Add Path.join_strict and starts/ends with methods](https://github.com/inko-lang/inko/commit/e1f534766daa8ef9c3ce0f990f90f477a2db7527) |
| 31 | +- [Add support for streaming and compressed responses](https://github.com/inko-lang/inko/commit/9b128fbad610c12481010a9bc432bb6266d25a8b) |
| 32 | +- [Parse Accept-Encoding headers](https://github.com/inko-lang/inko/commit/faec5f7c5f565e98b9a6b5a936526ea26c593468) |
| 33 | +- [Add support for gzip compression and decompression](https://github.com/inko-lang/inko/commit/dca3a540689436265fe6ebb909616b5479189c90) |
| 34 | +- [Support directory indexes in the Directory type](https://github.com/inko-lang/inko/commit/7511c394c601957dd21105c3f4f42e9ee62eb3a0) |
| 35 | +- [Strip "inko-" prefix from main file name](https://github.com/inko-lang/inko/commit/f63552fa80f96755d50389375bfaa9c410748c23) |
| 36 | +- [Add Int.sign](https://github.com/inko-lang/inko/commit/e0b55c0dd71fd9073caf59307bba812122cd836e) |
| 37 | + |
| 38 | +### Fixed |
| 39 | + |
| 40 | +- [Fix missing root certificates for the CLI](https://github.com/inko-lang/inko/commit/abca5b6beae2914602a1a353efc899e2cb3ad877) |
| 41 | +- [Mark both the start and end of SCCs as recursive](https://github.com/inko-lang/inko/commit/8cb66c53f62c4c4d66bf95c92106c1d5e5deeb71) |
| 42 | +- [Fix inlining for rarely called methods](https://github.com/inko-lang/inko/commit/b9b97a3dd7e2a355cd985521ba099cd74a6a6d4f) |
| 43 | +- [Fix static linking when using Zig as the linker](https://github.com/inko-lang/inko/commit/21d29134d77dd12ce047202d4886211b651f272e) |
| 44 | +- [Fix inlining recursive method calls](https://github.com/inko-lang/inko/commit/ec5542d2871e2bed5b5002ce74724d19e8df719b) |
| 45 | +- [Fix specializing dynamic dispatched calls](https://github.com/inko-lang/inko/commit/99bc850ba3b3002e506c520ef1b06ad19f562f14) |
| 46 | +- [Fix conditional partial drops of self](https://github.com/inko-lang/inko/commit/27b8e82c90b0a01b6d767a09db232a75d44def52) |
| 47 | +- [Update module dependencies for inlined code](https://github.com/inko-lang/inko/commit/29f06fe8e2bec81d199743dcf09656162e9e8f18) |
| 48 | +- [Handle path components containing invalid UTF-8](https://github.com/inko-lang/inko/commit/00cbda009ca3746e4ddfc894ef301f9c9ac1672e) |
| 49 | +- [Remove default methods from the MIR methods list](https://github.com/inko-lang/inko/commit/b6373a1f0298846ce38d267cca152915858d2b1f) |
| 50 | +- [Fix invoking default signal handlers](https://github.com/inko-lang/inko/commit/6def5e2846a31461a3a12c6ecc0f661ba2219dd5) |
| 51 | +- [Fix formatting calls with parentheses](https://github.com/inko-lang/inko/commit/daa4c87902870befaef79def5ce23a4bf20f7956) |
| 52 | +- [Fix HTTP logger logging decoded targets](https://github.com/inko-lang/inko/commit/e07f6132bb7cf72abda240bdf7c0038fd57d9d20) |
| 53 | +- [Fix reading zero bytes in PendingServer.new](https://github.com/inko-lang/inko/commit/1e632115d3ca4901c7eee7cc614df51c6203164c) |
| 54 | +- [Fix HTTP directory redirects](https://github.com/inko-lang/inko/commit/6a50ac91ff6e2858f67e4d49ab41513d30741ba0) |
| 55 | +- [Ensure RequestBuilder.send calls Handle.response](https://github.com/inko-lang/inko/commit/e3cffa612d1b38ebdb90b01ef2f0110a70f22da6) |
| 56 | +- [Handle HEAD requests in RequestBuilder.send](https://github.com/inko-lang/inko/commit/01630817175be0a1208c5f7c4bd77d1739fa78c9) |
| 57 | +- [Fix Int.parse accepting invalid decimal inputs](https://github.com/inko-lang/inko/commit/28273d19fe453ce45d44f91c834917cfd0396ef5) |
| 58 | +- [Fix introducing aliases through process methods](https://github.com/inko-lang/inko/commit/3f7874dcc182c2ed9e6a816960708b70d87dd073) |
| 59 | +- [Fix outdated Channel comment](https://github.com/inko-lang/inko/commit/723fc94ee6c4c69103890ef0a2b1f39b09e35743) |
| 60 | +- [Make comparisons with type parameters more strict](https://github.com/inko-lang/inko/commit/dd8eec536a483fea603491878837e89397b3e92b) |
| 61 | +- [Fix inferring closure arguments and return types](https://github.com/inko-lang/inko/commit/cfe24a43b686dfade8656b5ec378f52706c86b06) |
| 62 | +- [Don't allow passing `uni T` to `T: mut`](https://github.com/inko-lang/inko/commit/2f2af35e9910dbd1c9235f2a8e3bbc6d36b0881c) |
| 63 | +- [Add builder API for generating JSON values](https://github.com/inko-lang/inko/commit/416e8139f2491127e573a4474a60e4579ee62625) |
| 64 | +- [Fix handling of certain signals across platforms](https://github.com/inko-lang/inko/commit/e4ffc93e5c38f539b1715e88d672d16f007c902e) |
| 65 | +- [Make interrupting accept calls portable](https://github.com/inko-lang/inko/commit/2e74d40f166cb74ea34a1e8c5118fd461703626d) |
| 66 | +- [Handle borrows when checking for sendable returns](https://github.com/inko-lang/inko/commit/1c5a0bffd28151dad0a8081518b926f79cc48d99) |
| 67 | +- [Fix Json.to_pretty_string printing unnecessary whitespace](https://github.com/inko-lang/inko/commit/5355c8815071e5600f40e4d3b1b36c4da3ef5439) |
| 68 | +- [Don't mask SIGSEGV, SIGBUS and SIGILL](https://github.com/inko-lang/inko/commit/f04102da2dc7d6b2e4b8350ffd8b3e7d8944591c) |
| 69 | + |
| 70 | +### Changed |
| 71 | + |
| 72 | +- [Tweak inlining weight calculation](https://github.com/inko-lang/inko/commit/74b4188bffed74f0737bf0020901e096a3664a88) |
| 73 | +- [Don't inline std.alloc.resize](https://github.com/inko-lang/inko/commit/573c881c96b0acb79e13d899037dd2f9a970d41e) |
| 74 | +- [Compile integer patterns to a switch](https://github.com/inko-lang/inko/commit/98d0b5cb2df59e1f3e01a1f52c118612756f8550) |
| 75 | +- [Update Rust requirement to 1.85 and use Rust 2024](https://github.com/inko-lang/inko/commit/2b2022251963d0182936a200259e2f7639ee3907) |
| 76 | +- [Update the inkwell dependency to 0.8.0](https://github.com/inko-lang/inko/commit/339217fbdf3c9d93fe68618fb8443b1d1e3220b0) |
| 77 | +- [Normalize HTTP URIs before logging them](https://github.com/inko-lang/inko/commit/9de0e3b0a587c422735a46fd91c2c04f92c617d5) |
| 78 | +- [Remove the crossbeam-utils dependency](https://github.com/inko-lang/inko/commit/1c9e8ecfa6a068054dc4181dea66454e64245cd0) |
| 79 | +- [Rename unsigned integer types from UIntN to UintN](https://github.com/inko-lang/inko/commit/73a54f517579c8aa1acce6f802e9162c6bcdb000) |
| 80 | +- [Use `String.equals?` in `String.==`](https://github.com/inko-lang/inko/commit/569c55aa65ac57fe2a36eba27edde2709d36bdb4) |
| 81 | +- [Remove timeout handling when sending messages](https://github.com/inko-lang/inko/commit/9852327ad67cd0efe260e3a3a9e61153bdfe174e) |
| 82 | +- [Update bytes crate version requirement](https://github.com/inko-lang/inko/commit/fd67854c1adacc4d99c548ae56a0c512890e948b) |
| 83 | +- [Move prefix/suffix stripping to Slice](https://github.com/inko-lang/inko/commit/3bc6776a49a849cb02e0c36f787f4212382742fe) |
| 84 | +- [Make Logger an inline type](https://github.com/inko-lang/inko/commit/efc710cca0ef616115c7943c6811c37feb279bdf) |
| 85 | +- [Redirect index.html requests to the directory](https://github.com/inko-lang/inko/commit/4a95941f11c61c354592b932845d7d35e4d0aff2) |
| 86 | +- [Turn ClientConfig and ServerConfig into ref types](https://github.com/inko-lang/inko/commit/242ffb0da3c7105353a465d59ebb3b6ce57506af) |
| 87 | +- [Define constants purely at compile-time](https://github.com/inko-lang/inko/commit/01a82e6205379aa1582e5671912be2b5b6ebf0a2) |
| 88 | +- [Allocate layouts for types at compile time](https://github.com/inko-lang/inko/commit/45f98304feede586f493665acac6390d5cf51390) |
| 89 | +- [Refactor JSON pull parsing API](https://github.com/inko-lang/inko/commit/e62e0d2889f13b79b3846e67b46546e1ba912857) |
| 90 | +- [Bind HTTP test servers to 127.0.0.1](https://github.com/inko-lang/inko/commit/27c3eee7a87d984796e55fe9711a5027839eaf08) |
| 91 | +- [Remove usage of rustix in favor of libc (again)](https://github.com/inko-lang/inko/commit/d7c5daf41d0163de25fd0f23345c8607a82ab209) |
| 92 | +- [Remove atomics for updating poll registrations](https://github.com/inko-lang/inko/commit/3ba8d7e1ee887b3021286bfec3321404ce9aed6b) |
| 93 | +- [Add support for dynamic HTTPS configurations](https://github.com/inko-lang/inko/commit/8affdf1cc0deec397cff313c69d0acfcd5e52205) |
| 94 | +- [Remove rustls-pemfile crate](https://github.com/inko-lang/inko/commit/f913b2da194f8211216888488c8951b2864b8177) |
| 95 | +- [Make Directory.path a public field](https://github.com/inko-lang/inko/commit/653c6257a3697fcc1f92216c293f100278057772) |
| 96 | +- [Tweak RangeRequest and Directory a little bit](https://github.com/inko-lang/inko/commit/f5889e5646585d39710fbc41580c94db2675dafa) |
| 97 | +- [Allow setting ByteArray.size to a custom value](https://github.com/inko-lang/inko/commit/b9a20e1e9096bd355e0f902d53cd909baab914c1) |
| 98 | +- [Use sendfile for HTTP servers where possible](https://github.com/inko-lang/inko/commit/59625b4650ea3f727db570458e562682e02ba7ad) |
| 99 | + |
| 100 | +### Performance improvements |
| 101 | + |
| 102 | +- [Devirtualize and inline closure calls](https://github.com/inko-lang/inko/commit/2f74a260b26e89b092a1ebb3fcd340c5717a269f) |
| 103 | +- [Always inline Iter.into_iter](https://github.com/inko-lang/inko/commit/7137215263151c0640b07d73972c86a530feae3d) |
| 104 | +- [Optimize memory usage of MIR graphs](https://github.com/inko-lang/inko/commit/698523a0fcb3d72ecaa09979eb2a5c77f00db09b) |
| 105 | +- [Don't explicitly complete TLS IO for servers](https://github.com/inko-lang/inko/commit/28ee601dcc6ebaa89609fe87c73aa423acaf4121) |
| 106 | +- [Optimize the memory layout of the String type](https://github.com/inko-lang/inko/commit/064e69fde0a0b2b6c324596c2c233375ae785fcf) |
| 107 | +- [Optimize converting to String in a few places](https://github.com/inko-lang/inko/commit/23d30b77a862b223bd6db9930f9f3e5e156e6cb3) |
| 108 | +- [Use a trie-like approach for parsing HTTP headers](https://github.com/inko-lang/inko/commit/b2f2c08c1dc4f90525540d968510aeca5f5841b1) |
| 109 | +- [Use a trie-like approach for parsing HTTP methods](https://github.com/inko-lang/inko/commit/a5fbf4e908b1028fb3658445cbf146ec3ac308b4) |
| 110 | +- [Optimize `std.ptr.equal` for larger inputs](https://github.com/inko-lang/inko/commit/af07e3f2cf92a309170014e46841e1eced3756ce) |
| 111 | +- [Further optimize the perfect hash generator](https://github.com/inko-lang/inko/commit/02514b0b569e676afff5180fa352c0ea4eac8528) |
| 112 | +- [Increase default HTTP HeaderMap capacity to 16](https://github.com/inko-lang/inko/commit/4cc619cd66d40a5d8b013ab59957ee935ed376e0) |
| 113 | +- [Use --pow2 when generating perfect hash functions](https://github.com/inko-lang/inko/commit/485d0b55c690cc4dc2d537320f2e09b26022c7b5) |
| 114 | +- [Defer waking up threads for scheduling processes](https://github.com/inko-lang/inko/commit/380cdff827fc1636f419d8e15fcb0fca404f28c3) |
| 115 | +- [Reuse process stacks (again)](https://github.com/inko-lang/inko/commit/fc7a7827566c59a42a14b838c90b9e83de55c9f2) |
| 116 | +- [Remove TcpClient.from and its usage](https://github.com/inko-lang/inko/commit/ad15626e2edb1614d195fb0116bcebefabeeb8ef) |
| 117 | +- [Reserve a small amount of space for mailboxes](https://github.com/inko-lang/inko/commit/eb91f814b041bb67129329e023928bce68b1a453) |
| 118 | +- [Only notify timeout threads when necessary](https://github.com/inko-lang/inko/commit/017aea435e87fa2ee67e213c47f482f02e6efe8c) |
| 119 | +- [Don't create a Random for every HTTP connection](https://github.com/inko-lang/inko/commit/5824029def4bcf70a6d73a992a6d250254033ada) |
| 120 | +- [Use atomics in std.net.http.server](https://github.com/inko-lang/inko/commit/e7e6905e80a9f2997d655919bd84eb4cac1a7aae) |
| 121 | +- [Make a few BufferedRead methods inline](https://github.com/inko-lang/inko/commit/22c5e4ac50660534f1d179826e64beb165d49cae) |
| 122 | +- [Optimize Array.push and ByteArray.push a little](https://github.com/inko-lang/inko/commit/a7812a40626d34e6c36953c529d59b899e6628cc) |
| 123 | +- [Fix hashing of Int values](https://github.com/inko-lang/inko/commit/72a1f530cf3c70098e6cda567b75e3d2ce1e8c81) |
| 124 | + |
| 125 | +### Other |
| 126 | + |
| 127 | +- [Document version selection for 0.x versions](https://github.com/inko-lang/inko/commit/840d17ad8c71acab25d9dab0b2ae7575df011fab) |
| 128 | + |
7 | 129 | ## 0.19.1 (2025-11-13) |
8 | 130 |
|
9 | 131 | ### Fixed |
|
0 commit comments