Skip to content

0.4.0 pre-release

Pre-release
Pre-release
Compare
Choose a tag to compare
@ruby0x1 ruby0x1 released this 03 Dec 21:49
· 91 commits to main since this release
7d3f063

This release is a draft.

Language

  • Add continue keyword - #822
  • Add as: import "..." for Name as OtherName - #775
  • Add Support positive sign in scientific notation - #706
  • Add Fiber.try(value) to complement Fiber.call(value) - #835
  • Allow . to be on a different line (for fluent/builder APIs) - 4c496c5

Modules

  • Random: Random.sample optimizations - #716
  • List:
    • add list.sort() and list.sort {|a, b| ... } (quicksort) - #802
    • add list.swap(index0, index1) for swapping elements within a list - 38f50fe
    • add list.indexOf(value) for finding values in a list - 6200987
  • Num:
    • add Num.tau - 89c5e22
    • add Num.nan, Num.infinity - #781
    • add min(other), max(other), clamp(min, max) - 8361217
    • add exp, log2 - 433fbc4

Fixes

  • Fix stack corruption related to Fn calls - #807
  • Fix a byte offset bug in CODE_IMPORT_VARIABLE - 28ad8aa
  • Fix some stack corruptions related to multiple wrenInterpret calls - #730
  • Fixed crash when GC collects module during import 2ce421e
  • Fix Bool, Num and Null allowing subclassing, which is invalid - #831

API

  • BREAKING: Add userData to wrenReallocateFn - #788
  • BREAKING: Add WrenLoadModuleResult which has a onComplete callback, allowing freeing module strings - #778
  • Add wrenHasVariable and wrenHasModule queries, for use with wrenGetVariable - 182ca90
  • Add wrenSetListElement to complement wrenGetListElement, and allow negative index for both - 97ebcc7
  • Add Map functions to API - #725
    • wrenSetSlotNewMap
    • wrenGetMapCount
    • wrenGetMapContainsKey
    • wrenGetMapValue
    • wrenSetMapValue
    • wrenRemoveMapValue

Other

  • build; add util/generate_docs.py for regenerating project files
  • vm; Allow computed goto when using clang on Windows
  • vm; WREN_MAX_TEMP_ROOTS default is 8 (instead of 5)
  • vm; GC debug times are printed in milliseconds, not seconds

Commits since 0.3.0