Skip to content

0.2.0

Compare
Choose a tag to compare
@ruby0x1 ruby0x1 released this 01 Oct 06:38

Blog

Read the 0.2.0 release blog for details, and plans for 0.3.0.

0.2.0 changelog

0.2.0 spans a pretty wide time period with around 290 commits.
This includes many bug fixes, improvements, clarity in the code and documentation and so on.
There are some minor API changes, be sure your header is up to date so the compiler can tell you what changed. There's too many changes to explicitly list, so below is the obvious user facing stuff that was easy to spot in the history.

Most noteworthy is that 'relative imports' are a slightly breaking change,
but help pave the way forward toward a consistency for modules.

Language/VM

  • import was made smarter, differentiating relative from logical
  • Fiber can now accept a value from the first call/transfer
  • Improved performance/distribution of number hashing (details)
  • Added String.trim, String.trimEnd, String.trimStart variants
  • Added String.split, String.replace, String.fromByte
  • Added String.indexOf(needle, startIndex)
  • Added Sequence.take and Sequence.skip
  • Added Num.pow, Num.log, Num.round
  • Added Num.largest, Num.smallest
  • Added List.filled(count, value)
  • Added Map iteration (MapEntry)

C API

  • Added wren.hpp for use in c++
  • Added void* user data to WrenVM
  • Added wrenAbortFiber
  • Allow hosts with no module loader to still load optional modules.

CLI

Please note that beyond 0.2.0 the CLI will have it's own changelog.
This list is not exhaustive. For a fuller history see the commit log above.

  • Add path module
  • Add --version
  • Add REPL written in Wren
  • Add Stdin.isTerminal
  • Added Platform class
  • Rename process module to os