Releases: jbphyswx/StructureFunctions.jl
Releases · jbphyswx/StructureFunctions.jl
v0.3.0
StructureFunctions v0.3.0
Breaking changes
- Backend selection is now type-based instead of symbol-based.
- Old:
backend = :serial,:threaded,:distributed - New:
backend = SerialBackend(),ThreadedBackend(),DistributedBackend(),GPUBackend(...),AutoBackend()
- Old:
AutoBackend()is now the explicit auto-selection path.- API/docs now reflect operator-first, typed backend usage throughout.
New features
- Added typed execution backend hierarchy:
SerialBackendThreadedBackend(OhMyThreads extension)DistributedBackendGPUBackend(KernelAbstractions extension)AutoBackend
- Added comprehensive extension-based GPU path and parity-focused backend design.
- Added extensive new documentation pages and worked examples.
Fixes
- Fixed critical threaded buffer indexing issue (
threadid()-related safety bug). - Fixed OhMyThreads reduction integration/signature issues.
- Improved type stability in backend paths (including removal of unstable dynamic
Valconstruction in hot paths). - Added explicit boolean keyword annotations where needed (
verbose,show_progress). - Fixed progress display behavior in main calculation loops.
- Reduced JET false positives by tightening analysis scope to package code.
Documentation
- Expanded and reorganized package documentation for v0.3.0:
- architecture
- backend guide
- extensions guide
- theory/reference material
- real-data workflows
- Added runnable example workflows for serial, threaded, distributed, GPU, and real-data usage.
Migration guide (quick)
- Replace symbol backends with typed backend constructors.
- If using threading, ensure OhMyThreads is available.
- If using GPU backend, ensure KernelAbstractions-compatible backend dependencies are installed.
📢 API Changes:
🚀 Features
📑 Documentation
🐛 Fixes
v0.2.0
StructureFunctions v0.2.0
📢 API Changes:
🚀 Features
📑 Documentation
🐛 Fixes
Full Changelog: 0.1.0...v0.2.0