> 1740528025 248780 PRIVMSG #esolangs :14[[07Lythnology14]]4 M10 02https://esolangs.org/w/index.php?diff=152726&oldid=152485 5* 03RainbowDash 5* (+5) 10/* Creating Words */ < 1740528223 910856 :mtm!~textual@47.202.75.129 QUIT :Ping timeout: 245 seconds < 1740528358 465298 :mtm!~textual@47.202.75.129 JOIN #esolangs mtm :Textual User < 1740528521 45193 :amby!~ambylastn@ward-15-b2-v4wan-167229-cust809.vm18.cable.virginm.net QUIT :Quit: so long suckers! i rev up my motorcylce and create a huge cloud of smoke. when the cloud dissipates im lying completely dead on the pavement > 1740530110 356607 PRIVMSG #esolangs :14[[07Joke language list14]]4 10 02https://esolangs.org/w/index.php?diff=152727&oldid=152651 5* 03Juanp32 5* (+72) 10/* Brainfuck derivatives */ < 1740531960 647485 :CanisCorvus!~CanisCorv@shef-17-b2-v4wan-169232-cust98.vm3.cable.virginm.net QUIT :Quit: Client closed < 1740539296 102103 :Lykaina!~lykaina@user/lykaina JOIN #esolangs Lykaina :Lykaina < 1740539411 985673 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :anyone here know who Hakerh400 is on the wiki? > 1740539718 88635 PRIVMSG #esolangs :14[[07User talk:Hakerh40014]]4 10 02https://esolangs.org/w/index.php?diff=152728&oldid=119857 5* 03Lykaina 5* (+208) 10/* Afth Language */ new section < 1740539773 286329 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :left them a message < 1740540505 890229 :tromp!~textual@2a02:a210:cba:8500:b949:287e:6bbd:873b JOIN #esolangs * :Textual User < 1740540516 736111 :tromp!~textual@2a02:a210:cba:8500:b949:287e:6bbd:873b QUIT :Client Quit < 1740541333 352773 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :Basically, they made an Afth interpreter and linked it to the wiki. I don't know Haskell. < 1740541473 827285 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :so i offered assistance in implementing the language. > 1740543614 999401 PRIVMSG #esolangs :14[[07Fish14]]4 10 02https://esolangs.org/w/index.php?diff=152729&oldid=152693 5* 03PrySigneToFry 5* (+573) 10 < 1740543673 917628 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Lykaina: I don't think I can answer that question in a helpful way. What's the problem? < 1740543694 913130 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :none < 1740543724 644192 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :i was wondering if someone here used that username on the wiki < 1740543731 702026 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :wanted to say hi < 1740543983 264976 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Ah, okay. I haven't seen them in IRC, sorry. < 1740544062 348935 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :They write lots of interpreters for languages that interest them. I can empathize, because I do that too. < 1740544616 405658 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :wanted to offer help with, for example, ensuring compatibility. < 1740544767 152758 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :Lykaina: you can try to ask in the two discord groups < 1740544777 339958 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :or just leave a message on the esowiki < 1740544823 521084 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :b_jonas: sent email and left message on their talk page < 1740544837 545840 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :There's two Discord guilds now? I guess they had more fallout drama. < 1740544975 666636 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :i didn't know there were any < 1740545132 191508 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :there's been two for ages I think < 1740545169 331646 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :korvo: https://esolangs.org/wiki/Esolang:Community_portal#Other_real-time_discussion_communities lists three < 1740545213 433430 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Oh, and I had thought that we didn't endorse any of them. But I guess I'm wrong about that? < 1740545319 761250 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I wonder when multiple Reddit guilds will pop up too < 1740545357 528236 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I'm not sure mentioning their existence is necessarily an endorsement, and it's hard to argue it's offtopic (even though I dislike suggesting the use of Discord for anything) < 1740545372 709892 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :korvo: this channel is full of bots yet there's no bridge from any of the Discord guilds to here, so I think that counts as not endorsing them < 1740545411 788635 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I assume there's a reason why they haven't merged < 1740545510 199563 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I don't think I've ever seen Discord communities merge. they just keep splitting. even though Discord is built in a way where individual users can hide or show groups of channels within a guild, so the infrastructure is supposed to support users with different but somewhat overlapping interests within a guild. < 1740545512 837868 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Sure. I had just recalled that there was some drama that led to the wiki disavowing the Discord guild. But maybe that was a different community. It's hard to keep track of Discord drama. > 1740546150 397299 PRIVMSG #esolangs :14[[07User talk:BrainFuckGirl14]]4 10 02https://esolangs.org/w/index.php?diff=152730&oldid=152714 5* 03MihaiEso 5* (+360) 10 > 1740546840 434840 PRIVMSG #esolangs :14[[07Esolang:Sandbox14]]4 10 02https://esolangs.org/w/index.php?diff=152731&oldid=152712 5* 03MihaiEso 5* (+98) 10 > 1740547179 643812 PRIVMSG #esolangs :14[[07User:MihaiEso/Targets14]]4 10 02https://esolangs.org/w/index.php?diff=152732&oldid=141957 5* 03MihaiEso 5* (-62) 10 > 1740547271 770146 PRIVMSG #esolangs :14[[07Fsx14]]4 N10 02https://esolangs.org/w/index.php?oldid=152733 5* 03SerialDesignationF 5* (+798) 10Created page with "Fsx (F=) esolang: '''About:''' Fsx is a esolang made by F with some Murder Drones related stuff in it. '''Instructions: Category Function (f):''' |j (): if |n (): else |v: while '''Category Input (j):''' |: input | (): input with p > 1740547310 355747 PRIVMSG #esolangs :14[[07Fsx14]]4 M10 02https://esolangs.org/w/index.php?diff=152734&oldid=152733 5* 03SerialDesignationF 5* (+12) 10 > 1740547328 384637 PRIVMSG #esolangs :14[[07Fsx14]]4 10 02https://esolangs.org/w/index.php?diff=152735&oldid=152734 5* 03SerialDesignationF 5* (-12) 10 > 1740547341 343685 PRIVMSG #esolangs :14[[07Fsx14]]4 10 02https://esolangs.org/w/index.php?diff=152736&oldid=152735 5* 03SerialDesignationF 5* (+1) 10 > 1740547621 450378 PRIVMSG #esolangs :14[[07Fsx14]]4 10 02https://esolangs.org/w/index.php?diff=152737&oldid=152736 5* 03SerialDesignationF 5* (+2) 10 > 1740547977 645187 PRIVMSG #esolangs :14[[07Template:NewUserPage14]]4 N10 02https://esolangs.org/w/index.php?oldid=152738 5* 03MihaiEso 5* (+146) 10Created page with "This is user {{{1}}}. You are allowed to replace all of this with your own content. Say like a long "Hello!" message and list your esolangs here." > 1740548005 244734 PRIVMSG #esolangs :14[[07User:SerialDesignationF14]]4 N10 02https://esolangs.org/w/index.php?oldid=152739 5* 03MihaiEso 5* (+34) 10Created page with "{{NewUserPage|SerialDesignationF}}" < 1740548555 980450 :Lykaina!~lykaina@user/lykaina QUIT :Quit: Leaving > 1740552241 932043 PRIVMSG #esolangs :14[[07Pointing14]]4 M10 02https://esolangs.org/w/index.php?diff=152740&oldid=152681 5* 03Calculus is fun 5* (+37) 10/* brainfuck interpreter */ > 1740552355 427363 PRIVMSG #esolangs :14[[07Pointing14]]4 10 02https://esolangs.org/w/index.php?diff=152741&oldid=152740 5* 03Calculus is fun 5* (+101) 10Added fread > 1740552954 762656 PRIVMSG #esolangs :14[[07User:MihaiEso/InDev14]]4 10 02https://esolangs.org/w/index.php?diff=152742&oldid=136768 5* 03MihaiEso 5* (+1969) 10 > 1740553616 317555 PRIVMSG #esolangs :14[[07Template:WIPshort14]]4 N10 02https://esolangs.org/w/index.php?oldid=152743 5* 03MihaiEso 5* (+49) 10Created page with "''This is a work in progress, expect more soon.''" > 1740553669 869094 PRIVMSG #esolangs :14[[07Template:WIPshort14]]4 10 02https://esolangs.org/w/index.php?diff=152744&oldid=152743 5* 03MihaiEso 5* (+113) 10 > 1740553694 906140 PRIVMSG #esolangs :14[[07Pointing14]]4 10 02https://esolangs.org/w/index.php?diff=152745&oldid=152741 5* 03MihaiEso 5* (-38) 10 < 1740553748 914508 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 QUIT :Ping timeout: 245 seconds < 1740553799 937091 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 JOIN #esolangs Lord_of_Life :Lord < 1740554126 291258 :tromp!~textual@2a02:a210:cba:8500:b949:287e:6bbd:873b JOIN #esolangs * :Textual User > 1740554687 773352 PRIVMSG #esolangs :14[[07Skript+14]]4 N10 02https://esolangs.org/w/index.php?oldid=152746 5* 03MihaiEso 5* (+701) 10Created page with "'''Skript+''' is (or was) a esolang by Mihai Popa. == Overview == I know that the first "Hello, world!" example is working on ChatGPT. I'm here to move all of it from Wikibooks to Esolang. After somebody deleted the book from Wikibooks, only a bit of it exists. == > 1740554738 490740 PRIVMSG #esolangs :14[[07Skript+14]]4 10 02https://esolangs.org/w/index.php?diff=152747&oldid=152746 5* 03MihaiEso 5* (+63) 10 > 1740554782 274053 PRIVMSG #esolangs :14[[07User:MihaiEso14]]4 10 02https://esolangs.org/w/index.php?diff=152748&oldid=152670 5* 03MihaiEso 5* (+72) 10 > 1740554835 22936 PRIVMSG #esolangs :14[[07Language list14]]4 10 02https://esolangs.org/w/index.php?diff=152749&oldid=152644 5* 03MihaiEso 5* (+14) 10/* S */ > 1740557802 779641 PRIVMSG #esolangs :14[[07Pointing14]]4 10 02https://esolangs.org/w/index.php?diff=152750&oldid=152745 5* 03Calculus is fun 5* (+164) 10Instruction shuffle > 1740557880 45431 PRIVMSG #esolangs :14[[07Pointing14]]4 M10 02https://esolangs.org/w/index.php?diff=152751&oldid=152750 5* 03Calculus is fun 5* (+1) 10/* Custom functions */ > 1740557982 558561 PRIVMSG #esolangs :14[[07Mutzerium14]]4 N10 02https://esolangs.org/w/index.php?oldid=152752 5* 03PrySigneToFry 5* (+4970) 10Created page with "Mutzerium is designed by PSTF in OTL Universe, which is inspired from SLet 3.0(Currently, SLet is using 4.0 version). In PsiLine Universe, it is designed by Yang Jiong. = Language Overview = Mutzerium is Turing-Complete, almost-high-level, and uses easy syntax > 1740558037 431314 PRIVMSG #esolangs :14[[07Language list14]]4 10 02https://esolangs.org/w/index.php?diff=152753&oldid=152749 5* 03PrySigneToFry 5* (+16) 10 < 1740558616 783672 :Sgeo_!~Sgeo@user/sgeo QUIT :Read error: Connection reset by peer > 1740558809 392785 PRIVMSG #esolangs :14[[07Pointing14]]4 M10 02https://esolangs.org/w/index.php?diff=152754&oldid=152751 5* 03Calculus is fun 5* (+23) 10/* Expressions */ > 1740558874 856612 PRIVMSG #esolangs :14[[07Special:Log/newusers14]]4 create10 02 5* 032ro 5* 10New user account > 1740559384 45782 PRIVMSG #esolangs :14[[07Esolang:Introduce yourself14]]4 10 02https://esolangs.org/w/index.php?diff=152755&oldid=152702 5* 032ro 5* (+178) 10/* Introductions */ < 1740559423 590116 :tromp!~textual@2a02:a210:cba:8500:b949:287e:6bbd:873b QUIT :Quit: My iMac has gone to sleep. ZZZzzz… > 1740560084 658878 PRIVMSG #esolangs :14[[07Pointing14]]4 10 02https://esolangs.org/w/index.php?diff=152756&oldid=152754 5* 03Calculus is fun 5* (+499) 10Short circuit example > 1740560742 285434 PRIVMSG #esolangs :14[[07Mutzerium14]]4 10 02https://esolangs.org/w/index.php?diff=152757&oldid=152752 5* 03I am islptng 5* (+77) 10i wonder what is PsiLine universe;;; This is too close to SLet, but WHERE IS YOUR INTERPRETER! > 1740560845 425260 PRIVMSG #esolangs :14[[07Template:WIPshort14]]4 10 02https://esolangs.org/w/index.php?diff=152758&oldid=152744 5* 03Ractangle 5* (-47) 10 < 1740561773 242124 :ais523!~ais523@user/ais523 QUIT :Quit: quit > 1740562061 884413 PRIVMSG #esolangs :14[[07Mutzerium14]]4 M10 02https://esolangs.org/w/index.php?diff=152759&oldid=152757 5* 03I am islptng 5* (+99) 10Make use of the fraction! GCD is simple! > 1740562075 326062 PRIVMSG #esolangs :14[[07User talk:Orby14]]4 10 02https://esolangs.org/w/index.php?diff=152760&oldid=78101 5* 032ro 5* (+136) 10 > 1740562445 884424 PRIVMSG #esolangs :14[[07Fsx14]]4 10 02https://esolangs.org/w/index.php?diff=152761&oldid=152737 5* 03I am islptng 5* (+34) 10fix < 1740562571 556721 :Noisytoot!~noisytoot@user/meow/Noisytoot QUIT :Quit: ZNC 1.9.1 - https://znc.in < 1740562657 431173 :Noisytoot!~noisytoot@user/meow/Noisytoot JOIN #esolangs Noisytoot :Ron > 1740562893 678323 PRIVMSG #esolangs :14[[07User talk:MihaiEso14]]4 10 02https://esolangs.org/w/index.php?diff=152762&oldid=152683 5* 03I am islptng 5* (+581) 10/* UserEdited */ < 1740563239 372208 :tromp!~textual@2a02:a210:cba:8500:b949:287e:6bbd:873b JOIN #esolangs * :Textual User > 1740563534 801011 PRIVMSG #esolangs :14[[07User:Orby14]]4 10 02https://esolangs.org/w/index.php?diff=152763&oldid=131402 5* 032ro 5* (+15) 10/* Pages I find interesting */ > 1740563904 104324 PRIVMSG #esolangs :14[[07User:Orby14]]4 10 02https://esolangs.org/w/index.php?diff=152764&oldid=152763 5* 032ro 5* (+28) 10/* Pages I find interesting */ > 1740564001 658260 PRIVMSG #esolangs :14[[07User:PrySigneToFry/Sandbox14]]4 10 02https://esolangs.org/w/index.php?diff=152765&oldid=152624 5* 03PrySigneToFry 5* (+1) 10 < 1740565162 477269 :craigo!~craigo@user/craigo JOIN #esolangs craigo :realname < 1740565234 304762 :craigo!~craigo@user/craigo QUIT :Client Quit < 1740565280 477240 :craigo!~craigo@user/craigo JOIN #esolangs craigo :realname < 1740567058 995227 :amby!~ambylastn@ward-15-b2-v4wan-167229-cust809.vm18.cable.virginm.net JOIN #esolangs * :realname > 1740567146 489842 PRIVMSG #esolangs :14[[07SpeechProg14]]4 N10 02https://esolangs.org/w/index.php?oldid=152766 5* 03MihaiEso 5* (+1205) 10Created page with "'''SpeechProg''' is a esolang by Mihai Popa. You use natural language for programming. == Syntax == Comments are done with a hash, but unit tests exercising this code are done with a greater-than sign. == Examples == === [[Hello, world!]] ===
 On "Say Hello,
> 1740567238 396109 PRIVMSG #esolangs :14[[07SpeechProg14]]4 10 02https://esolangs.org/w/index.php?diff=152767&oldid=152766 5* 03MihaiEso 5* (+201) 10
> 1740567268 812590 PRIVMSG #esolangs :14[[07User:MihaiEso14]]4 10 02https://esolangs.org/w/index.php?diff=152768&oldid=152748 5* 03MihaiEso 5* (+43) 10
> 1740567300 767608 PRIVMSG #esolangs :14[[07Language list14]]4 10 02https://esolangs.org/w/index.php?diff=152769&oldid=152753 5* 03MihaiEso 5* (+17) 10/* S */
< 1740567808 362858 :Everything!~Everythin@46.211.65.235 JOIN #esolangs Everything :Everything
< 1740568632 728969 :APic!apic@apic.name PRIVMSG #esolangs :Hi
< 1740569461 98247 :Everything!~Everythin@46.211.65.235 QUIT :Ping timeout: 248 seconds
> 1740569560 851789 PRIVMSG #esolangs :14[[07SpeechProg14]]4 10 02https://esolangs.org/w/index.php?diff=152770&oldid=152767 5* 03MihaiEso 5* (+1) 10/* Count from 1 to 10 */
> 1740570336 511104 PRIVMSG #esolangs :14[[07Project Euler/214]]4 10 02https://esolangs.org/w/index.php?diff=152771&oldid=152675 5* 03Calculus is fun 5* (+188) 10MoreMathRPN example
> 1740570647 996468 PRIVMSG #esolangs :14[[07MoreMathRPN/ProjectEulerExamples14]]4 N10 02https://esolangs.org/w/index.php?oldid=152772 5* 03Calculus is fun 5* (+192) 10Created subpage for Project Euler
> 1740570710 325107 PRIVMSG #esolangs :14[[07MoreMathRPN14]]4 10 02https://esolangs.org/w/index.php?diff=152773&oldid=152626 5* 03Calculus is fun 5* (+22) 10/* Examples elsewhere on this site */
> 1740570742 804897 PRIVMSG #esolangs :14[[07MoreMathRPN14]]4 M10 02https://esolangs.org/w/index.php?diff=152774&oldid=152773 5* 03Calculus is fun 5* (-25) 10/* Examples elsewhere on this site */
> 1740570751 284099 PRIVMSG #esolangs :14[[07MoreMathRPN14]]4 10 02https://esolangs.org/w/index.php?diff=152775&oldid=152774 5* 03Calculus is fun 5* (-1) 10/* Examples elsewhere on this site */
< 1740571458 549079 :mtm!~textual@47.202.75.129 QUIT :Ping timeout: 252 seconds
< 1740571556 207381 :mtm!~textual@47.202.75.129 JOIN #esolangs mtm :Textual User
> 1740572424 808205 PRIVMSG #esolangs :14[[07User:GluonVelvet14]]4 N10 02https://esolangs.org/w/index.php?oldid=152776 5* 03GluonVelvet 5* (+208) 10Created page with "Season's greason's! I'm Velvet, a silly jr dev with an interest in esolangs. I have a lot of ideas, most of which won't be made, but feel free to steal them if I say you can.  I'll make an esolang some day..."
> 1740572650 144200 PRIVMSG #esolangs :14[[07User talk:MihaiEso14]]4 10 02https://esolangs.org/w/index.php?diff=152777&oldid=152762 5* 03Hotcrystal0 5* (+107) 10
> 1740572843 290830 PRIVMSG #esolangs :14[[07Project Euler/514]]4 M10 02https://esolangs.org/w/index.php?diff=152778&oldid=152613 5* 03Calculus is fun 5* (+167) 10/* Implementations */
> 1740573571 21235 PRIVMSG #esolangs :14[[07MoreMathRPN/ProjectEulerExamples14]]4 M10 02https://esolangs.org/w/index.php?diff=152779&oldid=152772 5* 03Calculus is fun 5* (+44) 10
> 1740575616 851823 PRIVMSG #esolangs :14[[07SpeechProg14]]4 10 02https://esolangs.org/w/index.php?diff=152780&oldid=152770 5* 03MihaiEso 5* (+692) 10/* Say if a number is a perfect square */
> 1740576045 969922 PRIVMSG #esolangs :14[[07User talk:BrainFuckGirl14]]4 10 02https://esolangs.org/w/index.php?diff=152781&oldid=152730 5* 03BrainFuckGirl 5* (+799) 10/* Question */
> 1740579108 15172 PRIVMSG #esolangs :14[[07Pointing14]]4 10 02https://esolangs.org/w/index.php?diff=152782&oldid=152756 5* 03Calculus is fun 5* (-13) 10Remove WIP tag
> 1740582339 995024 PRIVMSG #esolangs :14[[07SpeechProg14]]4 10 02https://esolangs.org/w/index.php?diff=152783&oldid=152780 5* 03MihaiEso 5* (+1878) 10/* Square root and cube root of pi and e */
> 1740583956 299564 PRIVMSG #esolangs :14[[07Topple14]]4 M10 02https://esolangs.org/w/index.php?diff=152784&oldid=152198 5* 03H33T33 5* (-23) 10
< 1740587105 636509 :CanisCorvus!~CanisCorv@shef-17-b2-v4wan-169232-cust98.vm3.cable.virginm.net JOIN #esolangs * :[https://web.libera.chat] CanisCorvus
> 1740590269 122514 PRIVMSG #esolangs :14[[07User talk:BrainFuckGirl14]]4 10 02https://esolangs.org/w/index.php?diff=152785&oldid=152781 5* 03MihaiEso 5* (+420) 10
> 1740590332 503068 PRIVMSG #esolangs :14[[07User:BrainFuckGirl14]]4 10 02https://esolangs.org/w/index.php?diff=152786&oldid=152706 5* 03MihaiEso 5* (+0) 10/* Hello, world! */
> 1740591643 388341 PRIVMSG #esolangs :14[[07Special:Log/newusers14]]4 create10 02 5* 03PhongEsolang369 5*  10New user account
< 1740592532 621445 :CanisCorvus96!~CanisCorv@shef-17-b2-v4wan-169232-cust98.vm3.cable.virginm.net JOIN #esolangs * :[https://web.libera.chat] CanisCorvus
< 1740593542 444209 :Everything!~Everythin@46-133-48-141.mobile.vf-ua.net JOIN #esolangs Everything :Everything
< 1740594930 253968 :Everything!~Everythin@46-133-48-141.mobile.vf-ua.net QUIT :Quit: leaving
< 1740595048 36318 :Everything!~Everythin@46-133-48-141.mobile.vf-ua.net JOIN #esolangs Everything :Everything
< 1740595106 419049 :ais523!~ais523@user/ais523 JOIN #esolangs ais523 :(this is obviously not my real name)
> 1740597398 873713 PRIVMSG #esolangs :14[[07Talk:UserEdited14]]4 10 02https://esolangs.org/w/index.php?diff=152787&oldid=140443 5* 03Hotcrystal0 5* (+160) 10
> 1740598426 283071 PRIVMSG #esolangs :14[[07Deadfih14]]4 M10 02https://esolangs.org/w/index.php?diff=152788&oldid=152081 5* 03Krolkrol 5* (+1) 10
> 1740599269 553534 PRIVMSG #esolangs :14[[07User:PrySigneToFry/Sandbox/Users that is also on other place14]]4 10 02https://esolangs.org/w/index.php?diff=152789&oldid=152079 5* 03I am islptng 5* (+137) 10
< 1740599567 161800 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :I had some ideas about version control system gopher://zzo38computer.org/0textfile/miscellaneous/VersionControl do you have any comments about this?
< 1740599595 601686 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :(in case something is missing or something there is unnecessary or something else is wrong with it)
< 1740599890 584356 :chiselfuse!~chiselfus@user/chiselfuse QUIT :Remote host closed the connection
> 1740599922 290901 PRIVMSG #esolangs :14[[07User:I am islptng/My rate to the user I know14]]4 10 02https://esolangs.org/w/index.php?diff=152790&oldid=149600 5* 03I am islptng 5* (+66) 10
< 1740600089 618104 :chiselfuse!~chiselfus@user/chiselfuse JOIN #esolangs chiselfuse :chiselfuse
> 1740600303 293722 PRIVMSG #esolangs :14[[07Mutzerium14]]4 10 02https://esolangs.org/w/index.php?diff=152791&oldid=152759 5* 03I am islptng 5* (-14) 10/* Greatest Common Divisor */
< 1740601019 691120 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :zzo38: Cool. Thanks for sharing.
< 1740601055 820968 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Having recently worked through git's object model, I find your setup to be much more complex and specialized. There are a couple points where I think that your divergence from git is interesting enough to explore in more detail.
< 1740601079 532018 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Hmm the Sea Magic endgame has more depth than I thought... I thought my 17255 points were pretty good but people are getting close to 19k. Ooph.
< 1740601113 718140 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :I don't know if you've considered it, but when writing something like this, a companion document titled "Why not Brand X, my obvious competitor?" can be very helpful.
< 1740601128 499933 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :For example, I wrote this document "Why Not Python?" when designing Monte: https://gist.github.com/MostAwesomeDude/eee722a254adc100062c1921cfa4dfc9
< 1740601177 110815 :int-e!~noone@int-e.eu PRIVMSG #esolangs :It's a particular kind of rationale.
< 1740601188 512813 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :zzo38: Anyway, my specific observations. First, the choice to make sets primitive, instead of dicts, is interesting. I have desired sets, lists/sequences, and tuples in git's object model, and it's frustrating that I have to hack them with dicts that have magic key names.
< 1740601226 743183 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Second, a version-control system is a name-management system; we have artifacts, *and* we want to name them, tag them, bag them, etc.
< 1740601236 390474 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :I'd love to read more words about how to manage names.
< 1740601929 533127 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :my computer apparently doesn't know how to open Gopher URLs – the OS tries to open them with Firefox and Firefox tries to refer them to the OS
< 1740602098 265507 :FreeFull!~freefull@79.186.185.24.ipv4.supernova.orange.pl PRIVMSG #esolangs :It's odd that Firefox somehow ended up assigned to them
< 1740602147 993037 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :yes – the OS thinks that Firefox should know how to open them, but is apparently mistaken
< 1740602169 11355 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :hege
< 1740602206 252813 :int-e!~noone@int-e.eu PRIVMSG #esolangs :It may be a manual configuration dating back to times when Firefox supported gopher? Though that was dropped 15 years ago...
< 1740602236 68193 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :I use Lynx for Gopher. There used to be Firefox support, then there was a plugin, then they said that extensions couldn't implement Gopher or FTP or other protocols.
< 1740602239 850198 :int-e!~noone@int-e.eu PRIVMSG #esolangs :(Was it even Firefox then?)
< 1740602258 659130 :int-e!~noone@int-e.eu PRIVMSG #esolangs :https://bugzilla.mozilla.org/show_bug.cgi?id=388195 "Target Milestone: mozilla2.0 → mozilla1.9.3a6"
< 1740602366 421576 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :korvo: I'm reading your "why not Python?" document because I like reading that sort of thing (even though I generally dislike Python enough to not want to use something similar)
< 1740602421 724556 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :the [(lambda y: x + y) for x in range(5)] example is interesting in Rust – Rust has two sorts of closures, one which moves x into the closure, one which refers to the x outside the closure – but the latter type of closure (which is the default) doesn't compile because it won't let the for loop change the value of x while something is borrowing it
< 1740602424 763229 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :ais523: I hope it's enlightening! Most of it is well-trodden folklore inside the Python community, but if you're not a regular then you might get a kick (or a tick) out of the lambda quirk.
< 1740602509 953293 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :https://play.rust-lang.org/?version=stable&mode=debug&edition=2024&gist=cd5791d62c6d5891e1fdd254fc2bf93a
< 1740602519 206870 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Ha, yeah. C++'s approach is interesting too; there's only one sort of lambda, the preferred (default?) annotation is `auto`, and the programmer is forced to accept C++'s fairly loose move semantics.
< 1740602551 767116 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I think neither Rust nor C++ lets you easily name the type of a closure
< 1740602586 401514 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(Rust does let you name the type of a function that doesn't close over anything, and lambdas can generate those if they don't capture, but normally you want to capture things in your lambda)
< 1740602626 319143 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Sure. Monte doesn't really make closures or lambdas or other code objects easy to guard; we kind of assume that a callable behavior is always tamed into something more specific to the code that uses it.
< 1740602635 485088 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :korvo: I will respond to you. You are right about naming them, but they can be referred to either by hash or by tags (like Fossil and I think git does something similar, too).
< 1740602675 414023 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :shadowing builtins is interesting – I think some languages explicitly permit that so that new builtins can be added without breaking backwards compatibility
> 1740602689 349095 PRIVMSG #esolangs :14[[07User:PrySigneToFry/Sandbox/Users that is also on other place14]]4 10 02https://esolangs.org/w/index.php?diff=152792&oldid=152789 5* 03Hotcrystal0 5* (-57) 10Removed email (please dont share that)
< 1740602698 227335 :FreeFull!~freefull@79.186.185.24.ipv4.supernova.orange.pl PRIVMSG #esolangs :If the closure doesn't actually close over anything, you can coerce it to an fn(Foo) -> Bar
< 1740602720 674581 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :FreeFull: I'm not even sure that that acutally is a coercion (as opposed to the lambda naturally having that type)
< 1740602722 437704 :FreeFull!~freefull@79.186.185.24.ipv4.supernova.orange.pl PRIVMSG #esolangs :Otherwise, the best you can do is the Fn* traits
< 1740602723 134245 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :About using sets insteadof dicts, the kind of data to me seems to mean that sets are helpful, since it is a set of attributes, and most kind of attributes can occur more than once (although attributes 4 and 5 should not occur more than once.
< 1740602750 187273 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :FreeFull: well you can name it using type alias impl Trait, except that I think that might still be unstable
< 1740602751 598999 :FreeFull!~freefull@79.186.185.24.ipv4.supernova.orange.pl PRIVMSG #esolangs :ais523: Well, for regular named functions, it actually is coercion
< 1740602764 629823 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :zzo38: Of course. What I've found to be a hassle is the *act of naming*. Do you know the parable of the cat from the Python community?
< 1740602779 720045 :FreeFull!~freefull@79.186.185.24.ipv4.supernova.orange.pl PRIVMSG #esolangs :So `fn foo(x: Foo) -> Bar {...}` has a unique type, which can coerce to fn(Foo) -> Bar
< 1740602790 594191 :FreeFull!~freefull@79.186.185.24.ipv4.supernova.orange.pl PRIVMSG #esolangs :( This is for Rust, I have no idea about how C++ handles things )
< 1740602804 34010 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :FreeFull: ah right, so that the compiler knows what specific function is being called in the case where you aren't using a function pointer, and can optimise on that assumption
< 1740602815 813978 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it probably does that for lambdas too, then
< 1740602817 429002 :FreeFull!~freefull@79.186.185.24.ipv4.supernova.orange.pl PRIVMSG #esolangs :Yeah, something like that
< 1740602827 270372 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :I can't find a direct link, but in short, a cat doesn't have a name. A cat might have nametags attached to it, and multiple people around the neighborhood might call it by various names, but the cat doesn't actually *have* a name. So it goes with Python objects, and in this case, with content-addressed data.
< 1740602836 430205 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :korvo: I do not use Python programming much (I think I only ever used it for two things; one is to add new card games into PySol, and one is to improve a hard drive wiping program to also test them)
< 1740602842 752554 :FreeFull!~freefull@79.186.185.24.ipv4.supernova.orange.pl PRIVMSG #esolangs :It does rarely cause confusing error messages, when the coercion doesn't happen automatically
< 1740602863 652350 :int-e!~noone@int-e.eu PRIVMSG #esolangs :korvo: Oh so it's like Tolkien characters :P
< 1740602870 410012 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :int-e: Another solid example!
< 1740602940 664639 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Part of why I wanted to put Cammy into git was to erase the problem of names. I don't want to choose names for expressions. I do want to know when I have multiple names for an expression, but I don't want to manually de-duplicate all of the intermediate code.
< 1740602942 413576 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :Perl's approach to builtins is weird – variables have a sigil so that they can be distinguished from builtins, and thus it's fine to have a variable and builtin with the same name
< 1740602967 485702 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :(In this case, an object does actually have a "canonical" name, which is its hash.)
< 1740602983 113956 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but, function names aren't namespaced (and IIRC can shadow builtins), and an identifier that would otherwise have no other interpretation is treated as a string literal (with a warning that it might be used as a builtin name in future)
< 1740603019 813495 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I vaguely remember that the identifiers-as-string-literals thing was intended to make writing poetry in Perl possible, rather than having some intended use in regular programming
< 1740603046 111237 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :ais523: I'd guess you might know PHP as well? Its only corner of elegance is that `$` is effectively a Tcl-style quoting operator which lifts name literals to variable references. So `$$name` performs two lookups in the scope, dereferencing twice. Hints of Three Star Programmer.
< 1740603113 661639 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :korvo: IIRC that's usually considered a misfeature, despite having a sort of twisted elegance to it
< 1740603128 354156 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I don't know very much PHP – enough to sometimes be able to read PHP code if I need to do that for some reason
< 1740603153 373867 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I think I have a PHP interpreter installed for testing something or other, but it was probably a polyglot
< 1740603169 510397 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :ais523: Oh, of course, like all of PHP, it's quite bad design for readability or maintainability, and most linters forbid even $$ lookups, let alone $$$. But I wonder if Three Star Programmer could be embedded as an esoteric subset.
< 1740603197 866529 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :you'd have to be able to generate arbitrarily many variable names at runtime but PHP probably allows that
< 1740603225 535422 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :does it allow numbers as variable names if you name them indirectly (or even directly)?
< 1740603263 254882 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :Perl does, although they're reserved variables that might have side effects on being assigned to
< 1740603276 671482 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Yeah, I don't recall the syntax offhand but there's a way to parse names as strings into ints, and so we could have a scope whose keys are stringified nats and values are plain PHP integers.
< 1740603308 423669 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :It's some utterly bonkers C-style syntax like `$i := (int) $s` but that's not a casting operator and `int` isn't a token.
< 1740603322 614069 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :bleh, apparently it just errors on attempts to assign to $1 and friends even when there's an obvious meaning
< 1740603343 882203 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I was hoping «my $x = "abc"; $x =~ /(b)/; $1 = "d"; say $x» would output "adc" but it doesn't
< 1740603368 451523 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(this probably wouldn't be expected behaviour in any other language but I think it's expected behaviour in Perl)
< 1740603412 774424 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Does it output "ac" or error? I can't actually read Perl.
< 1740603424 334716 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :errors, "Modification of a read-only value attempted"
< 1740603435 169103 :Everything!~Everythin@46-133-48-141.mobile.vf-ua.net QUIT :Quit: leaving
< 1740603464 394519 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :=~ is a regex match with no immediate side effects, it just checks whether $x contains the character 'b' and (due to the parentheses) sets $1 to the substring of $x that is the 'b'
< 1740603512 464283 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :I also think that identifiers-as-string-literals is not a very good feature (although it might make sense if it is a separate "name" type instead, maybe; PostScript does have a separate "name" type although its value can only be a short character sequence without undescribable names)
< 1740603591 158452 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :some languages have a "symbol" or "atom" type for which the possible values are the possible identifiers – but generally they need some sort of sigil to specify that you want the symbol/atom rather than for the identifier to be interpreted
< 1740603678 833141 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :Prolog doesn't need atoms to be quoted or sigilled at all – meanwhile, Lisp primarily lets you get at them via using macros to steal them from an AST (but there's a "quote" macro which is good for naming atoms, and most Lisp interpreters let you abbreviate the macro to ' so it acts a lot like a sigil)
< 1740603679 413712 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :In PostScript you use a slash in front for that purpose
< 1740603752 923649 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :I wish (gensym) were available for that in Prolog or miniKanren. I understand the soundness issues, but I also don't like that they're pushed wholly onto the user.
< 1740603784 697876 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I tend to write the sort of Prolog programs where a gensym wouldn't be useful, but can see how it could be for some types of programming
< 1740603788 313925 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :There is a variant of miniKanren with nominal logic (search "aKanren"?) that has a gensym form. It's a pain to implement and work with.
< 1740603821 288180 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I guess it wouldn't be so bad if the gensym just leaked symbols if you backtracked past it, rather than trying to clean them up
< 1740603844 858579 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it probably wouldn't be so hard to build one of those out of a pile of asserts and retracts
< 1740603858 168145 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :ais523: Type-checkers are the typical example for me. Gotta somehow turn non-ground logic variables into symbolic names when the type is extracted. Pointed program synthesis is another example, and part of why I prefer pointfree programming.
> 1740603861 722213 PRIVMSG #esolangs :14[[07User:I am islptng/My rate to the user I know14]]4 10 02https://esolangs.org/w/index.php?diff=152793&oldid=152790 5* 03I am islptng 5* (+10) 10
< 1740603926 14979 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Right. I don't care if the variable is called "v12" or "v143" or whatever. It'd be nice if the gensym took an optional parameter so that I could preserve original names, but that's easy enough to build on top.
< 1740603935 467363 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :korvo: Prolog's actually very good at meeting the first of those requirements, output functions generally have a way to consistently replace unbound variables with variable names in the output (without changing the internal state of the code) and will use different names for different outptus
< 1740603971 658138 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :the hard part is maintaining "these are actually different" constraints to prevent your various unbound variables unifying with each other in cases where they aren't supposed to
< 1740604004 445926 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Oh, sure. But Veblen's syntax theorem applies; for example, somewhere in my Cammy type-checker, there's a string that looks like "XYZWSTUV"... naming type variables, and it is a finite string.
< 1740604005 383992 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :Prolog meta-interpreters almost always absorb variable unification, but I imagine you would have these sorts of trouble if you tried to reify it…
< 1740604033 731895 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :I know it's a little big of me, but I want to be grumpy about the concept of nomenclature.
< 1740604061 778066 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :About the "why-not-python.rst", I think what is mentioned there is good ideas, although I also think that Unicode string types as the main string types is a bad idea. Capability safety is a good idea, although I think that capability-based security is a good thing to have in the operating system, but it could also be used in a programming language.
< 1740604076 909260 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :(I also dislike the indentation-based syntax; Haskell allows but does not require it)
< 1740604107 976523 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I do like the "basically just a list of integers" string type, I think that's the main alternative to Unicode strings nowadays
< 1740604116 442300 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :zzo38: Yeah. From a chat with one of the CHERI designers, there's this idea that cap-safety is a property of the whole machine; so the hardware, OS, and userland need to work together to preserve it.
< 1740604195 861354 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :having hardware enforcement helps, although I think capability-safety is possible using just the OS and software, without hardware help (but then you need a static analyser to be able to run untrusted binaries capability-safely)
< 1740604299 435451 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :or, I guess my viewpoint is "it is a property that programs may or may not have that they don't attempt to break capability-safety – for a useful subset of programs it is possible to prove it, and (assuming capabilities can be safely discarded without violating their type system) for all programs it is possible to add runtime checks to abort them before they try to violate it)"
> 1740604317 5481 PRIVMSG #esolangs :14[[07UserEdited14]]4 10 02https://esolangs.org/w/index.php?diff=152794&oldid=152690 5* 03I am islptng 5* (+310) 10
< 1740604342 304270 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :and that means that capability-safety can be enforced either in software or hardware, and either at runtime or compile/verify-time, you just have performance tradeoffs to make
< 1740604378 559182 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Sure. We can unwrap that directly in terms of isolation, FWIW; we don't have to have the high-minded abstract idea of a capability, not when we're using bit-oriented machines. Given two object graphs in the machine, if they ought to be isolated, then cap-safety requires that they actually be isolated. That's it.
< 1740604440 726938 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :This is usually where the dialog with descendants of ALGOL breaks down; folks raised in C or Python will, once they grok object graphs, note that of course isolation is never achieved and -- worse -- that it is an undesirable property.
< 1740604449 574194 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :one thing I have been considering is a type-safe assembly language (perhaps with explicit type annotations rather than type inference), partly to make verifying safety properties possible without spending a large amount of time compiling, partly because I think existing compilers often do steps of the compile in the wrong order and it leads to inefficiencis
< 1740604511 340356 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :But e.g. paravirt exists; it's possible for the hardware, OS, and userspace to coordinate so that two userspace object graphs are genuinely isolated! The C folks have long since descended into reactionism over this; Python folks are more open to e.g. adding subinterpreters to CPython.
< 1740604550 741779 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :oh, I definitely think that programming languages are working from the wrong direction in terms of isolation – most languages start with allowing free sharing by default and then try to add restrictions to make programs easier to reason about – I think it's better to start fully isolated and then add just the minimum amount of sharing needed to get a usable language
< 1740604586 554073 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Yes please. This is what I mean when I spout memes like "SLTC is cap-safe by default"; SLTC can genuinely isolate two sub-computations so that they can be executed in parallel.
< 1740604641 947428 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :And everybody loves to worship lambdas and first-order types, right? So the problem is that the typical programming language is full of "ambient authority" which breaks isolation in too many ways.
< 1740604680 329372 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :recently I have been lamenting just how bad compilers are at vectorising things to SIMD – I've been envisioning a world in which functions are compiled as SIMD by default and will run SIMD on vector arguments
< 1740604706 474151 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Elm and its descendants are one of my favorite punching bags on this. Elm's nearly cap-safe, except that they didn't actually design their stdlib around this. So they have a fake notion of purity and a bunch of untamed functionality that they lock themselves away from exposing.
< 1740604710 242751 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :and I think the reason we don't have that is that, e.g., our existing control flow operations aren't isolating enough
< 1740604742 616036 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :in most languages, a for loop doesn't attempt to isolate the iterations from each other, so it is hard for compilers to execute them in parallel
< 1740604750 661747 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Yep. E has internal iteration for this reason; they didn't just copy it from Smalltalk, but thought through the consequences of running loop iterations in parallel.
< 1740604810 20169 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :hmm, I wonder whether Rust's «Fn + Sync» is strong enough for that, or whether there's some way to bypass isolation using that for internal iteration
< 1740604835 4177 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I guess you could communicate between parallel executions of the function using atomics or mutexes, which is probably intended behaviour
< 1740604835 373930 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :E was such a hard read. So many slightly-wrong guesses. `x ** y % z` does modular exponentiation, for example. They couldn't have guessed the timeline where Intel developed AES-NI.
< 1740604896 374087 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :doesn't x ** y % z mean modular exponentiation in any language where integers are unbounded by default? so it could be implemented as an optimisation
< 1740604909 619784 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :ah no, y could be negative
< 1740604942 786068 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(admittedly the function isn't fully defined in that case, but that wouldn't prevent a language evaluating it in cases where it is defined)
< 1740605090 211920 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :It's a mixfix three-parameter op. It expands like e`x.modExp(y, z)` IIRC. In most languages, it would be grouped as `(x ** y) % z` which overflows.
< 1740605125 381819 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :right – I was thinking of it as (x ** y) % z evaluated on bignums and then optimised to reduce memory usage
< 1740605129 58261 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :They were anticipating something like ED25519, which IIUC was extremely hot research tech at the time.
< 1740605158 890803 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but having a genuine three-arguement operator does help in cases where y is negative
< 1740605190 621166 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :E didn't have bignums! It follows the idea that the machine has only like two underlying numeric types, which it calls `int` and `double`. I wish I knew the root of this philosophy, as it's the same as C's default rules and Python 3's rules.
< 1740605206 338711 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :meanwhile, I've read a bit further in your document and think that the "Plan Coordination" section is actually a criticism of how the "for" loop works – it isn't iterating over the entire list on exception and it's allowing the list that's being iterated over to be changed
< 1740605242 896224 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :But you had to ask for like a java.system.Integer or whatever if you wanted a bignum. They eventually wrote a wrapper for this. Monte does do bignums by default, but that's because I think working over *the* ring of integers is nicer than *some* machine-dependent ring.
> 1740605278 350772 PRIVMSG #esolangs :14[[07UserEdited14]]4 10 02https://esolangs.org/w/index.php?diff=152795&oldid=152794 5* 03I am islptng 5* (+123) 10/* Commands */
< 1740605285 759848 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :or, I guess my opinion on that is "changing a list that you're iterating over is not typically defined behaviour – languages should either prevent it or define the behaviour, but whatever their choice it might not be what you meant by doing that"
> 1740605298 798497 PRIVMSG #esolangs :14[[07UserEdited14]]4 10 02https://esolangs.org/w/index.php?diff=152796&oldid=152795 5* 03I am islptng 5* (+4) 10/* 99 bottles of beer */
< 1740605311 155464 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :ais523: If you can read Java, I *highly* recommend the original linked paper. Plan interference is one of those kind of higher-level language-independent things that matters whenever machines are chimeric.
< 1740605330 769562 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :there was a big discussion recently about what it means to call exit() from an atexit() handler – this is UB according to the C specification but some OS vendors have decided to allow it, and have been trying to give semantics
< 1740605345 839686 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :I honestly think that my Python transcription here is quite bad. It was meant to communicate a point to CPython's devs, not to y'all.
< 1740605368 312125 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :fair enough – it can take some time to read papers but I probably should read that one
< 1740605397 699205 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :And yeah, exceptions thrown during exception-handling are another good example. In that case, the relevant capability is control over the return stack. We can imagine a call/cc analogue too.
< 1740605420 129918 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :also my previous job was a) in Java and b) writing a program that took Java programs as input, so I can read it pretty well and know probably a lot more corner cases than the typical Java programmer would
< 1740605460 898471 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I have increasingly come round to an "if an exception is thrown while running a method that could mutate object X, object X no longer exists" point of view
< 1740605477 502194 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :ais523: Just chew on the first five pages or so, that's all. E's solution is merely to deliever the .statusChanged() message on an async basis, with isolation between each delivery. Exceptions in one delivery don't affect the others.
< 1740605485 926290 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :which is somewhat extreme, but seems to be one of the few ways to guarantee correctness in that case
< 1740605503 28748 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Messages are delivered in partial order, more or less, and again that's to ensure that one status can't stomp another unfairly.
< 1740605513 774548 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :query hackeso
> 1740605518 308334 PRIVMSG #esolangs :14[[07UserEdited14]]4 10 02https://esolangs.org/w/index.php?diff=152797&oldid=152796 5* 03Hotcrystal0 5* (+448) 10
< 1740605580 239895 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I think it's possible to make the thing mentioned in my last two messages work with only minor modifications to Rust's type system (especially because catching exceptions is rare in Rust and Rust already tracks mutable references)
< 1740605628 342975 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :ais523: Honestly I love that heuristic and I might keep it, because that's also how RPython's stack works when X's class has a finalizer; X may be ready to reap but not yet finalized, and accessing it again would be improper.
< 1740605665 243391 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :...Maybe it's a general thing when we have weakrefs or ephemerons. I haven't been bitten by this in Scheme, but mostly because I refuse to build anything of that complexity there.
< 1740605708 938062 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523: re x ** y % z , not quite, but python has a pow builtin function for exponentiation where pow(a,e) is the same as a**e, but pow(a,e,m) is modular exponentiation a**e%m, and the latter works even if e is negative to compute a modular inverse
< 1740605721 629820 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :for what it's worth, the "Using threads to deliver updates asynchronously." attempted fix is I think actually close to a solution whilst missing the point – what's required is not the actual thread, but the thread-safety
< 1740605738 608388 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :the negative case is allowed only from python 3.8; HackEso has python 3.7 so I can't demonstrate here
< 1740605741 12910 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :b_jonas: that seems like a useful builtin
> 1740605766 864492 PRIVMSG #esolangs :14[[07UserEdited14]]4 10 02https://esolangs.org/w/index.php?diff=152798&oldid=152797 5* 03Hotcrystal0 5* (+1) 10
< 1740605779 873429 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :`python3 -cm = 3583; a = 1433; b = pow(a, -1, m); print(m, a, b, (a*b)%m) # try in python 3.8 or later
< 1740605780 880984 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :Traceback (most recent call last): \   File "", line 1, in  \ ValueError: pow() 2nd argument cannot be negative when 3rd argument specified
< 1740605794 232514 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :the main project I've been working on recently is a golfing language that's going to be full of builtins like that, although unfortunately that one naturally takes three arguments which is syntactically awkward for what i'm doing
< 1740605796 959266 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :ais523: Right. And in fact threads aren't a great primitive for this because they have zero isolation by default.
< 1740605823 101419 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :indeed, threads are so messy that you need thread-safe code to even have a chance of using them safely
< 1740605825 594364 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :also J has a way to get modular exponentiation for integers, but I don't recall if it can do negative exponents
< 1740605835 511713 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :so that means that thread-safety gives you fairly strong guarantees that can be useful in other situations too
< 1740605867 687537 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :that said, this might need a slightly stronger safety notion – some common thread-safety mechanisms rely on the fact that threads can run concurrently to avoid deadlocking
< 1740605870 412768 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :E is usually implemented as a set of isolated object graphs ("vats"). Communicating between them is done by delivering one message to one node in one vat ("taking a turn"); any outgoing messages are enqueued in partial order.
< 1740605939 85514 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :so either the loop that dispatches to listeners needs to be able to run them concurrently (allowing locking to work) or the listeners need a slightly higher level of safety (usually called async-signal-safety) in which any of them can run successfully if any of them are blocked at an arbitrary point in their execution
< 1740605943 30284 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :And then, if one had the need, one could implement a runtime that schedules vats in threads. However, in multiple projects, I've found that it works better to schedule vats to processes.
< 1740605980 129487 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :korvo: this is a familiar problem, I think basically the same problem has come up in lots of other languages too
< 1740606017 920581 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it's a bit of an annoying problem because there are a lot of different approaches that work, making it hard to figure out which is the most promising
< 1740606089 328802 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I should get back to writing that async-signal-safe malloc some time – it seems a) useful and b) fairly easy as async-signal-safe code goes
< 1740606126 357411 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Sure, it's an ancient argument and one that shifts with each new OS or userspace threading library.
< 1740606181 522619 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :ideally code would be generic enough that you could just swap the async runtime out
< 1740606187 353543 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :that usually doesn't seem to happen in practice, though
< 1740606191 922278 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :The nice thing about scheduling vats to processes, once it can be done over a network, is that scheduling becomes *agoric*. I use this in the communist sense: it becomes open to expansion, to using resources as they are available.
< 1740606219 920107 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :...Most of the other cap-safety folks will be using it in the libertarian sense: it is open to purchase on a market.
< 1740606313 221473 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :This might sound a lot like being embarrasingly parallel. Indeed, vats can take turns with perfect parallelism; the actual throughput is mostly determined by queueing theory and how messages pile up in mailboxes, rather than the gristle from Amdahl's Law.
< 1740607302 460139 :craigo!~craigo@user/craigo QUIT :Quit: Leaving
< 1740607429 456168 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :hmm, going back to the closure capturing thing, I suddenly remembered how Java does it – it doesn't let you capture mutable variables at all, you need to copy the value to an immutable variable first in order to capture it (which then makes it irrelevant whether you're capturing the variable's value or the variable itself)
< 1740607455 732617 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :in a way, I like that from the "the code's behaviour is clear from reading the program" point of view
< 1740609456 631685 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523: yes but on the other hand, I think in R5RS Scheme, capturing a mutable local variable as an upvalue in a function is the canonical way to create an object on the heap that has a mutable slot that can point to other objects. R5RS doesn't have a way to add user-defined structure types (later versions of Scheme do). It has set-car! and set-cdr! but I think the language is designed such that most 
< 1740609462 977019 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :programs don't want to allow these and an interpreter would want to optimize the case where all conses are immutable and would have to use a less efficient implementation if the program can mutate them. And it has vectors with mutable elements, but then you have to use numeric indexes, and the vectors might not be optimized for the case when they're short. And you could even have a very small (thus not 
< 1740609468 986654 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :compliant with R5RS) version of Scheme that's kind of like untyped lambda calculus but with the set! primitive added to mutate local variables. Also arguably Lua is similar to Scheme in this respect.
< 1740609604 799221 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I think in Lua 5.3, both pure Lua and the C interface are designed this way, though I'm not entire sure because it's been a while since I looked at it
< 1740609740 8547 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :b_jonas: huh, somehow it makes sense to me to have a Lisp creating a mutable variable by stealing it from a stack frame, just like the way it creates atom and list literals by stealing them from an AST
< 1740609781 955836 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :Compare this to Standard ML where everything is immutable by default, both local variables and the slots in user-defined algebraic structures, and if you want a mutable slot there's an explicit library type for it, with three functions, one to create a new one, one to read, and one to write. 
< 1740609797 810755 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :s/Compare/Contrast/
< 1740609845 312695 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523: I don't think that's the default way to create list literals. That's the library function called list.
< 1740609855 988200 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I've used OCaml fairly heavily, which does have actual language support for mutable struct fields but it's most commonly used in a Standard-ML-like style where you have functions/operators for creating/reading/writing a mutable slot
< 1740609878 39079 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :b_jonas: do people not normally just write '(a b c) rather than (list 'a 'b 'c)?
< 1740609906 781773 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :or am I forgetting how Lisp works? (I'm not very good at Lisp)
< 1740609951 951757 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523: I'm not sure, I think the sort of people who use lisp mostly to write lisp interpreters write it as '(a b c); whereas the type of users who write practical programs will rarely want to use lists of symbols
< 1740609974 901704 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :ah, I see
< 1740610010 789786 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :now I'm wondering whether '(1 2 3) is capturing the numbers 1, 2 and 3 themselves, or whether it's capturing some sort of syntactic element that evaluates to those numbers – I think it's the former but I'm not completely sure
< 1740610017 341831 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :you could use a few symbols as extra sentinel values, though #f (which is what Scheme calls the boolean value false) is usually easier
< 1740610031 305021 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523: numbers.
< 1740610044 754508 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :they evaluate to themselves
< 1740610052 550940 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :oh, huh, it's weird for me to see booleans in a Lisp-alike, I'm used to the really old-fashioned nil and t
< 1740610078 311657 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :which admittedly isn't very type-safe (as nil is also an empty list)
< 1740610111 886534 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :yes, Scheme added booleans, and uses it for the if builtin and for various library functions that return a boolean such as type checking functions and comparisons
< 1740610136 448429 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :thinking about it, Prolog calling its empty list atom [] makes so much more sense
< 1740610168 440850 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(I kind-of think of Prolog as being vaguely in the Lisp family, or at least a descendant)
< 1740610201 98097 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I do like user-definable structures which can have mutable slots, later versions of Scheme add them, and that's also how Python3 works
< 1740610228 753418 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :that's one of the big differences between Standard ML and OCaml, although I basically never use them
< 1740610266 250393 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :although, I mostly gave up on OCaml in favour of Rust – most of the features I most like in OCaml got stolen by Rust, and it's easier to build
< 1740610268 220922 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :you could even have a language where those are the only way to get something mutable, though for efficiency reasons languages usually have arrays and dictionaries with mutable slots
< 1740610315 532313 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I guess you could have an array *of* mutable slots (as opposed to an array that had them naturally) and then optimize
< 1740610372 18102 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :that's basically what Rust does if you want an interior-mutable array, you could use something like Vec> (although that couldn't be resized while it's shared, so maybe a custom type would work better)
< 1740610558 34884 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :also some languages allow special garbage collector magic that only makes sense with mutability, as in either to have a weak key field in a user-defined structure where if the thing that the weak key points to is garbage-collected then the structure is no longer alive and can also be garbage-collected, or the structure can have a destructor slot that's called when the garbage collector collects the 
< 1740610564 43296 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :structure. you can't easily do these shenanigans if your only mutable thing is local variables captured by lambda 
< 1740610594 320265 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :heck, or just weak references in first place
< 1740610603 790834 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :you can't make weak references out of lambda closures
> 1740611614 369689 PRIVMSG #esolangs :14[[07Bitchanger Busy beaver14]]4 10 02https://esolangs.org/w/index.php?diff=152799&oldid=152563 5* 03Int-e 5* (+867) 10Extend results
> 1740611638 574390 PRIVMSG #esolangs :14[[07Bitchanger Busy beaver/Proof14]]4 N10 02https://esolangs.org/w/index.php?oldid=152800 5* 03Int-e 5* (+1776) 10Replicate and extend results.
< 1740611732 306746 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Uhm. That wasn't right.
> 1740611773 67743 PRIVMSG #esolangs :14[[07Bitchanger Busy beaver/Proof14]]4 10 02https://esolangs.org/w/index.php?diff=152801&oldid=152800 5* 03Int-e 5* (+6346) 10Whoops, that was the wrong contents.
< 1740611854 853018 :int-e!~noone@int-e.eu PRIVMSG #esolangs :<3 writing inefficient code that's good enough.
< 1740611873 215441 :CanisCorvus!~CanisCorv@shef-17-b2-v4wan-169232-cust98.vm3.cable.virginm.net QUIT :Quit: Client closed
> 1740612023 653464 PRIVMSG #esolangs :14[[07Bitchanger Busy beaver/Proof14]]4 M10 02https://esolangs.org/w/index.php?diff=152802&oldid=152801 5* 03Int-e 5* (+1) 10/* Size 14 holdouts */ Counting is hard ;-)
> 1740612460 359452 PRIVMSG #esolangs :14[[07Bitchanger Busy beaver14]]4 10 02https://esolangs.org/w/index.php?diff=152803&oldid=152799 5* 03Int-e 5* (+41) 10Cosmetics, link to language.
< 1740612485 944437 :Sgeo!~Sgeo@user/sgeo JOIN #esolangs Sgeo :realname
> 1740612598 658337 PRIVMSG #esolangs :14[[07Talk:Bitchanger Busy beaver14]]4 10 02https://esolangs.org/w/index.php?diff=152804&oldid=152551 5* 03Int-e 5* (+180) 10Mention updates here too.
> 1740613300 810457 PRIVMSG #esolangs :14[[07User:Buckets14]]4 M10 02https://esolangs.org/w/index.php?diff=152805&oldid=152643 5* 03Buckets 5* (+8) 10
> 1740613312 853763 PRIVMSG #esolangs :14[[07Language list14]]4 M10 02https://esolangs.org/w/index.php?diff=152806&oldid=152769 5* 03Buckets 5* (+9) 10
> 1740613326 390540 PRIVMSG #esolangs :14[[07((14]]4 N10 02https://esolangs.org/w/index.php?oldid=152807 5* 03Buckets 5* (+1254) 10Created page with "(( is an Esoteric programming language created by [[User:Buckets]] in 2024. (-, /, ^ and v are the only usable operations( v is a operation that is the nth Placement number of the other number).) {| class="wikitable" |- ! Commands !! Instructions |- | t || This is
> 1740613824 583319 PRIVMSG #esolangs :14[[07((14]]4 M10 02https://esolangs.org/w/index.php?diff=152808&oldid=152807 5* 03Buckets 5* (+103) 10
> 1740614024 626856 PRIVMSG #esolangs :14[[07Weeeeeeeeeeeeeeeeeeeeeeeeeeeeee14]]4 10 02https://esolangs.org/w/index.php?diff=152809&oldid=128071 5* 03Hotcrystal0 5* (+29) 10Adding a missing category
> 1740614039 453053 PRIVMSG #esolangs :14[[07Weeeeeeeeeeeeeeeeeeeeeeeeeeeeee14]]4 10 02https://esolangs.org/w/index.php?diff=152810&oldid=152809 5* 03Hotcrystal0 5* (+2) 10