Skip to content

Releases: uiua-lang/uiua

Latest Build

22 Dec 19:51

Choose a tag to compare

Latest Build Pre-release
Pre-release

This release contains binaries for the latest main branch.

0.18.0-dev.3

30 Nov 21:17
c62b65e

Choose a tag to compare

0.18.0-dev.3 Pre-release
Pre-release

You can find the working changelog here.

0.18.0-dev.2

04 Nov 03:51

Choose a tag to compare

0.18.0-dev.2 Pre-release
Pre-release

You can find the working changelog here.

0.18.0-dev.1

25 Oct 16:55

Choose a tag to compare

0.18.0-dev.1 Pre-release
Pre-release

You can find the working changelog here.

0.17.3

07 Oct 16:55

Choose a tag to compare

0.17.3 - 2025-10-07

Interpreter

0.17.2

02 Oct 18:10

Choose a tag to compare

0.17.2 - 2025-10-02

Interpreter

  • Fix a bug in /F⊞G
  • Fix a bug in function callability checking
  • Fix a bug in filled adjacent stencil ⧈
  • Fix a bug in filled scan \\

0.17.1

27 Sep 23:39

Choose a tag to compare

0.17.1 - 2025-09-27

Interpreter

  • Fix a bug in /◇⊂⍚
  • Fix a bug in repr

0.17.0

23 Sep 19:31

Choose a tag to compare

0.17.0 - 2025-09-23

Language

  • Breaking Change - Numeric subscripted join ⊂ now joins that many arrays
  • Breaking Change - Remove combining e number literals
    • It was confusing when combined with e scientific number notation
  • Breaking Change - under ⍜shape △ now tiles the original array to match the new shape instead of reshape ↯ing
  • Breaking Change - dip ⊙ and on ⟜ function packs no longer apply their modifier to the leftmost function
    • This change makes most usecases of these function packs cleaner, as A⊙(B|C) changes to ⊙(A|B|C) and likewise for on ⟜
  • Breaking Change - reverse ⇌, transpose ⍉, and rotate ↻ no longer work through boxes
    • This caused consistency issues and was rarely used anyway
  • Breaking Change - The FFI function API has been changed considerably, read more in the documentation for &ffi, &memcpy, and &memset
  • Add parse ⋕ subscripts to parse strings in different bases
  • Allow for private modules, imports, and data definitions
  • Modules containing data definition variants now contains a Variants binding that lists their names
  • Add array pack syntactic sugar. This lets you write code like [⊃(+|×)] as ⊃[+|×].
  • Subscripts can now be typed with , instead of __s
  • Binding names can now end with prime characters , , and
    • These will format from ' at the end of a binding name
  • Add numeric subscripts for keep ▽ to keep along a number of dimensions
  • Add under ⍜ capability to fork ⊃s of monadic functions
  • Add ^ shorthand for ^0 in index macros
  • Stabilize self ˙
    • Add experimental sided subscripts for self ˙
  • Stabilize occurrences ⧆
  • Add experimental sided subscripts for backward ˜
  • Add numeric subscripts for occurrences ⧆
  • Add indexin ⨂ function, which is a flipped version of indexof ⊗
    • This makes its calling convention match memberof ∊
    • It also matches the argument order of the more common case
    • indexof ⊗ has been deprecated
    • The formatter will automatically convert existing code
  • Deprecate experimental progressive indexof ⊘ in favor of occurrences ⧆
  • Add the exponential ₑ function, which computes the exponential function
  • Deprecate logarithm ₙ in favor of exponential ₑ
  • Deprecate unique ◰ in favor of subscripted occurrences ⧆
    • will automatically format to ⧆₁
  • Remove experimental ln in favor of exponential ₑ
  • Add &seek function for working with large files
  • Calling &tcpa on a TLS listener created with &tlsl now automatically tries conducting a TSL handshake
  • Make subscripted stack ? merge adjacent non-subscripted stack ? chains
  • Implement under ⍜regex for replacing using regex (called gsub in some other languages)
  • Add functions to work with UDP:
    • &udpb to bind a socket
    • &udpr to receive a datagram
    • &udps to send a datagram
    • &udpsml to set the maximum message length
  • Rename ◿ modulus to modulo ◿
    • "Modulo" is the correct term for the operation this function conducts
  • Add un ° and under ⍜ capability to &cd
    • un °&cd will output the current working directory
    • under ⍜&cd will return to the original directory afterward
  • Add experimental reciprocal ⨪ function, which computes the multiplicative inverse AKA reciprocal of a number
  • Add experimental recur modifier, which generalizes recursive algorithms
    • This would replace existing recursive functions
  • Add experimental data functions with optional arguments
    • Remove existing experimental non-tacit data functions and methods
    • layout and voxels now use this system for configuration
  • @\_ and @\W now roundtrip through pretty and repr (previously they would be formatted as @\x¯01 and @� respectively)
  • Remove previously deprecated signature and stringify modifiers

Interpreter

  • Many bug and crash fixes
  • Emit a diagnostic when most modifiers are not provided enough arguments
  • Emit a diagnostic for redundant subscripts
  • below ◡ now accepts noadic and dyadic functions
    • An advice/style diagnostic will be emitted
  • Speed up the implementation of or ∨
  • The fomatter no longer truncates trailing decimal 0s from number literals
  • Implement filled adjacent stencil ⧈
  • Optimize =1⧻◴
  • Remove rkok alias and change kork to format to ▽₂
  • Add each alias for ≡₀
  • Add elem alias for
  • Add log alias for un °exponential ₑ
  • Add set alias for un °by ⊸
  • Improve "Array would be too large" error messages
  • Change short form of the --experimental flag for uiua eval to use -x instead of -e
    • This is consistent with the corresponding flag for uiua repl
  • Remove the ⁿ÷:1 ("root" pattern) optimization

Pad

  • Add primitives.json to the pre-included files in the pad

0.17.0-rc.2

16 Sep 21:36

Choose a tag to compare

0.17.0-rc.2 Pre-release
Pre-release

You can find the working changelog here.

0.17.0-rc.1

03 Sep 19:31

Choose a tag to compare

0.17.0-rc.1 Pre-release
Pre-release

You can find the working changelog here.