Skip to content

Releases: uiua-lang/uiua

0.13.0-dev.1

28 Aug 15:26
Compare
Choose a tag to compare
0.13.0-dev.1 Pre-release
Pre-release

You can find the working changelog here.

0.12.3

17 Aug 19:37
Compare
Choose a tag to compare

0.12.3 - 2024-08-17

Language

  • Rename imen, gifen, and auden to img, gif, and audio to match the naming convention of other functions
    • The existing names will continue to work and will be formatted to the new names

0.12.2

17 Aug 01:16
Compare
Choose a tag to compare

0.12.2 - 2024-08-16

Interpreter

  • Fix a bug in formatting ¯0
  • Fix a bug with uasm serialization of non-standard numbers

0.12.1

16 Aug 21:39
Compare
Choose a tag to compare

0.12.1 - 2024-08-16

Interpreter

  • Use custom version of nokhwa crate so that &camcap can build

0.12.0

16 Aug 18:47
Compare
Choose a tag to compare

You can find the release announcement here.

Language

  • Breaking Change - &runs now returns 3 handles rather than 1
    • This gives more precise control over stdin, stdout, and stderr
  • Breaking Change - un ° select ⊏ is now equivalent to range ⇡ length ⧻ duplicate .
  • Breaking Change - auden now takes a sample rate argument, and un °auden now returns the sample rate
    • This allows you to work with audio that is not at Uiua's default sample rate
  • Breaking Change - fill ⬚ no longer fills the shapes of inputs to rows ≡
    • It could leader to some unexpected behavior when trying to fill the shapes of outputs
  • Breaking Change - disable pattern matching inverses resulting from under ⍜
    • This is basically never what you want
    • Pattern matching via un ° still works as normal
  • Rename media en/decoding system functions &ime, &gife, and &ae to non-system functions imen, gifen, and auden
    • Their implementation is not actually system-dependent
    • Existing &*e will format to the new names
    • The previously deprecated &*d decoding functions have been removed (use un ° on the encoding function)
  • Switch functions have been replaced with a switch ⨬ modifier
    • This makes the language more uniform
    • Code with existing switch functions in ⟨⟩s will continue to work and will format to use and ()s
  • Identifiers can now contain subscript numbers
    • They format from __ followed by some numbers
    • For example, X__1 will format to X₁
  • The utf function has been renamed to utf₈
  • Stabilize labels
  • windows ◫ can now use a fill ⬚ value to pad the array
    • This is useful for convolutions
  • Add new Scoped Modules
    • These allow you to create a module without creating a file
  • A Call or New function inside a module can now be called via the module's name
  • A module name used as a macro with ! now imports all names from the module into the macro's function's scope
    • This can shorten code when accessing many items from the same module
  • Add the datetime function, which splits a time into its date and time components
  • un ° shape △ now generates an array with the given shape and incrementing elements
  • un ° pick ⊡ is now equivalent to range ⇡ shape △ duplicate .
  • keep ▽ will now cycle counts if the counts array is shorter than the counted array
  • keep ▽ now works with non-integer scalar counts to scale an array
  • under ⍜ keep ▽ now allows increasing the kept array's rank
  • under ⍜ now works with common by ⊸ patterns
  • join ⊂ with rank differences greater than 1 can now extend the smaller array
  • couple ⊟ with different ranks can now extend the smaller array
  • indexof ⊗ now works with fill ⬚ to set the default for when a value is not found
  • un ° join ⊂ is now easier to combine with other inverses
  • repeat ⍥ can now repeat a negative number of times, which will repeat the inverse
  • un ° repeat ⍥ now requires the repetition count to be inside the un ° function
    • This makes the inverted signature correct
  • inventory ⍚ no longer does each ∵-like behavior
    • This got in the way more than it helped
  • Non-scalar switch ⨬ and repeat ⍥ now follow the same distribution and fix ¤ rules as rows ≡
  • Add the # Track caller! semantic comment, which prevents stack traces from going below the function that contains it
  • Add the experimental chunks ⑄ function, which splits an array into chunks of a given size
  • Add the experimental choose and permute functions for combinatorics solutions
  • Add the experimental triangle ◹ modifier, which calls a function on shrinking suffixes of an array's rows
  • Add the experimental orient function, which arranges an array's axes in a specified order
  • Add the experimental fft function, which performs the Fast Fourier transform
    • The inverse FFT is also supported via un °
  • Add the experimental astar modifier, which performs the A* pathfinding algorithm
  • Add the experimental but ⤙ and with ⤚ modifiers, which are compliments to on ⟜ and by ⊸
  • Add the experimental above ◠ and below ◡ modifiers, which keep all arguments to a function above or below the outputs on the stack
  • Add the experimental struct macro, which generates constructor and getter functions given some names
  • Un-deprecate dip ⊙ function packs
  • Deprecate the experimental coordinate ⟔ function, as it is seldom needed and easy to implement with other functions
    • It can be mostly replaced with ⊢⊚⌕
  • Deprecate experimental stack and array swizzles
    • They don't fit my vision for the language
  • Deprecate implicit GitHub domain in "git: ..." modules
    • GitHub should not be a default
  • Adjacent trace ⸮s now function as a single trace ⸮ of more values
  • N+1 adjacent stack ?s now format to N trace ⸮s
  • Add the &camcap system function, which captures a frame from a camera

Interpreter

  • A ton of bug and crash fixes
  • Some optimizations
  • Git modules are now cloned instead of being added as submodules
    • Add the uiua module command to list or update cloned modules
  • Add some media constants:
    • Logo - the Uiua logo
    • Lena - a good example image for image processing
    • Music - a snippet of musical audio
  • LSP improvements
    • Show array shapes on hover
    • Code action to insert # Experimental! comment
  • REPL improvements
    • The stack is now preserved between REPL lines
      • Pass the -c/--clear flag to clear it automatically after each line
    • Add some commands, which can be listed by typing help in the repl
  • Allow Uiua-specific tokens types to be disabled in the LSP

Website

  • Add new Tacit Code Tutorial
  • Add new Code Tactility Tutorial
  • Fix a bug where running pad code that has end-of-line comments via ctrl+Enter would cause the cursor to move every time
  • Remove the Uiuisms page
    • It provided a "definitive" implementation of many algorithms where the best implementation is subjective and/or context-dependent
    • It is not how I want people to approach learning Uiua
    • It is not something I am interested in maintaining

0.12.0-rc.2

14 Aug 20:03
Compare
Choose a tag to compare
0.12.0-rc.2 Pre-release
Pre-release

You can find the working changelog here.

0.12.0-rc.1

08 Aug 03:48
Compare
Choose a tag to compare
0.12.0-rc.1 Pre-release
Pre-release

You can find the working changelog here.

0.12.0-dev.4

04 Aug 19:02
Compare
Choose a tag to compare
0.12.0-dev.4 Pre-release
Pre-release

You can find the working changelog here.

0.12.0-dev.3

21 Jul 06:18
Compare
Choose a tag to compare
0.12.0-dev.3 Pre-release
Pre-release

You can find the working changelog here.

0.12.0-dev.2

21 Jul 03:01
Compare
Choose a tag to compare
0.12.0-dev.2 Pre-release
Pre-release

You can find the working changelog here.