-
-
Notifications
You must be signed in to change notification settings - Fork 480
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
add GAP io and crypting pkgs #26930
Comments
comment:1
on OSX the dlopen call does not work. However, it does if given full path to the dll, i.e. --- a/src/sage/libs/gap/util.pyx
+++ b/src/sage/libs/gap/util.pyx
@@ -263,7 +263,8 @@ cdef initialize():
# Note: we could use RTLD_NOLOAD and avoid the subsequent dlclose() but
# this isn't portable
cdef void* handle
- handle = dlopen("libgap.so", RTLD_NOW | RTLD_GLOBAL)
+ # handle = dlopen("libgap.so", RTLD_NOW | RTLD_GLOBAL)
+ handle = dlopen("/Users/dima/sagetrac-mirror/local/lib/python2.7/site-packages/sage/libs/gap/libgap.so", RTLD_NOW | RTLD_GLOBAL)
if handle == NULL:
raise RuntimeError(
"Could not dlopen() libgap.so even though it should already " name resolution procedures are different on OSX. Actually, I don't know what's happening on Linux so that libgap.so is found. |
comment:2
That's not really the intended "libgap.so". I meant the one from GAP itself, in The other option, as I mentioned, would be to use Python's built-in But yes, it's probably more portable either way to give a full path to the relevant shared object. |
comment:3
Replying to @embray:
oh, right --- except it's And indeed simply replacing So this is easy to fix - except that in C I would have gone for a macro with the right extension, how is one supposed to do this in Cython? |
comment:4
Your plan isn't clear from the ticket description. Is your plan to add IO to the |
comment:5
Replying to @simon-king-jena:
We have not included IO there, as it'd be an extra over the current |
comment:6
And now a question on the IO package: From its documentation, I see that it allows to pickle any GAP object into a file object. But that's cumbersome for serialisation in Sage. In Sage, we want a So, how do you envision libgap serialisation? |
comment:7
Would you rather prefer IO dumping to a string? (i.e. into memory, right?) As Python serialisation was never my concern, I have little idea about it. |
comment:8
Replying to @dimpase:
This is a SageMath ticket. So, Python serialisation has to come into play sooner or later. Having IO installed and working is a nice first step. But eventually,
should work. And also something like the following should work: class Foo(Ring):
def __init__(self, G):
assert G in Groups()
self.G = G
...
def __reduce__(self):
return Foo, self.G and then
But that would be for two follow-up tickets. One for pickling, the other for making libgap aware of Sage's categories (thus, translating |
Branch pushed to git repo; I updated commit sha1. This was a forced push. Last 10 new commits:
|
comment:10
rebased over the branch on #26856, added OSX (and perhaps even Cygwin?) support. |
Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:14
merged 8.6.rc0 in. |
comment:15
Retarging tickets optimistically to the next milestone. If you are responsible for this ticket (either its reporter or owner) and don't believe you are likely to complete this ticket before the next release (8.7) please retarget this ticket's milestone to sage-pending or sage-wishlist. |
comment:17
Minor comment: if you are changing the |
comment:18
Since for suffix in [b"so", b"dylib", b"dll"]:
handle = dlopen(b"libgap." + suffix, RTLD_NOW | RTLD_GLOBAL) |
Author: Dima Pasechnik, Erik Bray |
comment:21
Copying a file into cp -f "$SAGE_LOCAL/include/gap/config.h" "$GAP_ROOT/src/" |
comment:86
Seems to work on OS X. At least there is more stuff ( What else would you like me to check? |
comment:87
Replying to @jhpalmieri:
but some GAP packages were not fully functional, as their binaries (only few GAP packages have these) were installed in wrong directories...
could you run tests, just to have another data point? (I tested on OSX 10.13, I don't have 10.14, my OSX box is too old for it). |
comment:88
All tests pass for me. I didn't run full tests with |
comment:89
I don't have a great internet connection at the moment but I can test on macosx 10.14.2 by Monday, if not earlier. This said, since this is a package can some one please tell me what needs to be tested. Is |
comment:90
Replying to @AndrewAtLarge:
You just need to pull the branch, the GAP tarball is the same. So can be done over GSM :-) After merging the branch, you'll need to do
And if there are errors in tests, please posts them (from |
comment:91
On Cygwin I'm getting a few cases of this failure in
The "exit status -11" indicates that the I'm going to try backing out the changes from this ticket and rebuilding |
comment:92
we didn't build this part of guava before, that's why... |
comment:93
I don't see anything explicitly in this ticket that would cause it to start being built though, so I'm a little confused. Is it because we didn't have #27218? Does it just, silently not build or something? |
comment:94
AFAICT the code that uses it doesn't check if the |
comment:95
Well I was able to reproduce that issue with As a side note, I realized in testing this that it this ticket should also bump the patch version on the SPKG version. We should also clean up the commit history. I can go ahead and do that... |
comment:96
oops, sorry, I meant it was not installed before GAP 4.10. Yes, please, bump up the version and rebase. The follow-up to this is #27295. |
Reviewer: Erik Bray |
Changed branch from u/dimpase/gap_io to public/gap_io |
comment:99
Just reworded one of the commit messages. |
Changed branch from public/gap_io to |
These GAP packages extend GAP kernel functionality.
On the libgap side, this requires tinkering with the loader, see
on #22626 Erik proposed a patch.
Here is a branch that implements this.
We also need to fix GAP's gac/libtool mini-toolchain, used by some GAP pkgs. This involves patching of gac, and installing libtool, done in #27218.
Depends on #27218
Depends on #27230
Depends on #27380
CC: @embray @kiwifb @timokau @jhpalmieri @AndrewAtLarge
Component: packages: optional
Author: Dima Pasechnik, Erik Bray
Branch/Commit:
c84753f
Reviewer: Erik Bray
Issue created by migration from https://trac.sagemath.org/ticket/26930
The text was updated successfully, but these errors were encountered: