-
-
Notifications
You must be signed in to change notification settings - Fork 481
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
Do not restrict libgap.xxx to a predefined list #27911
Comments
comment:2
Does anyone remember the original motivation for having a fixed list? For special casing gap functions? New commits:
|
Commit: |
comment:3
Replying to @nthiery:
for tab-completions, perhaps? I'd rather see |
comment:4
Hi Dima! Thanks for the quick feedback.
Yeah, I can indeed see the motivation of presenting a trimmed down tab-completion list for users. Although (but that's a different discussion) I would tend to consider that we should not be maintaining such a list ourselves, but rather somehow fetch it from GAP: they know better! But it's one thing not to advertise, and another to prevent access.
I am not sure what you mean. We agree that, if GAP or some GAP package defines some important top level entry point |
comment:7
All tests passed here (up to a presumably unrelated timeout in |
Author: Nicolas M. Thiéry |
comment:9
Looking back in time, the fixed list was introduced in #19917. Handling package loading was postponed to a later ticket. |
comment:10
For the record: before this change:
After the change:
So no noticeable influence on tight loops involving |
comment:11
Replying to @nthiery:
Here's the sage-devel thread where I asked this: https://groups.google.com/d/msg/sage-devel/iPTfFXUk8XU/UX3qr42xAQAJ As Volker noted (more importantly for #27923) part of the issue is that building a full list for tab-completion is slow. I wonder if that couldn't be sped up though through various things like caching, and smarter search techniques. Though I also have to wonder why getting a list of global variable names from GAP would be so slow in the first place. Even with some ~10000 entries it shouldn't take that long. A similarly-sized set of global variables on Python does not require as much overhead. Might be worth looking into on the GAP side if there's anything that an be done. |
comment:12
Ok. Thanks for the feedback. So this is all about #27923 (tab completion). I gather that, for this ticket (attribute access), there is no unremembered reason to restrict to a fixed list. Good. Let's go for it then. Can someone review the current implementation? Thanks, |
comment:13
I think building the autocomplete list is slow because gap is grinding though of its files; Just sending a bunch of strings over to Sage is not going to be noticeable. Also it tends to cough up a lot of package-private functions in GAP that necessarily are in the public namespace but users aren't really supposed to access. |
Reviewer: Volker Braun |
Changed branch from u/nthiery/do_not_restric_libgap_xxx_to_a_predefined_list to |
Changed commit from |
comment:16
Not in Sage 8.8. Let's please to try keep tickets' milestones related to the release in which we actually intend to include them, and in particular the release in which they were actually included, especially when closing tickets. |
Currently
libgap.xxx
fails ifxxx
is not in one of the two hard coded listscommon_gap_functions
orcommon_gap_globals
. This has the following consequences:libgap.xxx
.Proposal: resort to libgap.eval("xxx") if
xxx
is not in the predefined lists. In fact, it seems that we could always resort to libgap.eval("xxx"): tests seems to be passing as well with the attached branch, and the code is simpler.CC: @vbraun @tscrim @dimpase @embray
Component: interfaces
Author: Nicolas M. Thiéry
Branch:
d624b29
Reviewer: Volker Braun
Issue created by migration from https://trac.sagemath.org/ticket/27911
The text was updated successfully, but these errors were encountered: