Conversation
|
Thanks. How do I build or install the package now? |
I was writing you email. I have removed 0.9 files. There is now |
|
Thanks. We still need all sources under I'm now getting errors from CMake when running Can you work with that? Please revert if needed. Eventually, |
Just so I know what to expect, is this supposed to work at the moment? (It doesn't here.) Some things that appear to be missing:
|
I have moved |
I have added |
|
@szhorvat Seems there is now some missed types for stimulus in |
|
The diff --git a/configure b/configure
index 9364713f7..9c75ea263 100755
--- a/configure
+++ b/configure
@@ -13,7 +13,7 @@ fi
# Build igraph with cmake
cmake -S . -B build -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install
-cmake --build build --config Release
-cmake --install build --config Release
+MAKEFLAGS="-j 8" cmake --build build --config Release
+MAKEFLAGS="-j 8 -O" cmake --install build --config Release
cp -r ./install/include/igraph ./include |
I think that CMake looks at certain default, system-wide directories when it's looking for libraries, but you can prepend your own directories to this list with some CMake setting (I don't remember off the top of my head and I'm not at my desk now). The easiest would probably be to prepend R's preferred library and include folders to CMake's list and let the auto-detection do its job. |
|
That's a bit complicated due to the non-standard library names used by R. The following works on my system though, and could be used as a starting point for a proper solution.
|
I can reproduce that failure if I remove the system-wide install of igraph I had. The code that caused the failure seems completely unnecessary. I'm removing it in the below commit. EDIT: CI won't run until the conflict with the base branch is resolved. |
|
Maybe we should consider using https://github.com/xtensor-stack/xtensor-r/blob/master/cmake/FindR.cmake to find R, and then we would get the full path to R's BLAS and LAPACK libraries for free? |
|
I minimized the diff with the main branch so that there is a tiny chance that we can actually review what's happening here. Is this PR doing too much? Should we keep the data format unchanged for now, continue operating with double vectors in the R interface, and use 64-bit integers in the C core? It seems that we're copying data anyway -- we could copy and raise an error in case of out-of-bounds conditions. |
library(igraph)
g <- make_ring(4)
print(g)It works now |
|
@szhorvat I found a reason of some failing tests. I believe a lot of tests are failing to this reason. How we should deal with The problem is that we don't copy cache -> then read graph -> don't read cache -> try delete cache, but it's empty pointer. |
|
Hmmm yes, the cache is a new thing in igraph 0.10; its purpose is to store certain boolean flags about the graph if we already know what their value is. For instance, if we know that the graph has no loop edges (because we have determined it earlier), we can store it as a flag and subsequent calls to the same graph can re-use the cached value without having to check for loop edges again. Essentially the cache is a layer of two boolean vectors: one that tells us for each potentially cacheable boolean feature whether it is currently cached or not, and the other vector tells us what the cached value is (undefined if the property is not cached). Now, we can do it in C because we know that all manipulations to the graph structure go through our own functions where we manage and maintain the cache. In R, it's not that clear as one can easily see the internals of the graph with a call to |
Thanks for the explanation. I will try to copy cache. |
|
The cache could also be an external pointer. It will be lost during Before we spend too much time here, I'd like to investigate storing the graph object as a raw vector. This can be done in the main branch, independent of this branch. I'll open a new issue. |
|
Circling back to the detection of BLAS: does the standardized R compilation environment (the one used on CRAN) contain |
scgrelated functions&) to input arguments (related to missed types intypes-RC.yaml)intforigraph_bool_t- changed in vendor/cigraphmultiinget.edge.idsfileinterface.RR_igraph_weighted_adjacency- weights is not string anymoreconfig.h.inCloses #753.