Skip to content

Load Julia support as a package extension - #53

Merged
kamalsaleh merged 1 commit into
homalg-project:masterfrom
fingolfin:mh/package-extensions
Oct 2, 2026
Merged

kamalsaleh merged 1 commit into
homalg-project:masterfrom
fingolfin:mh/package-extensions

Conversation

@fingolfin

@fingolfin fingolfin commented Oct 2, 2026 •

Copy link
Copy Markdown
Member

Until now gap/Julia.g{d,i} (cdd_PolyhedronByInequalities, cdd_PolyhedronByGenerators) were read only if JuliaInterface and ToolsForHomalg were already marked for loading when CddInterface got loaded. JuliaInterface is not the problem: inside Julia it is loaded before every other package. But ToolsForHomalg is not a dependency of CddInterface, so whether the feature is available depended on load order: in GAP running inside Julia, LoadPackage("CddInterface"); LoadPackage("ToolsForHomalg"); silently left it out.

This PR declares that code in the Extensions component of PackageInfo.g instead (see gap-system/gap#5760 and the section "Extensions Provided by a Package" in the GAP reference manual). GAP reads an extension as soon as all packages it needs are loaded, in whichever order that happens.

Extensions require GAP 4.13 (released 2024), so this raises the minimal GAP version to 4.13 and drops 4.12 from CI.

Tested: JuliaInterface is not available on my machine, so I used a stub package providing the few globals ToolsForHomalg needs. With it, the extension is loaded in both load orders and is not loaded without JuliaInterface. The package tests pass.

🤖 Generated with Claude Code

gap/Julia.g{d,i} were read only if JuliaInterface and ToolsForHomalg
were marked for loading when CddInterface itself got loaded; loading
them afterwards never provided cdd_PolyhedronByInequalities and
cdd_PolyhedronByGenerators. Declare them in the Extensions component of
PackageInfo.g instead; GAP then reads them as soon as all three packages
are loaded, in any order. Extensions require GAP 4.13, so drop GAP 4.12
from CI.

Assisted-by: Claude Code (Opus 5.5)
@codecov

codecov Bot commented Oct 2, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 89.43%. Comparing base (15c66dc) to head (c03c73f).

Additional details and impacted files
@@           Coverage Diff           @@
##           master      #53   +/-   ##
=======================================
  Coverage   89.43%   89.43%           
=======================================
  Files           5        5           
  Lines         899      899           
  Branches       30       30           
=======================================
  Hits          804      804           
  Misses         91       91           
  Partials        4        4           
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@kamalsaleh
kamalsaleh merged commit 5ce3db7 into homalg-project:master Oct 2, 2026
6 checks passed
@fingolfin
fingolfin deleted the mh/package-extensions branch October 2, 2026 14:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants