lsl-luau discrepancy with mono: register exhaustion with concatenation & possible performance issue of list string casting
@HaroldCindy đang làm issue này rồi.
Từ ngày 4/11/2026.
Đánh giá
Issue này chưa được đánh giá.
Mô tả
While trying to stress test / benchmark a comparison for (string) list and llDumpList2String, I came across a register exhaustion for a script in lsl-luau that works in mono.
I'm reporting both as one canny because I'm unsure if these are related.
A) First, for the benchmark:
In LSO:
=== list-to-string benchmark: 100 iterations x 300 items ===
(string)list total = 1040.432007 ms mean = 10.404320 ms
llDumpList2String total = 1896.921143 ms mean = 18.969212 ms
ratio (string/dump) = 0.548485x
=== DONE ===
In Mono:
=== list-to-string benchmark: 100 iterations x 300 items ===
(string)list total = 226.023000 ms mean = 2.260230 ms
llDumpList2String total = 316.186000 ms mean = 3.161860 ms
ratio (string/dump) = 0.714842x
=== DONE ===
In LSL-LUAU:
=== list-to-string benchmark: 100 iterations x 300 items ===
(string)list total = 2287.902000 ms mean = 22.879020 ms
llDumpList2String total = 589.087000 ms mean = 5.890871 ms
ratio (string/dump) = 3.883810x
=== DONE ===
=== list-to-string benchmark: 100 reps x 500 items ===
(string)list total = 4536.675000 ms mean = 45.366750 ms
llDumpList2String total = 1022.474000 ms mean = 10.224740 ms
ratio (string/dump) = 4.436957x
=== DONE ===
Something about how casting a list to a string is way worse in lsl-luau. My thought was that it's likely something that could be optimized if llDumpList2String is about 4x faster already.
B) Second, a test script of the discrepancy is the following
default
{
state_entry()
{
integer i = 1;
string s =
(string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i +
(string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i +
(string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i +
(string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i +
(string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i +
(string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i +
(string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i +
(string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i +
(string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i +
(string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i + (string)i ;
llOwnerSay(s);
}
}
It prints "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111" in mono, but in lsl-luau it fails to compile with "Out of registers when trying to allocate 1 registers: exceeded limit 255"
I doubt there are many real use cases where this would have an impact after switching off mono, but it is still a notable difference.
- Ngôn ngữ chính
- C++
- Star
- 25
- Fork
- 14
- Merge trung bình
- 1 ngày 4 giờ
- Pull request đã merge (30 ngày)
- 3
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của secondlife/slua
-
State changes discrepancy in lsl-luau vs monoCó thể đã có người làm @HaroldCindy đã nhận 2 ngày trước. Đang mở
secondlife/slua#111 · 1 bình luận · 1 người được giao ·
-
A list of lsl-luau vs mono discrepancies observed on luau 2026-07-24 channelCó thể đã có người làm @HaroldCindy đã nhận 2 ngày trước. Đang mở
secondlife/slua#110 · 1 người được giao ·
-
lua string.gmatch can become stuckCó thể đã có người làm @HaroldCindy đã nhận 2 ngày trước. Đang mở
secondlife/slua#109 · 1 người được giao ·
-
math differences between Mono and Lua in the low bitsCó thể đã có người làm @HaroldCindy đã nhận 4 ngày trước. Đang mởbug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
secondlife/slua#106 · 5 bình luận · 1 người được giao ·
-
Lua Portal for wiki documentationCó thể làm lại được @kylelinden đã nhận 53 ngày trước và không có pull request nào đang mở. Đang mởdocumentation team:server
secondlife/slua#91 · 1 bình luận · 1 người được giao ·
Tất cả issue của secondlife/slua
Issue tương tự
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Sunrisepeak/mcpp-language-server#80 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
#2754 make deepseek api not workĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
xiaoyifang/goldendict-ng#3148 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 91/100
triton-inference-server/server#9069 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Maintainer thường phản hồi trong vòng 4 ngày