Releases: DrTimothyAldenDavis/GraphBLAS
Releases · DrTimothyAldenDavis/GraphBLAS
v9.4.2 (Nov 18, 2024)
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)
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)
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)
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)
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)
Fixes a performance bug, where the JIT kernels (since v8.3.1) were not compiled with openmp.
v9.0.2 (Feb 26, 2024)
Fixes the Makefile, "make static", which builds just the static library.
v9.0.1 (Jan 20, 2024)
v9.0.0 (Jan 10, 2024)
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)
Dec 30, 2023: version 8.3.1
* major change to build system: by Markus Mützel
* GraphBLAS.h: remove "undef I"