Skip to content

Releases: DrTimothyAldenDavis/GraphBLAS

v10.3.0-beta1 (Dec 3, 2025)

03 Dec 19:42
63ec7df

Choose a tag to compare

Pre-release

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

Full Changelog: v10.2.0...v10.3.0-beta1

v10.2.0 (Nov 1, 2025)

03 Nov 20:59
85a8bcb

Choose a tag to compare

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)

25 Jul 17:00
50cca24

Choose a tag to compare

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)

30 May 19:31
a81a7d0

Choose a tag to compare

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)

29 May 15:51
aed97d8

Choose a tag to compare

Pre-release

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)

27 May 18:13

Choose a tag to compare

Pre-release

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)

05 May 19:28
8c381c1

Choose a tag to compare

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)

11 Apr 13:53
6d54aab

Choose a tag to compare

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)

18 Mar 14:07
1f199f6

Choose a tag to compare

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)

16 Mar 22:20
1f199f6

Choose a tag to compare

Pre-release

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