Version 0.2.0 of the Rebar addon is now available to download and install! Note: starting with version 0.2.0, Rebar targets LabVIEW NXG 5.0 (including Community Edition, which is free for non-commercial, non-academic use).

Reminder that incomplete features must generally be enabled with feature toggles.

What’s new in this release:

Stable features

  • The LLVM compiler no longer requires a feature toggle. The old bytecode compiler/runtime is removed.
  • Support for LabVIEW NXG 5.0: Going forward, releases of Rebar will support LabVIEW NXG 5.0, unless otherwise noted.

Incomplete features

  • Option Pattern Structure: destructure Option values with Some and None cases.
  • Parameters and calls: Added the ability to call one .rfn from another, with in or out Int32, Bool, or String parameters. To call a .rfn, drag it from the Files pane or the Software palette onto a Function diagram.
  • Added the Type Diagram (.td) document for defining named types:
    • The Type Diagram supports primitive types Int32, Bool, and String.
    • The Type Diagram supports defining struct types with anonymous fields.
    • Drag a .td file from the Files pane or the Software palette onto a Function diagram to get a Constructor node, which creates an instance of the .td type.
    • The Struct Fields node takes an immutable/mutable reference to a struct type value, and outputs immutable/mutable references to one or more fields of that value.
  • String type:
    • String Slice To String Split Iterator creates a StringSplitIterator from a string slice reference. A StringSplitIterator splits the input string slice by spaces and yields the separated string slices without spaces.
    • String now properly supports Clone.
  • Vector and slice types:
    • Vector Initialize will initialize a Vector with n copies of an input T value.
    • Vector Append appends a T to a Vector (by mutable reference).
    • Vector Remove Last removes and returns the last T value from a Vector (by mutable reference).
    • Vector To Slice converts an immutable/mutable reference to a Vector to an immutable/mutable T slice reference.
    • Slice Index gets a reference to the nth element in a T slice (by immutable/mutable reference).
    • Vector Create is now generic in its output type.
    • Vector now properly supports Clone and Drop.
  • Shared type:
    • Renamed from NonLockingCell.
    • Create Shared creates a Shared from a T value.
    • Get Value From Shared gets an immutable reference to the inner T value from an immutable Shared reference.
    • Shared implements Clone and Drop.
  • Async functions:
    • Yield passes through an immutable reference to any type of value and yields back to the scheduler.
    • The NotifierReader/NotifierWriter types allow passing a single value asynchronously between two parallel parts of a program (a one-shot channel).
      • Create Notifier creates a linked NotifierReader/NotifierWriter pair.
      • Get Notifier Value takes a NotifierReader and asynchronously waits for the corresponding NotifierWriter to be written to or dropped; it outputs Some(x) if the value x was written, and None if the NotifierWriter was dropped.
      • Set Notifier Value takes a NotifierWriter and a T value, and writes the value to be read by the corresponding NotifierReader.
  • Panics:
    • Unwrap Option takes an Option; on Some(x), it outputs x, and on None it panics.
    • Add support for unwinding through calling Functions that may panic.

See also the release notes for previous versions: 0.1.3, 0.1.1