All notable changes to libcasm-global will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Fixed scope of the max_threads variable in libcasm.global to ensure it is shared globally.
- Reworked use of atomic variables for stop_requested to only use std::atomic_bool if the implementation is lock-free.
- Replace std::result_of (deprecated in C++17, removed in C++20) with std::invoke_result to fix warnings.
- Added CASM::threaded_run and CASM::threaded_pipeline methods to run threaded loops and pipelines in C++.
- Added get_max_threads, set_max_threads, reset_max_threads to libcasm.global to get/set a configuration parameter that can be used to control the number of threads used by CASM methods that support multithreading and check the configuration parameter value.
- Added stop_requested, request_stop, and reset_stop_requested methods to libcasm.global for sending/receiving stop signals to running threaded loops and pipelines.
- Added CASMpy::run_with_sigint_handler method to allow C++ extension functions to check for stop requests triggered by SIGINT signals (i.e. Ctrl+C) received by the calling Python process.
- Build for Python 3.14
- Stop building for Python 3.9
- Restrict requires-python to ">=3.10,<3.15"
- Set pybind11~=3.0
- Build Linux wheels using manylinux_2_28 (previously manylinux2014)
- Build for Python 3.13
- Restrict requires-python to ">=3.9,<3.14"
- Run CI tests using Python 3.13
- Build MacOS arm64 wheels using MacOS 15
- Build Linux wheels using Ubuntu 24.04
- Wheels compiled with numpy>=2.0.0
- Run github actions on push, pull_request, and weekly
- Use ruff NPY201
- Fix index_to_kcombination (933735c)
- Updated docs theme
- Building wheel for Python3.12
- Updated project metadata and README
- Removed CONTRIBUTE.md. This information is now included on the CASM website.
- Changed to build x86_64 wheels with Github Actions and aarch64 and arm64 wheels with Cirrus-CI
- Build wheels for Linux aarch64.
- Changed libcasm_global install location to site_packages/libcasm/lib for all architectures.
- Updated docs to refer to installation and contribution guidelines on CASMcode_docs page.
- Changed C++ tests to use a separate CMake project and fetch googletest
- Removed googletest submodule
- This module includes parts of CASM v1 that are generically useful, including: casm/casm_io, casm/container, casm/external/Eigen, casm/external/gzstream, casm/external/MersenneTwister, casm/global, casm/misc, and casm/system
- This module enables installing via pip install, using scikit-build, CMake, and pybind11
- Added external/nlohmann JSON implementation
- Added external/pybind11_json
- Added Python package libcasm.casmglobal with CASM global constants
- Added Python package libcasm.counter with IntCounter and FloatCounter
- Added GitHub Actions for unit testing
- Added GitHub Action build_wheels.yml for Python wheel building using cibuildwheel
- Added Python documentation
- Changed KB and PLANCK to CODATA 2014 suggestions
- Removed autotools build process
- Removed boost dependencies
- Removed external/json_spirit
- Removed external/fadbad
- Removed external/qhull