Skip to content

Releases: uiua-lang/uiua

0.3.0

19 Nov 22:22
Compare
Choose a tag to compare
0.3.0 Pre-release
Pre-release

0.3.0 - 2023-11-19

Language

  • Big Change
  • Add the rerank function, which changes the rank of an array's rows
  • Add the fix ¤ function, which adds a length 1 axis to an array
  • rows now repeats the rows of an arrays that have exactly 1 row
  • cross can now take more than 2 arguments
  • Switch functions are now less strict about branch signature compatibility and can take arrays as conditions
  • A single switch function can now be used as a list of functions for dyadic modifiers
  • Remove if ?, as all its use cases are now covered by switch functions. It will continue to parse, but ?ab will be formatted as (b|a)
  • flip :'s glyph is now just a colon (it was RATIO ∶)
  • under now works with absolute value
  • Remove break ⎋ for good

Interpreter

  • Lots of bug and crash fixes
  • Lots of performance improvements

Website

0.2.0

09 Nov 20:20
Compare
Choose a tag to compare
0.2.0 Pre-release
Pre-release

0.2.0 - 2023-11-09

Language

Interpreter

  • Fix a bunch of bugs
  • Several performance optimizations

Website

  • Hold shift when copying a link to copy a Markdown link

0.1.0

03 Nov 17:40
Compare
Choose a tag to compare
0.1.0 Pre-release
Pre-release

0.1.0 - 2023-11-03

Language

  • Add complex numbers, which can be created with the complex function
  • Add the do modifier, which repeatedly calls a function as long as a condition holds
  • Deprecate break
  • Add multi-dimensional where
  • join to an empty list now always works regardless of rank of the other array
  • each and rows now work with under
  • All ocean functions now work with under
  • Allow multiple values to be returned from each , rows , distribute , tribute , table , and cross
  • invert atangent now produces the sine and cosine of an angle
  • &i now treats paths as relative to the file calling it rather than the current working directory
  • Rank list functions for the rank-generic modifiers can now take any number of arguments. For any number of aguments greater that 0, an empty numeric list will be pushed before the function is called.
  • Add fraction literals with /
  • Parsing multiple formattable functions from words is now smarter
  • Remove bind '. It made code hard to read. It will continue to parse, but will be formatted as (…)

Interpreter

  • Add the uiua stand command, which creates a standalone executable

Website

0.0.25

30 Oct 14:14
Compare
Choose a tag to compare
0.0.25 Pre-release
Pre-release

0.0.25 - 2023-10-28

Interpreter

  • Fix a bug with watch mode

0.0.24

29 Oct 21:51
Compare
Choose a tag to compare
0.0.24 Pre-release
Pre-release

0.0.24 - 2023-10-24

Language

  • Add the reach modifier, which removes the second value from the stack and calls its function.
  • Change how short spellings of dip , gap , and identity work
    • Instead of allowing them to be spelled with 2 characters, they can now be spelled with 1 character as long as there are at least 2 in the sequence.
    • If present, 'i' may only come last.
    • reach is included.
  • Add 2-letter spellings of deep , abyss , and seabed to make them consistent with rock .

Interpreter

  • Fix a bunch of bugs and crashes
  • The formatter now indents bindings that start with a bound function that starts with &i
  • The native interpreter no longer automatically checks for updates. You can still check manually with uiua update?.

Website

Crate

0.0.23

25 Oct 17:54
Compare
Choose a tag to compare
0.0.23 Pre-release
Pre-release

0.0.23 - 2023-10-25

Language

Interpreter

  • The interpreter now formats its own diagnostic messages instead of delegating to a library
  • Fix a bunch of bugs and crashes
  • Add uiua repl command
  • Optimize (), (), (), and () to be O(n) instead of O(nlogn)
  • Optimize () to not materialize the indices array

Website

  • &ast now works on the website by generating a fixed amount of audio
    • How long the generated audio is can be configured in the editor settings
  • Error and diagnostic messages are no-longer all one color
  • The pad editor now inserts a trailing newline on format
  • Increase thresholds for arrays automatically becoming images or audio
  • Split up system functions into more categories on the main docs page
  • The bell character @\b now plays a sound if printed with &p or &pf

Community

0.0.22

22 Oct 05:02
Compare
Choose a tag to compare
0.0.22 Pre-release
Pre-release

0.0.22 - 2023-10-21

Language

  • Custom modifier placeholders (^) must now be immediately followed by a signature. This reduces the number of signatures that have to be declared everywhere else.

0.0.21

22 Oct 01:10
Compare
Choose a tag to compare
0.0.21 Pre-release
Pre-release

0.0.21 - 2023-10-21

Language

  • Massive Change - Functions are no longer first-class values. This has many implications:
    • Functions can no longer be put in arrays or manipulated as stack values
    • Inline functions can now only appear as modifier arguments or bindings
    • call ! has been removed, as there is nothing on the stack to call
    • Modules have been reworked. &i now handles both loading a module from a file and importing items from that module.
    • --- scopes are now test scopes. ~~~ scopes have been removed.
    • Remove use, as it is no longer necessary
    • Boxes still work as normal, but are now their own type distinct from functions
    • Remove sig, as everything that can be on the stack now has the same signature
  • Add new syntax for defining custom modifiers
  • Add new syntax for calling a function from a list of functions
  • Add the pack modifier, which calls its function and implicitly boxes/unboxes values
  • Add the combinate modifier, which is a rank-generic version of table
  • fold is now rank-generic and requires a rank list
  • Add the tribute modifier, which is a flipped version of distribute
  • Change level 's glyph to reflect its relationship with each , rows , distribute , and tribute . Code using will continue to work and will be formatted as .
  • Add rock , surface ~, deep , abyss , and seabed , which build rank lists to be used with level and the new rank-generic modifiers
  • Change trace 's glyph to let surface ~ use ~.
  • Change match 's glyph to avoid confusion with the new ocean functions' glyphs. Code using will continue to work and will be formatted as .
  • Stack signatures found to be incorrect at runtime produce an error
  • Dyadic math operations now work with under even if both arguments are outside under 's function
  • Some mathematical functions that previously did not work with invert and under when accompanied by flip now do

Website

0.0.20

16 Oct 19:42
Compare
Choose a tag to compare
0.0.20 Pre-release
Pre-release

0.0.20 - 2023-10-16

Language

  • Add regex function for matching regular expressions
  • Add utf function for UTF-8 encoding and decoding
  • Add &invk system function for invoking a path to be opened with the system's default program
  • fill can now be used with first
  • Most functions that expect strings as arguments will now dig arbitrarily deep into boxes
  • Make if ? signature checking more permissive
  • The presence of break in a repeat always requires a stack signature
  • The &runi and &runc functions now return exit codes
  • Multiline string now only insert \n at the end of each line instead of \r\n

Interpreter

  • Bugfixes and performance improvements

Website

0.0.19

14 Oct 00:33
Compare
Choose a tag to compare
0.0.19 Pre-release
Pre-release

0.0.19 - 2023-10-13

Language

  • Add under both
  • Remove restack ⇵ for good
  • Remove roll ↷ and unroll ↶ for good
  • @\s can now be used in addition to @ to get a space character

Interpreter

  • Many performance improvements and memory usage reductions
  • Many bug and crash fixes
  • Add some additional style diagnostics
  • Add more semantic token types to the language server
  • Stop using deprecated MarkedString in the language server

Website

  • The editor's font size can now be changed
  • Improve brackets/quotes behavior in the editor
  • HTML is now properly escaped in the editor
  • Formatting can now put the cursor to the left of the current token (toggleable in the settings)