Releases: uiua-lang/uiua
Releases · uiua-lang/uiua
0.13.0-rc.3
You can find the working changelog here.
0.13.0-rc.2
You can find the working changelog here.
0.13.0-rc.1
You can find the working changelog here.
0.13.0-dev.2
You can find the working changelog here.
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 -
&runsnow 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 -
audennow takes a sample rate argument, andun °audennow 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&aeto non-system functionsimen,gifen, andauden- Their implementation is not actually system-dependent
- Existing
&*ewill format to the new names - The previously deprecated
&*ddecoding 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__1will format toX₁
- They format from
- The
utffunction 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
CallorNewfunction 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
datetimefunction, 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
chooseandpermutefunctions for combinatorics solutions - Add the experimental
triangle ◹modifier, which calls a function on shrinking suffixes of an array's rows - Add the experimental
orientfunction, which arranges an array's axes in a specified order - Add the experimental
fftfunction, which performs the Fast Fourier transform- The inverse FFT is also supported via
un °
- The inverse FFT is also supported via
- Add the experimental
astarmodifier, 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
structmacro, 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
&camcapsystem 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 modulecommand 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/--clearflag to clear it automatically after each line
- Pass the
- Add some commands, which can be listed by typing
helpin 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.