Commit 7b08e07
release: 0.23.1 (deferred-queue spin and two related defects) (#84)
Bumps __version__ to 0.23.1, promotes Unreleased to [0.23.1], adds the
tag link definition.
#82 resolve_deferred() spun forever when the device a deferred spec
was waiting for had already been built by an equal-but-distinct
DeviceSpec. My regression: 0.23.0 moved add()'s bookkeeping to the
resolved device id and did not move the deferred paths with it, so
the id short-circuit returned before the identity-based queue
removal. Triggered by exactly the pattern id-keying was introduced
to enable, and it hangs rather than misbehaves, on what is
typically a single dispatch thread.
A stale id resolver could orphan its device. remove() re-resolved
through the spec's callable, which commonly reads the producer's own
model and stops answering once teardown begins, so remove() got None
and returned silently with the device still live. The builder now
latches the id a spec resolved to when built.
The python_type disagreement check from 0.23.0 is removed. It guarded a
difference with no runtime consequence, misfired on the normal case of
a model using a richer type than the datatype-derived default, and
raised mid-materialization leaving half a device.
Patch: three fixes, no new API. Cut promptly rather than batched because
0.23.0 is live with an infinite loop.
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>1 parent a7bd1b7 commit 7b08e07
2 files changed
Lines changed: 4 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
| 8 | + | |
7 | 9 | | |
8 | 10 | | |
9 | 11 | | |
| |||
403 | 405 | | |
404 | 406 | | |
405 | 407 | | |
| 408 | + | |
406 | 409 | | |
407 | 410 | | |
408 | 411 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
83 | 83 | | |
84 | 84 | | |
85 | 85 | | |
86 | | - | |
| 86 | + | |
87 | 87 | | |
88 | 88 | | |
89 | 89 | | |
| |||
0 commit comments