I wrote a super simple “fuzzer” that just ran every possible 2-byte program with the O flag and returned every program that had an output, including those that errored, which is where those 10 issues all at once came from
I’m still going through the results though, since most of them are duplicate errors, or are intended
also there’s literally thousands of programs in the result
I’ll put my fuzzing results in a gist if anybody else wants to help go through them. It basically just says “This program errored”, and then I run that program manually to see what the error was and see if it needs fixed.
I just realized, we’re probably going to need want to do another Vyxal LYAL once we do v3
[@Nitrodon: 60189476]
STDERR:
Traceback (most recent call last):
File "/home/Vyxal/mysite/vyxal/main.py", line 147, in execute_vyxal
exec(code, locals() | globals())
File "<string>", line 27, in <module>
File "/home/Vyxal/mysite/vyxal/elements.py", line 2790, in prime_factorisation
return {
File "/home/Vyxal/mysite/vyxal/elements.py", line 2793, in <lambda>
}.get(ts, lambda: vectorise(prime_factorisation, lhs, ctx=ctx))()
File "/home/Vyxal/mysite/vyxal/elements.py", line 3868, in vectorise
have fun, because I'm going to bed now. Since I'm awake when y'all land-down-underians are sleeping, I'll continue with question answering and teaching where possible tomorrow
however, I am at work during that time, so I may not be able to answer questions immediately, so if anybody else wants to do some teaching too, feel free
I noticed that an ŀ is documented as taking "fun a, fun b, any c", but I'm able to call that overload with str a, fun b, fun c. Is this just something that happens if no exact overload is found?
@Nitrodon It depends on the command. Some commands have a sort of "catch-all" overload that will run if none of the more specific ones are matched, and some will simply error or something like that. In this case, the ŀ command is able to take the (fun a, fun b, str c) arguments in any order, since all three orderings are explicitly programmed in.
Lines 1940-1944 define the (fun a, fun b, str c) overload, lines 1945-1949 define the (str a, fun b, fun c) overload, and lines 1950-1954 define the (fun a, str b, fun c) overload.
The documentation should probably be changed to reflect the fact that the order of those arguments don't matter.
@Fmbalbuena Rooms only freeze after 2 weeks of inactivity, so there's no need to antifreeze until around then. Also, you don't need to ping anybody when you do an antifreeze, all it needs is a message, so the first one would have sufficed.
Unless the antifreeze is necessary, it'll probably be frowned upon and may lead to further kicking and/or a chat ban, though a ban would have to be enacted by a mod
In general, unless a room is only a couple days away from freezing, you shouldn't have to worry about antifreezing