Graphegon / pygraphblas

GraphBLAS for Python
https://graphegon.github.io/pygraphblas/pygraphblas/index.html
Apache License 2.0
343 stars 27 forks source link

Upgrade to SuiteSparse 3.3 #57

Closed marci543 closed 4 years ago

marci543 commented 4 years ago

I wanted to prepare for the new SuiteSparse version while it is draft.

This cannot be done with the current minimal image until SS is released as a package. Adding an almost minimal image that compiles SS can be an option. Currently, I used the notebook image for testing.

A strange problem has arisen. Building with the new draft causes test of Vector.to_dense to fail because it returns vector filled with zeros. This is strange because the function wraps an LAGraph call, whose source code have not changed, since it is copied into this repository. https://travis-ci.com/github/szarnyasg/pygraphblas/builds/169510340#L4364-L4379

@michelp, are there any special steps to take to keep the local header and the one in SuiteSparse consistent?

michelp commented 4 years ago

This is awesome thanks for doing this! I pulled your branch, rebuilt the images and I get all tests pass, not sure how to reproduce your issue. Maybe you've got a stale docker image in cache? I usually docker container prune and then docker image prune pretty frequently but you might want to take a less nuclear approach.

Edit: oh duh, it's failing in Travis, hmm ok i'll keep trying to reproduce I must be the one with the cached something.

marci543 commented 4 years ago

I opened an issue for the problem: GraphBLAS/LAGraph#92

michelp commented 4 years ago

@marci543 looks like the tests are now passing, is this ready for review?

marci543 commented 4 years ago

I would wait for the SuiteSparse release.

I only added the bitwise binary operators, but the unary ones, the monoids, and the semirings are still to go. A few names changed in one of the drafts which should be followed: https://github.com/DrTimothyAldenDavis/GraphBLAS/releases What do you think about adding other new features e.g. complex types? Is there a good Python equivalent?

michelp commented 4 years ago

CFFI maps common C complex types to python complex()

https://cffi.readthedocs.io/en/latest/ref.html#conversions

This is working already for LAGraphComplex, it's commented out here, I can't remember exactly why :shrug:

https://github.com/michelp/pygraphblas/blob/68861d024b05b5b86eb5bca020a7c817b31b97f7/pygraphblas/types.py#L210