Releases: DrTimothyAldenDavis/GraphBLAS
Releases · DrTimothyAldenDavis/GraphBLAS
v10.3.0-beta1 (Dec 3, 2025)
Dec 3, 2025, version 10.3.0
* GrB_extract: performance improvement for C=A(I,J) when A is very large
and (typically) hypersparse, and I is an explicit list and also large.
* GrB_(Matrix,Vector,Scalar)_dup: pending work is now left unfinished;
any pending work in the input matrix will appear in the copy. In
v10.2.0 and earlier, all pending work in the input matrix was finished
first. To obtain the behavior in v10.2.0 and earlier, simply call
GrB_*_wait on the input matrix before calling GrB_*_dup.
What's Changed
- GraphBLAS 10.3.0: performance improvements by @DrTimothyAldenDavis in #437
Full Changelog: v10.2.0...v10.3.0-beta1
v10.2.0 (Nov 1, 2025)
Nov 1, 2025, version 10.2.0
* printing of user-defined types: get/set with GxB_PRINT_FUNCTION
* doc: documentation of GrB_Matrix_import/export was backwards
* performance: new GrB_assign kernel for C<C,struct> += A added
Full Changelog: v10.1.1...v10.2.0
v10.1.1 (July 25, 2025)
July 25, 2025: version 10.1.1
* gcc can now be used on the Power or s390: workaround added;
see Source/mxm/factory/GB_AxB_saxpy3_symbolic_fine_template.c.
This resolves the issue found in v10.1.0.
* OpenMP usage: replace omp critical with lock/unlock.
* MATLAB: added method for getting/setting the JIT cache path.
* JIT file lock/unlock: removed; if multiple user processes use
GraphBLAS at the same time, each must set their own unique JIT cache.
* (65) bug fix: theta type definitions for user-defined index binary ops
were incorrectly typedef'd in the JIT kernels.
New Contributors
Full Changelog: v10.1.0...v10.1.1
v10.1.0 (June 1, 2025)
June 1, 2025: version 10.1.0
* add support for RISC-V vectorization: contributed by Rodion Suvorov
* added GRAPHBLAS_VANILLA: compile-time flag that disables all GxB methods
* gcc and the Power or s390 processor: using gcc on the Power or s390
architecture leads to a failure in the OpenMP atomic capture intrinsic.
See Source/mxm/factory/GB_AxB_saxpy3_symbolic_template.c. The cmake
build system has been revised so that it refuses to use gcc on a
Power-based or s390-based system. Use clang or the IBM xlc compiler
instead.
* GxB_STDC_VERSION: this is normally equal to __STDC_VERSION__ and is
determined automatically in GraphBLAS.h. If it is >= 2011012L,
then C11 is being used and the polymorphic functions (based on
_Generic) are available. It can now be #define'd by the user
application prior to its '#include "GraphBLAS.h"' statement.
If a C++ compiler is used to compile the user application then
GxB_STDC_VERSION is set to 199001L to denote C90 (and no _Generic
keyword is used). See GraphBLAS/Demo/Include/graphblas_demo.h
for an example usage.
* minor updates to build system
* iterator methods: revised so they do not conflict with the copy of
GraphBLAS v7.4.4 used inside MATLAB R2024b. No effect on normal
C API, so no change in major SO number for this release.
Full Changelog: v10.0.5...v10.1.0
v10.1.0-beta.2 (May 29, 2025)
May 29, 2025: version 10.1.0
* add support for RISC-V vectorization: contributed by Rodion Suvorov
* added GRAPHBLAS_VANILLA: compile-time flag that disables all GxB methods
* gcc and the Power or s390 processor: using gcc on the Power or s390
architecture leads to a failure in the OpenMP atomic capture intrinsic.
See Source/mxm/factory/GB_AxB_saxpy3_symbolic_template.c. The cmake
build system has been revised so that it refuses to use gcc on a
Power-based or s390-based system. Use clang or the IBM xlc compiler
instead.
* GxB_STDC_VERSION: this is normally equal to __STDC_VERSION__ and is
determined automatically in GraphBLAS.h. If it is >= 2011012L,
then C11 is being used and the polymorphic functions (based on
_Generic) are available. It can now be #define'd by the user
application prior to its '#include "GraphBLAS.h"' statement.
If a C++ compiler is used to compile the user application then
GxB_STDC_VERSION is set to 199001L to denote C90 (and no _Generic
keyword is used). See GraphBLAS/Demo/Include/graphblas_demo.h
for an example usage.
* minor updates to build system
* iterator methods: revised so they do not conflict with the copy of
GraphBLAS v7.4.4 used inside MATLAB R2024b. No effect on normal
C API, so no change in major SO number for this release.
Full Changelog: v10.0.5...v10.1.0-beta.2
v10.1.0-beta.1 (May 27, 2025)
May 27, 2025: version 10.1.0-beta.1
* add support for RISC-V vectorization: contributed by Rodion Suvorov
* added GRAPHBLAS_VANILLA: compile-time flag that disables all GxB methods
* gcc and the Power or s390 processor: using gcc on the Power or s390
architecture leads to a failure in the OpenMP atomic capture intrinsic.
See Source/mxm/factory/GB_AxB_saxpy3_symbolic_template.c. The cmake
build system has been revised so that it refuses to use gcc on a
Power-based or s390-based system. Use clang or the IBM xlc compiler
instead.
* GxB_STDC_VERSION: this is normally equal to __STDC_VERSION__ and is
determined automatically in GraphBLAS.h. If it is >= 2011012L,
then C11 is being used and the polymorphic functions (based on
_Generic) are available. It can now be #define'd by the user
application prior to its '#include "GraphBLAS.h"' statement.
If a C++ compiler is used to compile the user application then
GxB_STDC_VERSION is set to 199001L to denote C90 (and no _Generic
keyword is used). See GraphBLAS/Demo/Include/graphblas_demo.h
for an example usage.
* minor updates to build system
* iterator methods: revised so they do not conflict with the copy of
GraphBLAS v7.4.4 used inside MATLAB R2024b. No effect on normal
C API, so no change in major SO number for this release.
Full Changelog: v10.0.5...v10.1.0-beta.1
v10.0.5 (May 5, 2025)
May 5, 2025: version 10.0.5
* revised cmake build system
* (64) bug fix: GrB_assign, C<M>+=A, method 08n, when A is full.
Caught by Gabe Gomez.
* (63) bug fix: GrB_mxm when using the masked dot-product
and the output matrix is iso-valued.
v10.0.3 (Apr 10, 2025)
Apr 10, 2025: version 10.0.3
* upgrade xxHash to 0.8.3: contributed by Christoph Grueninger
* upgrade cpu_features to 0.9.0: contributed by Christoph Grueninger
* Octave interface: revised for the recent MacOS (15.3.2), assuming that
both octave and OpenMP are installed via homebrew.
* (62) bug fix: GxB_Matrix_build*Vector when C is held by row and
I,J have different integer types; was broken.
Full Changelog: v10.0.2...v10.0.3
v10.0.2 (Mar 20, 2025)
Mar 20, 2025: version 10.0.2
* performance: improved the performance of GrB_setElement when many
entries are inserted into a matrix that is initially empty.
* (61) bug fix: GxB_Serialized_get_Scalar declared twice in GraphBLAS.h;
caught by Erik Welch.
Full Changelog: v10.0.1...v10.0.2
v10.0.2-beta1 (Mar 16, 2025)
Mar 20, 2025: version 10.0.2
* performance: improved the performance of GrB_setElement when many
entries are inserted into a matrix that is initially empty.
* (61) bug fix: GxB_Serialized_get_Scalar declared twice in GraphBLAS.h;
caught by Erik Welch.
Full Changelog: v10.0.1...v10.0.2-beta1