Equinox v0.11.6
This is primarily a bug fix release.
-
Runtime error messages (those from
eqx.error_if
, in particular when wrapped witheqx.filter_jit
) should now be compatible with PyCharm's debugger, and with certain multithreaded contexts. (Thanks @adam-hartshorne, @dlwh! #828, #844, #849) -
Marking a
jax.Array
ornp.ndarray
as aneqx.field(static=True)
will now raise a warning. This was technically okay as long as you use it in certain very narrow contexts (e.g. to smuggle it into a JIT'd region without being traced), but in practice it was nearly always just a common new-user footgun. (Thanks @lockwo! #800) -
Using
eqx.tree_at
for replacing empty tuples is improved. (Thanks @danielward27! #818, #819) -
eqx.nn.RotaryEmbedding
no longer promote input dtypes to at least float32. (Thanks @knyazer! #836) -
Mypy now understands that
eqx.Module
s are dataclasses. (Pyright always did, but mypy needed a slightly different approach to appreciate this fact.) (Thanks @NeilGirdhar! #822) -
Multiple
eqx.Module
s participating in co-operative multiple inheritance (at least 5 inheriting from each other seem to be necessary?), with some of them overriding the__post_init__
s of others, should now follow their expected resolution order. (Thanks @NeilGirdhar! #832, #834) -
We now have a
.editorconfig
file, (thanks @NeilGirdhar! #821) -
Doc improvements. (Thanks @garymm, @ColCarroll! #804, #805)
New Contributors
- @garymm made their first contribution in #804
- @ColCarroll made their first contribution in #805
- @NeilGirdhar made their first contribution in #823
Full Changelog: v0.11.5...v0.11.6