Skip to content

Commit 2ff57a6

Browse files
committed
Release v0.20.0
1 parent 74b4188 commit 2ff57a6

3 files changed

Lines changed: 130 additions & 8 deletions

File tree

CHANGELOG.md

Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,128 @@
44
Entries from before version 0.10.0 are no longer included, but can be viewed
55
[here](https://github.com/inko-lang/inko/blob/f9c01b86af70596021e649be5d43ec2a22b6d298/CHANGELOG.md).
66

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+
7129
## 0.19.1 (2025-11-13)
8130

9131
### Fixed

Cargo.lock

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ members = ["ast", "inko", "compiler", "rt", "location"]
33
resolver = "2"
44

55
[workspace.package]
6-
version = "0.19.1" # VERSION
6+
version = "0.20.0" # VERSION
77
rust-version = "1.85"
88

99
[profile.release]

0 commit comments

Comments
 (0)