< 1738454634 428352 :mtm!~textual@47.202.75.129 QUIT :Ping timeout: 246 seconds < 1738454761 642713 :mtm!~textual@47.202.75.129 JOIN #esolangs mtm :Textual User > 1738455258 291697 PRIVMSG #esolangs :14[[07Onesharp14]]4 10 02https://esolangs.org/w/index.php?diff=151161&oldid=151160 5* 03Jburns22 5* (+1346) 10 > 1738455272 1150 PRIVMSG #esolangs :14[[07Fungeball14]]4 10 02https://esolangs.org/w/index.php?diff=151162&oldid=151158 5* 03Lykaina 5* (+57) 10adding link to python file > 1738455296 249745 PRIVMSG #esolangs :14[[07Onesharp14]]4 M10 02https://esolangs.org/w/index.php?diff=151163&oldid=151161 5* 03Jburns22 5* (-2) 10 > 1738455321 683187 PRIVMSG #esolangs :14[[07Onesharp14]]4 M10 02https://esolangs.org/w/index.php?diff=151164&oldid=151163 5* 03Jburns22 5* (+6) 10 > 1738455336 87923 PRIVMSG #esolangs :14[[07Onesharp14]]4 10 02https://esolangs.org/w/index.php?diff=151165&oldid=151164 5* 03Jburns22 5* (+0) 10 < 1738455364 689710 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :how does https://esolangs.org/wiki/Fungeball now? > 1738455395 862191 PRIVMSG #esolangs :14[[07Onesharp14]]4 10 02https://esolangs.org/w/index.php?diff=151166&oldid=151165 5* 03Jburns22 5* (+206) 10 < 1738455405 205606 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :I mean, how does https://esolangs.org/wiki/Fungeball look now? > 1738455574 430832 PRIVMSG #esolangs :14[[07Onesharp14]]4 10 02https://esolangs.org/w/index.php?diff=151167&oldid=151166 5* 03Jburns22 5* (-64) 10 > 1738455673 764055 PRIVMSG #esolangs :14[[07Onesharp14]]4 M10 02https://esolangs.org/w/index.php?diff=151168&oldid=151167 5* 03Jburns22 5* (+3) 10 > 1738456053 869012 PRIVMSG #esolangs :14[[07Snub14]]4 M10 02https://esolangs.org/w/index.php?diff=151169&oldid=151150 5* 03Buckets 5* (+2) 10 < 1738459376 42173 :ais523!~ais523@user/ais523 JOIN #esolangs ais523 :(this is obviously not my real name) > 1738459404 412296 PRIVMSG #esolangs :14[[07Fungeball14]]4 10 02https://esolangs.org/w/index.php?diff=151170&oldid=151162 5* 03Lykaina 5* (+658) 10Added some content, self-unmarking as stub. < 1738459483 416896 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :I'll add more to https://esolangs.org/wiki/Fungeball in a little bit > 1738459593 339851 PRIVMSG #esolangs :14[[07User talk:Hsxiaobai14]]4 10 02https://esolangs.org/w/index.php?diff=151171&oldid=151138 5* 03Hsxiaobai 5* (+85) 10 > 1738459618 829272 PRIVMSG #esolangs :14[[07User talk:Hsxiaobai14]]4 10 02https://esolangs.org/w/index.php?diff=151172&oldid=151171 5* 03Hsxiaobai 5* (+89) 10 > 1738459873 548406 PRIVMSG #esolangs :14[[07User:Hsxiaobai/Sandbox14]]4 N10 02https://esolangs.org/w/index.php?oldid=151173 5* 03Hsxiaobai 5* (+78) 10Created page with "'''Bold text''' ''Italic text'' [https://github.com A external link to Github]" > 1738459936 679943 PRIVMSG #esolangs :14[[07User:Hsxiaobai/Sandbox14]]4 10 02https://esolangs.org/w/index.php?diff=151174&oldid=151173 5* 03Hsxiaobai 5* (+8) 10 > 1738460044 910086 PRIVMSG #esolangs :14[[07User:Hsxiaobai/Sandbox14]]4 10 02https://esolangs.org/w/index.php?diff=151175&oldid=151174 5* 03Hsxiaobai 5* (+86) 10 > 1738460076 203652 PRIVMSG #esolangs :14[[07User:Hsxiaobai/Sandbox14]]4 10 02https://esolangs.org/w/index.php?diff=151176&oldid=151175 5* 03Hsxiaobai 5* (-6) 10 > 1738460169 393666 PRIVMSG #esolangs :14[[07User:Hsxiaobai/Sandbox14]]4 10 02https://esolangs.org/w/index.php?diff=151177&oldid=151176 5* 03Hsxiaobai 5* (+6) 10 > 1738460312 925387 PRIVMSG #esolangs :14[[07User:Hsxiaobai/Sandbox14]]4 10 02https://esolangs.org/w/index.php?diff=151178&oldid=151177 5* 03Hsxiaobai 5* (+1) 10 > 1738460777 326065 PRIVMSG #esolangs :14[[07Onesharp14]]4 M10 02https://esolangs.org/w/index.php?diff=151179&oldid=151168 5* 03Jburns22 5* (-4) 10 > 1738461032 87265 PRIVMSG #esolangs :14[[07User talk:Hsxiaobai14]]4 M10 02https://esolangs.org/w/index.php?diff=151180&oldid=151172 5* 03Aadenboy 5* (+1) 10add line break > 1738461441 887703 PRIVMSG #esolangs :14[[07Brainfffffuck14]]4 N10 02https://esolangs.org/w/index.php?oldid=151181 5* 03Hsxiaobai 5* (+23) 10Created page with "[[:Category:Languages]]" > 1738461475 933933 PRIVMSG #esolangs :14[[07Brainfffffuck14]]4 10 02https://esolangs.org/w/index.php?diff=151182&oldid=151181 5* 03Hsxiaobai 5* (-1) 10 < 1738461585 464446 :Artea!~Lufia@artea.pt QUIT :Ping timeout: 246 seconds > 1738461744 570451 PRIVMSG #esolangs :14[[0714]]4 10 02https://esolangs.org/w/index.php?diff=151183&oldid=151120 5* 03None1 5* (+20) 10/* Simple Example */ < 1738461862 457683 :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 < 1738461917 37756 :int-e!~noone@int-e.eu PRIVMSG #esolangs :`learn The password of the month is 99.964% < 1738461924 330406 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :Relearned 'password': The password of the month is 99.964% > 1738462002 927544 PRIVMSG #esolangs :14[[07User talk:Hsxiaobai14]]4 10 02https://esolangs.org/w/index.php?diff=151184&oldid=151180 5* 03PrySigneToFry 5* (+1225) 10 > 1738462255 899594 PRIVMSG #esolangs :14[[07Fungeball14]]4 10 02https://esolangs.org/w/index.php?diff=151185&oldid=151170 5* 03Lykaina 5* (+540) 10/* Implementation Notes */ < 1738462350 558532 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :found a bug in Fungeball 1.0b0 < 1738462359 815339 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :a big one < 1738462430 735419 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :gotta patch it < 1738462847 153618 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :hmm, Fungeball may be Turing-complete, even though Befunge-93 isn't < 1738462865 905498 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I think you can use the multiple threads' stacks as a way to store unlimited amount of data, and the playfield for them to communicate with each other < 1738462970 332132 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :right, it's fairly easy to implement The Waterfall Model in that – you use one thread for each waterclock plus a separate control thread that tells the other threads when to run (by changing >< infinite loops into >> to release the thread) – it'd be TC even if there were no timing guarantees < 1738463015 661327 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :Lykaina: you should probably clarify whether q and @ quit the entire program or the current thread < 1738463154 221909 :int-e!~noone@int-e.eu PRIVMSG #esolangs :this needs a memory model < 1738463200 629208 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :int-e: isn't it just shared playfield and thread-specific stacks? > 1738463311 220791 PRIVMSG #esolangs :14[[07Fungeball14]]4 10 02https://esolangs.org/w/index.php?diff=151186&oldid=151185 5* 03Lykaina 5* (+31) 10Updated url < 1738463385 983291 :int-e!~noone@int-e.eu PRIVMSG #esolangs :well you still need something like g and p of all threads being sequenceable and respecting their thread's order of operations (to start at the strong end) don't you < 1738463442 708889 :int-e!~noone@int-e.eu PRIVMSG #esolangs :what's a "cycle" < 1738463588 33267 :int-e!~noone@int-e.eu PRIVMSG #esolangs :I guess that means threads synchronize after every operation? < 1738463662 988480 :int-e!~noone@int-e.eu PRIVMSG #esolangs :The thing is, I feel that I'm reading between the lines to try to figure that out so it's grossly underspecified. > 1738463697 401730 PRIVMSG #esolangs :14[[07Fungeball14]]4 10 02https://esolangs.org/w/index.php?diff=151187&oldid=151186 5* 03Lykaina 5* (+225) 10/* Instructions */ Clarified q and @ < 1738463784 69480 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Not that it'll matter for TC-ness; you can make two threads manage a stack each to get a Turing machine. Or a counter, which IIUC is essentially what you're suggesting for TWM < 1738463900 906925 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :right – using the stack as a stack gets you StackFlow rather than The Waterfall Model, but why bother with the excess complexity (except for performance reasons, I guess) < 1738463902 945825 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Lykaina: Anyway. Assuming lockstep execution, what do you want to happen if two threads write or write and read the same location? < 1738463935 702030 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I'm assuming a sequentially consistent model, due to the assumed lockstep execution < 1738463938 570950 :int-e!~noone@int-e.eu PRIVMSG #esolangs :ais523: The only reason is working closer to traditional computability theory (two stacks = one tape) < 1738463954 200866 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :well, two counters = four counters = two stacks = one tape < 1738463962 208158 :int-e!~noone@int-e.eu PRIVMSG #esolangs :sure < 1738463972 601957 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :assuming you have a state machine for control flow in both cases < 1738463981 948620 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :getting rid of that state machine has been one of my main innovations in TCness proving < 1738463987 263910 :int-e!~noone@int-e.eu PRIVMSG #esolangs :I don't care. When I first read what you wrote I thought you're creating an unbounded horde of threads. < 1738464000 470375 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :ah, I see < 1738464001 522275 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Which would have severe issues. < 1738464016 291719 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :that needs better synchronisation requirements for TCness, I thiink < 1738464062 732371 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :like, if you have a gate that lets just one thread through, it's probably doable (although even then it seems nontrivial) < 1738464098 388987 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Anyway. I still feel that it's worth saying something about simultaneous writes and reads... having them crash the program (undefined behavior) is an option of course. < 1738464134 428841 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :let's say we have a fungeoid with normal <>^v# IP movement commands, a thread split command, and a door that can be opened (maybe by hitting it from the side) that lets one thread through then closes < 1738464185 220274 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Yeah. I was looking for something that would synchronize threads in that way, and there's nothing. :) > 1738464187 671300 PRIVMSG #esolangs :14[[07Fungeball14]]4 10 02https://esolangs.org/w/index.php?diff=151188&oldid=151187 5* 03Lykaina 5* (+261) 10/* Threading */ Added more about threading. < 1738464197 546592 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :assuming randomly ordered sequentially consistent execution, and no stacks/values on the threads, I think that probably *isn't* enough but am not totally sure < 1738464223 580889 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :int-e: fwiw, with threaded esolangs, I typically assume alternating lockstep execution (i.e. there is one command run from thread 0, then one command from thread 1, etc.) < 1738464230 12493 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :which doesn't have any trouble with simultaneous actions < 1738464236 259462 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Lykaina: thanks. "in series" -- I assume the order is unspecified though? < 1738464246 710624 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :correct < 1738464249 416400 :int-e!~noone@int-e.eu PRIVMSG #esolangs :cool < 1738464519 739814 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :each tread has it's own stack < 1738464525 910702 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :*thread < 1738464579 492764 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Somehow I got that. I guess that's because that matches the standard notion of threads in mainstream OSs. < 1738464584 431044 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :OK, so the model I just discussed is sub-TC because if you removed a thread mid-program-execution, the program would have no reliable way to determine that you had done that – any code that might check for that might instead have been running continuously without the removed thread running < 1738464637 859330 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :they are not actual threads < 1738464638 74117 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :thus, the program would have to be written in such a way that removing any subset of threads would cause it to enter an infinite loop, which effectively gives it only finite data storage < 1738464687 690873 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :they are 'threads'. < 1738464688 680614 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it reminds me of unordered Fractran (and may in fact actually be equivalent) < 1738464825 918524 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :OK, yes, this trivially compiles into unordered Fractran and thus can't be TC – and the compilation still works even if the threads can carry values, as long as they have only finite storage < 1738464907 165577 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(unordered Fractran is a bounded-storage machine – it can implement regular Fractran given some hardcoded limit on how high each factor can go, but can't handle unlimited storage) < 1738464943 321616 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :stacks have no max length yet < 1738464973 463178 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Lykaina: So I'd like to suggest two minor clarifications. 1) say "with a copy of its parent's thread's stack" instead of "the same stack as its parent thread" to avoid possible confusion about sharing, and 2) add "in some unspecified order" after "in series". < 1738465019 659143 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :int-e: doing that now > 1738465319 175048 PRIVMSG #esolangs :14[[07Fungeball14]]4 10 02https://esolangs.org/w/index.php?diff=151189&oldid=151188 5* 03Lykaina 5* (+18) 10/* Implementation Notes */ made the edits to the threading section that were recommended to me. < 1738465429 649954 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :do i need to add a full command list or let people reference the Befunge-93 list on the wiki? < 1738465446 515393 :int-e!~noone@int-e.eu PRIVMSG #esolangs :I actually prefer the reference < 1738465482 386376 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :so, the way it is now? < 1738465504 118400 :int-e!~noone@int-e.eu PRIVMSG #esolangs :(The downside of making a copy is that it means you have to check for differences if you want to be really sure about semantics.) < 1738465504 352149 :op_4!~tslil@user/op-4/x-9116473 QUIT :Remote host closed the connection < 1738465534 131802 :op_4!~tslil@user/op-4/x-9116473 JOIN #esolangs op_4 :op_4 < 1738465576 90419 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Yeah the way it's now is good, in my opinion. < 1738465609 508828 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Maybe if the reference was three levels deep rather than one I'd change my mind? I don't know. < 1738465667 435082 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Hmm. < 1738465723 517639 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :If you downloaded 1.0b0, you need to replace it with 1.0b1. < 1738465737 280707 :int-e!~noone@int-e.eu PRIVMSG #esolangs :I just realized that you reference Funge-98 and I never followed *that* link. < 1738465791 654200 :Sgeo!~Sgeo@user/sgeo QUIT :Read error: Connection reset by peer < 1738465810 42731 :int-e!~noone@int-e.eu PRIVMSG #esolangs :(That's a me problem.) < 1738465929 350759 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :Fungeball is backwards compatible with Befunge-93, but not forwards compatible with Funge-98. < 1738465977 327404 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Ugh, do the Funge-98 threads share a stack? This IP list description is tricky. < 1738465993 368286 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :i don't know < 1738466247 826998 :int-e!~noone@int-e.eu PRIVMSG #esolangs :"When a child IP is borne unto Funge-Space thus, its location, storage offset, and stack are all copied verbatim from the parent IP's." https://codeberg.org/catseye/Funge-98/src/branch/master/doc/funge98.markdown#user-content-concurrent-funge-98 < 1738466270 1250 :int-e!~noone@int-e.eu PRIVMSG #esolangs :So the wiki section is incomplete, good to know. < 1738466296 911974 :int-e!~noone@int-e.eu PRIVMSG #esolangs :(Or maybe I'd have to cross-reference what exactly an IP is.) > 1738466425 627002 PRIVMSG #esolangs :14[[07Fungeball14]]4 10 02https://esolangs.org/w/index.php?diff=151190&oldid=151189 5* 03Lykaina 5* (+244) 10/* Implementation Notes */ added notes about compatibility. < 1738466490 353794 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :Fungeball doesn't have a storage offset < 1738466568 447660 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :That's a Funge-98 thing < 1738466683 895554 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Lykaina: I got that :) < 1738466707 72455 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :Each Fungeball thread has a stack, a location, a direction, and an indicator for whether String Mode is active. < 1738466716 613026 :int-e!~noone@int-e.eu PRIVMSG #esolangs :At that point I was looking for clarification about what Funge-98 does with the stack. < 1738466730 163551 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Fungeball is clear about that. < 1738466741 965423 :int-e!~noone@int-e.eu PRIVMSG #esolangs :(And different which is fine.) < 1738466872 321047 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :Hmm, does it actually only copy the top stack of the stack stack (in Concurrent Funge-98)? < 1738466899 531454 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :A sentence elsewhere in the spec: "In the case of Funge-98, however, /the stack/ refers to the topmost stack on the stack stack." < 1738466927 302168 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :i couldn't understand the stack stack of Funge-98 < 1738467079 199059 :int-e!~noone@int-e.eu PRIVMSG #esolangs :fizzie: for sake of sanity I'd assume that this particular "stack" that's copied means the full stack stack. < 1738467251 155448 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :That seems to be what cfunge does, duplicates the entire stack stack. < 1738467278 457038 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :It's just that, the other part seems to be very... definition-y, for /the stack/. < 1738467290 3649 :Artea!~Lufia@artea.pt JOIN #esolangs Artea :Artea ElFo < 1738467307 132741 :int-e!~noone@int-e.eu PRIVMSG #esolangs :it would be interesting to know in which order these sections were added < 1738467396 366515 :int-e!~noone@int-e.eu PRIVMSG #esolangs :(They could be independent additions? And then this interaction between them was missed... I don't know!) < 1738467461 157078 :int-e!~noone@int-e.eu PRIVMSG #esolangs :I really don't know how many cooks Funge-98 had. < 1738467527 159297 :Lykaina!~lykaina@user/lykaina QUIT :Read error: Connection reset by peer < 1738467543 984963 :Lykaina!~lykaina@user/lykaina JOIN #esolangs Lykaina :Lykaina Wolfe < 1738467544 558265 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :I'm not a huge fan of how Funge-98 combines the stack stack operations with the storage offset ones. < 1738467623 864437 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :I don't think fungot uses anything except the topmost stack. < 1738467624 24417 :fungot!~fungot@2a01:4b00:82bb:1341::a PRIVMSG #esolangs :fizzie: how do you know who taht was? is < 1738467678 476824 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Hmm I didn't fancy "taht" being common enough to make it into the dictionary. < 1738467708 271277 :int-e!~noone@int-e.eu PRIVMSG #esolangs :`" < 1738467711 458105 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :1/1:808) The reason it isn't more popular is because I wrote it today. \ 851) [on Diplomacy] man, that doesn't even mention greece at all [...] oh, this is about a game, not world war i. < 1738467795 397643 :SGautam!uid286066@id-286066.ilkley.irccloud.com QUIT :Quit: Connection closed for inactivity < 1738467825 998244 :Lykaina!~lykaina@user/lykaina QUIT :Ping timeout: 248 seconds < 1738467962 946342 :Lykaina!~lykaina@user/lykaina JOIN #esolangs Lykaina :Lykaina Wolfe < 1738467980 75811 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :fsck < 1738467992 498211 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :my router just died < 1738468042 381732 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :connected via phone wifi < 1738468061 502407 :int-e!~noone@int-e.eu PRIVMSG #esolangs :fun :/ < 1738468292 376872 :Lykaina_!~lykaina@user/lykaina JOIN #esolangs Lykaina :Lykaina Wolfe < 1738468331 221115 :Lykaina!~lykaina@user/lykaina QUIT :Killed (NickServ (GHOST command used by Lykaina_)) < 1738468341 758309 :Lykaina_!~lykaina@user/lykaina NICK :Lykaina < 1738468566 43026 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :ugh < 1738469043 527546 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Hm. So threads can't communicate after spawning? It would seem to be the same sort of non-determinism as when simulating automata, where each different thread is essentially a separate subinterpreter that doesn't know about the others. < 1738469064 463198 :int-e!~noone@int-e.eu PRIVMSG #esolangs :there's shared storage < 1738469082 59271 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :shared playfield < 1738469133 280597 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Sorry, forgive my extreme weakness with Befunge. I thought that the playfield was immutable? Are `g` and `p` the shared storage? Shared stack? < 1738469166 838778 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :g and p access the playfield < 1738469240 298100 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Huh, okay. Well, then ais523's point about memory models is still relevant. Suppose that we have threads X and Y. During a single cycle, suppose X executes before Y; X does a write and then Y does a read. Does Y always read what X wrote? < 1738469256 909904 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :IOW what does the playfield look like *during* a cycle? < 1738469261 940427 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Well, it's been clarified. < 1738469269 291032 :int-e!~noone@int-e.eu PRIVMSG #esolangs :(And that wasn't ais523 :P) < 1738469309 384222 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Operations are sequentialized. < 1738469352 505448 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Oh, I misread, sorry. int-e, you're entirely correct. But even with sequential threading, it's not clear whether access to the playfield is uncached, and the current phrasing even warns against doing multiple `p` per cycle. < 1738469401 327657 :int-e!~noone@int-e.eu PRIVMSG #esolangs :well that's just because you won't know which one of them "sticks" < 1738469403 641828 :int-e!~noone@int-e.eu PRIVMSG #esolangs :ACTION shrugs < 1738469485 420744 :int-e!~noone@int-e.eu PRIVMSG #esolangs :I believe they're not threads but 'threads' for a reason... the resulting execution is single-threaded and you don't need a memory model for that, or rather, there's a standard memory model for that where all writes are visible to future reads but not past ones.. < 1738469512 446173 :int-e!~noone@int-e.eu PRIVMSG #esolangs :totally ordered memory or whatever the proper terminology is < 1738469562 744722 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Yeah, with LWW ("last write wins"). < 1738469631 306434 :int-e!~noone@int-e.eu PRIVMSG #esolangs :also a read concurrent with writes will see the original value or one of the values written < 1738469637 987230 :int-e!~noone@int-e.eu PRIVMSG #esolangs :but you don't know which < 1738469838 979410 :ais523!~ais523@user/ais523 PRIVMSG #esolangs : Hmm I didn't fancy "taht" being common enough to make it into the dictionary. ← my list of "all words that appear anywhere in Google Ngrams, sorted by frequency" has it at #494442, appearing 5584 times ("that" is at #12, appearing 3870260345 times) – note that the first entry is the empty string, so you might want to subtract 1 from the positions < 1738469880 627436 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :three billion different uses of the word "that" is hard to comprehend, even though it is a very common word < 1738469985 615368 :int-e!~noone@int-e.eu PRIVMSG #esolangs :that includes "flathat", doesn't it :) < 1738469997 458547 :int-e!~noone@int-e.eu PRIVMSG #esolangs :(no I don't think that explains the high number) < 1738470012 491633 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :int-e: no, compound words and superstrings have separate entries < 1738470031 289242 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :although, "flathat" did not appear often enough to make the list < 1738470036 664851 :int-e!~noone@int-e.eu PRIVMSG #esolangs :So it's not n-gram frequency? < 1738470055 969064 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it's 1-gram frequency < 1738470070 829243 :int-e!~noone@int-e.eu PRIVMSG #esolangs :oh < 1738470074 321100 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I just downloaded all the 1gram data from Google Ngrams and added it together < 1738470093 412254 :int-e!~noone@int-e.eu PRIVMSG #esolangs :sorry, I assumed letter-based, not word-based frequencies < 1738470111 62112 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :that'd be ngraphs rater than ngrams, wouldn't it? < 1738470130 75736 :int-e!~noone@int-e.eu PRIVMSG #esolangs :I don't know. < 1738470151 508037 :int-e!~noone@int-e.eu PRIVMSG #esolangs :(It's a distinction I've never made) < 1738470206 234063 :int-e!~noone@int-e.eu PRIVMSG #esolangs :My exposure to this is a bit weird... coming from Markov chains and data compression with no strong linguistic connection. < 1738470230 498902 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :the reason I got hold of the data was to inform the creation of compression algorithms, especially for golfing languages < 1738470255 798429 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I realised that "every word in Google Ngrams apart from likely OCR errors" would make for a good dictionary to use for compressed strings < 1738470276 459377 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :especially as it has things like foreign words in there, just at lower frequency < 1738470296 704311 :int-e!~noone@int-e.eu PRIVMSG #esolangs :FWIW, Wikipedia says "An n-gram is a sequence of n adjacent symbols in particular order." Which matches my understanding... you have to agree on a set of symbols (and if you assume it you can get it wrong) < 1738470314 436161 :int-e!~noone@int-e.eu PRIVMSG #esolangs :It even says that using whole words is rare ;-) < 1738470623 241667 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :fair enough < 1738470634 940417 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :probably on letters, both "n-gram" and "n-graph" are correct, in that case < 1738470760 451226 :craigo!~craigo@user/craigo JOIN #esolangs craigo :realname < 1738470811 365004 :int-e!~noone@int-e.eu PRIVMSG #esolangs :I believe I've never heard the term "n-graph" for this. < 1738470825 889950 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :well, "digraph" and "trigraph" are commonly used < 1738470846 568522 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :although, by following the usual rules, the general term would be "polygraph" which already means something else < 1738470862 305851 :int-e!~noone@int-e.eu PRIVMSG #esolangs :a digraph is a directed graph... scnr < 1738470888 707187 :int-e!~noone@int-e.eu PRIVMSG #esolangs :I mean the terminology makes sense < 1738470973 685757 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Hehehe, more confusion: https://www.sciencedirect.com/science/article/pii/0012365X88902282 < 1738473325 641704 :Guest25!~Guest25@2600:1000:b061:9a58:11d4:37cd:4a90:28c3 JOIN #esolangs * :[https://web.libera.chat] Guest25 < 1738473340 198716 :Guest25!~Guest25@2600:1000:b061:9a58:11d4:37cd:4a90:28c3 QUIT :Client Quit < 1738474198 231421 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :night < 1738474210 361967 :Lykaina!~lykaina@user/lykaina QUIT :Quit: Leaving < 1738474639 492580 :HackEso!~h@techne.zem.fi QUIT :Ping timeout: 260 seconds < 1738474651 344440 :dbohdan!~dbohdan@user/dbohdan QUIT :Quit: ZNC 1.8.2+deb3.1 - https://znc.in < 1738474652 644499 :m5zs7k!aquares@web10.mydevil.net QUIT :Quit: m5zs7k < 1738474669 490577 :dbohdan!~dbohdan@user/dbohdan JOIN #esolangs dbohdan :ZNC - https://znc.in < 1738474685 385997 :m5zs7k!aquares@web10.mydevil.net JOIN #esolangs m5zs7k :m5zs7k < 1738475709 915015 :HackEso!~h@techne.zem.fi JOIN #esolangs HackEso :HackEso < 1738475785 947763 :Lykaina!~lykaina@user/lykaina JOIN #esolangs Lykaina :Lykaina Wolfe < 1738475876 756778 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :wifi clearly works again < 1738475894 477299 :int-e!~noone@int-e.eu PRIVMSG #esolangs :morning? ;-) < 1738475951 667762 :int-e!~noone@int-e.eu PRIVMSG #esolangs :(FWIW I'd probably play with the router too instead of going to bed.) < 1738476066 195457 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :i made variants of both the befunge-93 and the fungeball interpreters that use print() and input() instead of opening file streams. < 1738476133 545063 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :course, with those, execution pauses on input... < 1738476310 42983 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :they were made for micropython, not cpython < 1738476385 231448 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :i have them on my new Pico 2 W < 1738478494 362864 :Sgeo!~Sgeo@user/sgeo JOIN #esolangs Sgeo :realname < 1738479070 318345 :Sgeo!~Sgeo@user/sgeo QUIT :Read error: Connection reset by peer < 1738479193 363358 :Sgeo!~Sgeo@user/sgeo JOIN #esolangs Sgeo :realname < 1738479791 518690 :myname!~myname@v2202404221793264578.bestsrv.de QUIT :Quit: WeeChat 3.8 < 1738479933 963621 :myname!~myname@mail.mynery.eu JOIN #esolangs myname :myname > 1738480483 833646 PRIVMSG #esolangs :14[[07Brainfffffuck14]]4 10 02https://esolangs.org/w/index.php?diff=151191&oldid=151182 5* 03Hsxiaobai 5* (+939) 10 > 1738481366 483231 PRIVMSG #esolangs :14[[07User:Tommyaweosme/bf self interpreter14]]4 10 02https://esolangs.org/w/index.php?diff=151192&oldid=151156 5* 03I am islptng 5* (+101) 10 > 1738481367 151861 PRIVMSG #esolangs :14[[07User:Tommyaweosme/bf self interpreter14]]4 10 02https://esolangs.org/w/index.php?diff=151193&oldid=151192 5* 03I am islptng 5* (+0) 10Replaced content with "Obfuscating dbfi is definitely not a good idea! ~~~~" > 1738481491 44081 PRIVMSG #esolangs :14[[0725 bytes o:14]]4 10 02https://esolangs.org/w/index.php?diff=151194&oldid=143452 5* 03Ractangle 5* (-2) 10/* python intepreter */ the interpreter doesn't like the unnecessary semicolons > 1738481531 910413 PRIVMSG #esolangs :14[[0725 bytes o:14]]4 10 02https://esolangs.org/w/index.php?diff=151195&oldid=151194 5* 03Ractangle 5* (+2) 10/* python intepreter */ nvn > 1738482403 941334 PRIVMSG #esolangs :14[[07Language list14]]4 10 02https://esolangs.org/w/index.php?diff=151196&oldid=151149 5* 03Hsxiaobai 5* (+20) 10/* B */ > 1738487069 89280 PRIVMSG #esolangs :14[[07Brainfffffuck14]]4 10 02https://esolangs.org/w/index.php?diff=151197&oldid=151191 5* 03Hsxiaobai 5* (+27) 10 < 1738487703 470081 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :Lykaina: opening? the standard streams are open already, and python has its io wrappers open to them already by default. < 1738488010 501041 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523, int-e: I have considered the question of inter-thread memory model for multi-threaded Consumer Society. I concluded that I won't define it, whoever makes a multi-threading extension can figure it out, all I need to define is one very simple library function that allows me to write thread-safe code, where that library function is trivial to implement in single-threaded consumer society (it's < 1738488016 508626 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :basically a no-op), and if someone implements multi-threaded Consumer Society then it won't be hard for them to implement this function as a built-in in their interpreter. < 1738488059 775528 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :Whoever wants a multi-threaded Consumer Society will have to define the actual memory model, some inter-thread synchronization functions, and probably a way to create threads. < 1738488270 972479 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :(You could have something low-level where you can't create threads, you have a fixed number of threads, and you just need a way to initialize them so they start executing your code.) < 1738488286 211357 :chomwitt!~alex@2a02:587:7a26:9800:42b0:76ff:fe46:a5fd JOIN #esolangs chomwitt :realname < 1738488323 649547 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :But this is easier than this befunge-variant because Consumer Society is already Turing-complete in a single thread. < 1738488340 521281 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :(In theory, obviously; a practical implementation will have a memory limit.) < 1738488541 679639 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I guess my view on memory limits is along the lines of "my interpreter is written in a theoretically TC language and would define a Turing-complete language if run in an implementation of the outside language that actually implemented that language correctly" < 1738488576 479476 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I struggled so much with whether or not to add -Mbigint to my Perl implementation of Three Star Programmer and the I/D machine < 1738488610 388832 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(the point being that the memory is formed entirely of addresses, so there's no reason to use a bigint because the total amount of memory used will overflow before the value in any particular cell of it does) < 1738488722 844526 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :For that you'll want a bigint implementation that's more efficient in the special case when most of your numbers are fixints. In this case you'd use fixints but when you incrememnt a cell you check if it's (close to) overflowing and replace it with a bigint if it is. < 1738488744 812448 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :The bigint module won't do that. < 1738488788 791615 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :(There's also a semantic difference in that Math::Bigint's methods won't be available for fixints, but that shouldn't be a problem for your applications.) < 1738488789 858576 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :b_jonas: so in the I/D machine, once you increment a cell, you can't leave that cell without dereferencing it < 1738488809 690844 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :Yeah, but you can dereference it twice to get to zero again < 1738488818 400226 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :and thus any value overflow necessarily also indicates a memory overflow, because Perl scalars are large enough to hold all memory addresses < 1738488842 170527 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :b_jonas: ah, so your idea is to treat the values above the memory space as all zero unless you try to increment them, to save memory < 1738488854 472152 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :for I/D machine yes < 1738488872 249503 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I guess this is one of those cases where an implementation really wants to be an optimising decompiler, so that it can run the program more efficiently in time and space < 1738488929 268341 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :yes, if you're not optimizing then you can use 64-bit fixints, they won't have time to overflow if you only increment them by small numbers < 1738488946 882683 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :so it would be pointless to have the upgrade to bigints < 1738489038 730266 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :oh right, that optimisation < 1738489042 428452 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I really want to formalise it some day < 1738489061 939117 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it is something that could potentially make a lot of programs in safe languages more efficient, but it is hard to formalise the situations under which it's sound < 1738489120 9117 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :one thing I noticed in Rust is that the overflow check on Rc is actually pretty slow; and, if Rcs were unleakable, it would be impossible for it to ever matter (because you'd run out of memory due to it being full of Rcs before the counter would overflow) < 1738489147 519140 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :so it might be possible to get a decent performance boost by optimising it out, but Rust has a rule that allows anything to leak, and creating and leaking Rcs in a loop would be able to overflow it on 32-bit systems < 1738489202 586331 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :yeah, that's two slightly different cases, one where you guarantee no overflow by incrementing a counter only by 1 and only from a single thread; the other where the reference count counts distinct real references from other objects and that's why it can't overflow < 1738489226 752413 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :wait, you mean Rc and not Arc? < 1738489237 736833 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :so it's incremented from single-thread only < 1738489240 721966 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :well, either, I'm just more used to Rc < 1738489258 405697 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :yeah, I guess it doesn't make a difference < 1738489267 747778 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it's rare for me to want to access refcounted things from multiple threads at once, multithreading only really gives significant savings if there's no contention < 1738489284 864251 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :because it's a single atomic reference count value, not multiple values incremented separately and then added together < 1738489320 882092 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :yep < 1738489333 493584 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :the savings would be bigger for arc, I think < 1738489381 519884 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :if you have a function that clones and then drops an arc, it has to read and test the refcount in order to preserve the panic behaviour when the refcount is almost maxed out, so it can't optimise out the refcount changes < 1738489402 197049 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I see < 1738489402 368850 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :and atomic adjusting of memory is actually really slow by CPU instruction standards, it's somewhere around 40 arithmetic instructions IIRC on modern processors > 1738489448 397445 PRIVMSG #esolangs :14[[07Postrado14]]4 10 02https://esolangs.org/w/index.php?diff=151198&oldid=150270 5* 03Ractangle 5* (+270) 10/* Truth-machine */ < 1738489449 20497 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :when relying on the "this *can't* overflow" model, you can just leave the refcount alone as long as you have at least one strong reference to ensure that changes in other threads can't set the value to 0 < 1738489461 730448 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :isn't that because it has to access main memory or L3 cache, can't be done locally in the L2 cache, and that's slow even if not atomic? < 1738489475 676938 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(Rc has a "number of strong references" method; I'm not sure whether Arc does too; those methods would hae to be removed for this optimistion to work) < 1738489518 38956 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I think ideally you'd want to change that to a method that tells you if the strong reference count is exactly 1 > 1738489526 721637 PRIVMSG #esolangs :14[[07Postrado14]]4 10 02https://esolangs.org/w/index.php?diff=151199&oldid=151198 5* 03Ractangle 5* (+8) 10/* With functions */ > 1738489555 591681 PRIVMSG #esolangs :14[[07Postrado14]]4 10 02https://esolangs.org/w/index.php?diff=151200&oldid=151199 5* 03Ractangle 5* (+2) 10/* With functions */ > 1738489601 836349 PRIVMSG #esolangs :14[[07Brainfffffuck14]]4 10 02https://esolangs.org/w/index.php?diff=151201&oldid=151197 5* 03Ractangle 5* (+0) 10/* Syntax */ < 1738489623 441391 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I haven't realized that rust had this problem because I was thinking of reference counts mostly in the context of a high-level language where, although you might be able to leak a refernece, you can do so only if the object that holds the reference actually consumes memory < 1738489638 254759 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :so leaking doesn't make it much easier to overflow the reference count < 1738489940 267524 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I guess this would be a problem with C++'s shared_ptr too > 1738489968 82976 PRIVMSG #esolangs :14[[07Queue-based esolang14]]4 10 02https://esolangs.org/w/index.php?diff=151202&oldid=151147 5* 03Ractangle 5* (+0) 10/* See also */ oops < 1738489988 712309 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :or not because maybe there you don't need to insist on always panicing on overflow < 1738490772 536350 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :though I also wasn't thinking much about eliding overflow checks. more like keeping overflow checks but allowing to panic when the counter overflows. eg. suppose I have a simulation videogame that is not distributed, the game state is computed on a single core of a single server (there may still be multiple players on the network with their machines rendering UI separately, that doesn't matter). in the < 1738490778 561558 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :game state sometimes an object is created. then I'm allowed to just use a single 63-bit counter that I increment whenever an object is created, and use that counter as the unique ID of the object that I use in representation. then I don't have to handle that counter overflowing, even if objecs can be destroyed and the game state can be saved and later loaded. < 1738490796 894533 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :that can simplify the code even if I do check for overflow, because handling the overflow could be harder to implement. < 1738490833 931384 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :obviously this isn't always how you want to assign IDs, sometimes you want them to be a 32-bit index into an array for example, but sometimes the single counter can be useful. < 1738490886 400453 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :it's useful if you want to make sure that an object id isn't ever reused, so a weak reference can just be an object id. < 1738490961 269865 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :or the weak reference can be a pointer that you can safely dereference even if it's stale (eg. an array index) plus the object id, and you store the object id in the representation of the object, when you dereference you check if the object the pointer points to is alive and that the object id matches and if it does then the weak pointer is still alive. < 1738491222 732325 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :another case is if I'm caching something in every object, and sometimes I do a change that means I have to invalidate the cache in all objects, and when I access the cached value I need to know if it's up to date, then I can have a single global invalidate counter whose value I store with the cache, and since that invalidate counter is never reused this works < 1738491234 558516 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :a value for the invalidate counter is never reused < 1738492010 739221 :Sgeo!~Sgeo@user/sgeo QUIT :Read error: Connection reset by peer < 1738492214 708162 :DOS_User_webchat!~DOS_User_@user/DOS-User-webchat:37962 JOIN #esolangs DOS_User_webchat :[https://web.libera.chat] DOS_User_webchat < 1738492231 915361 :Sgeo!~Sgeo@user/sgeo JOIN #esolangs Sgeo :realname < 1738492248 218166 :DOS_User_webchat!~DOS_User_@user/DOS-User-webchat:37962 QUIT :Remote host closed the connection > 1738492685 963696 PRIVMSG #esolangs :14[[07Special:Log/newusers14]]4 create10 02 5* 03Syuparn 5* 10New user account < 1738492702 80209 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :b_jonas: yes, I like those use-cases too; it would be great to have some way a compiler could prove they were safe < 1738492718 749416 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :probably along the lines of some sort of "this counts as a tick" annotation and a global limit for how many ticks there could be < 1738493076 480512 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :you could have the programmer annotate with a specific type, a 64-bit integer that you can only set to zero or increment by one or convert to a normal integer < 1738493083 161109 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :or clone < 1738493137 957674 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I guess that would help the programmer, not the compiler < 1738493160 124588 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :for the compiler we already have an addition that's undefined behavior if it overflows > 1738493317 232353 PRIVMSG #esolangs :14[[07Esolang:Introduce yourself14]]4 10 02https://esolangs.org/w/index.php?diff=151203&oldid=151159 5* 03Syuparn 5* (+172) 10 > 1738493966 181908 PRIVMSG #esolangs :14[[0725 bytes o:14]]4 10 02https://esolangs.org/w/index.php?diff=151204&oldid=151195 5* 03PrySigneToFry 5* (+138) 10 < 1738493969 481264 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :b_jonas: so the issue here is that we're talking about an "inherently unsound optimisation" in that it always changes the semantics of the program, by adding a time limit < 1738493983 808632 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :so we need to make sure that the time limit is actually not going to be a problem in the actual application > 1738494057 62926 PRIVMSG #esolangs :14[[07Talk:25 bytes o:14]]4 10 02https://esolangs.org/w/index.php?diff=151205&oldid=147860 5* 03PrySigneToFry 5* (+886) 10/* sqrt(25) bytes o: */ new section < 1738494100 959892 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :it's the extreme ultrafinitist approach to programming < 1738494172 243743 :APic!apic@apic.name PRIVMSG #esolangs :Hi > 1738494453 282158 PRIVMSG #esolangs :14[[07+14]]4 10 02https://esolangs.org/w/index.php?diff=151206&oldid=128515 5* 03PrySigneToFry 5* (+229) 10 < 1738494486 870079 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :b_jonas: so my main concern is with things like «for _ in 0..1000000000 { x.add_one() }» which the compiler will optimise into a single addition, but then the number can overflow > 1738494544 345630 PRIVMSG #esolangs :14[[0714]]4 M10 02https://esolangs.org/w/index.php?diff=151207&oldid=151133 5* 03PrySigneToFry 5* (+164) 10 > 1738494563 680334 PRIVMSG #esolangs :14[[0714]]4 10 02https://esolangs.org/w/index.php?diff=151208&oldid=151207 5* 03PrySigneToFry 5* (+0) 10 < 1738494714 384580 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523: I see! so would a specific integer type help with that? it's not easy because the compiler would need to propagate some of the info all the way down to the backend < 1738494804 810172 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :you could do "an addition that can't be optimised" but at least in the Rc example, that's not actually what you want < 1738494832 288553 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I don't have a solution to this (and in fact I'm not 100% sure I fully understand nature of the problem) > 1738494923 921855 PRIVMSG #esolangs :14[[07Infinite commands???14]]4 10 02https://esolangs.org/w/index.php?diff=151209&oldid=151125 5* 03PrySigneToFry 5* (+235) 10 > 1738495099 814246 PRIVMSG #esolangs :14[[07Infinite commands???14]]4 10 02https://esolangs.org/w/index.php?diff=151210&oldid=151209 5* 03PrySigneToFry 5* (+163) 10 < 1738495150 564836 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :sure, you don't just want a black-box addition > 1738495383 666016 PRIVMSG #esolangs :14[[0714]]4 10 02https://esolangs.org/w/index.php?diff=151211&oldid=147613 5* 03PrySigneToFry 5* (+328) 10 < 1738495395 510429 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :there's also the cryptographic version of these optimizations, like when you assume that an adversary can't find hash collisions in a 256-bit hash, or if I generate any number of 224-bit long random keys and insert it into a database and replicate the database to any number of my servers and an adversary can query those database servers in parallel then they'll never guess any keys of which I don't < 1738495401 518897 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :reveal information (this probably still works with 192 bits) < 1738495552 609649 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :those sort of optimisations are hard to automatically apply to programs to get "free" performance gains, though < 1738495567 996125 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :other than, perhaps, the "if we use sufficiently many bits in a random number we'll never generate the same one twice" optimisation > 1738495596 309803 PRIVMSG #esolangs :14[[07-25 bytes (O o)14]]4 10 02https://esolangs.org/w/index.php?diff=151212&oldid=144546 5* 03PrySigneToFry 5* (-245) 10 < 1738495632 96445 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :the one that disturbs me the most is how big an authentication tag you need to validate a message < 1738495654 126547 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :sure, they're not automatic optimizations for free performance gains < 1738495697 485694 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :but at some point you need to decide what sizes you need, and most of the time it doesn't matter if you use a too large size but sometimes for a large service it can matter < 1738495782 222280 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :when it comes to cryptography, the problem is that the sizes you need depend on a) your adversaries' brute-forcing performance and b) what breaks in the cryptography they will become aware of through the useful life of the service < 1738495798 635853 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :and both of those are hard to predict, which is why it's usual to rely on very large safety marginsg < 1738495839 511058 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :yes, the numbers I mentioned only work if the cryptographic primitives that you use don't have weaknesses > 1738495850 768715 PRIVMSG #esolangs :14[[07Talk:-25 bytes (O o)14]]4 10 02https://esolangs.org/w/index.php?diff=151213&oldid=144571 5* 03PrySigneToFry 5* (+1623) 10 < 1738495864 866690 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :and there are multiple different numbers because you have to assume that your adversary may have much more computing power than you do > 1738495878 692436 PRIVMSG #esolangs :14[[07Talk:-25 bytes (O o)14]]4 10 02https://esolangs.org/w/index.php?diff=151214&oldid=151213 5* 03PrySigneToFry 5* (+1) 10 > 1738496081 782856 PRIVMSG #esolangs :14[[07O()14]]4 10 02https://esolangs.org/w/index.php?diff=151215&oldid=146088 5* 03PrySigneToFry 5* (+143) 10 > 1738496219 84599 PRIVMSG #esolangs :14[[07Free Esolang14]]4 10 02https://esolangs.org/w/index.php?diff=151216&oldid=151048 5* 03PrySigneToFry 5* (+52) 10 < 1738496598 627592 :Sgeo!~Sgeo@user/sgeo QUIT :Read error: Connection reset by peer > 1738497319 414319 PRIVMSG #esolangs :14[[07Cholc14]]4 N10 02https://esolangs.org/w/index.php?oldid=151217 5* 03Syuparn 5* (+4874) 10Created page with "'''Cholc''' is an esoteric programming language made up of sequences of musical chords. ==Examples== ===Hello world=== A A A A A A A A A |: F G E Am :| F Fm |: C C C C C C C C A A A B Em :| C Cm X |: Db Eb Eb Eb Eb Eb C C C Fm :| C C X |: C C#m :| Cm Cm X X C < 1738497767 303154 :mtm!~textual@47.202.75.129 QUIT :Ping timeout: 244 seconds < 1738497939 449414 :mtm!~textual@47.202.75.129 JOIN #esolangs * :Textual User > 1738500577 944723 PRIVMSG #esolangs :14[[07Talk:25 bytes o:14]]4 10 02https://esolangs.org/w/index.php?diff=151218&oldid=151205 5* 03PkmnQ 5* (+338) 10 > 1738501678 287365 PRIVMSG #esolangs :14[[07Recursive14]]4 10 02https://esolangs.org/w/index.php?diff=151219&oldid=150854 5* 03PkmnQ 5* (+285) 10/* Example programs */ Just realized that this is also a thing Recursive can do > 1738502255 95206 PRIVMSG #esolangs :14[[07User:Unname479814]]4 10 02https://esolangs.org/w/index.php?diff=151220&oldid=151030 5* 03Unname4798 5* (+2) 10 < 1738502301 469407 :amby!~ambylastn@ward-15-b2-v4wan-167229-cust809.vm18.cable.virginm.net JOIN #esolangs * :realname > 1738502316 772729 PRIVMSG #esolangs :14[[07User:Unname479814]]4 10 02https://esolangs.org/w/index.php?diff=151221&oldid=151220 5* 03Unname4798 5* (-10) 10 > 1738506424 802290 PRIVMSG #esolangs :14[[07Cholc14]]4 10 02https://esolangs.org/w/index.php?diff=151222&oldid=151217 5* 03MihaiEso 5* (-3) 10 > 1738507178 752624 PRIVMSG #esolangs :14[[07PythBrSc14]]4 10 02https://esolangs.org/w/index.php?diff=151223&oldid=144022 5* 03MihaiEso 5* (+1) 10 < 1738508992 926809 :ais523!~ais523@user/ais523 QUIT :Quit: quit > 1738509256 915312 PRIVMSG #esolangs :14[[073switchBF14]]4 10 02https://esolangs.org/w/index.php?diff=151224&oldid=88530 5* 03Ractangle 5* (-5) 10/* Translator to brainfuck */ sorted variables by type > 1738509307 198262 PRIVMSG #esolangs :14[[073switchBF14]]4 10 02https://esolangs.org/w/index.php?diff=151225&oldid=151224 5* 03Ractangle 5* (+5) 10/* Translator to brainfuck */ c gets redefined so > 1738509551 677217 PRIVMSG #esolangs :14[[07Postrado14]]4 10 02https://esolangs.org/w/index.php?diff=151226&oldid=151200 5* 03Ractangle 5* (-104) 10/* Commands */ > 1738509615 453642 PRIVMSG #esolangs :14[[07Postrado14]]4 10 02https://esolangs.org/w/index.php?diff=151227&oldid=151226 5* 03Ractangle 5* (+11) 10/* Without functions */ > 1738510261 383175 PRIVMSG #esolangs :14[[07Bitwise Scanner14]]4 10 02https://esolangs.org/w/index.php?diff=151228&oldid=60454 5* 03Kaveh Yousefi 5* (+183) 10Added a hyperlink to my implementation of the Bitwise Scanner programming language on GitHub and altered the Unimplemented category tag to Implemented. > 1738510551 874347 PRIVMSG #esolangs :14[[07Bitwise Scanner14]]4 M10 02https://esolangs.org/w/index.php?diff=151229&oldid=151228 5* 03Kaveh Yousefi 5* (+308) 10Reformatted the instruction listing as a table, introducing the operations' expected arguments. > 1738511175 731319 PRIVMSG #esolangs :14[[07User:TheCanon214]]4 M10 02https://esolangs.org/w/index.php?diff=151230&oldid=150403 5* 03TheCanon2 5* (+31) 10 > 1738512324 196619 PRIVMSG #esolangs :14[[07Fungeball14]]4 10 02https://esolangs.org/w/index.php?diff=151231&oldid=151190 5* 03Lykaina 5* (+46) 10Updated url and version info > 1738512878 877421 PRIVMSG #esolangs :14[[07Fungeball14]]4 10 02https://esolangs.org/w/index.php?diff=151232&oldid=151231 5* 03Lykaina 5* (+159) 10/* Threading */ added a little clarification here about I/O being shared. < 1738515036 374340 :ais523!~ais523@user/ais523 JOIN #esolangs ais523 :(this is obviously not my real name) > 1738515768 327287 PRIVMSG #esolangs :14[[07Fungeball14]]4 10 02https://esolangs.org/w/index.php?diff=151233&oldid=151232 5* 03Lykaina 5* (+65) 10Updated url and version info, current version is 1.0b3 > 1738515824 985585 PRIVMSG #esolangs :14[[07User talk:Calculus is fun14]]4 M10 02https://esolangs.org/w/index.php?diff=151234&oldid=151139 5* 03Calculus is fun 5* (+197) 10reply to user "I am islptng" < 1738516066 582927 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :split the fungeball script file into two: library and wrapper < 1738516594 114223 :mich181189!sid268336@londonhackspace/mich181189 QUIT :Ping timeout: 248 seconds < 1738516605 414540 :mich181189!sid268336@londonhackspace/mich181189 JOIN #esolangs mich181189 :Michael > 1738516738 364013 PRIVMSG #esolangs :14[[07MoreMathRPN14]]4 M10 02https://esolangs.org/w/index.php?diff=151235&oldid=151082 5* 03Calculus is fun 5* (+294) 10Added query command, reorganized to match website < 1738517611 1066 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :the library is compatible with micropython and cpython < 1738517627 352416 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :the wrapper is designed for cpython > 1738519668 554700 PRIVMSG #esolangs :14[[07Special:Log/newusers14]]4 create10 02 5* 03Compiler12o 5* 10New user account > 1738519984 275005 PRIVMSG #esolangs :14[[07Esolang:Introduce yourself14]]4 10 02https://esolangs.org/w/index.php?diff=151236&oldid=151203 5* 03Compiler12o 5* (+173) 10/* Introductions */ > 1738520004 998214 PRIVMSG #esolangs :14[[07Fungeball14]]4 10 02https://esolangs.org/w/index.php?diff=151237&oldid=151233 5* 03Lykaina 5* (-41) 10Changed url to match the repository on my personal gitea. > 1738520074 884395 PRIVMSG #esolangs :14[[07+-14]]4 10 02https://esolangs.org/w/index.php?diff=151238&oldid=98506 5* 03Compiler12o 5* (+3015) 10/* Interpreters */ > 1738520213 731084 PRIVMSG #esolangs :14[[07+-14]]4 10 02https://esolangs.org/w/index.php?diff=151239&oldid=151238 5* 03Compiler12o 5* (-3015) 10/* C++ 20 */ > 1738520264 391615 PRIVMSG #esolangs :14[[07+-14]]4 10 02https://esolangs.org/w/index.php?diff=151240&oldid=151239 5* 03Compiler12o 5* (+3019) 10/* Interpreters */ > 1738520289 391525 PRIVMSG #esolangs :14[[07+-14]]4 10 02https://esolangs.org/w/index.php?diff=151241&oldid=151240 5* 03Compiler12o 5* (-4) 10/* C++ 20 */ > 1738520324 823327 PRIVMSG #esolangs :14[[07+-14]]4 10 02https://esolangs.org/w/index.php?diff=151242&oldid=151241 5* 03Compiler12o 5* (+21) 10/* C++ 20 */ < 1738520607 152759 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :fungeball has it's own git repository now < 1738520645 512522 :Lord_of_Life_!~Lord@user/lord-of-life/x-2819915 JOIN #esolangs Lord_of_Life :Lord < 1738520684 62182 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 QUIT :Ping timeout: 265 seconds < 1738520727 499323 :Lord_of_Life_!~Lord@user/lord-of-life/x-2819915 NICK :Lord_of_Life < 1738521262 824457 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Good times. > 1738522039 835788 PRIVMSG #esolangs :14[[07+-14]]4 10 02https://esolangs.org/w/index.php?diff=151243&oldid=151242 5* 03Compiler12o 5* (-3036) 10/* C++ 20 */ > 1738523059 830328 PRIVMSG #esolangs :14[[07MoreMathRPN14]]4 M10 02https://esolangs.org/w/index.php?diff=151244&oldid=151235 5* 03Calculus is fun 5* (+208) 10Added breakpoints > 1738523495 376411 PRIVMSG #esolangs :14[[07MoreMathRPN14]]4 M10 02https://esolangs.org/w/index.php?diff=151245&oldid=151244 5* 03Calculus is fun 5* (+90) 10Added error command > 1738523671 104015 PRIVMSG #esolangs :14[[07MoreMathRPN14]]4 M10 02https://esolangs.org/w/index.php?diff=151246&oldid=151245 5* 03Calculus is fun 5* (-7) 10/* Checks and comparisons */ > 1738524145 812000 PRIVMSG #esolangs :14[[07MoreMathRPN14]]4 M10 02https://esolangs.org/w/index.php?diff=151247&oldid=151246 5* 03Calculus is fun 5* (+24) 10Changed 2nd sentence > 1738524752 149309 PRIVMSG #esolangs :14[[07Funciton14]]4 M10 02https://esolangs.org/w/index.php?diff=151248&oldid=151079 5* 03Timwi 5* (+71) 10sort function < 1738524953 945883 :Sgeo!~Sgeo@user/sgeo JOIN #esolangs Sgeo :realname < 1738526418 459319 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :hi Sgeo > 1738528001 595116 PRIVMSG #esolangs :14[[07Fungeball14]]4 10 02https://esolangs.org/w/index.php?diff=151249&oldid=151237 5* 03Lykaina 5* (-7) 10Updating url due to moving public repo to GitHub < 1738528508 685177 :Sgeo!~Sgeo@user/sgeo PRIVMSG #esolangs :Hi Lykaina < 1738528603 179984 :chomwitt!~alex@2a02:587:7a26:9800:42b0:76ff:fe46:a5fd QUIT :Ping timeout: 252 seconds < 1738529091 334776 :Lykaina!~lykaina@user/lykaina PRIVMSG #esolangs :copied the repo from my private gitea to github > 1738529528 489216 PRIVMSG #esolangs :14[[076 bytes of useless element14]]4 10 02https://esolangs.org/w/index.php?diff=151250&oldid=149153 5* 03Ractangle 5* (-60) 10/* Interpreters */ < 1738529732 569708 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 QUIT :Excess Flood < 1738529789 227216 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 JOIN #esolangs Lord_of_Life :Lord < 1738530866 718777 :DOS_User_webchat!~DOS_User_@user/DOS-User-webchat:37962 JOIN #esolangs DOS_User_webchat :[https://web.libera.chat] DOS_User_webchat < 1738531611 181977 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I've been playing Redactle again recently, at https://redactle.net/ , in case anyone's interested < 1738531658 393972 :DOS_User_webchat!~DOS_User_@user/DOS-User-webchat:37962 QUIT :Remote host closed the connection < 1738534004 603145 :moony7!moony@hellomouse/dev/moony QUIT :Quit: Ping timeout (120 seconds) < 1738534043 124132 :moony!moony@hellomouse/dev/moony JOIN #esolangs moony :Kaylie! (she/her) > 1738534452 823848 PRIVMSG #esolangs :14[[07Fungeball14]]4 M10 02https://esolangs.org/w/index.php?diff=151251&oldid=151249 5* 03Lykaina 5* (+0) 10Changed a url from the GitHub Repository to the GitHub Pages site. < 1738534586 212187 :ais523!~ais523@user/ais523 QUIT :Quit: quit > 1738536723 737228 PRIVMSG #esolangs :14[[07Fungeball14]]4 10 02https://esolangs.org/w/index.php?diff=151252&oldid=151251 5* 03Lykaina 5* (+173) 10/* Versions */ Adding distinction between GitHub Versions and Pre-GitHub Versions < 1738537569 423890 :craigo!~craigo@user/craigo QUIT :Ping timeout: 260 seconds > 1738539516 357587 PRIVMSG #esolangs :14[[076 bytes of useless element14]]4 M10 02https://esolangs.org/w/index.php?diff=151253&oldid=151250 5* 03Calculus is fun 5* (+203) 10/* Interpreters */ < 1738540396 267473 :supercode!~supercode@user/supercode JOIN #esolangs supercode :[https://web.libera.chat] supercode > 1738540492 921929 PRIVMSG #esolangs :14[[07Fun Video Game14]]4 M10 02https://esolangs.org/w/index.php?diff=151254&oldid=135671 5* 03Calculus is fun 5* (+149) 10MoreMathRPN example < 1738540707 493018 :molson_!~molson@2605-4A80-2101-99D0-BE34-A493-718E-A21C-dynamic.midco.net JOIN #esolangs molson :realname