- Add IncrementalBuffer with thread-safe SendData/SendInitData callback
handling for live waveform plotting during transient simulations
- Expose get_incremental_data(), get_incremental_vector_names(),
get_incremental_count(), clear_incremental_buffer() to Python
- Add py::call_guard<py::gil_scoped_release>() on run(), run_async(),
SimRunner::run_now(), SimRunner::run() so Python UI stays responsive
- Update license from BSD-3-Clause to GPL-3.0-or-later (required by
GPLv3 components: admst, xspice/icm/table)
- Fix netlist preprocessor robustness when .end line is missing
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Initial commit of the pyngspice layer on top of ngspice:
- pybind11 C++ bindings (src/cpp/, src/bindings/)
- Python package with SpiceRunner interface, netlist preprocessor
- Targeted capacitor probing via .save i(C_name) directives for
fast simulation when only specific cap currents are needed
- Build system (CMakeLists.txt, pyproject.toml, build_mingw.py)
- Test suite with 70 tests covering all preprocessor features
- Examples, winflexbison tooling, CLAUDE.md project docs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>