From ccaf0587bdc96c538972121c25542d3e3254c455 Mon Sep 17 00:00:00 2001 From: tapple Date: Mon, 9 Mar 2026 15:12:14 -0700 Subject: [PATCH 1/4] Add new functions `bit32.s32` and `bit32.smul` --- generated/slua_default.d.luau | 2 ++ generated/slua_default.docs.json | 8 +++++ generated/slua_keywords_pretty.xml | 55 ++++++++++++++++++++++++++++++ generated/slua_selene.yml | 14 ++++++++ slua_definitions.yaml | 21 ++++++++++++ 5 files changed, 100 insertions(+) diff --git a/generated/slua_default.d.luau b/generated/slua_default.d.luau index 138a944..8575982 100644 --- a/generated/slua_default.d.luau +++ b/generated/slua_default.d.luau @@ -168,6 +168,8 @@ declare bit32: { replace: (n: number, v: number, field: number, width: number?) -> number, rrotate: (n: number, i: number) -> number, rshift: (n: number, i: number) -> number, + s32: (n: number) -> number, + smul: (a: number, b: number) -> number, countlz: (n: number) -> number, countrz: (n: number) -> number, byteswap: (n: number) -> number, diff --git a/generated/slua_default.docs.json b/generated/slua_default.docs.json index 5dad131..35030d0 100644 --- a/generated/slua_default.docs.json +++ b/generated/slua_default.docs.json @@ -66,6 +66,14 @@ "documentation": "Shifts n by i bits to the right. If i is negative, a left shift is performed.", "learn_more_link": "https://create.roblox.com/docs/reference/engine/libraries/bit32#rshift" }, + "@sl-slua/global/bit32.s32": { + "documentation": "Mod this number from float64 range to signed int32 range and truncate to integer. Makes integer arithmetic compatable with LSL.", + "learn_more_link": "https://create.roblox.com/docs/reference/engine/libraries/bit32#s32" + }, + "@sl-slua/global/bit32.smul": { + "documentation": "Multiplies two signed 32-bit integers. Returns the result as a 32-bit integer, wrapping as necessary. Avoids precision loss ascociated with float64 multiplication. Compatable with LSL integer multiplication.", + "learn_more_link": "https://create.roblox.com/docs/reference/engine/libraries/bit32#smul" + }, "@sl-slua/global/bit32.countlz": { "documentation": "Count leading zeros", "learn_more_link": "https://create.roblox.com/docs/reference/engine/libraries/bit32#countlz" diff --git a/generated/slua_keywords_pretty.xml b/generated/slua_keywords_pretty.xml index c8df3b2..5a3de52 100644 --- a/generated/slua_keywords_pretty.xml +++ b/generated/slua_keywords_pretty.xml @@ -11702,6 +11702,61 @@ Returns true if result is non-zero. tooltip Shifts n by i bits to the right. If i is negative, a left shift is performed. + bit32.s32 + + arguments + + + n + + tooltip + Number to truncate. + type + number + + + + energy + 10.0 + return + number + sleep + 0.0 + tooltip + Mod this number from float64 range to signed int32 range and truncate to integer. Makes integer arithmetic compatable with LSL. + + bit32.smul + + arguments + + + a + + tooltip + Left factor. + type + number + + + + b + + tooltip + Right factor. + type + number + + + + energy + 10.0 + return + number + sleep + 0.0 + tooltip + Multiplies two signed 32-bit integers. Returns the result as a 32-bit integer, wrapping as necessary. Avoids precision loss ascociated with float64 multiplication. Compatable with LSL integer multiplication. + buffer energy diff --git a/generated/slua_selene.yml b/generated/slua_selene.yml index 29610ad..5c0396f 100644 --- a/generated/slua_selene.yml +++ b/generated/slua_selene.yml @@ -4026,6 +4026,20 @@ globals: must_use: true description: Shifts n by i bits to the right. If i is negative, a left shift is performed. + bit32.s32: + args: + - type: number + must_use: true + description: Mod this number from float64 range to signed int32 range and truncate + to integer. Makes integer arithmetic compatable with LSL. + bit32.smul: + args: + - type: number + - type: number + must_use: true + description: Multiplies two signed 32-bit integers. Returns the result as a 32-bit + integer, wrapping as necessary. Avoids precision loss ascociated with float64 + multiplication. Compatable with LSL integer multiplication. bit32.countlz: args: - type: number diff --git a/slua_definitions.yaml b/slua_definitions.yaml index 4b2b7f3..06ddabf 100644 --- a/slua_definitions.yaml +++ b/slua_definitions.yaml @@ -463,6 +463,27 @@ modules: type: number returnType: number must-use: true + - name: s32 + comment: Mod this number from float64 range to signed int32 range and truncate to integer. + Makes integer arithmetic compatable with LSL. + parameters: + - name: "n" + comment: Number to truncate. + type: number + returnType: number + must-use: true + - name: smul + comment: Multiplies two signed 32-bit integers. Returns the result as a 32-bit integer, wrapping as necessary. + Avoids precision loss ascociated with float64 multiplication. Compatable with LSL integer multiplication. + parameters: + - name: a + comment: Left factor. + type: number + - name: b + comment: Right factor. + type: number + returnType: number + must-use: true - name: countlz comment: Count leading zeros parameters: From ab611aeb1d848f38298c0a331ff17e6e7897bf71 Mon Sep 17 00:00:00 2001 From: tapple Date: Mon, 9 Mar 2026 15:23:28 -0700 Subject: [PATCH 2/4] doc --- generated/slua_default.docs.json | 2 +- generated/slua_keywords_pretty.xml | 2 +- generated/slua_selene.yml | 6 +++--- slua_definitions.yaml | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/generated/slua_default.docs.json b/generated/slua_default.docs.json index 35030d0..f897a27 100644 --- a/generated/slua_default.docs.json +++ b/generated/slua_default.docs.json @@ -71,7 +71,7 @@ "learn_more_link": "https://create.roblox.com/docs/reference/engine/libraries/bit32#s32" }, "@sl-slua/global/bit32.smul": { - "documentation": "Multiplies two signed 32-bit integers. Returns the result as a 32-bit integer, wrapping as necessary. Avoids precision loss ascociated with float64 multiplication. Compatable with LSL integer multiplication.", + "documentation": "Multiplies two signed 32-bit integers. Returns the result as a signed 32-bit integer, wrapping as necessary. Avoids precision loss ascociated with float64 multiplication. Compatable with LSL integer multiplication.", "learn_more_link": "https://create.roblox.com/docs/reference/engine/libraries/bit32#smul" }, "@sl-slua/global/bit32.countlz": { diff --git a/generated/slua_keywords_pretty.xml b/generated/slua_keywords_pretty.xml index 5a3de52..d4b3b81 100644 --- a/generated/slua_keywords_pretty.xml +++ b/generated/slua_keywords_pretty.xml @@ -11755,7 +11755,7 @@ Returns true if result is non-zero. sleep 0.0 tooltip - Multiplies two signed 32-bit integers. Returns the result as a 32-bit integer, wrapping as necessary. Avoids precision loss ascociated with float64 multiplication. Compatable with LSL integer multiplication. + Multiplies two signed 32-bit integers. Returns the result as a signed 32-bit integer, wrapping as necessary. Avoids precision loss ascociated with float64 multiplication. Compatable with LSL integer multiplication. buffer diff --git a/generated/slua_selene.yml b/generated/slua_selene.yml index 5c0396f..e84bba9 100644 --- a/generated/slua_selene.yml +++ b/generated/slua_selene.yml @@ -4037,9 +4037,9 @@ globals: - type: number - type: number must_use: true - description: Multiplies two signed 32-bit integers. Returns the result as a 32-bit - integer, wrapping as necessary. Avoids precision loss ascociated with float64 - multiplication. Compatable with LSL integer multiplication. + description: Multiplies two signed 32-bit integers. Returns the result as a signed + 32-bit integer, wrapping as necessary. Avoids precision loss ascociated with + float64 multiplication. Compatable with LSL integer multiplication. bit32.countlz: args: - type: number diff --git a/slua_definitions.yaml b/slua_definitions.yaml index 06ddabf..597cce2 100644 --- a/slua_definitions.yaml +++ b/slua_definitions.yaml @@ -473,7 +473,7 @@ modules: returnType: number must-use: true - name: smul - comment: Multiplies two signed 32-bit integers. Returns the result as a 32-bit integer, wrapping as necessary. + comment: Multiplies two signed 32-bit integers. Returns the result as a signed 32-bit integer, wrapping as necessary. Avoids precision loss ascociated with float64 multiplication. Compatable with LSL integer multiplication. parameters: - name: a From 24529e96f6c7e8fde94596e84652c173e887e1ee Mon Sep 17 00:00:00 2001 From: tapple Date: Wed, 11 Mar 2026 09:12:15 -0700 Subject: [PATCH 3/4] fix typos --- slua_definitions.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/slua_definitions.yaml b/slua_definitions.yaml index 597cce2..669dbb9 100644 --- a/slua_definitions.yaml +++ b/slua_definitions.yaml @@ -464,7 +464,7 @@ modules: returnType: number must-use: true - name: s32 - comment: Mod this number from float64 range to signed int32 range and truncate to integer. + comment: Wrap this number from float64 range to signed int32 range and truncate to integer. Makes integer arithmetic compatable with LSL. parameters: - name: "n" @@ -474,7 +474,7 @@ modules: must-use: true - name: smul comment: Multiplies two signed 32-bit integers. Returns the result as a signed 32-bit integer, wrapping as necessary. - Avoids precision loss ascociated with float64 multiplication. Compatable with LSL integer multiplication. + Avoids precision loss ascociated with float64 multiplication. Compatible with LSL integer multiplication. parameters: - name: a comment: Left factor. From 1c32dd17e1a121684e5bd2efbf7a81f8a1569523 Mon Sep 17 00:00:00 2001 From: tapple Date: Thu, 12 Mar 2026 07:55:37 -0700 Subject: [PATCH 4/4] ./gen_all_definitions.sh --- generated/slua_default.docs.json | 4 ++-- generated/slua_keywords_pretty.xml | 4 ++-- generated/slua_selene.yml | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/generated/slua_default.docs.json b/generated/slua_default.docs.json index f897a27..c3fcaf8 100644 --- a/generated/slua_default.docs.json +++ b/generated/slua_default.docs.json @@ -67,11 +67,11 @@ "learn_more_link": "https://create.roblox.com/docs/reference/engine/libraries/bit32#rshift" }, "@sl-slua/global/bit32.s32": { - "documentation": "Mod this number from float64 range to signed int32 range and truncate to integer. Makes integer arithmetic compatable with LSL.", + "documentation": "Wrap this number from float64 range to signed int32 range and truncate to integer. Makes integer arithmetic compatable with LSL.", "learn_more_link": "https://create.roblox.com/docs/reference/engine/libraries/bit32#s32" }, "@sl-slua/global/bit32.smul": { - "documentation": "Multiplies two signed 32-bit integers. Returns the result as a signed 32-bit integer, wrapping as necessary. Avoids precision loss ascociated with float64 multiplication. Compatable with LSL integer multiplication.", + "documentation": "Multiplies two signed 32-bit integers. Returns the result as a signed 32-bit integer, wrapping as necessary. Avoids precision loss ascociated with float64 multiplication. Compatible with LSL integer multiplication.", "learn_more_link": "https://create.roblox.com/docs/reference/engine/libraries/bit32#smul" }, "@sl-slua/global/bit32.countlz": { diff --git a/generated/slua_keywords_pretty.xml b/generated/slua_keywords_pretty.xml index d4b3b81..792177a 100644 --- a/generated/slua_keywords_pretty.xml +++ b/generated/slua_keywords_pretty.xml @@ -11723,7 +11723,7 @@ Returns true if result is non-zero. sleep 0.0 tooltip - Mod this number from float64 range to signed int32 range and truncate to integer. Makes integer arithmetic compatable with LSL. + Wrap this number from float64 range to signed int32 range and truncate to integer. Makes integer arithmetic compatable with LSL. bit32.smul @@ -11755,7 +11755,7 @@ Returns true if result is non-zero. sleep 0.0 tooltip - Multiplies two signed 32-bit integers. Returns the result as a signed 32-bit integer, wrapping as necessary. Avoids precision loss ascociated with float64 multiplication. Compatable with LSL integer multiplication. + Multiplies two signed 32-bit integers. Returns the result as a signed 32-bit integer, wrapping as necessary. Avoids precision loss ascociated with float64 multiplication. Compatible with LSL integer multiplication. buffer diff --git a/generated/slua_selene.yml b/generated/slua_selene.yml index e84bba9..c1ed29e 100644 --- a/generated/slua_selene.yml +++ b/generated/slua_selene.yml @@ -4030,7 +4030,7 @@ globals: args: - type: number must_use: true - description: Mod this number from float64 range to signed int32 range and truncate + description: Wrap this number from float64 range to signed int32 range and truncate to integer. Makes integer arithmetic compatable with LSL. bit32.smul: args: @@ -4039,7 +4039,7 @@ globals: must_use: true description: Multiplies two signed 32-bit integers. Returns the result as a signed 32-bit integer, wrapping as necessary. Avoids precision loss ascociated with - float64 multiplication. Compatable with LSL integer multiplication. + float64 multiplication. Compatible with LSL integer multiplication. bit32.countlz: args: - type: number