From c40b2df0979b99b9ffd4733c82238b18da96c19a Mon Sep 17 00:00:00 2001 From: Hojun-Cho Date: Mon, 25 May 2026 17:11:17 +0900 Subject: [PATCH] lib/types: add U*_MIN and RUNE_MIN Mirror Hare's types::limits U8_MIN..U64_MIN (all 0) and RUNE_MIN ('\0'), ref/hare/types/limits.ha:30,36,42,48,54. Pure literals, byte-id-neutral; the U*_MIN unblock checked sat_subu* which clamp to types.U*_MIN. --- lib/types/types.ww | 7 +++++++ selfhost/cmd/w6a/main.combined.ww | 7 +++++++ selfhost/cmd/w6c/main.combined.ww | 7 +++++++ selfhost/cmd/w6l/main.combined.ww | 7 +++++++ selfhost/cmd/ww/main.combined.ww | 7 +++++++ selfhost/cmd/wwdump/main.combined.ww | 7 +++++++ 6 files changed, 42 insertions(+) diff --git a/lib/types/types.ww b/lib/types/types.ww index be9df930..daa16f01 100644 --- a/lib/types/types.ww +++ b/lib/types/types.ww @@ -18,3 +18,10 @@ def U8_MAX: u8 = 255; def U16_MAX: u16 = 65535; def U32_MAX: u32 = 4294967295; def U64_MAX: u64 = 18446744073709551615; + +def U8_MIN: u8 = 0; +def U16_MIN: u16 = 0; +def U32_MIN: u32 = 0; +def U64_MIN: u64 = 0; + +def RUNE_MIN: rune = '\0'; diff --git a/selfhost/cmd/w6a/main.combined.ww b/selfhost/cmd/w6a/main.combined.ww index 05b22889..b899ee9b 100644 --- a/selfhost/cmd/w6a/main.combined.ww +++ b/selfhost/cmd/w6a/main.combined.ww @@ -771,6 +771,13 @@ def U16_MAX: u16 = 65535; def U32_MAX: u32 = 4294967295; def U64_MAX: u64 = 18446744073709551615; +def U8_MIN: u8 = 0; +def U16_MIN: u16 = 0; +def U32_MIN: u32 = 0; +def U64_MIN: u64 = 0; + +def RUNE_MIN: rune = '\0'; + // bytes — slice operations over []u8. Mirrors Hare's bytes module // (ref/hare/bytes/) for the in-tree subset: search/equality/prefix // helpers used by lib/encoding, lib/bufio, lib/memio. diff --git a/selfhost/cmd/w6c/main.combined.ww b/selfhost/cmd/w6c/main.combined.ww index 816a4e37..f284840b 100644 --- a/selfhost/cmd/w6c/main.combined.ww +++ b/selfhost/cmd/w6c/main.combined.ww @@ -771,6 +771,13 @@ def U16_MAX: u16 = 65535; def U32_MAX: u32 = 4294967295; def U64_MAX: u64 = 18446744073709551615; +def U8_MIN: u8 = 0; +def U16_MIN: u16 = 0; +def U32_MIN: u32 = 0; +def U64_MIN: u64 = 0; + +def RUNE_MIN: rune = '\0'; + // bytes — slice operations over []u8. Mirrors Hare's bytes module // (ref/hare/bytes/) for the in-tree subset: search/equality/prefix // helpers used by lib/encoding, lib/bufio, lib/memio. diff --git a/selfhost/cmd/w6l/main.combined.ww b/selfhost/cmd/w6l/main.combined.ww index 837b2a28..90daa61d 100644 --- a/selfhost/cmd/w6l/main.combined.ww +++ b/selfhost/cmd/w6l/main.combined.ww @@ -880,6 +880,13 @@ def U16_MAX: u16 = 65535; def U32_MAX: u32 = 4294967295; def U64_MAX: u64 = 18446744073709551615; +def U8_MIN: u8 = 0; +def U16_MIN: u16 = 0; +def U32_MIN: u32 = 0; +def U64_MIN: u64 = 0; + +def RUNE_MIN: rune = '\0'; + // bytes — slice operations over []u8. Mirrors Hare's bytes module // (ref/hare/bytes/) for the in-tree subset: search/equality/prefix // helpers used by lib/encoding, lib/bufio, lib/memio. diff --git a/selfhost/cmd/ww/main.combined.ww b/selfhost/cmd/ww/main.combined.ww index e789cc9a..a43bb127 100644 --- a/selfhost/cmd/ww/main.combined.ww +++ b/selfhost/cmd/ww/main.combined.ww @@ -771,6 +771,13 @@ def U16_MAX: u16 = 65535; def U32_MAX: u32 = 4294967295; def U64_MAX: u64 = 18446744073709551615; +def U8_MIN: u8 = 0; +def U16_MIN: u16 = 0; +def U32_MIN: u32 = 0; +def U64_MIN: u64 = 0; + +def RUNE_MIN: rune = '\0'; + // bytes — slice operations over []u8. Mirrors Hare's bytes module // (ref/hare/bytes/) for the in-tree subset: search/equality/prefix // helpers used by lib/encoding, lib/bufio, lib/memio. diff --git a/selfhost/cmd/wwdump/main.combined.ww b/selfhost/cmd/wwdump/main.combined.ww index a572cf9d..034e78a0 100644 --- a/selfhost/cmd/wwdump/main.combined.ww +++ b/selfhost/cmd/wwdump/main.combined.ww @@ -748,6 +748,13 @@ def U16_MAX: u16 = 65535; def U32_MAX: u32 = 4294967295; def U64_MAX: u64 = 18446744073709551615; +def U8_MIN: u8 = 0; +def U16_MIN: u16 = 0; +def U32_MIN: u32 = 0; +def U64_MIN: u64 = 0; + +def RUNE_MIN: rune = '\0'; + // bytes — slice operations over []u8. Mirrors Hare's bytes module // (ref/hare/bytes/) for the in-tree subset: search/equality/prefix // helpers used by lib/encoding, lib/bufio, lib/memio.