Releases: uiua-lang/uiua
Releases · uiua-lang/uiua
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)
0.0.18
0.0.18 - 2023-10-10
Language
- Major Change
distribute
∺
now takes the array being distributed as its last argument, rather than its first - Add
where
⊚
function, which returns the indices of an array that have non-zero values if
?
's branches can now have a different number of arguments (but not outputs)if
?
's condition can now be a list of conditions, and the branch will be chosen for each row in the argument(s)- The reducing versions of
group
⊕
andpartition
⊜
now take accumulators. Aggregating versions are unchanged. spawn
andwait
no longer have glyphs. Code using↰
and↲
will continue to work and will be formatted asspawn
andwait
.&n
is no longer a system function and is now callednow
under
⍜
now
can be used to time thingscall
!
can now call functions that return any number of values, not just one- Add hex character escape sequences for string and character literals.
\xNN
for short ASCII codes\uNNNN
for full Unicode sequences
Interpreter
- The formatter now aligns consecutive end-of-line comments
NaN
s no longer propogate inmin
⌊
andmax
⌈
- Fix a bug that prevented
under
⍜
multidimensionaltake
↙
anddrop
↘
from working - Fix a bug in how
fold
∧
ordered multiple accumulators - Fix a bug that allowed incorrect signatures to be declared for functions
- Fix a bunch of other bugs and crashes
Website
- Add the Uiua386 font as an option in the editor
0.0.17
0.0.17 - 2023-10-07
Language
- Add GIF encoding with
&gife
- Rename
constant
tobox
□
. - Add
unbox
⊔
, which unboxes a boxed array - Major Change: Some uses of
call
!
will no longer compile without declaring a stack signature. When unboxingbox
□
ed arrays, you can useunbox
⊔
instead, which has a well-defined signature. - Add
fall
⍖
function, which gives the indices of the array if it were sorted descending - Change
grade
⌂
name and glyph torise
⍏
to reflect its relationship withfall
⍖
. Code using⌂
will continue to work and will be formatted as⍏
. try
⍣
now puts arguments to its first function above the error value when calling the error handlerfold
∧
can now use multiple accumulators- Improve
dump
output formatting dump
is now a monadic modifier. Its function preprocesses each value before dumping it.- Add the
sig
function, which returns the stack signature of a value - A negative dimensions in the shape passed to
reshape
↯
can now be in any position, not just the first or last - Functions with ASCII glyphs now also format from their names
- Add a advice diagnostic about the captialization of binding names
Interpreter
Website
- Add GIF output
- Execution time limit is now 2 seconds by default but can be customized