Skip to content

Commit 99933c1

Browse files
benjelloclaude
andcommitted
bump: 44.4.0 → 44.4.1
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent ddbf98c commit 99933c1

2 files changed

Lines changed: 12 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
# Changelog
22

3+
## 44.4.1
4+
5+
#### Performance improvements
6+
7+
- Fix quadratic reconstruction cost in `as_of` forward simulations.
8+
- In the typical GET(M-1) → compute → SET(M) monthly loop, `_set_as_of` was unconditionally clearing the snapshot cursor after each write, forcing the next `get_array(M)` to reconstruct from the base through all M patches — O(N + M·k) per step, quadratic overall.
9+
- Root cause: `_reconstruct_at` advanced the snapshot to `instant` during the internal diff computation, so the invalidation guard `snapshot[0] >= instant` triggered on equality even for strictly forward writes.
10+
- Fix: when the new patch is appended at the end of the list (forward-sequential SET), the snapshot is updated to the new state instead of being discarded. Retroactive (out-of-order) writes still invalidate the snapshot correctly.
11+
- Benchmark (N=1M, forward simulation): 1 yr / 10% change ×1.4, 5 yr / 10% ×4.1, 5 yr / 30% ×5.4.
12+
313
## 44.4.0 [#1366](https://github.com/openfisca/openfisca-core/pull/1366)
414

515
#### Performance improvements

setup.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161

6262
dev_requirements = [
6363
"black >=24.8.0, <25.0",
64+
"pytest-benchmark >=4.0.0, <5.0",
6465
"codespell >=2.3.0, <3.0",
6566
"colorama >=0.4.4, <0.5",
6667
"darglint >=1.8.1, <2.0",
@@ -84,7 +85,7 @@
8485

8586
setup(
8687
name="OpenFisca-Core",
87-
version="44.4.0",
88+
version="44.4.1",
8889
author="OpenFisca Team",
8990
author_email="contact@openfisca.org",
9091
classifiers=[

0 commit comments

Comments
 (0)