Add placeholder package extensions for JuliaInterface/OscarInterface - #1221
Conversation
Step 1 towards semigroups#1220: register GAP package extensions in PackageInfo.g that load gap/julia.g / gap/oscar.g whenever JuliaInterface or OscarInterface happen to be available. Both files currently don't do anything. These files just add the structure for future work using Semigroups.jl to call libsemigroups via Julia. This design and chosen version numbers in PackageInfo.g were inspired by the alnuth OscarInterface extension and the PackageManager JuliaInterface extension.
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
Changes are low-risk scaffolding only, with minor style nits noted in review comments.
Review effort: Lite
Findings: 2
Open (2)
What changed in this PR
Adds GAP package extension stubs to Semigroups so that, when JuliaInterface or OscarInterface are available, Semigroups will also load corresponding (currently empty) extension files. This establishes the structure needed for the incremental Julia-based integration discussed in #1220.
Changes:
- Register two GAP package extensions in
PackageInfo.gfor JuliaInterface and OscarInterface. - Add placeholder extension entrypoints
gap/julia.gandgap/oscar.gthat currently only set a flag inSEMIGROUPS.
| File | Description |
|---|---|
| PackageInfo.g | Declares conditional extension loading for JuliaInterface/OscarInterface. |
| gap/julia.g | Adds placeholder extension file for future JuliaInterface integration. |
| gap/oscar.g | Adds placeholder extension file for future OscarInterface integration. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
|
Thanks @sullivan-james, as we sure that the OscarInterface and JuliaInterface packages really exist? |
|
Yes - these interfaces do exist in the core Oscar.jl and GAP.jl packages. Alnuth has OscarInterface implemented and PackageManager has JuliaInterface. I chose to add both. Realistically if long term goal is just to acccess libsemigroups through Julia you don't need OscarInterface (unless planning to access core Oscar methods) if I have understood correct. See links below: https://github.com/oscar-system/Oscar.jl/tree/master/gap/pkg/OscarInterface https://github.com/oscar-system/GAP.jl/tree/master/pkg/JuliaInterface |
|
@james-d-mitchell failing test seems unrelated to this PR, perhaps rerun? I don't have perms to do this. |
Yup it's unrelated, I'll try to review your PR just now. |

Step 1 towards #1220: register GAP package extensions in PackageInfo.g that load gap/julia.g / gap/oscar.g whenever JuliaInterface or OscarInterface happen to be available. Both files currently don't do anything. These files just add the structure for future work using Semigroups.jl to call libsemigroups via Julia.
This design and chosen version numbers in PackageInfo.g were inspired by the alnuth OscarInterface extension and the PackageManager JuliaInterface extension.