NOTE: this file is automatically generated, please do not edit it manually. Entries from before version 0.10.0 are no longer included, but can be viewed here.
- 3047976: Automatically install dependencies when building
- bc06c3e: Support requiring a minimum Inko version
- f156a36: Support different Int/Float sizes in generics
- 616c0e7: Support swapping of fields with explicit receivers
- 54af751: Add Int.swap_bytes
- a9c7bd7: Add support for TLS sockets
- 42db383: Allow comparing ByteArray with String values
- 97d385a: Add inclusive argument to Read.read_until/read_line
- 09ad36e: Add std.base64 for encoding and decoding base64
- 119e77b: Fix assigning types with ownership to placeholders
- d023bfe: Fix trailing compression in Ipv6Address.to_string
- e72c6a2: Fix referring to fields storing pointers
- b3cc7cf: Fix underflows when formatting certain call chains
- 2c3cc1f: Fix BufferedReader.fill_buffer
- 8e13a9e: Fix naming for std.endian read/write methods
- f3d5cd5: Bump LLVM version requirement to LLVM 17
- 79c0220: Remove deprecated syntax
- 00a0d18: Use llvm.abs for Int.absolute
- ab90f67: Optimize pkg sync by cloning a single ref
- 9423067: Optimize std.endian.big and std.endian.little
- 9dc7fd4: Optimize String.starts_with/ends_with
- 8bae816: Improve performance of String.==
- 0384162: Only increase read sizes when beneficial
- 86c1592: Replace "variant" with "constructor"
- f5aa237: Update llvm-sys to make building easier
- 63086b2: Bump Rust requirement to 1.78
- cefa664: Add command for generating documentation
- 1dd4a9c: Implement Clone for ranges
- 30f8f5b: Implement String.cmp
- de057f5: Relax rules for capturing self in uni closures
- e12d2b3: Make capturing unique values in closures easier
- ee892e7: Make the Makefile lib directory configurable
- f736257: Add std.json.Query.as_bool
- 84e3bcb: Allow keywords as named arguments
- 3298ae2: Add support for compile-time variables
- 086caf2: Implement Clone for Map
- 0fb6d0a: Add module for parsing command-line options
- a783979: Add Int.sum
- 1d4bad2: Support handling of Unix signals
- 215b63d: Support automatic formatting of source code
- 0f68a92: Run the main process on the main thread
- 01bd04e: Allow creating pointers to module methods
- 23c6e8a: Fix resolving class instances with receivers
- e8709b6: Fix removing poll registration for socket timeouts
- 7cbf4a4: Fix outdated import in examples
- fd95724: Expose value types correctly in recover blocks
- 8e782df: Ensure ignored match case results are dropped
- 90c67b9: Fix double dropping nested wildcard values
- 5a874a5: Fix underflow when calculating socket buffer sizes
- 6332f63: Allow use of self after re-assigning all fields
- 2f320e5: Don't generate goto's for dropping immediates
- 6861608: Ensure writes always perform full writes
- f729c2e: Fix joining onto empty Path values
- 6063bba: Check ref counts when dropping without droppers
- 4e14771: Make various std.libc symbols private
- 42c4b28: Make inko pkg sync less verbose
- 740682c: Set TCP_NODELAY and reset with_timeout deadlines
- c3b85ca: Use setsockopt() and getsockopt() directly
- 0e34cc3: Add support for pull parsing of JSON documents
- 833b471: Reduce the amount of type conversions
- b7bcf46: Unify the class literal and call syntax
- 1536f59: Use llvm.read_register for reading rsp
- 9ce4f9e: Change drop order for fields and enum cases
- cb13b17: Infer match as nil when any case returns nil
- e90b0dc: Replace the polling crate with rustix code
- a35d4ec: Require LLVM 16 or newer
- 41a0b3e: Make the import syntax consistent
- dc87e18: Remove support for escaping whitespace in strings
- 0536135: Rename methods used for unwrapping values
- 929ff94: Pin fewer threads to CPU cores
- c9e90f5: Don't pass the state and process as an argument
- 4047c8b: Remove the IntoPath trait
- ecbe1a6: Generate allocation and release code
- cc5770d: Don't move work when entering a blocking operation
- 649879f: Generate code for checking ref counts
- 587cd6e: Rename Cargo config file
- ac24bcc: Warn for unused variables
- 4ee577a: Add Path.with_extension and refactor Path
- 23495ba: Add Path.components and Path.strip_prefix
- 6ac179f: Implement Hash for Path
- 03ef71f: Add support for cross-compilation
- 7b5ed3c: Add musl as a supported compiler target
- 46b5fc2: Add Path.list_all
- 67d44f1: Add a flag to show compiler stage timings
- 7f5bcac: Add methods for querying JSON values
- e287956: Add String.replace and String.slice_into
- f4d3c5a: Add Path.extension
- c278334: Fix DateTime.days_since_unix_epoch
- 8b7f0d2: Fix compiling OR patterns
- 895826b: Refactor how guard patterns are compiled
- 4a4edb1: Fix uniqueness checks for Channel and arguments
- 6a985ad: Don't require T: Compare for Array.sort_by
- db33be8: Fix Path creation/access/modification times
- 1593176: Fix getting core counts
- a0924cc: Fix accessing fields in recover expressions
- fd0a0b9: Fix build script for custom profile names
- e3c3b9a: Fix debug info for default trait methods
- c709b59: Increment references when returning variables
- b0e53b2: Fix checking for moved variables inside loops
- 084b354: Fix calling mutating methods on owned parameters
- ff8c0f2: Fix mutable references to owned parameters
- b733f01: Scope build files for non-native targets
- 83713aa: Decouple symbol names from type and method IDs
- 137304d: Cache and reuse object files
- 76cf292: Support linking using Mold
- 9162406: Generate LLVM IR and object files in parallel
- 3c3c73a: Reduce memory usage of expanding instructions
- afd72e0: Optimize LLVM code generation a bit
- a605bf0: Revamp the documentation
- a69b423: Bump Rust requirement to 1.70.0
- a31bd3f: Add missing "mut" keyword to the documentation
- 1b61961: Recovering to owned values when assigning fields
- c9c01ac: Add the
move
keyword for type parameters - c42baf4: Add Iter.skip_while and Iter.take_while
- 6c7da74: Add Iter.take
- 7a967b0: Add Iter.skip
- da6ea1c: Automatically generate main file for unit tests
- 7314fd3: Add Iter.try_each and Iter.try_reduce
- 4fe8a03: Add Bool.then
- 317c3c7: Add Array.index_of
- 1abb3d9: Document the "check" command in
inko --help
- 6f2341e: Make type checking return types sound
- 7138301: Fix type inference involving type parameter bounds
- 47e4c0b: Fix inferring placeholders with ownership
- aa615ed: Allow to use private default method from a trait
- b3783be: Disallow symbol imports from another module
- 9e4f82b: Fix usage of undefined function "remove"
- 3cc6683: Return references as ref T if T isn't mutable
- b7a368d: Expose inherited arguments to type parameter calls
- e026d91: Mark receivers as moving before handling arguments
- cc8c6fe: Replace reductions with time slices
- 1a30de9: Enable the equivalent of -O3 for --opt=aggressive
- e3886ae: Optimize Array.iter and Array.iter_mut a bit
- 07632a3: Optimize ByteArray.iter a little bit
- 1687c75: Update the rustix version to use
- 3ace1b8: Fix documentation of read_line()
- 6acdbe4: Tweak the ivm installation guide
- c782563: Improve ivm installation documentation a bit
- de6a4de: Remove unused EOF constants
- 61dd8c7: Fix documentation for ByteArray.contains?
- f3370cb6: Add mention of zstd missing on macOS
- 97c7fb38: Add ByteArray.last
- 4098fd05: Add support for boolean constants
- 3b8534c6: Add types to make debug formatting easier
- 1d174b02: Add Array.insert and Array.reserve
- 0c4d7e6b: Add Array.last and Array.last_mut
- 2b87e4d2: Add std.io.Buffer
- 085ee32a: Add BufferedRead and BufferedReader
- 256e8166: Support multiple major package versions
- 10277d5f: Add ByteArray.from_pointer & ByteArray.to_pointer
- ba7217ba: Add proper support for FreeBSD
- df66fef7: Add support for interfacing with C libraries
- 31a8a17a: Add Array.sort and Array.sort_by
- 97d195a7: Add Map.values_mut
- 007495be: Allow
self
inrecover
expressions - be0d8304: Allow passing uni ref T to ref T in certain cases
- 2ce41f09: Fix type inference for type parameter requirements
- 37bc3f17: Fix missing drops when ignoring match values
- ad267487: Increment/copy fields when used with a receiver
- c757d6e5: Fix json.Error.== not including the byte offset
- bb541de7: Fix failure locations for panic tests
- 9cc1131d: Test multiple Linux distributions for the stdlib
- 59f65ddd: Handle Array.with_capacity with negative sizes
- 00dd2fd6: Fix module names for test files in sub directories
- 176bbd89: Fix calling mutable methods on type parameters
- bc1273c8: Fix type-checking with mutable type parameters
- c7567417: Fix socket timeouts producing the wrong error code
- cf87e5a7: Implement Float.cmp per IEEE 784
- 3afdcd4b: Fix formatting of Int::MIN as base2/base10
- 20fa7f63: Fix "match" not incrementing certain bindings
- 5469f220: Revert using
install -D
in the Makefile - 6c0c6997: Fix parsing comma separated lists
- 1e4566e7: Recheck refs after processing fields
- c3f3385f: Error for enums without variants
- 3057ba7e: Implement specialization of generics
- b0bbc434: Merge Format and DefaultFormatter into Formatter
- 85b213e5: Unify up String and ByteArray slicing
- ac696b9c: String.slice_bytes returns a ByteArray
- 948c5f0f: Bump the Rust requirement to 1.68
- afa39c0c: Refactor std.json.Parser to use a Bytes/iterator
- 95434442: Rework Int parsing and formatting
- 05aff9a3: Move checked arithmetic to the standard library
- 6f7a3780: Remove the need for
inko pkg init
- 81bae997: Make types namespace private by default
- c78555ef: Use ByteArray as input for json.Parser
- 5ce44a5e: Move file/directory related methods to Path
- d455d8f0: Remove ClassId from the CallStatic instruction
- 8026b29d: Remove use of :: for namespaces
- 70728b63: Refactor Enum and rename to Stream
- 2771a63e: Replace "length" with "size"
- f08169d5: Define more of String in Inko
- 524626e6: Implement Float.round in Inko
- 449af85d: Implement Float.== in Inko
- 13e8e557: Implement Array entirely in Inko
- f2379c62: Replace use of the
libc
by therustix
crate - 0c963af0: Implement listing directories in Inko
- c136e78f: Fix outdated CLI documentation in a few places
- 73e1dc99: Remove outdated comment from String.slice
- 99b22c56: Clarify docs about pattern matching and ownership
- 269e77d6: Add IO documentation to "Getting started"
- 88e197dc: Fix incorrect documentation of Result.collect
- 3de43cf0: Allow try/throw in closures without return types
- c5af2196: Allow testing of code that shouldn't panic
- 5f87a41b: Add Iter.last
- d85d48af: Add Result.collect
- f8bd2499: Make working with unique values easier
- a5a10f17: Fix match expressions not dropping all values
- 9dd6bcbd: Fix capturing of variables
- 884484b8: Fix unreachable code warnings not being generated
- 3b756379: Fix parsing async mut methods in impl blocks
- dd2f93f3: Fix double drops for conditionally dropped values
- 227429b5: Fix resolving nested types as immutable
- 893cab4a: Allow passing owned values to mutable traits
- d6872834: Fix type inference when comparing references
- a23cb932: Verify trait requirements
- fd6eb2f7: Handle missing type arguments when checking types
- cfa644a3: Don't lower unreachable code to MIR
- 5b2980ab: Push global jobs back when trying to steal them
- 8cbf6f10: Fix various reference counting underflows
- 63e1d596: Fix dropping old values when assigning new ones
- 395332bd: Start documenting some goals and non-goals
- c21c4b7d: Correct outdated reference to libstd/
- 8a56fd27: Enable optimisations by default
- c0463c46: Move iter.join to String.join
- 95bfb8d3: Document tuning the runtime
- 01e5dcaa: Document using copr to install Inko on Fedora
- e611acec: Use a u64 for timeouts
- 452c07fb: Add dedicated instruction for static method calls
- 0054f4f8: Implement cryptographic hash functions and ciphers
- 4325ed9a: Add support for unsigned right shifting
- a169a559: Add ByteArray.resize and apply in ByteArray.filled
- cf4cf129: Refactor Range into separate types
- c335285a: Add std::cmp.min and std::cmp.max
- 1a320f53: Add ByteArray.copy_from
- dac91cd9: Add methods for encoding integers as bytes
- d9c0d64c: Add ByteArray.reverse
- 3956f407: Add support for wrapping add/sub/mul
- d71ffde8: Add Int.rotate_left and Int.rotate_right
- 758497f4: Add support for bitwise NOT
- 28706b5d: Automatically clone references to value types
- 09d81780: Add support for parsing and generating JSON
- 8bc96134: Add String.escaped
- 6f2fcbcd: Add support for constant arrays
- f02e29fe: Support up to six digits for Unicode escapes
- b0354740: Add std::utf8 module
- 441b5766: Add parsing support for Unicode escape sequences
- 2609bbce: Add try_equal assertion to std::test
- 9d0884c8: Add StringReader and ByteArrayReader
- 8d361f36: Add support for socket deadlines/timeouts
- b285df63: Add std::time::ToInstant
- 8eac1595: Add Pointer.pointer
- 9698cdae: Make 'ref Any' a valid type
- ecafac68: Provide a package manager for Inko
- 54782464: Allow setting a shuffle seed for unit tests
- 6991a8d3: Move random number generation to the Random type
- ee5429a9: Allow setting INKO_PROCESS_THREADS to zero
- b7254f5f: Add documentation that compares Inko to others
- 5ddc2e95: Add the VS Code extension to the manual
- 92c635ce: Add String stripping and trimming methods
- 11ab2c3f: Fix type-checking against type placeholders
- efdc6463: Disallow async calls using non-async methods
- ea303b4d: Save instruction pointer for async messages
- c362caf4: Insert CheckRefs after calling destructors
- 8b670e60: Fix parsing negative hexadecimal integers
- 7bee45f6: Fix passing value types around in several cases
- da9c4784: Return nil for loop expressions in MIR
- f9375d50: Fix checking type arguments for mut T and uni T
- 68a5a868: Fix making closure arguments rigid
- 4ea39fb0: Count assertion failures in test output
- 7d0c79a2: Fix type-checking and inferring against traits
- a6206937: Fix runaway recursion when inferring cyclic types
- a8fdbe47: Fix STDOUT.print not returning the correct length
- 3e62e9ef: Don't immediately drop ignored variables
- a419af98: Fix instruction locations for raw panics
- 6ab5ad77: Fix and document negative Duration objects
- b41c2c80: Suspend after exiting a blocking call
- d496aeac: Disallow processes sending messages to themselves
- 9cee2ea3: Handle async messages for identifier calls
- bbfaaf6a: Fix constant float equality for code generation
- 2e9ce863: Simplify and fix debug info for stacktraces
- 20dc8d4f: Refactor how processes are terminated
- b6ce8e8f: Change ByteArray.from_array to take a ref
- 4e26a2ae: Restrict Inko to little-endian architectures
- e15e823c: Implement String.slice_bytes in Rust
- 6620c448: Rework iterating over byte sequences
- 923cb3a1: Lower binary expressions into regular method calls
- c9375b66: Use shorter method names for Duration
- 64d80971: Use nanoseconds for Instant and Duration
- 30f77edb: Remove glob imports from the language
- c0e67524: Remove the dirs-next dependency
- f5f0b8ce: Remove the num_cpus dependency
- c4a6b0c8: Make Test.failures public
- 7ef1aa07: Remove the float-cmp dependency
- 6d5580cd: Remove mention of INKO_BYTECODE_THREADS
- 1c225b48: Remove alive tracking from the network poller
- 1e0b0037: Remove alive tracking from the timeout worker
- 5c57ddcd: Improve detecting modules names
- 2e398490: Avoid calling String droppers where possible
- 366d7235: Don't call droppers for value types
- 047eec78: Implement ByteArray.append in Rust
- 47c7669c: Use ByteArray.reverse in Int.to_base
- 110dd0a2: Implement ByteArray.slice in Rust
- 44c00881: Support multiple network pollers
- 89467afc: Automatically replace blocking threads
- 4cf91016: Rewrite the process scheduler from the ground up
NOTE: this section appears a bit limited as for 0.10.0 we switched to a different approach for generating changelogs. For more details, refer to the 0.10.0 release post.
- 40e7bd29: Add Map.iter_mut