0.12.0
版本发布时间: 2024-08-17 02:47:37
uiua-lang/uiua最新发布版本:0.13.0-dev.2(2024-10-04 03:54:17)
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 arguments -
memberof ∈
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 elements -
un °
pick ⊡
is now equivalent torange ⇡
shape △
duplicate .
-
keep ▽
will now cycle counts if the counts array is shorter than the counted array -
keep ▽
now works with non-integer scalar counts to scale an array -
under ⍜
keep ▽
now allows increasing the kept array's rank -
under ⍜
now works with commonby ⊸
patterns -
join ⊂
with rank differences greater than 1 can now extend the smaller array -
couple ⊟
with different ranks can now extend the smaller array -
indexof ⊗
now works withfill ⬚
to set the default for when a value is not found -
un °
join ⊂
is now easier to combine with other inverses -
repeat ⍥
can now repeat a negative number of times, which will repeat the inverse -
un °
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 logo -
Lena
- a good example image for image processing -
Music
- 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
1、 uiua-bin-aarch64-apple-darwin.zip 7.45MB
2、 uiua-bin-aarch64-pc-windows-msvc.zip 7.09MB
3、 uiua-bin-x86_64-apple-darwin.zip 7.88MB
4、 uiua-bin-x86_64-pc-windows-msvc.zip 7.83MB
5、 uiua-bin-x86_64-unknown-linux-gnu.zip 8.91MB