< 1780705468 278971 :lisbeths!uid135845@id-135845.lymington.irccloud.com JOIN #esolangs lisbeths :lisbeths < 1780707085 525829 :somefan!~somefan@user/somefan JOIN #esolangs somefan :realname < 1780707895 337869 :ais523!~ais523@user/ais523 QUIT :Quit: quit < 1780714049 305539 :lisbeths!uid135845@id-135845.lymington.irccloud.com QUIT :Quit: Connection closed for inactivity < 1780719491 438667 :zzo38!~zzo38@host-24-207-46-238.public.eastlink.ca PRIVMSG #esolangs :I wrote the draft specification of Composite Character VM now and would want some opinion including about computational class and about any other concerns about it > 1780721621 589421 PRIVMSG #esolangs :14[[07Talk:Z-complete14]]4 10 02https://esolangs.org/w/index.php?diff=183116&oldid=169013 5* 03PrySigneToFry 5* (+195) 10 > 1780721826 675256 PRIVMSG #esolangs :14[[07Special:Log/move14]]4 move10 02 5* 03Cleverxia 5* 10moved [[02Z-complete10]] to [[-complete]]: \u2128 is fraktur Z > 1780721826 707975 PRIVMSG #esolangs :14[[07Special:Log/move14]]4 move10 02 5* 03Cleverxia 5* 10moved [[02Talk:Z-complete10]] to [[Talk:-complete]]: \u2128 is fraktur Z > 1780721944 582331 PRIVMSG #esolangs :14[[07-complete14]]4 10 02https://esolangs.org/w/index.php?diff=183121&oldid=183117 5* 03Cleverxia 5* (-351) 10why don't you check [https://www.unicode.org/charts/PDF/U1D400.pdf unicode charts] > 1780722685 450602 PRIVMSG #esolangs :14[[07Combinatory logic14]]4 10 02https://esolangs.org/w/index.php?diff=183122&oldid=183047 5* 03Cleverxia 5* (+316) 10hope I did not do the expansions wrong > 1780723610 646818 PRIVMSG #esolangs :14[[07Talk:Brain-os source code (not an esolang but an esolang-built OS)14]]4 10 02https://esolangs.org/w/index.php?diff=183123&oldid=182909 5* 03Cleverxia 5* (+645) 10 > 1780723631 848090 PRIVMSG #esolangs :14[[07Talk:Brain-os source code (not an esolang but an esolang-built OS)14]]4 10 02https://esolangs.org/w/index.php?diff=183124&oldid=183123 5* 03Cleverxia 5* (+5) 10/* Is brainfuck a good choice? */ < 1780724324 223065 :zzo38!~zzo38@host-24-207-46-238.public.eastlink.ca PRIVMSG #esolangs :Specifically, the document is https://raw.githubusercontent.com/zzo38/scorpion/refs/heads/trunk/charset/tron/Composite and one section is entitled "=== Composite character VM code ===". > 1780726265 617174 PRIVMSG #esolangs :14[[07Talk:Brain-os source code (not an esolang but an esolang-built OS)14]]4 10 02https://esolangs.org/w/index.php?diff=183125&oldid=183124 5* 03Blashyrkh 5* (+300) 10/* Is brainfuck a good choice? */ > 1780729839 15812 PRIVMSG #esolangs :14[[07Special:Log/newusers14]]4 create10 02 5* 03Mrsommer 5* 10New user account > 1780730014 604542 PRIVMSG #esolangs :14[[07Esolang:Introduce yourself14]]4 10 02https://esolangs.org/w/index.php?diff=183126&oldid=183027 5* 03Mrsommer 5* (+227) 10 > 1780730167 789238 PRIVMSG #esolangs :14[[07Qwertyuiopasdfghjklzxcvbnm14]]4 10 02https://esolangs.org/w/index.php?diff=183127&oldid=183114 5* 03Win7HE 5* (+540) 10Undo revision [[Special:Diff/183114|183114]] by [[Special:Contributions/CodePentuplets48|CodePentuplets48]] ([[User talk:CodePentuplets48|talk]]) > 1780730192 837212 PRIVMSG #esolangs :14[[07Qwertyuiopasdfghjklzxcvbnm14]]4 10 02https://esolangs.org/w/index.php?diff=183128&oldid=183127 5* 03Win7HE 5* (+7) 10 > 1780730760 534163 PRIVMSG #esolangs :14[[07Befunge14]]4 10 02https://esolangs.org/w/index.php?diff=183129&oldid=183004 5* 03Mrsommer 5* (-91502) 10Initial page edit > 1780730941 833953 PRIVMSG #esolangs :14[[07Talk:Befunge14]]4 10 02https://esolangs.org/w/index.php?diff=183130&oldid=166578 5* 03Mrsommer 5* (+339) 10/* I screwed up the page */ new section > 1780731055 127544 PRIVMSG #esolangs :14[[07Shelflife14]]4 N10 02https://esolangs.org/w/index.php?oldid=183131 5* 03Mrsommer 5* (+10922) 10Page init > 1780731102 668599 PRIVMSG #esolangs :14[[07Befunge14]]4 10 02https://esolangs.org/w/index.php?diff=183132&oldid=183129 5* 03RaiseAfloppaFan3925 5* (+26442) 10recover half of page to get around the 50,000 max edit limit > 1780731347 266726 PRIVMSG #esolangs :14[[07Befunge14]]4 10 02https://esolangs.org/w/index.php?diff=183133&oldid=183132 5* 03RaiseAfloppaFan3925 5* (+16630) 10re-add another part of the page > 1780731417 480379 PRIVMSG #esolangs :14[[07Befunge14]]4 10 02https://esolangs.org/w/index.php?diff=183134&oldid=183133 5* 03RaiseAfloppaFan3925 5* (+40856) 10re-add another part of the page > 1780731460 64751 PRIVMSG #esolangs :14[[07Befunge14]]4 10 02https://esolangs.org/w/index.php?diff=183135&oldid=183134 5* 03RaiseAfloppaFan3925 5* (+7574) 10re-add last part of page > 1780731487 610992 PRIVMSG #esolangs :14[[07Shelflife14]]4 M10 02https://esolangs.org/w/index.php?diff=183136&oldid=183131 5* 03ASCIIguy 5* (+164) 10Added notice. > 1780731655 228550 PRIVMSG #esolangs :14[[07User talk:Mrsommer14]]4 N10 02https://esolangs.org/w/index.php?oldid=183137 5* 03ASCIIguy 5* (+248) 10Created page with "== Talk == I think this user ought to get off the Esolangs wiki while they're using an agent; it's fluffing up the wiki with nonsense and diluting it a lot. ~~~~" > 1780732137 719900 PRIVMSG #esolangs :14[[07INT14]]4 10 02https://esolangs.org/w/index.php?diff=183138&oldid=183038 5* 03ASCIIguy 5* (+138) 10/* Examples */ > 1780733253 10287 PRIVMSG #esolangs :14[[07Livingfish14]]4 N10 02https://esolangs.org/w/index.php?oldid=183139 5* 03ASCIIguy 5* (+1963) 10Created page with "'''Livingfish''' is an esolang based on [[Deadfish]], but it is designed for golfing and has had more capabilities added to it. For example, input in Deadfish does not exist but it does in Livingfish. == Syntax and Features == Whitespace does not matter in Livingfi < 1780736559 990229 :tromp!~textual@2001:1c00:340e:2700:b8bf:26b:c387:47d1 JOIN #esolangs * :Textual User < 1780736967 241717 :emery!~quassel@217.155.30.169 QUIT :Read error: Connection reset by peer < 1780736982 24403 :emery!~quassel@217.155.30.169 JOIN #esolangs ehmry :Emery < 1780737060 615945 :Sgeo!~Sgeo@user/sgeo QUIT :Read error: Connection reset by peer < 1780738682 338188 :tromp!~textual@2001:1c00:340e:2700:b8bf:26b:c387:47d1 QUIT :Quit: My iMac has gone to sleep. ZZZzzz… > 1780739081 156942 PRIVMSG #esolangs :14[[07Talk:Brain-os source code (not an esolang but an esolang-built OS)14]]4 10 02https://esolangs.org/w/index.php?diff=183140&oldid=183125 5* 03Mrtli08 5* (+220) 10 > 1780739194 428521 PRIVMSG #esolangs :14[[07Talk:Brain-os source code (not an esolang but an esolang-built OS)14]]4 10 02https://esolangs.org/w/index.php?diff=183141&oldid=183140 5* 03Mrtli08 5* (+185) 10 > 1780739345 106999 PRIVMSG #esolangs :14[[07INT14]]4 M10 02https://esolangs.org/w/index.php?diff=183142&oldid=183138 5* 03ASCIIguy 5* (-725) 10/* Examples */ > 1780739352 849881 PRIVMSG #esolangs :14[[07INT/Examples14]]4 N10 02https://esolangs.org/w/index.php?oldid=183143 5* 03ASCIIguy 5* (+746) 10Created page with "Hello World: V"Hello world!" 99 Bottles of Beer: ?b99*>b0[^b" bottles of beer on the wall."]-0 Quine: ^^ Factorial: ~f.x[?c1* 1780739605 333112 PRIVMSG #esolangs :14[[07Livingfish14]]4 M10 02https://esolangs.org/w/index.php?diff=183144&oldid=183139 5* 03ASCIIguy 5* (+68) 10Added Deadfish Interpreter. > 1780739685 476859 PRIVMSG #esolangs :14[[07Deadfish14]]4 10 02https://esolangs.org/w/index.php?diff=183145&oldid=176241 5* 03ASCIIguy 5* (+81) 10/* Variants of deadfish */ > 1780741742 934959 PRIVMSG #esolangs :14[[07Brainhook14]]4 10 02https://esolangs.org/w/index.php?diff=183146&oldid=168742 5* 03Kaveh Yousefi 5* (+7493) 10Introduced an examples section, added an interpreter implementation in Common Lisp, and altered the category tag Unimplemented to Implemented. > 1780741988 783133 PRIVMSG #esolangs :14[[07Special:Log/newusers14]]4 create10 02 5* 03LargeHardTech 5* 10New user account > 1780742077 369597 PRIVMSG #esolangs :14[[07Talk:Brain-os source code (not an esolang but an esolang-built OS)14]]4 10 02https://esolangs.org/w/index.php?diff=183147&oldid=183141 5* 03Blashyrkh 5* (+590) 10/* Is brainfuck a good choice? */ > 1780742118 75372 PRIVMSG #esolangs :14[[07Brainhooking14]]4 10 02https://esolangs.org/w/index.php?diff=183148&oldid=138529 5* 03Kaveh Yousefi 5* (+9753) 10Introduced an examples section and added an interpreter implementation in Common Lisp, imputing a signed binary number to be expected in its two's complement plasmature. > 1780742147 929044 PRIVMSG #esolangs :14[[07Comma14]]4 N10 02https://esolangs.org/w/index.php?oldid=183149 5* 03ASCIIguy 5* (+3048) 10Created page with "comma (always lowercase) is an assembly language for a 4-bit fantasy chip known as the COMM4. == Registers and RAM == comma has access to 256 bytes of RAM, though this does not limit program size as the program is stored in ROM; this means it cannot be changed. Although > 1780742253 45094 PRIVMSG #esolangs :14[[07Talk:Brain-os source code (not an esolang but an esolang-built OS)14]]4 M10 02https://esolangs.org/w/index.php?diff=183150&oldid=183147 5* 03Blashyrkh 5* (-5) 10/* Is brainfuck a good choice? */ reword a little bit < 1780742494 769713 :svm!~msv@user/msv JOIN #esolangs msv :msv < 1780742669 824905 :msv!~msv@user/msv QUIT :Ping timeout: 265 seconds > 1780742718 769037 PRIVMSG #esolangs :14[[07Esolang:Introduce yourself14]]4 10 02https://esolangs.org/w/index.php?diff=183151&oldid=183126 5* 03LargeHardTech 5* (+74) 10/* Introductions */ > 1780743347 707266 PRIVMSG #esolangs :14[[07NAND14]]4 N10 02https://esolangs.org/w/index.php?oldid=183152 5* 03 5* (+3580) 10Page created. > 1780743363 454120 PRIVMSG #esolangs :14[[07Language list14]]4 10 02https://esolangs.org/w/index.php?diff=183153&oldid=182807 5* 03 5* (+11) 10/* N */ New language added. > 1780743537 559263 PRIVMSG #esolangs :14[[07Esolang:Introduce yourself14]]4 10 02https://esolangs.org/w/index.php?diff=183154&oldid=183151 5* 03LargeHardTech 5* (+96) 10/* Introductions */ > 1780743662 368251 PRIVMSG #esolangs :14[[07Special:Log/upload14]]4 upload10 02 5* 03ASCIIguy 5* 10uploaded "[[02File:H.png10]]" > 1780743716 492340 PRIVMSG #esolangs :14[[07Colours14]]4 N10 02https://esolangs.org/w/index.php?oldid=183156 5* 03ASCIIguy 5* (+1110) 10Created > 1780743853 819741 PRIVMSG #esolangs :14[[07Sprh14]]4 N10 02https://esolangs.org/w/index.php?oldid=183157 5* 03LargeHardTech 5* (+6070) 10Created page with "Esolang Wikisprh --- SPRH is an esoteric programming language designed by LargeHardTech in 2025. The name stands for **S**low (interpreted execution, feeling each step of change), **P**oor Readability (poor code readability, challenging the mind), and **H**ard (har > 1780743872 418250 PRIVMSG #esolangs :14[[07Sprh14]]4 10 02https://esolangs.org/w/index.php?diff=183158&oldid=183157 5* 03LargeHardTech 5* (-152) 10 > 1780743987 1879 PRIVMSG #esolangs :14[[07Sprh14]]4 10 02https://esolangs.org/w/index.php?diff=183159&oldid=183158 5* 03LargeHardTech 5* (-339) 10 > 1780743998 205048 PRIVMSG #esolangs :14[[07FuckTheBit14]]4 10 02https://esolangs.org/w/index.php?diff=183160&oldid=169836 5* 03 5* (-28) 10Broken link deleted. > 1780744037 498903 PRIVMSG #esolangs :14[[0714]]4 10 02https://esolangs.org/w/index.php?diff=183161&oldid=181343 5* 03 5* (+6) 10Broken link fixed. > 1780744086 285970 PRIVMSG #esolangs :14[[07VisE14]]4 10 02https://esolangs.org/w/index.php?diff=183162&oldid=180728 5* 03 5* (+10) 10Broken link fixed. < 1780744279 602162 :ais523!~ais523@user/ais523 JOIN #esolangs ais523 :(this is obviously not my real name) > 1780745045 217044 PRIVMSG #esolangs :14[[07Windy14]]4 10 02https://esolangs.org/w/index.php?diff=183163&oldid=182009 5* 03 5* (+1) 10Broken links fixed. < 1780745176 225270 :Lord_of_Life_!~Lord@user/lord-of-life/x-2819915 JOIN #esolangs Lord_of_Life :Lord < 1780745210 321162 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 QUIT :Ping timeout: 245 seconds < 1780745349 275410 :Lord_of_Life_!~Lord@user/lord-of-life/x-2819915 NICK :Lord_of_Life < 1780745609 939275 :amby!~ambylastn@79-77-118-44.dynamic.dsl.as9105.com JOIN #esolangs amby :realname > 1780746079 122296 PRIVMSG #esolangs :14[[07(A)-rightarrow(B)14]]4 10 02https://esolangs.org/w/index.php?diff=183164&oldid=174124 5* 03 5* (+126) 10Lead, section added; categorization. > 1780746275 733035 PRIVMSG #esolangs :14[[071-Bin14]]4 10 02https://esolangs.org/w/index.php?diff=183165&oldid=182247 5* 03 5* (+62) 10Link fixed, categorization. > 1780746402 824839 PRIVMSG #esolangs :14[[07Colours14]]4 10 02https://esolangs.org/w/index.php?diff=183166&oldid=183156 5* 03Cleverxia 5* (+94) 10categories > 1780746479 751547 PRIVMSG #esolangs :14[[07Colours14]]4 10 02https://esolangs.org/w/index.php?diff=183167&oldid=183166 5* 03Cleverxia 5* (+0) 10 > 1780746490 637006 PRIVMSG #esolangs :14[[0714]]4 10 02https://esolangs.org/w/index.php?diff=183168&oldid=183161 5* 03 5* (+76) 10Categorization. > 1780746554 765327 PRIVMSG #esolangs :14[[07FuckTheBit14]]4 10 02https://esolangs.org/w/index.php?diff=183169&oldid=183160 5* 03 5* (+23) 10Categorization. < 1780746586 949219 :tromp!~textual@2001:1c00:340e:2700:b8bf:26b:c387:47d1 QUIT :Read error: Connection reset by peer > 1780746655 357107 PRIVMSG #esolangs :14[[071214]]4 10 02https://esolangs.org/w/index.php?diff=183170&oldid=165375 5* 03 5* (+85) 10Categorization. > 1780746793 534036 PRIVMSG #esolangs :14[[0712 machine14]]4 10 02https://esolangs.org/w/index.php?diff=183171&oldid=177328 5* 03 5* (+117) 10Categorization. > 1780746912 104611 PRIVMSG #esolangs :14[[071814]]4 10 02https://esolangs.org/w/index.php?diff=183172&oldid=169214 5* 03 5* (+76) 10Categorization. > 1780747163 41473 PRIVMSG #esolangs :14[[071AMB0A14]]4 10 02https://esolangs.org/w/index.php?diff=183173&oldid=168704 5* 03 5* (+76) 10Categorization. > 1780747366 498292 PRIVMSG #esolangs :14[[07202714]]4 10 02https://esolangs.org/w/index.php?diff=183174&oldid=171795 5* 03 5* (+76) 10Categorization. > 1780747498 228157 PRIVMSG #esolangs :14[[072147483647Funge14]]4 10 02https://esolangs.org/w/index.php?diff=183175&oldid=166707 5* 03 5* (+118) 10Categorization. > 1780747534 733805 PRIVMSG #esolangs :14[[072D-Reversable/Python Implementation14]]4 10 02https://esolangs.org/w/index.php?diff=183176&oldid=178984 5* 03 5* (+29) 10Categorization. > 1780747571 702583 PRIVMSG #esolangs :14[[072D-Reversable 2/Python Implementation14]]4 10 02https://esolangs.org/w/index.php?diff=183177&oldid=178985 5* 03 5* (+29) 10Categorization. > 1780747802 873162 PRIVMSG #esolangs :14[[072DSPC14]]4 10 02https://esolangs.org/w/index.php?diff=183178&oldid=154895 5* 03 5* (+115) 10Categorization, capitalization. > 1780747833 668267 PRIVMSG #esolangs :14[[072 commands :(14]]4 10 02https://esolangs.org/w/index.php?diff=183179&oldid=169185 5* 03 5* (+77) 10Categorization. > 1780747894 836879 PRIVMSG #esolangs :14[[072 digits, 50 digytes14]]4 10 02https://esolangs.org/w/index.php?diff=183180&oldid=153704 5* 03 5* (+86) 10Categorization. > 1780747974 889101 PRIVMSG #esolangs :14[[072 variable trickery14]]4 10 02https://esolangs.org/w/index.php?diff=183181&oldid=171485 5* 03 5* (+84) 10Categorization. > 1780748114 548997 PRIVMSG #esolangs :14[[072b14]]4 10 02https://esolangs.org/w/index.php?diff=183182&oldid=135311 5* 03 5* (+160) 10Categorization. < 1780748523 153576 :somefan!~somefan@user/somefan QUIT :Ping timeout: 246 seconds < 1780750962 775625 :somefan!~somefan@96.241.14.210 JOIN #esolangs * :realname < 1780750963 303348 :somefan!~somefan@96.241.14.210 CHGHOST ~somefan :user/somefan < 1780752077 69303 :jinn6!jan6@tilde.team/user/jan6 NICK :jinn6-6-2026 > 1780754139 751446 PRIVMSG #esolangs :14[[07Brainhooking14]]4 10 02https://esolangs.org/w/index.php?diff=183183&oldid=183148 5* 03Kaveh Yousefi 5* (+62) 10Supplemented a See also section, referencing the cognate Brainhook specimen. < 1780755842 783384 :joast!~joast@2603:90d8:500:31cf:5e0f:3f4b:1cfe:5060 QUIT :Quit: Leaving. < 1780756754 771564 :somefan!~somefan@user/somefan QUIT :Ping timeout: 248 seconds < 1780757754 154653 :somefan!~somefan@96.241.14.210 JOIN #esolangs * :realname < 1780757754 409872 :somefan!~somefan@96.241.14.210 CHGHOST ~somefan :user/somefan < 1780759375 866998 :joast!~joast@2603:90d8:500:31cf:5e0f:3f4b:1cfe:5060 JOIN #esolangs joast :joast > 1780763830 56663 PRIVMSG #esolangs :14[[07Sprh14]]4 10 02https://esolangs.org/w/index.php?diff=183184&oldid=183159 5* 03Corbin 5* (+29) 10Tag as slop. This article, as well as the git repository, has evidence of being prepared with Claude. < 1780763867 265796 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Nobody tell the newbies that Claude's choice to generate Markdown is *very* conspicuous in a Mediawiki article. < 1780763989 488537 :int-e!~noone@int-e.eu PRIVMSG #esolangs :[noted](https://logs.esolangs.org/libera-esolangs/2026-06-06.html#lKb) < 1780764058 329436 :int-e!~noone@int-e.eu PRIVMSG #esolangs :(nb I hate that particular syntax so much because my brain would much prefer to put the link first) < 1780764152 441123 :b_jonas!~x@catv-80-98-84-202.catv.fixed.one.hu PRIVMSG #esolangs :int-e: I also hate that particular syntax, not because of the order but because URLs can have right parenthesis in them so right parenthesis is not a good delimiter for an URL. fortunately markdown has an alternative syntax that I can use in most places. < 1780764559 94738 :ais523!~ais523@user/ais523 QUIT :Quit: quit < 1780764734 600973 :ais523!~ais523@user/ais523 JOIN #esolangs ais523 :(this is obviously not my real name) < 1780766401 1141 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 QUIT :Excess Flood < 1780766514 83344 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 JOIN #esolangs Lord_of_Life :Lord < 1780766819 5774 :Sgeo!~Sgeo@user/sgeo JOIN #esolangs Sgeo :realname < 1780767128 124738 :aadenboy!~aadenboy@172.56.105.248 JOIN #esolangs * :11,8aadenboy — it's pronounced [ˈejËŒdÉ›nbÉ < 1780767134 150624 :aadenboy!~aadenboy@172.56.105.248 PRIVMSG #esolangs :morning < 1780768644 420871 :FireFly!~firefly@glowbum/gluehwuermchen/firefly PRIVMSG #esolangs :I usually use the footnote syntax for markdown links, even in comments and the like.. i.e. [foo][1] and [1]: https://path/to/link < 1780768654 211197 :FireFly!~firefly@glowbum/gluehwuermchen/firefly PRIVMSG #esolangs :I find it easier both to read and write :p > 1780770193 517160 PRIVMSG #esolangs :14[[07Combinatory logic14]]4 10 02https://esolangs.org/w/index.php?diff=183185&oldid=183122 5* 03Bobby Jacobs 5* (+14) 10 < 1780775024 600432 :Guest88!~Guest88@host86-153-132-170.range86-153.btcentralplus.com JOIN #esolangs * :[https://web.libera.chat] Guest88 < 1780775349 467429 :tired2!~tired2@host86-153-132-170.range86-153.btcentralplus.com JOIN #esolangs * :tired2 < 1780775359 118233 :tired2!~tired2@host86-153-132-170.range86-153.btcentralplus.com PRIVMSG #esolangs :Hi! < 1780775409 655753 :Guest88!~Guest88@host86-153-132-170.range86-153.btcentralplus.com QUIT :Quit: Client closed < 1780775423 458095 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Howdy. < 1780775430 525196 :tired2!~tired2@host86-153-132-170.range86-153.btcentralplus.com PRIVMSG #esolangs :How are you? < 1780775549 102299 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :I'm fine. Writing a new calling convention for [[Vixen]]. < 1780775697 195784 :tired2!~tired2@host86-153-132-170.range86-153.btcentralplus.com QUIT :Ping timeout: 246 seconds < 1780776249 754421 :b_jonas!~x@catv-80-98-84-202.catv.fixed.one.hu PRIVMSG #esolangs :ais523: I want to ask you my rust question too, because it may be related to your complaints about how references work. I'm writing some functions that use randomness, and making them rust generic so that I can compile them in two ways: either using a global random state, or using a mutable random state that I pass to the function by mut reference. In my first attempt, I wrote something like `trait < 1780776255 759742 :b_jonas!~x@catv-80-98-84-202.catv.fixed.one.hu PRIVMSG #esolangs :RandomGenerator { ... } ... impl RandomGenerator for &mut XofRandomGenerator { ... } ... fn use_randomness(..., rng: R)`. this worked in the simplest cases, but the problem is that if a function generic over the random generator wants to call two functions each generic over the random generator one after another then it'd have to move the random generator into both. so my second < 1780776261 774515 :b_jonas!~x@catv-80-98-84-202.catv.fixed.one.hu PRIVMSG #esolangs :attempt says `trait RandomGenerator { ... } ... impl RandomGenerator for XofRandomGenerator { ... } ... fn use_randomness(..., rng: &mut R) { ... }`. and I think this works (it currently fails at runtime for reasons unrelated to this discussion, I'm still debugging it). but it feels wrong, because its consequence is that if I'm using the global random state then I'm passing around a < 1780776267 776764 :b_jonas!~x@catv-80-98-84-202.catv.fixed.one.hu PRIVMSG #esolangs :mut reference to a zero-sized type, and I don't think the compiler can optimize that reference away in general, because it doesn't know that the address of the zero-sized type doesn't matter. < 1780776342 125149 :b_jonas!~x@catv-80-98-84-202.catv.fixed.one.hu PRIVMSG #esolangs :so what's the best way to be generic in this way? < 1780776847 437563 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :b_jonas: in present Rust I don't think there's a perfect way (but the most common approach is to have RandomGenerator: Copy and then make the mutable-random-state version a shared reference and use interior mutability) < 1780776865 561066 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :what you really want is R: Reborrow but the reborrow trait isn't implementable in current Rust (although there are people working on it at the moment) < 1780776904 316761 :b_jonas!~x@catv-80-98-84-202.catv.fixed.one.hu PRIVMSG #esolangs :I see < 1780776913 876763 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :specifically, language changes to make the trait implementable < 1780776939 253690 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :and yes, this is extremely close to the bits of Rust theory I've been working on < 1780776960 287718 :emery!~quassel@217.155.30.169 QUIT :Read error: Connection reset by peer < 1780776987 517773 :emery!~quassel@217.155.30.169 JOIN #esolangs ehmry :Emery < 1780776994 636884 :emery!~quassel@217.155.30.169 QUIT :Read error: Connection reset by peer < 1780777019 110648 :emery!~quassel@217.155.30.169 JOIN #esolangs ehmry :Emery < 1780777303 786835 :b_jonas!~x@catv-80-98-84-202.catv.fixed.one.hu PRIVMSG #esolangs :if the RandomGenerator must be Copy, then will the rust lifetime system still be able to express that it mustn't use the random state after its lifetime even through the generic constraint? < 1780777570 903364 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :b_jonas: yes, &'a T is Copy, this is no different < 1780777598 551853 :b_jonas!~x@catv-80-98-84-202.catv.fixed.one.hu PRIVMSG #esolangs :ok < 1780777712 653392 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :this is the reason why every type with a generic type parameter needs to declare its variance (in case the generic type includes a lifetime) < 1780777746 392604 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :although Rust deduces the variance implicitly except when you're using unsafe code (or when the parameter is unused, which is a sign that you're intending to use it for something it can't see) < 1780777780 133531 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I dislike the "unused" rule, often the reason I am not using a generic parameter is because I generated the code with a macro and it genuinely isn't using the generic for anything < 1780777850 270444 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :although there is a somewhat weird workaround (blanket-implement a trait on all types that has an associated type that's always (), then include the associated type as a field in the generic type – Rust thinks that the variance might be used via the trait (even though it isn't) and so allows it) < 1780777856 856877 :b_jonas!~x@catv-80-98-84-202.catv.fixed.one.hu PRIVMSG #esolangs :and the trait doesn't inform the compiler of the variance in generic context? < 1780777912 20671 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I think anything that gets used via a trait is forced to be invariant < 1780777941 232759 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :fwiw, I am of the opinion that variance/subtyping is *usually* a mistake < 1780777962 740497 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :this turned out to be the case when I was doing my PhD thesis, and in Rust I think it's also a mistake compared to using outlives bounds < 1780777965 489149 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(although I'm not sure) < 1780777980 607318 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :the issue is that it solves a lot of common cases but generally doesn't work in complex cases < 1780777996 622167 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :so it would have been better to use a more general solution from the start < 1780778152 167629 :b_jonas!~x@catv-80-98-84-202.catv.fixed.one.hu PRIVMSG #esolangs :oh probably, I should just make the random seed type compile-time fixed, and changable via compilation options, rather than a rust generic parameter < 1780778168 245379 :b_jonas!~x@catv-80-98-84-202.catv.fixed.one.hu PRIVMSG #esolangs :like, the whole genericness is too strong here < 1780778428 294995 :b_jonas!~x@catv-80-98-84-202.catv.fixed.one.hu PRIVMSG #esolangs :anyway, for the stateful rng, I'm using the sodium_xof_* API which is new in recent libsodium versions < 1780778471 405058 :b_jonas!~x@catv-80-98-84-202.catv.fixed.one.hu PRIVMSG #esolangs :at least in my current program < 1780778980 441400 :sprock!~sprock@user/sprock JOIN #esolangs sprock :maeve (she/her) < 1780779167 674753 :emery!~quassel@217.155.30.169 QUIT :Read error: Connection reset by peer < 1780779428 526601 :emery!~quassel@217.155.30.169 JOIN #esolangs ehmry :Emery < 1780781991 64441 :sprock!~sprock@user/sprock QUIT :Ping timeout: 255 seconds