Skip to content

Releases: DrTimothyAldenDavis/GraphBLAS

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.

v9.0.1 (Jan 20, 2024)

25 Jan 00:49
a5b7d1e
Compare
Choose a tag to compare

Jan 20, 2024: version 9.0.1

* minor updates to build system

Full Changelog: v9.0.0...v9.0.1

v9.0.0 (Jan 10, 2024)

10 Jan 17:29
4f242bf
Compare
Choose a tag to compare

Jan 10, 2024: version 9.0.0

* GrB_get/GrB_set: new functions from the v2.1 C API.
* GrB_Type_new, GrB_UnaryOp_new, GrB_IndexUnaryOp_new: no longer macros,
    since GrB_set can be used to set the names of the operators.  These
    methods no longer extract the name, so the default name is now the
    empty string.  This is because GrB_get/set can only set these names
    once.  This is a non-compatible change of behavior for these 3
    methods, so SuiteSparse:GraphBLAS must become v9.0.0.
* historical methods:  many methods are replaced by GrB_get and GrB_set.
    They remain in SuiteSparse:GraphBLAS but have been declared historical.
    Terse prototypes exist in GraphBLAS.h, and any discussion is removed
    from the User Guide:  GxB_get, GxB_set, and the methods they call, and
    many more.  Use GrB_get/set in place those methods, and for:
    GxB_*type_name, GxB_*type, GxB_Monoid_operator, GxB_Monoid_identity,
    GxB_Monoid_terminal, GxB_Semiring_add, GxB_Semiring_multiply.  Use
    GrB_STORAGE_ORIENTATION_HINT in place of GxB_FORMAT.
* hyper_hash: constructed only if the # of non-empty vectors in a
    hypersparse matrix is large (> 1024, by default)
* minor updates to build system: *.pc files for pkgconfig

The GraphBLAS v2.1 C API appears at https://github.com/GraphBLAS/graphblas-api-c/releases/tag/v2.1 .

v8.3.1 (Dec 30, 2023)

30 Dec 00:58
e408f01
Compare
Choose a tag to compare

Dec 30, 2023: version 8.3.1

* major change to build system: by Markus Mützel
* GraphBLAS.h: remove "undef I"