Skip to content

V1.2.2 branch#414

Merged
michelp merged 3 commits into
stablefrom
v1.2.2_branch
Jul 21, 2026
Merged

V1.2.2 branch#414
michelp merged 3 commits into
stablefrom
v1.2.2_branch

Conversation

@DrTimothyAldenDavis

@DrTimothyAldenDavis DrTimothyAldenDavis commented Jul 21, 2026

Copy link
Copy Markdown
Member

Minor but important updates that are required for compiler changes in github workflows
(1) fixes the MSVC compiler which does not have stdalign.h.
(2) FindGraphBLAS.cmake updated to work with recent cmake versions (cmake 3.23 is now required)
(3) less important change: some typos in betweenness centrality

No change to the LAGraph API.

Comment thread CMakeLists.txt
endif ( )
endif ( )

if ( GRAPHBLAS_VERSION )

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a fix for a very strange problem I had in GraphBLAS 10.3.2. In v10.3.1, I had 3 cmake variables, GraphBLAS_VERSION_MAJOR, *_MINOR, and *_SUB. They worked just fine, and were held in the cmake cache.

Then in going to 10.3.2, the _MAJOR and _MINOR variables got "lots". They appear in the cache but are empty when used in cmake. I "fixed" it by renaming them GraphBLAS_VER_MAJOR, etc. It might be that an update to cmake causes the non-cached variables GRAPHBLAS_VERSION_MAJOR etc to clash with the cached GraphBLAS_VERSION_MAJOR variables (note the lower vs upper case).

I fixed the issue in GraphBLAS but then this cmake code in LAGraph could no longer detect the right GraphBLAS version to configure its FindGraphBLAS.cmake script. It does have GRAPHBLAS_VERSION so I've added this cmake script to parse out the 3 major, minor, and update components.

This script now works.

@@ -271,18 +271,18 @@ string (

if ( GRAPHBLAS_VERSION )

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See comments below about why I needed to fix this to detect the GraphBLAS version correctly.

# GraphBLAS is false.
#
# SUITESPARSE_CUDA_ARCHITECTURES: a string, such as "all" or
# "35;50;75;80" that lists the CUDA architectures to use

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change to SuiteSparsePolicy.cmake has no effect on LAGraph at all, but I've included it to sync it with my upcoming release of SuiteSparse 7.12.3, which will include LAGraph v1.2.2.

Comment thread Config/LAGraph.h.in
#define LAGRAPH_VERSION_MAJOR @LAGraph_VERSION_MAJOR@
#define LAGRAPH_VERSION_MINOR @LAGraph_VERSION_MINOR@
#define LAGRAPH_VERSION_UPDATE @LAGraph_VERSION_SUB@
#define LAGRAPH_HAS_STDALIGN_H @LAGraph_HAS_STDALIGN_H@

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

MSVC is a pathetic compiler. It claims to be C11 compliant but it does not have stdalign.h. I thus check for it in the cmake script and configure LAGraph accordingly.

Comment thread Config/LAGraph.h.in

#if ( !LAGRAPH_VANILLA ) && defined ( GxB_SUITESPARSE_GRAPHBLAS )
// use SuiteSparse, and its GxB* extensions
#if GxB_IMPLEMENTATION < GxB_VERSION (9,0,0)

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LAGraph no longer works with GraphBLAS 9.0.0 so I took this out.

#include <LAGraph.h>
#include <LAGraphX.h>
#include <stdalign.h>
#if LAGRAPH_HAS_STDALIGN_H

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See comments about about the miserable MSVC compiler's claim to C11 compliance while not actualy being C11 compliant by not providing a stdalign.h.

Comment thread CMakeLists.txt
#-------------------------------------------------------------------------------

cmake_minimum_required ( VERSION 3.20 ) # LAGraph can be built stand-alone
cmake_minimum_required ( VERSION 3.23 )

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cmake 3.23 is now common. It's also required for the changes in SuiteSparsePolicy.cmake.

@michelp

michelp commented Jul 21, 2026

Copy link
Copy Markdown
Member

Is this PR done? I see you still making recent changes, if you plan more changes you can switch it to "Draft" and then switch it back when you're ready for review.

@DrTimothyAldenDavis

Copy link
Copy Markdown
Member Author

Is this PR done? I see you still making recent changes, if you plan more changes you can switch it to "Draft" and then switch it back when you're ready for review.

This PR is ready to merge into stable, from my perspective.

@michelp
michelp merged commit 7543de1 into stable Jul 21, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants