Skip to content

Replace most of sage.libs.gap with gappy #31404

@embray

Description

@embray

From the gappy README:

gappy provides a Python interface to the GAP
computer algebra system by linking to its
library interface.

This is a follow-up to #31297, particularly inspired by #31297 comment:17. It is a more disruptive change, in that instead of providing wrappers around gappy that are Sage Parents and Elements, it follows the example of cypari2 and just uses gappy more-or-less directly without any wrappers.

It remains completely agnostic to the coercion system, though I am not completely happy with this state of affairs. In particular you can see I had to add a special case to Polynomial.__call__ for handling evaluating polynomials on GapObjs, a case that used to work fine, but now needs a special case since other Sage types cannot be coerced to GapObjs.

Also had to add special cases for instantiating Integers and Rationals from GapObjs, but on the plus side this is now a bit faster.

Upstream: Reported upstream. No feedback yet.

CC: @videlec @dimpase @mkoeppe @slel

Component: interfaces

Keywords: gap libgap gappy

Work Issues: release gappy 0.1.0 final and update spkg version before merging, test against p_groups_cohomology

Author: Erik Bray

Branch/Commit: u/dimpase/gappy-without-wrappers @ 3f1d051

Reviewer: Dima Pasechnik, ...

Issue created by migration from https://trac.sagemath.org/ticket/31404

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions