You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently GAP supports the component Dependencies.OtherPackagesLoadedInAdvance in its PackageInfo.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.
The feature seems to be not used at all in distributed packages.
(I do not remember the reason why the feature had to be provided.)
The implementation of the feature is not complete.
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.
The GAP 4.13 feature of package extensions should suffice for the purposes mentioned above:
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 suggested PackageInto.g template (the file from the Example package).
The text was updated successfully, but these errors were encountered:
No package we distribute uses this feature. A few had OtherPackagesLoadedInAdvance occur in their PackageInfo.g, in most cases commented out. I've removed those in all cases where I have access to their git repository, except in the example package, where we could remove it now, though:
O.k., if we agree that OtherPackagesLoadedInAdvance should be regarded as deprecated then the next step is to remove it from the documentation, but to keep the current implementation.
(The pull request for that should get the labels "kind: removal or deprecation" and "release notes: use title", then the release notes will mention the deprecation.)
I can provide such a pull request.
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: