Releases: DrTimothyAldenDavis/GraphBLAS
Releases · DrTimothyAldenDavis/GraphBLAS
v10.0.0.alpha1 (Feb 21, 2025)
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)
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)
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)
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.