Weld Versions Save

High-performance runtime for data analytics applications

v0.4.0

4 years ago

Changes

  • Deprecates the old constructors API in lieu of the NewExpr trait on Expr
  • Adds a new SIR pass that allows for improved performance in some cases

v0.3.1

4 years ago

This release is equivalent to the tagged v0.3.0 release, but it increments the Cargo.toml version number. This allows the version of Weld published on Cargo to be in sync with the version tagged in releases on GitHub from now on.

v0.3.0

4 years ago

This is the first tagged release of Weld. See the release notes below.

v0.3.0

This release brings a new, optimized LLVM backend and updates to the core Weld APIs. It also removes multi-threading support for the time being, beause the old multi-threading design imposed undue overhead on single-threaded programs. In the future, threading will be re-introduced.

Detailed Notes

  • Introduces the WeldContext API, which provides a context for Weld runs to allocate their memory and to reuse objects allocated by other Weld runs. See the [WeldContext documentation]({{ site.url }}/docs/latest/weld/struct.WeldContext.html) for more details on how this is used.

  • Adds an optlookup operator that performs keyexists and lookup with a single hash operation. The operation returns a value and a boolean indicating whether the value was found. This operator will replace lookup on dictionaries eventually. See the language docs for more detail.

  • Changes the sort API to take a comparator function similar to libc qsort.

  • Adds an assert operator, which crashes the program if the assertion fails and evaluates to true otherwise.

  • Removes support for the nditer iterator. This will be added back in a future release.

  • Adds new options for dumping code. See the [new configuration options]({{ site.url }}/docs/latest/weld/#constants) for details.

  • Adds the ability to make type aliases:

    type mytuple = {i32,i32};
    
  • Internally, the backend now uses LLVM's C builder API. This improves both compilation times and execution time (since LLVM's optimizer does a better job overall)

  • Change the hash function to CRC32. This is only supported on x86/x64.

  • Implements common subexpression elimination.

  • Bug fixes (see the PRs on the Weld repository).