This is a fun release.
- Feature: the holy grail of runtime type checking -- symbolic expressions -- are now supported! For example
(#9)
def remove_last(x: f32["dim"]) -> f32["dim-1"]): return x[1:]
- Feature: underscore-prefixed names are now treated anonymously, just like
_
was before. This allows you to include an anonymous dimension, but still give it some kind of name just for documentation purposes. (#10) - Fix: multiple+broadcastable dimensions, e.g.
*#foo
, now precisely matches up with normal broadcasting semantics. (#8) - Backward incompatibility: the broadcasting annotation
#
now occurs at the start of the dimension, e.g.#foo
, rather than at the end, e.g.foo#
.
Full Changelog: v0.0.2...v0.1.0