Skip to content

bloqade.gemini.common.validation.recursion.Cycle

← Module overview

classCyclesource

bloqade.gemini.common.validation.recursion.Cycle

A cycle, plus how the validated kernel reaches it.

Signature
class Cycle(route: tuple[ir.Method, ...], members: tuple[ir.Method, ...])

members is [m0, ..., mn] where mn calls m0. route is the path from the entry method down to m0, excluding the cycle itself, and is empty when the entry method is part of the cycle.

The route matters because the cycle is often not in the kernel being validated. Any Gemini kernel containing a cycle is rejected at its own definition, so it can never become a callee — but a kernel built with another dialect group (squin.kernel, say) runs no such guard, and a Gemini kernel may invoke one. Then the cycle sits one or more hops away and naming it alone would not say how it is reached.

Parameters

NameTypeDescription
routetuple[ir.Method, ...]
memberstuple[ir.Method, ...]

Attributes

NameTypeDescription
routetuple[ir.Method, ...]
memberstuple[ir.Method, ...]