Skip to content

v0.9.82

Compare
Choose a tag to compare
@github-actions github-actions released this 09 Feb 10:33
fa4b7c3

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 & timestamp 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 a null 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)