Skip to content

Releases: DrTimothyAldenDavis/GraphBLAS

v10.0.0.alpha1 (Feb 21, 2025)

21 Feb 13:24
Compare
Choose a tag to compare
Pre-release

Feb 21, 2025: version 10.0.0.alpha1

* 32/64 bit matrices and vectors: the GrB_Matrix and GrB_Vector
    now exploit 32-bit integers when possible.  New methods added to pass
    32-bit integer arrays to/from GrB_build, extract, assign, subassign,
    and extractTuples.  New object, the GxB_Container added for fast
    import/export of matrices/vectors with arbitrary integer content.
* GrB_Field: this enum is strongly deprecated, and replaced with
    'typedef int GrB_Field'.  This is an upward-compatible change to the
    API, and will allow the creation of a future mathematical field object
    in GraphBLAS.  This type should not be used; use an int instead.
    It will be removed or replaced in a future version of GraphBLAS.
* enum parameters: replaced all enum parameters with int, to simplify
    future updates to enum parameters, including the GrB_Field.
* GxB_JIT_ERROR: added in 9.4.x, changed value to avoid conflict with
    LAGraph error codes.
* pack/unpack: these are declared historical; they still work but use
    64-bit integers only.  Use the new GxB_Container methods instead.
* GxB_Matrix_iso and GxB_Vector_iso: declared historical; use GrB_get
    with the new GxB_ISO enum.
* GxB_Matrix_type, GxB_Vector_type, GxB_Scalar_type: no longer historical;
    added back to the user guide.
* Summary: the API is upward-compatible with 9.4.x, but only after
    the user application is recompiled with GraphBLAS v10.0.0.
    As a result, the SO version must increase from 9 to 10.

Full Changelog: v9.4.4...v10.0.0.alpha1

v9.4.5.beta2 (Feb 20, 2025)

21 Feb 04:35
7f6b318
Compare
Choose a tag to compare
Pre-release

v9.4.5.beta2 (Feb 20, 2025)

  • (59) bug fix: the GxB_NO_INT32 and GxB_NOT_INT64 flags in GB_control.h
    did not completely remove some of the INT32 and INT64 factory kernels.
    Caught by Erik Welch, NVIDIA.
  • AppleClang compiler bug: On the Mac, the Source/mask/GB_masker.c file
    triggers a bug in AppleClang 16.0.0 with -O3 in (MacOS 14.6.1 (23G93),
    Xcode 16.2, Apple clang version 16.0.0, clang-1600.0.26.6). It also
    fails in MacOS 15.2 (Target: arm64-apple-darwin23.6.0). The bug is
    triggered by these tests in LAGraph (v1.2 branch, unreleased, Jan 4,
    2025):
    39 - LAGraphX_BF (SIGTRAP)
    40 - LAGraphX_Coarsen_Matching (Failed)
    41 - LAGraphX_FastGraphletTransform (SIGTRAP)
    49 - LAGraphX_PageRankGX (SIGTRAP)
    54 - LAGraphX_SquareClustering (SIGTRAP)
    61 - LAGraphX_msf (Failed)
    When using clang, optimization is turned off for this file. This has
    no impact on performance since GB_masker.c is very simple, consisting
    of a single sequence of calls to other methods.

v9.4.5.beta2: extend pragma in Source/mask/GB_masker.c, since it also fails with clang-cl on MS Windows.

Full Changelog: v9.4.4...v9.4.5.beta2

v9.4.4 (Feb 17, 2025)

16 Feb 22:59
31a1c6b
Compare
Choose a tag to compare

Feb 17, 2025: version 9.4.4

* (58) bug fix: semirings with user-defined monoids and the GrB_ONEB or
    GxB_PAIR operators caused a JIT compiler error.  Caught by Gabe Gomez.
* (57) bug fix: GraphBLAS.h header: remove duplicate definitions of
    GxB_MAX_FIRST_* semirings (incompletely moved to 'historical' section
    in 9.4.2).

Full Changelog: v9.4.2...v9.4.4

v9.4.2 (Nov 18, 2024)

20 Nov 22:59
bde76fb
Compare
Choose a tag to compare

Nov 18, 2024: version 9.4.2

* clarified User Guide: regarding when the hyper-hash is built
* JIT: reduced JIT kernel encodings
* also: includes the updates from 9.4.0.beta and 9.4.1.beta listed below
* new JIT kernels added: for GrB_assign, GrB_extract, GxB_sort,
    GrB_kronecker, stand-alone mask phase, and utilities (convert to/from
    sparse/bitmap, unjumble).  All kernels formerly tagged "JIT: needed"
    are now finished.
* removed Factory kernels for: types int8 and uint8, and semirings:
    max_min, max_plus, max_times, min_max, min_times, plus_min, plus_max,
    non-Boolean land/lor/lxor/lxnor, and integer times_first/second,
    to reduce size of compiled library.  JIT kernels will be used instead
    for these types and semirings.
* GxB_IndexBinaryOp: finalized and named as GxB_*.
* new operator and associated methods: added the draft G*B_IndexBinaryOp
* JIT error-handling behavior changed:  if a compiler error occurs in the
    JIT, GxB_JIT_ERROR is now returned.  Previously, GraphBLAS would fall
    back to a generic method if such an error occurred.

v9.3.1 (Aug 12, 2024)

12 Aug 22:47
e3f309c
Compare
Choose a tag to compare

Aug 12, 2024: version 9.3.1

* (56) bug fix:  wrong type for fgetc return value in JITpackage; leads
    to infinite loop on some systems when building GraphBLAS.

Full Changelog: v9.3.0...v9.3.1

v9.3.0 (Aug 2, 2024)

05 Aug 22:43
671c925
Compare
Choose a tag to compare

Aug 2, 2024: version 9.3.0

* code restructuring:  Source folder split into many subfolders, and
    some files and internal functions renamed.  No visible external change.
* (55) bug fix: GrB_apply with user-defined index-unary op would fail if
    A was iso and the JIT was disabled (failure in generic case).
    Caught by Christina Koutsou.
* (54) bug fix: reducing a huge iso full matrix to a scalar resulted in
    integer overflow if nrows*ncols was larger than about 2^60.
* reduced size of compiled library: int16 and uint16 types and operators
    for FactoryKernels are disabled in GB_control.h.  The JIT will always
    be used instead.

v9.2.0 (May 22, 2024)

29 May 14:11
9bdf19d
Compare
Choose a tag to compare

May 22, 2024: version 9.2.0

* Added graphblas_install.m: for a simpler method of compiling
    the MATLAB/Octave interface for GraphBLAS.
* JIT: sanitizing the JIT cache path, better burble for compiler errors
* GrB_get/GrB_set: better handling of concurrent get/set between different
    user threads

v9.1.0 (Mar 22, 2024)

26 Mar 21:18
6680f9f
Compare
Choose a tag to compare

Mar 22, 2024: version 9.1.0

* minor updates to build system
* C11 complex type detection:  this is now detected and configured by
    cmake, instead of using an #if ... in the GraphBLAS.h header.
    This change was required to port GraphBLAS to the clang-cl compiler
    on Windows when it simulates the MSVC compiler.  Also added a new
    feature (thus the minor version update to 9.1.0): GxB_HAVE_COMPLEX* to
    GraphBLAS.h to indicate which kind of complex data types are available
    in C11 or MSVC.  Contributed by Markus Mützel.
* port to clang-cl: fixing the GxB_get and GxB_set macro
* (53) bug fix: eWiseAdd C<M>=A+B when M, A, and B are all hypersparse;
    access to M was incorrect (also affects C<M>+=T for any operation, if
    M and T are both hypersparse).  Caught by Roi Lipman.

Full Changelog: v9.0.3...v9.1.0

v9.0.3 (Mar 1, 2024)

02 Mar 04:05
6fea8b7
Compare
Choose a tag to compare

Fixes a performance bug, where the JIT kernels (since v8.3.1) were not compiled with openmp.

v9.0.2 (Feb 26, 2024)

28 Feb 15:07
cc3e1af
Compare
Choose a tag to compare

Fixes the Makefile, "make static", which builds just the static library.