Support Matrix¶
This matrix summarizes the current Guppylang subset that can be lowered through HUGR into QIR for H-Series targets.
✅ = full support, *️⃣ = partial support, ❌ = unsupported
Guppy features¶
Features |
Support |
Remarks |
|---|---|---|
if elif else constructs |
✅ |
|
function overloading |
✅ |
|
Generics ( |
✅ |
|
First class or higher order functions |
✅ |
|
|
✅ |
|
Recursive functions or loops within |
✅ |
As long as compilation to HUGR succeeds |
Recursive functions or loops within |
*️⃣ |
Only if unrollable/serializable through chosen LLVM optimization level |
|
❌ |
Use non-comptime arrays internally |
|
❌ |
Uses non-comptime arrays internally |
|
❌ |
Currently unsupported on H2 hardware |
RNG: |
✅ |
Specific to Quantinuum hardware |
RNG: |
❌ |
Currently unsupported on H2 hardware |
RNG: |
❌ |
Uses non-comptime arrays internally |
RNG: |
❌ |
No dynamic float support planned for H2 hardware |
Data types¶
Data Types |
Support |
Caveats |
|---|---|---|
int |
✅ |
|
bool |
✅ |
|
nat |
✅ |
|
struct |
✅ |
Cannot contain arrays |
float |
*️⃣ |
Must be runtime constant, arithmetic comptime only |
array |
*️⃣ |
Comptime only |
tuple |
*️⃣ |
Unpacking with |
The more detailed rules behind the partial entries are covered in Collections and structs.