Skip to content

Commit aec3f2f

Browse files
committed
update: bump to bclibc@v1.0.3 which provides bugfixes
1 parent 2f24330 commit aec3f2f

File tree

4 files changed

+30
-6
lines changed

4 files changed

+30
-6
lines changed

.pre-commit-config.yaml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,16 @@ repos:
88
- id: uv-sync
99
name: uv sync before hooks
1010
entry: uv
11-
args: ["sync", "--extra", "exts", "--reinstall-package", "py_ballisticcalc.exts"]
11+
args:
12+
[
13+
"sync",
14+
"--extra",
15+
"exts",
16+
"--reinstall-package",
17+
"py_ballisticcalc",
18+
"--reinstall-package",
19+
"py_ballisticcalc.exts",
20+
]
1221
language: system
1322
pass_filenames: false
1423

CHANGELOG.md

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [2.2.10] - 2026-04-11
11+
1012
### Changed
11-
- bclibc sources now is a git submodule
12-
- bump to bclibc@v1.0.2
13-
- update BCLIBC_Curve_fromPylist to use bclibc universal function
13+
- bclibc C++ engine is now a git submodule (previously vendored sources)
14+
- bump bclibc to v1.0.3
15+
- `BCLIBC_Curve_fromPylist` in `py_bind.cpp` now delegates to `build_pchip_curve_from_arrays` — the universal PCHIP builder extracted into `base_types.hpp`/`base_types.cpp`; eliminates code duplication between the Cython and FFI paths
16+
- `BCLIBCFFI_CATCH` macro replaced with `ffi_call<F>` template — same catch logic, no hidden `return`, full `catch(...)` coverage for non-std exceptions across the FFI boundary
17+
- `try_get_exact` signature changed from `void` (exception-as-control-flow) to `bool`; call sites in `get_at` converted from `try/catch` blocks to plain `if` checks — removes overhead on the hot interpolation path
18+
19+
### Fixed
20+
- bclibc: undefined behavior in `find_zero_angle` — missing `return` after Ridder's loop
21+
- bclibc: `~BCLIBC_TrajectoryDataFilter` destructor no longer throws (wrapped in `try/catch`)
22+
- bclibc: `BCLIBC_BaseTrajData::operator[]` bounds check used wrong constant and `>` instead of `>=`
23+
- bclibc: `BCLIBC_TrajectoryData::interpolate` bounds check used `>` instead of `>=`, allowing `FLAG` key
24+
- bclibc: `try_get_exact` refactored from exception-as-control-flow to returning `bool`
25+
- bclibc: memory leak in `BCLIBCFFI_integrate` when `toC` loop throws after `malloc`
26+
- bclibc: infinite loop guard added for `calc_step <= 0` in Euler and RK4 integrators
27+
- bclibc: `BCLIBC_ShotProps` constructor no longer propagates `domain_error` from stability coefficient calculation
28+
- bclibc: `BCLIBCFFI_CATCH` macro replaced with type-safe `ffi_call<F>` template (adds `catch(...)` for non-std exceptions)
1429

1530
## [2.2.9] - 2026-03-16
1631
[:simple-github: GitHub release][2.2.9]

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ build-exts: clean-exts
2828
@echo "--- Initializing git submodules ---"
2929
git submodule update --init --recursive
3030
@echo "--- Building Cython extensions ---"
31-
uv sync --extra exts --reinstall-package py_ballisticcalc.exts
31+
uv sync --extra exts --reinstall-package py-ballisticcalc --reinstall-package py-ballisticcalc-exts
3232
@echo "✅ Extensions built."
3333

3434
# -------------------------------------------------------------

0 commit comments

Comments
 (0)