-
Notifications
You must be signed in to change notification settings - Fork 162
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
deprecate OtherPackagesLoadedInAdvance
#5773
Comments
No package we distribute uses this feature. A few had See also gap-packages/example#40 |
O.k., if we agree that |
Is is deprecated, and we are announcing that in the 4.14 notes, so I guess from this point of view this issue is resolved. Of course the next step kinda would be to also remove it (perhaps from 4.15). So perhaps we leave this a bit longer open as a reminder to finally remove it after 4.14 is out |
Currently GAP supports the component
Dependencies.OtherPackagesLoadedInAdvance
in itsPackageInfo.g
records.Its intended value is a list of package names/versions, meaning that these packages have to be completely loaded before one can start to load the package in question.
The idea is that code from the package is then allowed to call functions from the packages that are known to be loaded, or to extend data provided by these packages.
I think we should deprecate and eventually abolish this feature, for the following reasons.
(I do not remember the reason why the feature had to be provided.)
One can construct package dependencies in such a way that for a package A requiring another B to be loaded in advance, loading A works in a GAP session with sufficiently many loaded packages, works in a new GAP session but without loading suggested packages, but does not work in a new GAP session such that also suggested packages shall get loaded.
Instead of requiring in package A that package B must be loaded in advance, require package B as a needed package of A, add a package extension to A stating that some file F will get read as soon as B is available, and put the code pieces from A that call functions from B into the file F or into files that get read via
ReadPackage
statements in F.This way, the load order for files from A and B becomes less important.
The component
Dependencies.OtherPackagesLoadedInAdvance
is mentioned only in one place in the Reference Manual, and this place cannot be found with the interactive help. The definition of the component can be found in the suggestedPackageInto.g
template (the file from the Example package).The text was updated successfully, but these errors were encountered: