Skip to content

0.7.0

Compare
Choose a tag to compare
@udoprog udoprog released this 19 Oct 04:36

Added

  • The Rune project now has a Code of Conduct (#12).
  • Support for bitwise operations on numbers (#13, #20).
  • Book now has support for highlighting rune blocks (#14).
  • Preliminary support for modules without visibility (#16, #17).
  • Debug information for function variable names now reflect source (#24).
  • Initial support for macros (#29, #30, #31, #114, #135, #136,
    #137, #138, #141, #142, #143, #144).
  • Add cargo build cache (#36) (thanks shekohex!).
  • Rust quote! macro for Rune macro authors (#34).
  • Support for object- and tuple-like field assignments (#38, #39, #40,
    #66).
  • Support for lazy evaluation for and/or (&& / ||) (#50) (thanks
    seanchen1991!).
  • Add AsTokens, FromValue, ToValue, and Spanned derives (#41, #85,
    #87, #88, #113).
  • Visual studio code extension with syntax highlighting and basic language
    server (#46, #47, #48, #60, #74) (thanks killercup!).
    • As-you-type building (#49).
    • Jump to definitions (#61).
    • Multifile project support (#64).
    • Automatic downloading of language server binary (#69).
  • Non-zero exit status on script errors (#58, #59) (thanks killercup!).
  • Improve CLI by parsing arguments using structopt (#51) (thanks
    shekohex!).
  • Executing functions in the virtual machine can use external references
    (#52).
  • Remove unused instruction in loop (#53) (thanks genusistimelord!).
  • Tweak module dependencies to use native Rust modules (#54) (thanks
    killercup!).
  • Internal changes to support a future C FFI (#55).
  • Improving module API (#56).
  • Extending http module to deserialize JSON directly (#57) (thanks
    killercup!).
  • Automatic build releases on tags (#68).
  • Fixed locals bug with breaking control in the middle of an index get operation
    (#71).
  • Community site at https://rune-rs.github.io (#75).
  • Add WASM-based Playground to community site https://rune-rs.github.io (#77).
  • Support for limiting execution of rune-wasm (#80).
  • Support for modules, imports, re-exports, visibility, and path resolution
    (#83, #92, #98, #124, #125, #128, #129, #130, #131, #133,
    #134, #148, #155) (thanks dillonhicks!).
  • Add WASM support for a couple of showcased rune modules (#89).
  • Added runtime type information (RTTI) for values in Runestick (#90, #112).
  • Add a rand module to rune-modules (#100) (thanks aspenluxxxy!).
  • Initial support for constant evaluation (#93, #94, #99, #104, #105,
    #106, #107, #117, #122, #123, #153).
  • Add Args implementation for Vec (#147) (thanks MinusGix!).
  • Export a Function variant called SyncFunction that is thread-safe (#149,
    #151) (thanks MinusGix!).
  • Support move modifier to async blocks and closures to take ownership of
    values being used (#152).
  • Basic Iterator support (#156, #157) (thanks MinusGix!).
  • Support for calling protocol functions from native code using Interface (#159).

Changed

  • Make units more efficient by separating runtime and compile-time metadata (#24).
  • Change the internal representation of Item to be more memory efficient (#63).
  • Make the implementation of ParseError and CompileError more consistent (#65).
  • Remove the rune-testing module (#67).
  • Made evaluation order of index set operations the same as Rust (#70).
  • Make hashing less error prone (#72).
  • Various parser changes and tests (#110).
  • Various internal changes (#103, #108, #109).
  • Parser simplifications (#120, #121).
  • Negative literals are handled as expressions (#132).
  • Syntax for template strings now follows EcmaScript (#145).

Fixed

  • Introduced custom highlight.js to fix issue with hidden lines in the book
    (#10).
  • Semi-colons in blocks weren't required, they now are (#32).
  • Fixed field assignments (#38, #40) (thanks MinusGix!).
  • Book typos (#11, #18, #28, #37) (thanks Sparkpin, seanchen1991,
    stoically, and macginitie!).
  • Fix broken book links (#84, #86) (thanks dillonhicks!).
  • Fix pattern miscompilation (#62).
  • Fixed bug with Closure optimization where it's being treated as a function
    (#21, #22) (thanks MinusGix!).
  • Fixed a number of clippy lints (#35) (thanks shekohex!).
  • Fix using closures in literals, like (0, || 42) or #{a: || 42} (#78).
  • Shared access guards didn't implement Drop allowing them to leak their guarded
    value (#119).