gap-system/gap

Use package extensions in more packages

Opened this issue · 0 comments

GAP 4.13.0 introduced package extensions, see PR #5375 plus some example added in PR #5490.

They are implemented in a way that packages can use them but still be compatible with older GAP versions (albeit of course without the benefits). So far this feature is used by atlasrep, browse, ctbllib, packagemanager.

I think it is time to let more packages use them. Basically anything that calls IsPackageMarkedForLoading in its init.g or read.g is a likely candidate for this.

So here is an incomplete list of packages that could benefit from them. I plan to extend it over time, please feel free to add to it.

  • aclib: for crystcat
  • cddlib: for JuliaInterface + ToolsForHomalg
  • genss: for dependency on io
    • it really is only for pickling support (and there is already code in its read.g to make it work with io not loaded).
  • hap: for a ton of packages
  • lpres: for ACE (and pargap but that one doesn't work anymore anyway)
  • numericalsgps: for NormalizInterface, singular, and a bunch more
  • polenta: for aclib
  • sglppow: for LieRing + LiePRing
  • typeset: for digraphs

For each the plan would be to eventually either open an issue or a PR addressing this.