Releases: uiua-lang/uiua
Releases · uiua-lang/uiua
0.13.0-dev.1
You can find the working changelog here.
0.12.3
0.12.2
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
0.12.0
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 torange ⇡
length ⧻
duplicate .
- Breaking Change -
auden
now takes a sample rate argument, andun °
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 torows ≡
- 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
-
- Deprecate
member ∊
and addmemberof ∈
member ∊
almost always required flipping the argumentsmemberof ∈
is the same, but with the arguments flipped- In the future,
member ∊
will be removed, andmemberof ∈
's glyph will be changed and format to∊
- Deprecate
- Rename media en/decoding system functions
&ime
,&gife
, and&ae
to non-system functionsimen
,gifen
, andauden
- Their implementation is not actually system-dependent
- Existing
&*e
will format to the new names - The previously deprecated
&*d
decoding functions have been removed (useun °
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 toX₁
- They format from
- The
utf
function has been renamed toutf₈
- Stabilize labels
- You can read about them in the new Code Tactility Tutorial
windows ◫
can now use afill ⬚
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
orNew
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 elementsun °
pick ⊡
is now equivalent torange ⇡
shape △
duplicate .
keep ▽
will now cycle counts if the counts array is shorter than the counted arraykeep ▽
now works with non-integer scalar counts to scale an arrayunder ⍜
keep ▽
now allows increasing the kept array's rankunder ⍜
now works with commonby ⊸
patternsjoin ⊂
with rank differences greater than 1 can now extend the smaller arraycouple ⊟
with different ranks can now extend the smaller arrayindexof ⊗
now works withfill ⬚
to set the default for when a value is not foundun °
join ⊂
is now easier to combine with other inversesrepeat ⍥
can now repeat a negative number of times, which will repeat the inverseun °
repeat ⍥
now requires the repetition count to be inside theun °
function- This makes the inverted signature correct
inventory ⍚
no longer doeseach ∵
-like behavior- This got in the way more than it helped
- Non-scalar
switch ⨬
andrepeat ⍥
now follow the same distribution andfix ¤
rules asrows ≡
- 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
andpermute
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 °
- The inverse FFT is also supported via
- Add the experimental
astar
modifier, which performs the A* pathfinding algorithm - Add the experimental
but ⤙
andwith ⤚
modifiers, which are compliments toon ⟜
andby ⊸
- Add the experimental
above ◠
andbelow ◡
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
⊢⊚⌕
- 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 singletrace ⸮
of more values - N+1 adjacent
stack ?
s now format to Ntrace ⸮
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 the
- Add some media constants:
Logo
- the Uiua logoLena
- a good example image for image processingMusic
- 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
- Pass the
- Add some commands, which can be listed by typing
help
in the repl
- The stack is now preserved between REPL lines
- 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
You can find the working changelog here.
0.12.0-rc.1
You can find the working changelog here.
0.12.0-dev.4
You can find the working changelog here.
0.12.0-dev.3
You can find the working changelog here.
0.12.0-dev.2
You can find the working changelog here.