High-performance runtime for data analytics applications
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.
This is the first tagged release of Weld. See the release notes below.
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.
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).