< 1645236628 612785 :Lykaina!~lykaina@user/lykaina JOIN #esolangs Lykaina :Lykaina Wolfe < 1645236639 256513 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :hi < 1645236682 919937 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :what's a good paste site? i want a peer review of a language i just wrote < 1645237013 524187 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :https://pastebin.com/801zLHMr < 1645237053 608500 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :it's incomplete, of course < 1645237633 953627 :dyeplexer!~dyeplexer@user/dyeplexer JOIN #esolangs dyeplexer :t b k ky jt h bc < 1645238430 283602 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :i just want comments on it < 1645239205 191423 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :do you want me to discuss it? i haven't even named it < 1645239499 573537 :Corbin!~Corbin@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Lykaina: Looks alright. Did you have a use case in mind? < 1645239602 370542 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :arduino scripting < 1645239708 715791 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :this is the limit of my documentation abilities > 1645239734 366650 PRIVMSG #esolangs :14[[07Teramithic14]]4 10 02https://esolangs.org/w/index.php?diff=93227&oldid=93226 5* 03Digital Hunter 5* (+5662) 10/* Examples */ hopefully some kind of implementation of more complex datatypes. Pun somewhat intended < 1645239833 961140 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :it currently uses 4 files on the sd card < 1645239852 253784 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :i think it only needs to use 2 < 1645239886 397697 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :i forgot why the interpreter was written to have two 2-byte files on the sd card < 1645240067 3119 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :i'll have to rewrite the interpreter < 1645241851 659445 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :done < 1645241904 71028 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :the 64k storage is on the sdcard, as is the program code < 1645242002 396313 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :moved the pointers off the sd card. there was no sane reason for them to be there < 1645242086 793934 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :i definitely need to make sure i can load and store a buffer to storage < 1645242484 14088 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :there. now i just have to code it. < 1645243925 988140 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :done < 1645246019 908281 :sgji!~le@user/sgji JOIN #esolangs sgji :sgji < 1645246220 924881 :lagash!lagash@lagash.shelltalk.net QUIT :Quit: ZNC - https://znc.in < 1645246516 881367 :lagash!lagash@lagash.shelltalk.net JOIN #esolangs * :ZNC - https://znc.in < 1645249420 444341 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :https://pastebin.com/801zLHMr has been updated < 1645250659 109195 :immibis!~hexchat@dynamic-089-204-138-049.89.204.138.pool.telefonica.de JOIN #esolangs * :realname < 1645250739 81535 :immibis_!~hexchat@dynamic-089-204-138-049.89.204.138.pool.telefonica.de QUIT :Ping timeout: 256 seconds < 1645252269 79237 :immibis!~hexchat@dynamic-089-204-138-049.89.204.138.pool.telefonica.de QUIT :Ping timeout: 256 seconds < 1645258920 838475 :definitelya!~hexagon@host-79-44-190-88.retail.telecomitalia.it JOIN #esolangs * :WRATH < 1645262108 960709 :dyeplexer!~dyeplexer@user/dyeplexer QUIT :Ping timeout: 272 seconds < 1645262981 816767 :dyeplexer!~dyeplexer@user/dyeplexer JOIN #esolangs dyeplexer :t b k ky jt h bc < 1645263541 89523 :immibis!~hexchat@62.156.144.218 JOIN #esolangs * :realname < 1645264116 731717 :dyeplexer!~dyeplexer@user/dyeplexer QUIT :Ping timeout: 240 seconds < 1645264865 833528 :dyeplexer!~dyeplexer@user/dyeplexer JOIN #esolangs dyeplexer :t b k ky jt h bc < 1645266396 731104 :dyeplexer!~dyeplexer@user/dyeplexer QUIT :Ping timeout: 240 seconds < 1645267185 64731 :dyeplexer!~dyeplexer@user/dyeplexer JOIN #esolangs dyeplexer :t b k ky jt h bc < 1645267637 69111 :dyeplexer!~dyeplexer@user/dyeplexer QUIT :Ping timeout: 256 seconds < 1645268255 847418 :Sgeo!~Sgeo@user/sgeo QUIT :Read error: Connection reset by peer < 1645268375 518053 :dyeplexer!~dyeplexer@user/dyeplexer JOIN #esolangs dyeplexer :t b k ky jt h bc < 1645269745 991349 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :int-e: Hmm, you're not into consensus, but how do you feel about distributed transactions? < 1645269782 539471 :riv!river@tilde.team/user/river PRIVMSG #esolangs :hi Lykaina < 1645269792 364893 :riv!river@tilde.team/user/river PRIVMSG #esolangs :i use debian pastebin https://paste.debian.net/ < 1645269819 117761 :riv!river@tilde.team/user/river PRIVMSG #esolangs :the language looks good, like it's an assembly or opcode language < 1645270382 75316 :tech_exorcist!txrcst@user/tech-exorcist/x-0447479 JOIN #esolangs tech_exorcist :he/him - IT, EN > 1645274358 341358 PRIVMSG #esolangs :14[[07Special:Log/newusers14]]4 create10 02 5* 03Vic 5* 10New user account < 1645274737 494496 :dyeplexer!~dyeplexer@user/dyeplexer QUIT :Ping timeout: 240 seconds > 1645274756 746534 PRIVMSG #esolangs :14[[07Esolang:Introduce yourself14]]4 10 02https://esolangs.org/w/index.php?diff=93228&oldid=93208 5* 03Vic 5* (+233) 10/* Introductions */ > 1645274992 588346 PRIVMSG #esolangs :14[[07Brainfuck implementations14]]4 10 02https://esolangs.org/w/index.php?diff=93229&oldid=92989 5* 03Vic 5* (+223) 10/* Normal implementations */ > 1645275760 943277 PRIVMSG #esolangs :14[[07Fun Craft14]]4 10 02https://esolangs.org/w/index.php?diff=93230&oldid=89288 5* 03ManiPM 5* (+361) 10 < 1645276813 818335 :razetime!~quassel@117.254.35.46 JOIN #esolangs razetime :razetime > 1645278212 174553 PRIVMSG #esolangs :14[[07Fun Craft14]]4 10 02https://esolangs.org/w/index.php?diff=93231&oldid=93230 5* 03ManiPM 5* (+413) 10 < 1645278274 559661 :int-e!~noone@int-e.eu PRIVMSG #esolangs :shachaf: I have two generals still failing to agree on a time to attack < 1645278285 624898 :int-e!~noone@int-e.eu PRIVMSG #esolangs :shachaf: but I guess transactions are fine as long as you don't commit them > 1645278295 342873 PRIVMSG #esolangs :14[[07Fun Craft14]]4 10 02https://esolangs.org/w/index.php?diff=93232&oldid=93231 5* 03ManiPM 5* (+4) 10 < 1645278858 812315 :dyeplexer!~dyeplexer@user/dyeplexer JOIN #esolangs dyeplexer :t b k ky jt h bc < 1645279156 307032 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :Lykaina: https://dpaste.com/ and https://dpaste.org/ (that's two different ones) > 1645279285 964511 PRIVMSG #esolangs :14[[07Fun Craft14]]4 M10 02https://esolangs.org/w/index.php?diff=93233&oldid=93232 5* 03ManiPM 5* (+5) 10/* List OF Commands */ < 1645280611 41344 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :I'm using 0x0.st these days. > 1645284467 647228 PRIVMSG #esolangs :14[[07Kak-14]]4 N10 02https://esolangs.org/w/index.php?oldid=93234 5* 03ChuckEsoteric08 5* (+342) 10Created page with "{{Stub}} '''Kak-''' is esolang that minimises [[Kak]]. It has 2 commands. The programm is inside loop. ==Commands== ! - same as [[Kak]] I - skip next instruction if bit is 0..." > 1645284583 964561 PRIVMSG #esolangs :14[[07Kak14]]4 10 02https://esolangs.org/w/index.php?diff=93235&oldid=92636 5* 03ChuckEsoteric08 5* (+22) 10 > 1645284947 144993 PRIVMSG #esolangs :14[[07Kak-14]]4 10 02https://esolangs.org/w/index.php?diff=93236&oldid=93234 5* 03ChuckEsoteric08 5* (+47) 10 > 1645285650 634248 PRIVMSG #esolangs :14[[07Esolang:Sandbox14]]4 10 02https://esolangs.org/w/index.php?diff=93237&oldid=93215 5* 03AmNow 5* (+66) 10useless function woah > 1645286139 924944 PRIVMSG #esolangs :14[[07Special:Log/newusers14]]4 create10 02 5* 03Unforswearing 5* 10New user account > 1645286686 36533 PRIVMSG #esolangs :14[[07Esolang:Introduce yourself14]]4 10 02https://esolangs.org/w/index.php?diff=93238&oldid=93228 5* 03Unforswearing 5* (+257) 10/* Introductions */ > 1645286847 847847 PRIVMSG #esolangs :14[[07Kak--14]]4 N10 02https://esolangs.org/w/index.php?oldid=93239 5* 03ChuckEsoteric08 5* (+236) 10Created page with "{{Stub}} '''Kak--''' or '''USLAK''' ('''Us'''eless '''la'''nguage Ka'''k''') is a language derived from [[Kak-]]. It also uses same loop ==Commands== ! followed by space - sa..." > 1645286902 803116 PRIVMSG #esolangs :14[[07Kak14]]4 10 02https://esolangs.org/w/index.php?diff=93240&oldid=93235 5* 03ChuckEsoteric08 5* (+11) 10 < 1645287675 850375 :Lykaina!~lykaina@user/lykaina PART :#esolangs > 1645288916 518297 PRIVMSG #esolangs :14[[07Kak14]]4 10 02https://esolangs.org/w/index.php?diff=93241&oldid=93240 5* 03ChuckEsoteric08 5* (+256) 10 > 1645289096 778250 PRIVMSG #esolangs :14[[07Kak14]]4 10 02https://esolangs.org/w/index.php?diff=93242&oldid=93241 5* 03ChuckEsoteric08 5* (+31) 10 > 1645289113 117822 PRIVMSG #esolangs :14[[07Kak14]]4 10 02https://esolangs.org/w/index.php?diff=93243&oldid=93242 5* 03ChuckEsoteric08 5* (+1) 10 > 1645289561 619145 PRIVMSG #esolangs :14[[07User:AmNow14]]4 10 02https://esolangs.org/w/index.php?diff=93244&oldid=90663 5* 03AmNow 5* (+1) 10 > 1645290422 390611 PRIVMSG #esolangs :14[[07Kak-14]]4 10 02https://esolangs.org/w/index.php?diff=93245&oldid=93236 5* 03ChuckEsoteric08 5* (-38) 10 < 1645290524 791955 :razetime!~quassel@117.254.35.46 QUIT :Quit: https://quassel-irc.org - Chat comfortably. Anywhere. < 1645290547 958945 :razetime!~quassel@117.254.35.46 JOIN #esolangs razetime :razetime < 1645290824 59092 :razetime!~quassel@117.254.35.46 QUIT :Client Quit > 1645290833 143190 PRIVMSG #esolangs :14[[07Kak-14]]4 10 02https://esolangs.org/w/index.php?diff=93246&oldid=93245 5* 03ChuckEsoteric08 5* (+136) 10 < 1645290840 535803 :razetime!~quassel@117.254.35.46 JOIN #esolangs razetime :razetime < 1645290850 798376 :razetime!~quassel@117.254.35.46 QUIT :Client Quit < 1645290873 850037 :razetime!~quassel@117.254.35.46 JOIN #esolangs razetime :razetime < 1645290905 799064 :razetime!~quassel@117.254.35.46 QUIT :Client Quit < 1645295101 939900 :Eldrax!~Eldrax@2405:201:4018:192:e645:38d3:cf91:8fc4 JOIN #esolangs * :[https://web.libera.chat] Eldrax < 1645295131 342242 :Eldrax!~Eldrax@2405:201:4018:192:e645:38d3:cf91:8fc4 QUIT :Client Quit < 1645295290 467569 :^[!~user@user//x-8473491 QUIT :Quit: ^[ < 1645296090 4084 :dyeplexer!~dyeplexer@user/dyeplexer QUIT :Remote host closed the connection < 1645296913 697093 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :int-e: Yes, I was wondering about that sort of thing. < 1645296944 420858 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :Is it possible for a distributed transaction system to have the property that, when a transaction that writes to shards X and Y is committed, after a client ever sees the X write, their future reads from Y will always see the Y write (and vice versa)? I mean independent reads from X and Y, not transaction reads. < 1645297856 616027 :^[!~user@user//x-8473491 JOIN #esolangs ^[ :user < 1645298344 3186 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :I was wondering about a different stupid transaction thing < 1645298398 494265 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :so you know how there are these data structures that use atomic memory access to make sure you can safely access them simultaneously from multiple threads < 1645298424 253687 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :you don't need to lock them because the atomic memory writes make them always appear in a valid state < 1645298464 26983 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :and then there are locked data structures that have mutexes or read-write locks inside them so you have to lock part or all of them before you can read or write them safely < 1645298484 571916 :Sgeo!~Sgeo@user/sgeo JOIN #esolangs Sgeo :realname < 1645298558 852554 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :when you want to represent something that sematically makes sense to access from multiple threads, I think I understand why you can make a representation for them that uses locks. this is always possible because in the worst case you can just put everything behind one global lock, but usually I know how to do better than that. < 1645298625 17826 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :the important and non-esoteric question is how to make a lockless representation for everything that could have one. I don't understand this. I know a few simple structures where you can make a lockless representation, but they all seem like a special case rather than something I could generalize even informally. < 1645298682 812788 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :anyway, the stupid eso-question is, is there ever a data structure using atomic memory access that is lockless and always appears to be in a valid state when you read it, but needs a lock when you write it so that two threads don't write it in a conflicting way? < 1645298740 335582 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :I probably can't answer the eso question because I don't understand the real question < 1645299037 135920 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :shachaf: does "future reads" mean that the second client initiates the read of Y after it sees the value of X? < 1645299075 738388 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :it's not just that it receives the result of te read of Y after it receives the result of the read of X, right? because that would be too strong < 1645299337 536655 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :b_jonas: Yes, certainly. < 1645299425 65256 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :People talk about the (non-transactional) property "linearizability", which means "once you get an acknowledgement of a write, every successful read in your future light cone will see that write". < 1645299778 637235 :Lord_of_Life_!~Lord@user/lord-of-life/x-2819915 JOIN #esolangs Lord_of_Life :Lord < 1645299852 250004 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 QUIT :Ping timeout: 256 seconds < 1645299853 887367 :Lord_of_Life_!~Lord@user/lord-of-life/x-2819915 NICK :Lord_of_Life > 1645300045 908835 PRIVMSG #esolangs :14[[07Kak--14]]4 10 02https://esolangs.org/w/index.php?diff=93247&oldid=93239 5* 03ChuckEsoteric08 5* (+162) 10 > 1645301113 292545 PRIVMSG #esolangs :14[[07Xjansk14]]4 10 02https://esolangs.org/w/index.php?diff=93248&oldid=93213 5* 03DanielE 5* (+1) 10 > 1645301126 262619 PRIVMSG #esolangs :14[[07Xjansk14]]4 10 02https://esolangs.org/w/index.php?diff=93249&oldid=93248 5* 03DanielE 5* (-2) 10/* Program examples */ > 1645301518 621549 PRIVMSG #esolangs :14[[07Xjansk14]]4 10 02https://esolangs.org/w/index.php?diff=93250&oldid=93249 5* 03DanielE 5* (+354) 10/* Program examples */ < 1645301536 763768 :^[!~user@user//x-8473491 QUIT :Ping timeout: 250 seconds > 1645301537 315178 PRIVMSG #esolangs :14[[07Xjansk14]]4 10 02https://esolangs.org/w/index.php?diff=93251&oldid=93250 5* 03DanielE 5* (-1) 10/* Truth machine */ > 1645301585 175514 PRIVMSG #esolangs :14[[07Truth Machine (language)14]]4 10 02https://esolangs.org/w/index.php?diff=93252&oldid=90163 5* 03DanielE 5* (-40) 10 > 1645301762 156971 PRIVMSG #esolangs :14[[07Truth-machine14]]4 10 02https://esolangs.org/w/index.php?diff=93253&oldid=93176 5* 03DanielE 5* (+30) 10 < 1645302016 621607 :^[!~user@user//x-8473491 JOIN #esolangs ^[ :user < 1645302269 599177 :^[!~user@user//x-8473491 QUIT :Ping timeout: 256 seconds < 1645303186 947117 :imode!~imode@user/imode QUIT :Ping timeout: 272 seconds < 1645303937 34009 :tech_exorcist!txrcst@user/tech-exorcist/x-0447479 QUIT :Remote host closed the connection < 1645303958 4320 :tech_exorcist!txrcst@user/tech-exorcist/x-0447479 JOIN #esolangs tech_exorcist :he/him - IT, EN < 1645304321 709842 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :shachaf: wait a moment... < 1645304348 168560 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :shachaf: is that the property that IRC networks satisfy *because* they're topologically a tree, but they wouldn't if they could have loops? < 1645304486 828520 :definitelya!~hexagon@host-79-44-190-88.retail.telecomitalia.it QUIT :Quit: h < 1645304530 401579 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :Is it? I don't know how IRC networks work. < 1645304542 947133 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :shachaf: as in, client A joins a channel, and when client B (that's already joined to the channel) sees that client A joined, then client B leaves the channel: then every message on the channel will be received by either A or B, nothing falls in the gap between < 1645304558 856481 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :imagine A and B as logbots that change guard if you wish < 1645304591 200562 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :and they're likely connected to different servers -- the case when they're connected to the same IRC server is trivial < 1645304639 263001 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :and all sorts of ordering rules of messages similar to this < 1645304689 500293 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :if a loop on the IRC network were allowed, then this could be false, because the message could get to B's server early but A's server late on two different paths < 1645304836 755557 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :but IRC is tree shaped, so a message from C first gets to the server D that's in the of the tree where A and B and C meet, and then D sends it to A and B, and D also has to forward the message that A joined from A to B < 1645304986 775061 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :if D forwards the message from C to B before it forwards the join message from A, then B will get the message from C before it parts; otherwise D already knows that A joined and will forward the message from D to A < 1645305138 10888 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :this property happens to still work if there's a netsplit, but only because it's very simple; if you try to write a more complicated ordering theorem, they tend to only be true if there's no netsplit and servers reconnecting with a different topology in between them < 1645305198 218966 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :in any case, hopefully in the future we can have a non-quite-IRC that sends IRC-like messages but allows loops, though it only starts to matter if we have colonies on like two more planets < 1645305228 423862 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :and that protocol won't be on TCP, at least not as we understand TCP now < 1645305248 602793 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :(the server-server protocol that is; the client-server protocol could still be on TCP) < 1645305380 972297 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :but maybe what you're asking about isn't quite the same. for one it concerns four servers, not three. < 1645305389 528200 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :I mean four clients, not four servers < 1645305398 100991 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :endpoints, leaves < 1645305659 913109 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :I'm not quite sure what corresponds to "reads" in this context. < 1645305708 81461 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :And what guarantees you get from IRC, given that it doesn't give you past logs, for instance. < 1645305725 642967 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :anyway, I think an unchanging tree topology would imply the property that you're asking for, but perhaps they aren't equivalent < 1645305746 368303 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :IRC in general doesn't guarantee message ordering looks the same between participants, does it? < 1645305768 903643 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :Hmm, which property exactly? < 1645305795 287160 :oerjan!~oerjan@sprocket.nvg.ntnu.no JOIN #esolangs oerjan :Ørjan Johansen < 1645305834 878473 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :when you have just one IRC server and clients connected to it, then you have a strict ordering: the server reads messages in some order and processes each one immediately, sending its consequences to all clients, before it starts with the next message that it's read. < 1645305953 900985 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :when multiple servers are involved, then something similar is true for each server: the server reads messages from (clients connected to it and neighboring servers) in some order, and sends their consequences immediately before processing anything else, but that sending is only to the neighboring servers, before processing the next message; but the neighboring server reading and processing the message < 1645305959 990950 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :that the server sends isn't the same event, that can be delayed arbitrarily < 1645306033 916204 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :If I was making a distributed chat thing, I'd probably really want strong consistency guarantees, and use a consensus/atomic broadcast sort of thing. < 1645306071 445072 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :the magic, which I don't understand, is how servers reconcile conflicting commands, like conflicting mode changes < 1645306113 904763 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :I believe that if everyone stops sending messages about a channel then all the servers within a connected component will eventually agree on the channel being in the same state, as in same modes and ban lists and channel op lists and list of users joined, < 1645306118 664191 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :but how they do this is unclear to me < 1645306295 468744 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :also I believe that when someone sends a PRIVMSG on a channel, then only the server closest to it checks the channel permissions for whether they can send that message i.e. that they're joined on the channel and (not banned and not quieted on the channel and (channel mode -m or they have voice) or channel mode +z)) or channel has -n mode (only it's more complicated because more modes and features < 1645306301 519866 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :interact into this) < 1645306530 266217 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :also WHOIS with one argument is a local command (i.e. your server will reply you without having to wait for any other server), but WHOIS with two arguments is a remote command (your server will send a request to other servers, go on with their life including process other messages from you and send you other replies, and later reply you when it receives a reply from another server, it sends you a reply < 1645306536 427583 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :to that WHOIS) < 1645306611 963335 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :this is what I gathered back when I asked questions about IRC on freenode/#freenode < 1645306659 32187 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :and obviously they only have authority about what freenode does, because someone else could run an IRC network that kind of pretends to be IRC but doesn't satisfy its invariants < 1645306937 187618 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :I kind of imagine Twitch chat's internal server-to-server protocol is all unrelated. < 1645308974 395161 :b_jonas!~x@catv-176-63-4-103.catv.fixed.vodafone.hu PRIVMSG #esolangs :fizzie: yes, twitch is unrelated, it just gives a kind-of IRC-like interface towards clients, but it cares less and less to pretend that it's IRC < 1645309767 439903 :^[!~user@user//x-8473491 JOIN #esolangs ^[ :user < 1645311480 186266 :tech_exorcist!txrcst@user/tech-exorcist/x-0447479 QUIT :Quit: Disconnecting