Releases: arturo-lang/arturo
Releases · arturo-lang/arturo
v0.9.83
v0.9.82
Official Release
Release date: 09/02/2022
Change Log
Documentation
- Added numerous new Rosetta Code examples
- Minor fixes in existing examples and/or function signatures
Language
- Added new
:rational
type (along with all relevant operations) - Added new
:quantity
type (measurements + unit support, along with all relevant operations) - Added new
:range
types (with all relevant..
operations returning a new Range value) - Added new
:store
type (persistent dictionary-like storage on disk) - Added new
:socket
type - Added scientific notation support for number literals
- Changed scoping rules (most blocks will now be completely scope-less, with the exception of iterators & functions)
Library
New
- Arithmetic: added new
divmod
method - Collections: added new
combine
,decouple
,one?
,prepend
,rotate
&tally
methods - Comparison: added new
between?
&compare
methods - Converters: added new
in
&store
methods - Core: added new
coalesce
method - Dates: added new
sunday?
,monday?
,tuesday?
,wednesday?
,thursday?
,friday?
&saturday
methods - Files: added new
hidden?
,move
×tamp
methods - Iterators: added new
arrange
,chunk
,cluster
,collect
,enumerate
,gather
,maximum
&minimum
methods - Net: added new
browse
method - Numbers: added new
clamp
,denominator
,factorial
,infinite?
,lcm
&numerator
methods - Paths: added new
absolute?
method - Reflection: added new
bytecode?
,color?
,complex?
,object?
,quantity?
,rational?
,range?
&version?
predicates - Sets: added new
disjoint?
method - Sockets: added
accept
,connect
,listen
,receive
,send
,send?
&unplug
methods - Strings: added new
alphabet
,match?
&translate
methods - System: added new
superuser?
predicate
Enhancements, Changes & Fixes
- Arithmetic\dec: added support for Complex numbers
- Arithmetic\inc: added support for Complex numbers
- Arithmetic\mod: added support for floating number modulo operations
- Arithmetic\pow: added support for Rational numbers
- Collections\chop: added
.times:
option & fixed to also work with empty blocks - Collections\combine: renamed to
couple
- Collections\contains?: added
.at:
option &:char
support for string searches - Collections\drop: fixed to also work with empty blocks
- Collections\first: fixed to also work with empty blocks
- Collections\flatten: added support for Literal values
- Collections\in?: added
.at:
option &:char
support for string searches - Collections\last: fixed to also work with empty blocks
- Collections\max: added
.index
option - Collections\min: added
.index
option - Collections\permutate: re-implemented and now works with a
.by
and.repeated
option - Collections\remove: fixed
.once
& added new.instance
option - Collections\reverse: added
.exact
option - Collections\sample: fixed to also work with empty blocks
- Collections\sort: added
.ascii
option & fixed to also work with empty blocks - Collections\take: fixed to also work with empty blocks
- Converters\to: added support for
:complex
to:block
conversion - Core\case: made function work with null sets (ø)
- Iterators: all iterator methods re-implemented and now work with a
.with
option and also with anull
param block - Iterators\filter: added
.first
and.last
options - Iterators\select: added
.first
,.last
and.n
options - Numbers: made all trigonometric function work with
:quantity
values - Numbers\e: renamed back to
epsilon
- Numbers\infinity: renamed to
infinite
- Numbers\negative?: added support for Floating, Complex & Rational values
- Numbers\positive?: added support for Floating, Complex & Rational values
- Numbers\product: added
.cartesian
option - Numbers\range: make function work even with .step =< 0 + moved to Converters
- Reflection\info: show origin module for built-in functions/constants
- Strings\capitalize: added support for
:char
parameters - Strings\match: better implementation with more options (
once
,capture
,named
,bounds
,in
,full
)
Misc
- Fixed multi-line string handling in REPL
- Fixed thick-arrow-right (
=>
) syntac sugar handling in label + function assignments - Fixed handling of arithmetic operations between
:floating
values and big:integer
values - Fixed handling of Unicode, locale-dependent sorting (including non-ASCII languages & sorting using digraphs/trigraphs, e.g. Hungarian)
- Functions in dictionaries are now directly callable (e.g.
dict\f 10
) - Better support for Bytecode handling (+ built-in compression)
- Various performance-related enhancements (> ~500% performance boost)
v0.9.82-pre2
Official Release
refs/tags/v0.9.82-pre2
v0.9.80
Official Release
refs/tags/v0.9.80
v0.9.78
Official Release
refs/tags/v0.9.78
v0.9.77
Official Release
refs/tags/v0.9.77
v0.9.76
Official Release
refs/tags/v0.9.76
v0.9.75
Official Release
refs/tags/v0.9.75
v0.9.7.4
Official Release
refs/tags/v0.9.7.4
v0.9.7.2
Official release: v0.9.7.2
Changes
- Better handling of function arity and function calls
- Added non-string support for
:dictionary
keys - Added support for custom user-defined types
- Added numerous Rosetta Code examples (and corresponding unit tests)
- Added support for doublecolon (
::
) symbols as block-generator syntactic sugar - Vast improvement of error reporting, avoiding crashes and with much more helpful error messages
- Greatly enhanced REPL - with saveable/restorable history, tab-completions and as-you-type hints
- Updated workflows: added support for Windows & FreeBSD pre-built binaries in Releases & Nightly builds (mini versions)
- Fixed packager script
- Codebase cleanup
- Numerous minor fixes & additions
Library
- Collections: added
squeeze
- Converters: added
with
- Core: added
unless
,unless?
- Io: added
cursor
,goto
,terminal
- Sets (new):
intersect
,union
,difference
,subset?
,superset?
- System: added
env
- Added
.code
option foras
- Added
.muted
option forinspect
- Added
.import
option forfunction
- Added unicode support for
split
- Added string support for
loop
- Numerous other additions