You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Define and implement Whale lowering for Wave integers wider than 128 bits #884
At fd07427f4a976de05e38eff3ee1760db97fbb761 on Linux amd64 with Rust 1.89 and locked Whale 020d2a4, lexing, parsing and TypedProgram lowering succeed, but calling whale::emit_ir on this source returns Whale backend does not yet support type Uint(256):
fun identity(x: u256) -> u256 { return x; }
Scope
Decide a Wave-to-Whale representation for existing 256–1024-bit integers, then implement operations/conversions without narrowing to 128 bits. Inspect upstream types and coordinate required capabilities; use Utils and compiler-owned freestanding arithmetic where appropriate. Full-value constant shift checks in #860 are not wider runtime support.
Difficulty: very hard.
Completion criteria
Record the representation and backend capability contract.
Preserve wrapping, conversions, comparisons and checked shift semantics.
Provide boundary tests and explicit diagnostics for remaining operations.
Please mention @LunaStev to discuss the design before starting implementation.
Activity