Releases: uiua-lang/uiua
Releases · uiua-lang/uiua
0.3.0
0.3.0 - 2023-11-19
Language
- Big Change
- Deprecate all ocean functions
- Deprecate
level
≑
andcombinate
◳
- Deprecate
tribute
≐
anddistribute
∺
fold
∧
no longer takes a rank list
- Add the
rerank
☇
function, which changes the rank of an array's rows- This fills the void left by
level
≑
andcombinate
◳
- This fills the void left by
- 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- This in combination with
fix
¤
fills the void left bytribute
≐
anddistribute
∺
- This in combination with
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 wasRATIO ∶
)under
⍜
now works withabsolute value
⌵
- Remove
break ⎋
for good
Interpreter
- Lots of bug and crash fixes
- Lots of performance improvements
Website
- Update the Advanced Array Manipulation Tutorial to reflect the changes in this version
0.2.0
0.2.0 - 2023-11-09
Language
under
⍜
withtake
↙
anddrop
↘
is now less strict about shape/rank changesrange
⇡
called on a list of 0 or 1 values is now more consistentfill
⬚
now works withrotate
↻
to give non-wrapping behaviorfill
⬚
now works withfind
⌕
if the searched-for array is longer than the array being searchedparse
now works withinvert
⍘
andunder
⍜
- The output of
find
⌕
is now the same shape as the array being searched
Interpreter
- Fix a bunch of bugs
- Several performance optimizations
transpose
⍉
is now much fasterdistribute
∺
andtribute
≐
are now much faster if their function is a pervasive built-in- Some other functions are also a bit faster
Website
- Hold shift when copying a link to copy a Markdown link
0.1.0
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 arrayeach
∵
androws
≡
now work withunder
⍜
- All ocean functions now work with
under
⍜
- Allow multiple values to be returned from
each
∵
,rows
≡
,distribute
∺
,tribute
≐
,table
⊞
, andcross
⊠
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
- Add Optimizations page
- Add Images and GIFs tutorial
0.0.25
0.0.24
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
⋅
, andidentity
∘
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
≃
, andseabed
∸
to make them consistent withrock
⋄
.
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
- Add challenges to the end of tutorial sections
- Make the introductory examples on the main page less esoteric
- Update the Advanced Stack Manipulation Tutorial to include
reach
⟜
Crate
- The Uiua Rust crate is now fully documented and has a decent API
0.0.23
0.0.23 - 2023-10-25
Language
- Implement
under
⍜
multi-indexpick
⊡
- Implement
under
⍜
partition
⊜
- Implement
under
⍜
group
⊕
- Add
send
,recv
, andtryrecv
functions for sending values between threads - Add
&fde
and&ftr
system functions for deleting/trashing files and directories under
⍜
with system functions that return stream handles calls&cl
as an inverse- Add the
&raw
system function for setting the terminal to raw mode - Add the
&gifd
system function for decoding GIFs
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
- The GitHub Discussions are now open!
0.0.22
0.0.21
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 oftable
⊞
fold
∧
is now rank-generic and requires a rank list- Add the
tribute
≐
modifier, which is a flipped version ofdistribute
∺
- Change
level
≑
's glyph to reflect its relationship witheach
∵
,rows
≡
,distribute
∺
, andtribute
≐
. Code using⍚
will continue to work and will be formatted as≑
. - Add
rock
⋄
,surface
~
,deep
≊
,abyss
≃
, andseabed
∸
, which build rank lists to be used withlevel
≑
and the new rank-generic modifiers - Change
trace
⸮
's glyph to letsurface
~
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 outsideunder
⍜
's function - Some mathematical functions that previously did not work with
invert
⍘
andunder
⍜
when accompanied byflip
∶
now do
Website
- Add 3 new tutorials
- The orientation of stack values in the output can be flipped in the settings
0.0.20
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 withfirst
⊢
- 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 arepeat
⍥
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
- Add a page listing common stack idioms
0.0.19
0.0.19 - 2023-10-13
Language
- Add
under
⍜
both
∩
- Remove
restack ⇵
for good - Remove
roll ↷
andunroll ↶
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)