New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Orb package not compiled after "InstallPackage("orb");" #49
Comments
Thanks for the report! I've looked at it, and this is due to optional compilation. It's really hard to tell whether a given package has been compiled yet, so at the moment we only run the compilation script on packages that can't currently be loaded. Since orb can be loaded straight away without compiling, we don't do it. However, it would be good if it did get compiled. I wonder what a good condition would be for running the compilation script. We don't want to run it every time we go near a package (messy!) but maybe we can find some happy medium... |
The thing that really gets me confused with this, is that Orb sets a global variable |
Perhaps adding a Also, we could discuss extending the One neat way to pull this of might be the following (for packages that support it -- on the long run, I'd hope that'd be all): each GAP build creates its own directory where it stores compile output (and most importantly: binaries / kernel extensions) of a given package. The name and location of that directory might be hard coded (e.g. for system wide installs by a Linux distro, it could be So we might have something like this in the PackageInfo record: rec(
...
BuildPackage := function( gapdir, pkgdir, builddir )
local res;
# initiate out-of-tree build
res := Process( builddir,
Concatenation(pkgdir, "./configure"),
InputTextUser(), OutputTextUser(),
[Concatenation("--with-gaproot=", gapdir)]);
if res <> 0 then return false; fi;
res := Process( builddir, "make", InputTextUser(), OutputTextUser(), []);
return res <> 0;
end
...
) Then GAP could test for the presence of such an entry; if available, happily use it; if not, then fall back to some kind of legacy support. Now, in order to load the packages, the package also needs to use the right builddir. We can achieve this by modifying Finally, we could keep track of whether the package was compiled by inspecting its builddir; and/or by recording the result of its As I mentioned, all this would also allow us to safely share a single copy of a GAP package with kernel extension among multiple GAP versions and configs. |
So, I feel there is three(ish) parts here.
|
We now have The only remaining question in this issue that's in the scope of this package is possibly implementing Chris's suggestion above:
This might be something to try in the future, so I'll leave this issue open. |
The title of the issues says it all I think, orb is not compiled by the package manager. It'd be great if it was.
The text was updated successfully, but these errors were encountered: