Skip to content

Loading digraphs or intpic or automata before GraphvizForGAP breaks due to Splash; rename Splash? #65

Open

Description

@fingolfin

... because the packages automata / digraphs / intpic all define a function Splash (unless Splash is already a bound variable in GAP), and GraphvizForGAP tries DeclareGlobalFunction("Splash") which errors out.

Also, while the Splash versions in automata and intpic use identical code, the one in digraphs seems to be different. So also these packages already have a hidden conflicts...

As @ruthhoffmann suggests this issues goes away if we make all these packages using GraphvizForGAP ;-) but that's a bit of a chicken-and-egg issue.

Another solution would be to rename Splash here (I am not that fond of the name anyway. How about DisplayGraphviz, Render, RenderGraphvi, ShowGraphviz, ...

Activity

  1. changed the title [-]Loading `digraphs` or `intpic` or `automata` before `GraphvizForGAP` breaks[/-] [+]Loading `digraphs` or `intpic` or `automata` before `GraphvizForGAP` breaks due to `Splash`; rename `Splash`?[/+] on Sep 28, 2026
  2. fingolfin commented on Sep 28, 2026

    @fingolfin
    MemberAuthor

    Looking at the package manual, many of is function names already start with Graphviz, so perhaps GraphvizShow, GraphvizDisplay, GraphvizRender, or even GraphvizSplash could work...?

  3. james-d-mitchell commented on Sep 28, 2026

    @james-d-mitchell
    Collaborator

    I'm also not super fond of Splash but it is the name that we've been using for years and years, which is one point in favour of keeping it. Maybe ShowGraphviz is a better name (I don't like Display because it's too similar to DisplayObj).

  4. ruthhoffmann commented on Sep 28, 2026

    @ruthhoffmann
    Member

    Seeing that a few pkgs have used it, there seems to be a common cause (I suspect it is GraphViz lingo) so maybe Splash is here to stay? :D

    Agree that Display is close to DisplayObj.

    I am in two minds about a GraphVizXXX naming. Although it would keep with the pkg's naming convention.

  5. ruthhoffmann commented on Sep 28, 2026

    @ruthhoffmann
    Member

    Also linking automata issue #20 which has the same mentioned there.

  6. james-d-mitchell commented on Sep 28, 2026

    @james-d-mitchell
    Collaborator

    One quick fix for this would just be to check if Splash is a bound global and only bind it when it isn't already bound, but this of course doesn't really work if the defined Splash behaves differently to the one in GraphvizForGAP.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions