< 1528589309 997543 :variable!~variable@freebsd/developer/variable QUIT :Quit: /dev/null is full > 1528589724 701352 PRIVMSG #esoteric :14[[07Surtic14]]4 10 02https://esolangs.org/w/index.php?diff=55601&oldid=55598 5* 03Digital Hunter 5* (+65) 10 > 1528589772 532660 PRIVMSG #esoteric :14[[07User talk:Galaxtone14]]4 10 02https://esolangs.org/w/index.php?diff=55602&oldid=55244 5* 03Digital Hunter 5* (+139) 10/* Chat */ < 1528591950 689779 :doesthiswork!~Adium@207.55.82.87 JOIN :#esoteric < 1528598097 87866 :Naergon!~Naergon@unaffiliated/naergon QUIT :Read error: Connection reset by peer < 1528599042 830265 :doesthiswork!~Adium@207.55.82.87 PRIVMSG #esoteric :So I came up with something that should find languages that reduce bugs sort of like how code golf finds languages that are more expressive. < 1528599313 412788 :zzo38!~zzo38@24-207-13-153.eastlink.ca PRIVMSG #esoteric :I don't know? I think the program can have bugs in most programming languages though, anyways < 1528599338 412962 :doesthiswork!~Adium@207.55.82.87 PRIVMSG #esoteric :Person A sets a task and all the challengers provide both a program that does it and the smallest edit to that program that causes it to do it incorrectly (but without compile or runtime errors) The challenger's score is the size of the edit divided by the size of the program < 1528599482 437081 :zzo38!~zzo38@24-207-13-153.eastlink.ca PRIVMSG #esoteric :O, OK, you can try that? < 1528599829 170885 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :`le/rn exponentially//"exponentially" is a word that means "a lot". < 1528599831 343961 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :Learned 'exponentially': "exponentially" is a word that means "a lot". < 1528599883 563537 :doesthiswork!~Adium@207.55.82.87 PRIVMSG #esoteric :expomentially < 1528599929 381135 :doesthiswork!~Adium@207.55.82.87 PRIVMSG #esoteric :`?acute < 1528599930 27241 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: ?acute: not found < 1528600062 740415 :Naergon!~Naergon@unaffiliated/naergon JOIN :#esoteric < 1528601084 379717 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :I guess I should give up trying to make my tree-rewriting system variable-less. < 1528601970 510582 :variable!~variable@freebsd/developer/variable JOIN :#esoteric < 1528602034 797410 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :imode: I like how variable joined after you said that. < 1528602119 856 :variable!~variable@freebsd/developer/variable PRIVMSG #esoteric :hi < 1528604380 66036 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :lmfao. < 1528604422 233830 :doesthiswork!~Adium@207.55.82.87 PRIVMSG #esoteric :The one constant in this channel is variable < 1528604445 531338 :variable!~variable@freebsd/developer/variable NICK :constant < 1528604577 583467 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :doesthiswork: The variable just changed, it cannot be constant < 1528604895 943216 :doesthiswork!~Adium@207.55.82.87 PRIVMSG #esoteric :There is no variable only constant. And because as you say constants never change, variable must have always been constant,. < 1528605233 679295 :Naergon!~Naergon@unaffiliated/naergon QUIT :Ping timeout: 268 seconds < 1528608770 714377 :Naergon!~Naergon@unaffiliated/naergon JOIN :#esoteric < 1528608931 273920 :\oren\!~oren@ec2-52-2-213-98.compute-1.amazonaws.com PRIVMSG #esoteric :I don't have any ginger tea so Ijust used ginger powder in the espresso machine. it worked surprisingly well < 1528609304 997867 :doesthiswork!~Adium@207.55.82.87 PRIVMSG #esoteric :brilliant! < 1528609459 209798 :\oren\!~oren@ec2-52-2-213-98.compute-1.amazonaws.com PRIVMSG #esoteric :therefore, espresso machine can potentially be used to decoct all kinds of herbal liquids < 1528612390 570333 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1528613302 520858 :xkapastel!uid17782@gateway/web/irccloud.com/x-ufteypavywrsxzxf QUIT :Quit: Connection closed for inactivity < 1528613772 173094 :ais523!~ais523@unaffiliated/ais523 QUIT :Quit: sorry for my connection < 1528613787 738526 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1528614853 793369 :AnotherTest!~turingcom@ptr-82l26zcdc022u0ekvj4.18120a2.ip6.access.telenet.be JOIN :#esoteric < 1528615400 465790 :Lymia!lymia@magical.girl.lyrical.lymia.moe PRIVMSG #esoteric :doesthiswork, in most languages, commenting out some print command does so perfectly. < 1528615415 548779 :Lymia!lymia@magical.girl.lyrical.lymia.moe PRIVMSG #esoteric :Its output will be incorrect and there will be no crash. < 1528615485 487634 :Lymia!lymia@magical.girl.lyrical.lymia.moe PRIVMSG #esoteric :The features to avoid this aren't... really good features in practice. < 1528615511 349416 :Lymia!lymia@magical.girl.lyrical.lymia.moe PRIVMSG #esoteric :The golfiest ways to make a program stop working are usually not what actually cause bugs (in my experience). < 1528615534 663943 :Lymia!lymia@magical.girl.lyrical.lymia.moe PRIVMSG #esoteric :And the things that prevent them (dead code hard errors, unused variable hard errors, etc) are bad ideas in practice < 1528615666 82552 :Lymia!lymia@magical.girl.lyrical.lymia.moe PRIVMSG #esoteric :Haskell is one of the safest languages out there right now. < 1528615711 292054 :Naergon!~Naergon@unaffiliated/naergon PRIVMSG #esoteric :no code - no harm :P < 1528615736 884815 :Lymia!lymia@magical.girl.lyrical.lymia.moe PRIVMSG #esoteric :And still, with basically any program, you can make it stop working with s/main =/main = const(return())$/ < 1528615808 808314 :AnotherTest!~turingcom@ptr-82l26zcdc022u0ekvj4.18120a2.ip6.access.telenet.be QUIT :Ping timeout: 255 seconds < 1528615955 892318 :doesthiswork!~Adium@207.55.82.87 QUIT :Quit: Leaving. < 1528617050 96890 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :<\oren\> therefore, espresso machine can potentially be used to decoct all kinds of herbal liquids <-- interesting, though I assume there might still be coffee taste left in the machine? < 1528617089 539787 :Lymia!lymia@magical.girl.lyrical.lymia.moe PRIVMSG #esoteric :why not < 1528617103 680038 :Lymia!lymia@magical.girl.lyrical.lymia.moe PRIVMSG #esoteric :just get a press brewer or something < 1528617133 766683 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :also you could probably just crush the ginger and use a reusable infuser if you have one < 1528617359 685519 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :I use a large reusable cloth tea bag when making tea < 1528618347 430150 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Vorpal: Been a while since we last swapped these -- https://zem.fi/tmp/florence.jpg < 1528618465 977815 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :fizzie: I haven't done any in a while though :/ < 1528618481 723678 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :but that is pretty < 1528618496 558993 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I've mostly been lazy and used the phone's tool for them, though that one was done in the traditional Hugin way. < 1528618535 61986 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :hm have hugin improved any in recent years? haven't looked at it for a while < 1528618566 832042 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I think some of the UI elements had moved places, but I don't think it's much different. < 1528618649 832344 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I had somehow managed to make the default lens type something non-rectilinear, had real trouble with stitching before I realized that. I think it probably remembers that setting, and maybe I had played around with it. < 1528618844 768159 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :heh < 1528618887 236998 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Not sure if I mentioned, but I also bought a fisheye lens. < 1528618956 872523 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :oh, neat < 1528619010 484677 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :oh, some neighbor is using a hammer drill I think < 1528619022 83317 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :https://zem.fi/tmp/duomo1.jpg https://zem.fi/tmp/duomo2.jpg fun, but not exactly all that practical < 1528619204 263984 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :very narrow? < 1528619213 157371 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :expected a circular viewport < 1528619317 956208 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :It's one of those where for APS-C it fills the frame. Something like 167° diagonal FOV. < 1528619412 300895 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I think if you stick it on a full-frame camera it's almost a circle, but not quite. < 1528619600 714003 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :https://drkrishi.com/wp-content/uploads/2013/07/panorama-using-8mm-fisheye-01.jpg -- the (faintly visible) circle is what the image would be on a full-frame, but there's a hood that's been cut so that it doesn't obstruct the APS-C rectangle. < 1528619626 671356 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :(In my version it's removable, in the original model it wasn't.) < 1528619768 186496 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :that is some intense colour fringes < 1528619795 828298 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :now when I look closely I see some in your photo too, but not as bad < 1528619837 992429 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :did you correct for it in post processing? < 1528619879 552055 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :No. I wonder if that has something to do with how well the light/dark edge is is focus. The lens hood in that picture would be very out-of-focus. < 1528619959 56142 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :(Or maybe it's just better near the middle of the frame.) < 1528620025 389705 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :colour fringing is generally worse towards they edges yes iirc < 1528620172 602212 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :It's manual aperture and manual focus, though really if everything's more than about 1-2 metres away, you just set the focus to the 'infinity' marker and don't worry about it. < 1528620231 756306 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :neat < 1528620405 477528 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(re the Lymia/doesthiswork conversation) in programming competitions you sometimes have to design programs to be resistant to being changed < 1528620415 706275 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :this lead to the development of languages with checksums < 1528620436 653585 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :although something like https://esolangs.org/wiki/A_Pear_Tree can only be resistant to 3-4 bytes being changed < 1528620442 257844 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you could make a language that could handle more < 1528620594 366863 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :I guess most programming languages where small changes are still valid different programs (as opposed to syntax errors) are chaotic, since usually the result is completely different < 1528620667 603380 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :though there is an argument against that too since often a small change can still lead to no observed behaviour change (e.g. code is never actually executed, or it is still an infinite loop, just with a slightly different condition) < 1528620671 252067 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :right, some are intentionally designed like that, e.g. Incident < 1528620690 371695 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :where you can effectively remotely delete any part of the program by making an edit anywhere < 1528620710 473069 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :heh < 1528620776 183405 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the intent was to make it able to polyglot with /anything/ < 1528620779 624023 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :as long as you had an editable portion < 1528620801 292566 :laerling!~laerling@unaffiliated/laerling JOIN :#esoteric < 1528620911 165991 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :heh < 1528620914 859900 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :yeah that is neat < 1528620945 904586 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :but that are some really hard to use operations < 1528621030 100740 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :yes < 1528621037 168201 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's actually worse than it looks at first < 1528621093 271244 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :actually, control flow is pretty easy in Incident, the main problem is data storage and transfer < 1528621148 424901 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :hm really? Okay < 1528621159 203801 :Vorpal!~Vorpal@unaffiliated/vorpal PRIVMSG #esoteric :bbl < 1528621256 951110 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the language is basically entirely made of call stacks < 1528621552 238041 :erkin!~erkin@unaffiliated/erkin JOIN :#esoteric < 1528621758 86867 :Lymia!lymia@magical.girl.lyrical.lymia.moe PRIVMSG #esoteric :Vorpal, how would you design a programming language that's not chaotic in such a manner? < 1528621770 466095 :Lymia!lymia@magical.girl.lyrical.lymia.moe PRIVMSG #esoteric :I suspect the answer is probably: see neural networks < 1528621904 76998 :Lymia!lymia@magical.girl.lyrical.lymia.moe PRIVMSG #esoteric :There's simple tricks you could use to make any valid program very distant (in a byte-by-byte sense) from any valid program (any cryptographic AONT on a conventional language works) < 1528621915 143310 :Lymia!lymia@magical.girl.lyrical.lymia.moe PRIVMSG #esoteric :But there's still an underlying logic where a small change can create a huge difference. < 1528622512 241026 :imode!~imode@unaffiliated/imode QUIT :Ping timeout: 245 seconds < 1528622529 216272 :Lymia!lymia@magical.girl.lyrical.lymia.moe PRIVMSG #esoteric :Even Malbroge is that way < 1528622542 466643 :Lymia!lymia@magical.girl.lyrical.lymia.moe PRIVMSG #esoteric :Though, it doesn't reject anything I guess < 1528622616 894915 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Malbolge rejects almost everything < 1528622633 645442 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :IIRC there are only 8 valid options for each character position in the program, anything else is a syntax error < 1528622638 310517 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(what those options are depends on the location) < 1528622659 852058 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :this makes Malbolge programs quite easy to recognise, they tend to have long sequences that run backwards through ASCII as a result of the syntactic restrictions < 1528624984 896511 :arseniiv!~arseniiv@77.79.183.142.dynamic.ufanet.ru JOIN :#esoteric < 1528630587 797270 :erkin!~erkin@unaffiliated/erkin QUIT :Quit: Ouch! Got SIGIRL, dying... < 1528630877 546210 :laerling!~laerling@unaffiliated/laerling QUIT :Quit: Leaving < 1528631303 34846 :jix!~jix@jix.omnomnom.pizza JOIN :#esoteric < 1528632485 436169 :APic!apic@apic.name QUIT :Ping timeout: 240 seconds < 1528635213 483857 :oerjan!oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1528635632 337178 :doesthiswork!~Adium@207.55.82.87 JOIN :#esoteric < 1528635774 245531 :SopaXorzTaker!~SopaXorzT@unaffiliated/sopaxorztaker JOIN :#esoteric < 1528636343 827585 :xkapastel!uid17782@gateway/web/irccloud.com/x-fsjjpgzgeackttip JOIN :#esoteric < 1528636514 708336 :Naergon!~Naergon@unaffiliated/naergon QUIT :Ping timeout: 276 seconds < 1528637274 91093 :xkapastel!uid17782@gateway/web/irccloud.com/x-fsjjpgzgeackttip QUIT : < 1528637292 193334 :xkapastel!uid17782@gateway/web/irccloud.com/x-jpywywjpwakhylkk JOIN :#esoteric < 1528637500 662280 :SopaXorzTaker!~SopaXorzT@unaffiliated/sopaxorztaker QUIT :Remote host closed the connection < 1528639123 389216 :ineiros!ineiros@kapsi.fi JOIN :#esoteric < 1528641581 838284 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :Is there a control flow structure more flexible than delimited continuations (which seem to be rare in an esolang)? < 1528641681 263666 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :aren't non-deliminted continuations more flexible than delimited continuations? < 1528641772 782598 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :something I discovered a whlie back in INTERCAL is that you can emulate continuations using threads that can be paused < 1528641777 560693 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :although they're fairly heavy < 1528641804 928023 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :given that continuations have no obvious way to do pre-emptive (as opposed to cooperative) parallelism, threads may be more flexible < 1528642015 791269 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :Delimited continuations can easily emulate undelimited continuations with a single 'reset' that wraps around the whole program and some kind of 'halt program' instruction at the end < 1528642032 992078 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :('at the end' being still within the 'reset') < 1528642088 375262 :zzo38!~zzo38@24-207-13-153.eastlink.ca PRIVMSG #esoteric :Well, there is Forth; some implementations may be more flexible < 1528642129 682721 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :I wonder if pausable threads can emulate delimited continuations < 1528642168 868274 :zzo38!~zzo38@24-207-13-153.eastlink.ca PRIVMSG #esoteric :I don't know < 1528642289 323223 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :I guess you could just expose the call stack < 1528642382 411800 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :well, the call stack is pretty exposed in INTERCAL < 1528642466 878879 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :Or maybe a call spaghetti stack < 1528642508 910334 :oerjan!oerjan@hagbart.nvg.ntnu.no QUIT :Quit: Later < 1528643816 651471 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :If you allow the manipulation of stack frames (invoking it with values, modifying the frame it returns to, and cloning it) you can emulate delimited continuations fairly easily, I think < 1528643857 372381 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :in addition to passing them around as first-class citizens (Communism: The Esolang) < 1528644697 526417 :Lymia!lymia@magical.girl.lyrical.lymia.moe PRIVMSG #esoteric :Scala lets you serialize delimited continuations < 1528644705 312726 :Lymia!lymia@magical.girl.lyrical.lymia.moe PRIVMSG #esoteric :So you can send control flow through the network :D < 1528644860 888072 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, I wonder if you can implement delimited continuations using undelimited continuations in a simple way < 1528644897 239289 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :I tried, but I don't think it's possible < 1528644899 233481 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :something like "calling a delimited continuation takes you back to the old stack frame, but records where you called it from, and then reset can take you back to where you called it" < 1528644983 126018 :Lymia!lymia@magical.girl.lyrical.lymia.moe PRIVMSG #esoteric : Is there a control flow structure more flexible than delimited continuations (which seem to be rare in an esolang)? < 1528644984 934327 :Lymia!lymia@magical.girl.lyrical.lymia.moe PRIVMSG #esoteric :actually, wait < 1528644985 936926 :Lymia!lymia@magical.girl.lyrical.lymia.moe PRIVMSG #esoteric :I got it < 1528644992 158423 :Lymia!lymia@magical.girl.lyrical.lymia.moe PRIVMSG #esoteric :computed goto < 1528645017 180006 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :nah, not harmful enough < 1528645022 693150 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oh, computed next from is pretty powerful < 1528645030 852858 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :next from? < 1528645038 650237 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's like come from except it allows you to go back again < 1528645066 992513 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :hm < 1528645073 286425 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it lets you do things like implementing a single-stepping debugger within the language itself, by nexting from the IP as long as it isn't in the debugger itself < 1528645113 501641 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :interesting < 1528645150 731540 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's not used in any mainstream language I'm aware of, though, because it's ridiculously inefficient < 1528645152 817786 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :I've noticed that some implementations of reset/shift only allow 'shift' to interact with the 'reset' nearest to the top of the stac < 1528645157 740179 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :s/stac/stack/ < 1528645188 50705 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, Perl has the option to replace the main loop of the bytecode interpreter < 1528645204 187498 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that strikes me as pretty insanely flexible as operations go, and it doesn't seem to fall into any category other than "control flow" < 1528645244 152526 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :do any esolangs have computed next from? < 1528645267 805918 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :INTERCAL does < 1528645271 136021 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :probably not any others, though :-D < 1528645272 557846 :zzo38!~zzo38@24-207-13-153.eastlink.ca PRIVMSG #esoteric :Maybe CLC-INTERCAL does < 1528645283 762725 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :both CLC-INTERCAL and C-INTERCAL do < 1528645287 573411 :zzo38!~zzo38@24-207-13-153.eastlink.ca PRIVMSG #esoteric :OK < 1528645324 216123 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :C-INTERCAL allows you to write the computed next from in a C or Befunge-98 program, but it'll only capture lines with INTERCAL line numbers < 1528645346 698515 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(which means that you need to explicitly give an INTERCAL line number to part of the C or Befunge-98 program or you can't do anything with it) < 1528645409 78607 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :hm, if I understand this, come from is to goto as next from is to call < 1528645569 617315 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :yes < 1528645609 281400 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :could we extend the analogy to continuations? < 1528645650 651265 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :well, continuations are a generalisation of exceptions < 1528645656 854983 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and resumable exceptions are something that exists < 1528645660 341022 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so this seems maybe doable? < 1528645677 305937 :zzo38!~zzo38@24-207-13-153.eastlink.ca PRIVMSG #esoteric :What programming language has powerful enough macros to implement next from and continuations and all of those things? < 1528645678 511554 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :presumably the continuation gets two arguments, the "payload" you passed it, but also a continuation to go right back where you were before < 1528645720 918352 :zzo38!~zzo38@24-207-13-153.eastlink.ca PRIVMSG #esoteric :What do you mean by "resumable exceptions"; is that like the RESUME command in BASIC? < 1528645762 678016 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's a bit like a cross between RESUME from BASIC and catch from Java < 1528645782 153575 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :zzo38: for something like come from or next from to work, every line you'd have to check each come/next from to see if the instruction pointer matches < 1528645785 596045 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :I think < 1528645805 59979 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the idea is that when an exception occurs, the program looks for an exception handler in the normal way (stack-unwinding-like) but doesn't actually unwind the stack, instead the exception handler runs on top of the stack < 1528645840 958523 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and then can choose to unwind back to its own location in the code (in the usual way), but can also choose to correct the issue and then return back to the code that errored < 1528645871 596724 :zzo38!~zzo38@24-207-13-153.eastlink.ca PRIVMSG #esoteric :rdococ: For computed come from, yes I would think (if not computed then it is simpler to do), but I ask if it can be implemented by use of macros. < 1528646087 977923 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :presumably, to implement come froms or next froms within the language itself you'd have to define something that runs before/after every line < 1528646223 202035 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :continuations could be implemented in the form of lexical goto (goto out of anonymous function scope), I wonder if you could have a similar "lexical come from" < 1528646778 114509 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :If threads can be cloned, paused and unpaused, they would be more flexible than *undelimited* continuations at least < 1528646818 81963 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :now I'm trying to work out what operation a delimited thread would support < 1528646825 469774 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :presumably you could pause it, change the bottom of the call stack, and unpause it < 1528646861 388520 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :unless you'd already returned past that point, so perhaps they have a marker "don't go past this point" < 1528646945 624977 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :you could try the opposite route, and work out how concurrent continuations could work < 1528646956 788043 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :concurrent delimited ones, that is < 1528647111 238071 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :thread X could 'call' thread Y so that if Y returns with a value as opposed to just unpausing another thread and pausing itself, control would return to X? < 1528647249 446199 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that seems similar to coroutines < 1528647825 431977 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :How about this: Thread X could "invoke" Threads Y and Z by unpausing both of them, passing itself along with arguments to them, and pausing itself. Then when either Thread Y or Z "returns", one of them could unpause X and pause itself? < 1528647888 128856 :SopaXorzTaker!~SopaXorzT@unaffiliated/sopaxorztaker JOIN :#esoteric < 1528647900 613423 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :If Y "returns" first, though, what happens when Z "returns"? < 1528647929 721391 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :Or would X wait for both Y and Z to return by pausing itself twice? < 1528648553 888895 :erkin!~erkin@unaffiliated/erkin JOIN :#esoteric < 1528649262 815575 :constant!~variable@freebsd/developer/variable QUIT :Quit: Found 1 in /dev/zero < 1528649740 683653 :laerling!~laerling@unaffiliated/laerling JOIN :#esoteric < 1528650759 989835 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :ais523: Since delimited continuations are essentially functions in that you can pass values to them, and they can return values, perhaps you could simply implement a way to call them concurrently? < 1528650925 922075 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :> Yay < 1528650928 131413 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : error: Data constructor not in scope: Yay < 1528650931 684441 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :sorry < 1528651257 654643 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :Another way to think about it is that functions are like thread generators, and to call a function would be similar to creating and resuming a new thread passing the caller's continuation to it. < 1528651288 920210 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :Well, you wouldn't need to pass a continuation, just pass the caller itself if it's a thread. > 1528651718 419088 PRIVMSG #esoteric :14[[07User:Kaa-kun14]]4 10 02https://esolangs.org/w/index.php?diff=55603&oldid=55000 5* 03Kaa-kun 5* (-18) 10Blnk'd out page < 1528651947 538466 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :And if you can clone a thread, functions can then be thread prototypes, which you clone to create threads from. > 1528652001 187705 PRIVMSG #esoteric :14[[07Esolang talk:Community portal14]]4 10 02https://esolangs.org/w/index.php?diff=55604&oldid=49676 5* 03Kaa-kun 5* (+290) 10/* How do you make userboxen? */ new section < 1528652028 350007 :imode!~imode@unaffiliated/imode JOIN :#esoteric < 1528652136 262493 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :Hello imode. ais523 and I were discussing control flow structures that could be more powerful than delimited continuations. < 1528652177 932130 :ATMunn!ATMunn@unaffiliated/atmunn QUIT :Excess Flood < 1528652190 711108 :ATMunn!ATMunn@unaffiliated/atmunn JOIN :#esoteric < 1528652278 215722 :Naergon!~Naergon@unaffiliated/naergon JOIN :#esoteric < 1528652478 401529 :int-e!~noone@int-e.eu PRIVMSG #esoteric :. o O ( computed COME FROM ) < 1528652625 584561 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :int-e: Computed COME FROM is maybe more or less powerful than undelimited continuations, but I don't think it's as powerful as delimited ones. < 1528652749 441510 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :Although, computed COME FROM enables pre-emptive multitasking (something which even delimited continuations seems to lack), and if two COME FROM statements coming from the same line is supported then that would result in concurrency. < 1528652832 571290 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :Even non-computed COME FROM supports pre-emptive multitasking (to an extent?) and concurrent threads. < 1528652936 504749 :int-e!~noone@int-e.eu PRIVMSG #esoteric :there is a multi-threaded intercal, where this is indeed how threads are spawned > 1528652971 718086 PRIVMSG #esoteric :14[[07User:Kaa-kun14]]4 10 02https://esolangs.org/w/index.php?diff=55605&oldid=55603 5* 03Kaa-kun 5* (+834) 10Bio < 1528653069 32839 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :How about multi-threaded "next from"? < 1528653438 650806 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that works too < 1528653444 977510 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :at least in C-INTERCAL < 1528653600 597179 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :Having shift, reset and a fork instruction would probably be sufficient for concurrent delimited continuations... < 1528653791 323083 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :Or perhaps if 'reset' could act as a forking instruction as well, which would be somewhat analogous to supporting multiple goto labels with the same name. < 1528654074 624349 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :what, y'all aren't content with FSM-based control? :P < 1528654213 924267 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :Yeah, it's kind of moot when even just vanilla structured programming languages can be turing complete. < 1528654252 232106 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :expressiveness does matter. < 1528654261 214632 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :buuuut.. yeah. < 1528654459 269075 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :Quantum Malbolge should hash the program securely before executing it, so programming in it would require calculating reverse hashes (with current, classic cryptography, it's easy for quantum computers but not classical ones). < 1528654809 533941 :SopaXorzTaker!~SopaXorzT@unaffiliated/sopaxorztaker QUIT :Remote host closed the connection < 1528655304 302190 :zzo38!~zzo38@24-207-13-153.eastlink.ca PRIVMSG #esoteric :JavaScript has no goto command. All of the stuff that can be done with it you can avoid goto, and in many cases in JavaScript what it does have does help better anyways than in C, but in some cases nevertheless would be more nicer program to have goto sometimes. < 1528655435 445207 :fractal_!~fractal@unaffiliated/scounder QUIT :Ping timeout: 240 seconds < 1528655541 817844 :zzo38!~zzo38@24-207-13-153.eastlink.ca PRIVMSG #esoteric :(BLISS also does not have a goto command.) < 1528655986 500816 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :I feel like you could delimit threads in the same way that you can delimit continuations. < 1528656061 326085 :AnotherTest!~turingcom@d51A46C74.access.telenet.be JOIN :#esoteric < 1528656287 652374 :wob_jonas!b03f1924@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.25.36 JOIN :#esoteric < 1528656347 651625 :wob_jonas!b03f1924@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.25.36 PRIVMSG #esoteric :ais523: hi. in that brainfuck variant you invented, where the - command multiplies the cell by -2 instead of subtracting 1 from it, what sort of numbers is it support to use? modulo 256? bignums? something else? < 1528656354 675480 :wob_jonas!b03f1924@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.25.36 PRIVMSG #esoteric :I think in that case it matters < 1528656387 666145 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :bignum is my default < 1528656396 263757 :wob_jonas!b03f1924@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.25.36 PRIVMSG #esoteric :ok < 1528656402 626816 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it doesn't matter unless you have a limited length tape though < 1528656406 280459 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :because brainfuck minus - is TC < 1528656408 362597 :wob_jonas!b03f1924@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.25.36 PRIVMSG #esoteric :in that case I wonder if that variant is even turing-complete < 1528656413 37544 :wob_jonas!b03f1924@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.25.36 PRIVMSG #esoteric :what? < 1528656419 648330 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :https://esolangs.org/wiki/Brainfuck_minus_- < 1528656419 994352 :wob_jonas!b03f1924@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.25.36 PRIVMSG #esoteric :brainfuck on bignums without - is TC? < 1528656428 408024 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :even without bignums < 1528656435 936434 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :although bignums makes it harder < 1528656450 158188 :wob_jonas!b03f1924@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.25.36 PRIVMSG #esoteric :yes, without bignums it's easy, that's why I'm asking < 1528656455 461492 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :With integers mod 256 it's pretty trivial, really. < 1528656461 290804 :fractal_!~fractal@unaffiliated/scounder JOIN :#esoteric < 1528656469 853034 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :(or mod any number) < 1528656486 660791 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :Since you just need to do + a number of times congruent to -1. < 1528656601 584132 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :brainfuck without - is demonstrably turing complete whether the integers are modular or not as seen in the article < 1528656631 510711 :wob_jonas!b03f1924@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.25.36 PRIVMSG #esoteric :rdococ: yeah, ais just told < 1528656667 892594 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :Yeah, that article suffices to prove it, but it's pretty non-trivial. < 1528657031 258126 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :What would occur if you replaced > and + with }, which is equivalent to >+? < 1528657127 372310 :wob_jonas!b03f1924@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.25.36 PRIVMSG #esoteric :rdococ: I think that variant is already invented under some name and on the wiki < 1528657140 920655 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :without - too? then it's at most a PDA, and probably less powerful than that < 1528657146 696409 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :Ah. < 1528657154 466163 :wob_jonas!b03f1924@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.25.36 PRIVMSG #esoteric :you can just write > as }- and + as <} < 1528657181 857637 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :wob_jonas: We're talking about a derivative where >, +, - don't exist while } does. < 1528657200 404492 :wob_jonas!b03f1924@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.25.36 PRIVMSG #esoteric :ah < 1528657201 481407 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :+ is fairly trivial, as it's just <}. > on the other hand is most likely impossible. < 1528657247 747944 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the problem is that you can never read any data to the right of the pointer < 1528657315 354788 :AnotherTest!~turingcom@d51A46C74.access.telenet.be QUIT :Ping timeout: 245 seconds < 1528657322 795019 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :Would it be so limited? If it's mod-256, then > is <} 256 times. < 1528657345 700148 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I was assuming bignum < 1528657372 728434 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :Yeah, that might be a PDA. < 1528657403 809574 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it obviously can't be stronger than a PDA, but I suspect it's weaker < 1528657415 275626 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :Yeah. < 1528657458 876239 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :Not quite an FSA because it definitely has infinite states, but < 1528657469 21246 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I think it's a single-counter machine < 1528657477 89516 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :specifically, the number of 1s to the left of the pointer < 1528657481 817967 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :^ < 1528657495 294253 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :I don't even think it's that < 1528657505 258134 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :Quite possibly, yeah. < 1528657511 354213 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :nah, it is, you can increment with } and decrement with < < 1528657526 980571 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :ah, perhaps < 1528657528 640032 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :Interesting that making it mod-256 makes it more powerful. < 1528657566 365955 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :only the first cell will ever be 0 when the cell pointer is on it < 1528657588 435780 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :Well, unless it's unbounded to the left. < 1528657593 345414 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :and if you can't go to the left of the first cell you can't make it anything other than 0. the tape is effectively fixed. < 1528657601 125967 :wob_jonas!b03f1924@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.25.36 PRIVMSG #esoteric :you can also consider making it 0 to 255 inclusive, or -128 to 127 inclusive < 1528657607 987738 :wob_jonas!b03f1924@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.25.36 PRIVMSG #esoteric :where overflows lead to undefined behavior < 1528657629 157010 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :then its computational class would depend on its undefined behavior < 1528657663 416646 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :"i=i++; // makes the language Turing-complete" < 1528657692 970257 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :or overflow causes the cell pointer to move to the right < 1528657768 311354 :wob_jonas!b03f1924@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.25.36 PRIVMSG #esoteric :no no. overflow just causes the machine gives control to a malicious adversary with unlimited computing power, who'll want to make your program behave incorrectly < 1528657776 489904 :wob_jonas!b03f1924@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.25.36 PRIVMSG #esoteric :that's what undefined behavior means < 1528657802 49933 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :wob_jonas: technically speaking, that could be TC too < 1528657804 385353 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :or even uncomputable < 1528657815 597770 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's like an oracle machine except the oracle is evil < 1528657862 814125 :wob_jonas!b03f1924@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.25.36 PRIVMSG #esoteric :it's not turing complete, because you can't easily translate any program from some other TC language to a program that always does the samd < 1528657878 498455 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :there's no "easily" requirement < 1528657896 418302 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :all you have to do is be very good at making it look like a specific course of action would be the most destructive to what you were trying to achieve < 1528657897 981584 :wob_jonas!b03f1924@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.25.36 PRIVMSG #esoteric :it has to be somewhat easily, otherwise you'd put all the computation in the translation < 1528657906 573712 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, I feel a new esolang coming on < 1528657942 474827 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that said, the adversary has to be somewhat gullible or else they could just always return 0, or implement https://esolangs.org/wiki/Baby_Language, or something < 1528658003 65015 :wob_jonas!b03f1924@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.25.36 PRIVMSG #esoteric :ah, an monkey with typewriter language < 1528658080 332596 :wob_jonas!b03f1924@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.25.36 PRIVMSG #esoteric :s/ an m/ a m/ < 1528658150 717934 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I'm interested in its computational class, actually < 1528658169 188795 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :this is more a question of how computational class is defined than anything else, though < 1528658223 269261 :wob_jonas!b03f1924@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.25.36 PRIVMSG #esoteric :sure < 1528658530 906367 :variable!~variable@freebsd/developer/variable JOIN :#esoteric < 1528659762 850840 :APic!apic@apic.name JOIN :#esoteric < 1528659794 208793 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1528660754 86455 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :I'm still in the midst of a crisis. any other automata I look at that's been proposed either need to abstract upwards to a TM or are extensional equivalents to a TM. < 1528660819 648517 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :? < 1528660961 525199 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :ais523: so I've been looking into different kinds of automata. queue automata, 2-stack PDAs, tag systems, etc. < 1528661045 621907 :laerling!~laerling@unaffiliated/laerling QUIT :Quit: Leaving < 1528661074 954900 :wob_jonas!b03f1924@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.25.36 PRIVMSG #esoteric :imode: isn't that because the queue stuff is even more inefficient than a one-tape turing machine, as in, sometimes you have to spend squared the amount of time? < 1528661101 628904 :wob_jonas!b03f1924@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.25.36 PRIVMSG #esoteric :imode: although you should of course look at counter machines and all their strange variations, those are even more inefficient < 1528661114 931115 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :and from what I can see, using queue automata as an example, you're always going to just overlay a tape over whatever datastructure you've tacked on in order to do any algorithmic work. < 1528661135 218756 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :wob_jonas: I figured, but you'd at least find some algorithms where you don't have to loop through the queue all the damn time, right? < 1528661153 961864 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :like why else would you bother with any automata other than TMs then if you're just going to abstract upwards to a TM's tape? < 1528661185 803753 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :I'd like to see something as trivial as binary addition on a queue automata. < 1528661233 863267 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :I thought tag systems would be different but, sure enough, they rely on the same methods.. < 1528661357 347562 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :imode: normally I end up going to counter machines (which can be programmed in directly) rather than tape machines < 1528661382 600603 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :e.g https://esolangs.org/wiki/The_Waterfall_Model maps much more naturally onto a counter machine < 1528661394 781132 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and trying to simulate a TM into it you'd go via counteres < 1528661398 321385 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :*counters < 1528661519 705166 :imode1!~imode@unaffiliated/imode JOIN :#esoteric < 1528661554 830812 :imode1!~imode@unaffiliated/imode PRIVMSG #esoteric :ais523: right, but throwing away just proofs of turing completeness, what the hell is the purpose of these automata other than just proving they're turing complete? < 1528661578 928882 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :proving that other things are Turing complete < 1528661631 415714 :imode1!~imode@unaffiliated/imode PRIVMSG #esoteric :okay, that's fine, but you'd think that there are some classes of "native algorithms" that don't just resort to a simulation of a damn tape. :\ < 1528661665 316408 :imode!~imode@unaffiliated/imode QUIT :Ping timeout: 245 seconds < 1528661676 779421 :wob_jonas!b03f1924@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.25.36 PRIVMSG #esoteric :It's sort of a funny hierarcy if you take a one-queue machine, a one-tape machine, a 2-tape machine, a 3-tape machine, a 4-tape machine, etc, and a pointer machine. there's only like a squaring slowdown (O(t**(2+epsilon)) steps for the slower when t steps on the bigger) between the top and the bottom one, but each one in the hierarcy can only simul < 1528661676 904585 :wob_jonas!b03f1924@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.25.36 PRIVMSG #esoteric :ate the next one with that square slowdown < 1528661690 118214 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :imode1: a while back I was working on an optimised interpreter for counter machines < 1528661714 927010 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :they are easier to optimise than Turing machines are, and counter machine programs ran faster than the equivalent Turing machine programs would have done post-optimisation < 1528661741 656871 :imode1!~imode@unaffiliated/imode PRIVMSG #esoteric :right, but I don't... care much about optimizations. I'm saying that there just doesn't exist a non-tape-oriented set of algorithms for shit like queue automata. < 1528661784 531088 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :do you consider Thue to be tape-based? < 1528661797 609876 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that's pretty easy to implement on a general queue automaton < 1528661833 881312 :imode1!~imode@unaffiliated/imode PRIVMSG #esoteric :it is, and I've done it (queues are nice because they're effectively cyclical strings). < 1528661859 705138 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :whereas with the tape you have to keep going back and forth < 1528661895 829746 :imode1!~imode@unaffiliated/imode PRIVMSG #esoteric :right. queues seem good for models of computation that require some rewriting rules. < 1528661925 120051 :imode1!~imode@unaffiliated/imode PRIVMSG #esoteric :but I've not really gone into translating things like "traditional algorithms" into thue-like rewrite systems. < 1528661952 889029 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the queue model also feels essentially concurrent < 1528661960 838532 :imode1!~imode@unaffiliated/imode PRIVMSG #esoteric :how so? < 1528661963 596547 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :as you can do things on multiple places in the queue as easily as you can in just one place < 1528661966 706557 :imode1!~imode@unaffiliated/imode PRIVMSG #esoteric :ah. < 1528661971 88483 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :whereas with a tape+tape head model, it's easier to stay in one place < 1528661982 261006 :sebbu2!~sebbu@unaffiliated/sebbu JOIN :#esoteric < 1528661986 930363 :wob_jonas!b03f1924@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.25.36 PRIVMSG #esoteric :so there are problems you can solve more efficiently on a 101-tape turing machine than on a 100-tape one, but they get rare above 3 tapes < 1528662018 896699 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :"101-way diff", for example < 1528662020 707023 :imode1!~imode@unaffiliated/imode PRIVMSG #esoteric :something that I've been wanting to do is extend a queue automata with I/O. I feel that's easier than a traditional TM. < 1528662034 605980 :wob_jonas!b03f1924@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.25.36 PRIVMSG #esoteric :ais523: um, what's "101-way diff" < 1528662068 701363 :sebbu!~sebbu@unaffiliated/sebbu QUIT :Ping timeout: 256 seconds < 1528662094 217404 :wob_jonas!b03f1924@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.25.36 PRIVMSG #esoteric :imode1: interactive IO? < 1528662094 696626 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :wob_jonas: it's like a 3-way diff but bigger < 1528662102 774666 :imode1!~imode@unaffiliated/imode PRIVMSG #esoteric :wob_jonas: interactive, yeah. < 1528662105 918920 :wob_jonas!b03f1924@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.25.36 PRIVMSG #esoteric :ais523: yes, but what's 3-way diff in this sense? < 1528662124 937867 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :this is just a guess, it seems like a reasonable one though < 1528662178 812286 :imode1!~imode@unaffiliated/imode PRIVMSG #esoteric :because with stuff like rewrite rules simulated on top of a queue automata, you can just do something easy like "request_for_input1 -> 1528665205 243856 PRIVMSG #esoteric :14[[07Surtic14]]4 10 02https://esolangs.org/w/index.php?diff=55606&oldid=55601 5* 03Digital Hunter 5* (-218) 10 < 1528666432 485583 :oerjan!oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1528666899 654359 :AnotherTest!~turingcom@d51a46c74.access.telenet.be JOIN :#esoteric < 1528667319 796141 :AnotherTest!~turingcom@d51a46c74.access.telenet.be QUIT :Ping timeout: 268 seconds < 1528667372 738666 :zzo38!~zzo38@24-207-13-153.eastlink.ca PRIVMSG #esoteric :I implemented a lot more stuff in Free Hero Mesh now, including the class loading, and functions to read the levels/solutions from those files or the user cache as applicable, and the SQL execute mode, etc. If you like to, you can help too such as to draw the logo, to write the picture editor program (it would be an external program, probably), and/or to write complaints about it. < 1528667542 837198 :zzo38!~zzo38@24-207-13-153.eastlink.ca PRIVMSG #esoteric :(And I am glad they added upsert now in SQLite, since Free Hero Mesh internally uses it in one function.) < 1528667614 895890 :zzo38!~zzo38@24-207-13-153.eastlink.ca PRIVMSG #esoteric :Also I got a message with valgrind that one of the loss records says zero bytes are definitely lost (and then specifies what function); it is supposed to do that, and if so, why? > 1528667641 529053 PRIVMSG #esoteric :14[[07Esolang talk:Community portal14]]4 10 02https://esolangs.org/w/index.php?diff=55607&oldid=55604 5* 03Oerjan 5* (+256) 10/* How do you make userboxen? */ Mostly you don't < 1528667653 920535 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :> userboxen < 1528667655 913571 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : error: Variable not in scope: userboxen < 1528667696 999243 :oerjan!oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :. o O ( someone will now link a userbox on the wiki i don't know about ) < 1528667733 673610 :zzo38!~zzo38@24-207-13-153.eastlink.ca PRIVMSG #esoteric :On what wiki? Does esolang wiki have a user box? < 1528667754 877439 :oerjan!oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :no, but Kaa-Kun asked about them. < 1528667796 123453 :oerjan!oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :and there are enough pages on the wiki i haven't looked at or don't remember, that someone _may_ have made one. < 1528667818 545749 :zzo38!~zzo38@24-207-13-153.eastlink.ca PRIVMSG #esoteric :Still it should be possible to do without needing to add any additional extensions. < 1528667828 969886 :zzo38!~zzo38@24-207-13-153.eastlink.ca PRIVMSG #esoteric :(I think) < 1528667835 572139 :oerjan!oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :. o O ( also upsert totally looks like someone made a typo ) < 1528667889 143879 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :Userboxen should be the official plural. < 1528667928 814252 :zzo38!~zzo38@24-207-13-153.eastlink.ca PRIVMSG #esoteric :Maybe, but it does not seem to be a typo. It means a INSERT command that also has a ON CONFLICT ... DO UPDATE afterward to update instead of insert in case there already is such a record in the table. Apparently it was from PostgreSQL at first, but now SQLite has it too. < 1528667964 606362 :oerjan!oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :ok < 1528668002 832761 :oerjan!oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :rdococ: OKAY < 1528668030 703659 :oerjan!oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :ACTION didn't notice the plural until you mentioned it < 1528668251 444312 :oerjan!oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :of course i'm old enough to know about it. but these days we need to be gender neutral, so clearly the plural should be userbcattle hth < 1528668308 316128 :oerjan!oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :`? bcow < 1528668309 837791 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :bcow? ¯\(°​_o)/¯ < 1528668534 518829 :erkin!~erkin@unaffiliated/erkin QUIT :Quit: Ouch! Got SIGIRL, dying... < 1528668610 792313 :oerjan!oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric : Having shift, reset and a fork instruction would probably be sufficient for concurrent delimited continuations... <-- does intercal have SPOON or KNIFE? < 1528668625 903559 :zzo38!~zzo38@24-207-13-153.eastlink.ca PRIVMSG #esoteric :That is problem of English (and many other) language, not having suitable gender neutral pronoun and someother gender neutrals sometimes < 1528668632 808757 :zzo38!~zzo38@24-207-13-153.eastlink.ca PRIVMSG #esoteric :oerjan: Not any version I know. < 1528668637 236218 :int-e!~noone@int-e.eu PRIVMSG #esoteric :PLEASE ABSTAIN FROM KNIVING SPOONS < 1528668637 509134 :zzo38!~zzo38@24-207-13-153.eastlink.ca PRIVMSG #esoteric :Make it up if you like to do so. < 1528668649 281610 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oerjan: those sound like Snowflake instructions < 1528668666 438874 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :…it's probably a good thing this language is implemented or else they might not exist any more < 1528668670 778695 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :*is unimplemented < 1528668687 693108 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, it seems that Snowflake has SPOON and FORK but not KNIFE < 1528668697 445688 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Brachylog has a knife instruction, but it doesn't do flow control < 1528668744 549895 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :in Snowflake, fork … spoon is quite close to a parallel map < 1528668759 630868 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but you can run them unpaired if you want to < 1528668966 979779 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(the point of having a map instruction is that Snowflake needs to do complicated calculations in a reversible way, so it's "main" flow control commands must be ones that are inherently terminating) < 1528669094 824547 :imode-desktop1!~imode@unaffiliated/imode JOIN :#esoteric < 1528669120 307841 :imode-desktop1!~imode@unaffiliated/imode QUIT :Client Quit < 1528669139 794798 :imode-desktop1!~imode@unaffiliated/imode JOIN :#esoteric < 1528669144 973933 :oerjan!oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric : Quantum Malbolge should hash the program securely before executing it, so programming in it would require calculating reverse hashes (with current, classic cryptography, it's easy for quantum computers but not classical ones). <-- i don't think that's easy for quantum computers. < 1528669164 548240 :imode-desktop1!~imode@unaffiliated/imode QUIT :Client Quit < 1528669182 794343 :imode-desktop!~imode@unaffiliated/imode JOIN :#esoteric < 1528669208 562877 :oerjan!oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :you could get a square root speedup with grover's algorithm, but nothing enormous. < 1528669296 377164 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hi imode-desktop < 1528669308 581166 :imode-desktop!~imode@unaffiliated/imode PRIVMSG #esoteric :hey ais523. just testing out the new weechat. < 1528669319 306902 :oerjan!oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :as scott aaronson mentions in his latest blog post, cryptography _other_ than public-key isn't really cracked easily with QC. < 1528669351 579769 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :imode-desktop: a good example of something that Thue-alikes are good at is bracket matching < 1528669417 332856 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :if you just want to check for matchedness and not preserve the data, you can replace () with the null string, which is something that's much more complex in a Turing machine < 1528669425 332410 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but suppose you want to preserve the pattern too < 1528669459 220430 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you can do something like replace ) with x], ]x with x], )x with x), [x with x[, and (x with [ < 1528669484 652851 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the idea is that each ) spawns an x, and the x's flow to the left until they reach an open parenthesis, at which point they're consumed < 1528669522 157172 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :if any escape to the left, there are unmatched ), and if there are unmatched (, one of them will be left unchanged without becoming [ < 1528669553 19421 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the x's here act like miniature data pointers which are just looking for a bracket to match < 1528669659 857153 :imode-desktop!~imode@unaffiliated/imode PRIVMSG #esoteric :that's... beautiful. < 1528669719 586194 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the #1 most annoying thing about writing Thue is that if you want characters in group 1 to be able to move past characters in group 2, you have to write all the cases out individually < 1528669727 261231 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :apart from that it's a really beautiful language < 1528669740 671740 :imode-desktop!~imode@unaffiliated/imode PRIVMSG #esoteric :that makes sense. almost like wire crossing. < 1528669753 399404 :imode-desktop!~imode@unaffiliated/imode PRIVMSG #esoteric :you could auto-generate that. < 1528669765 761444 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :yes, or just generate a variant that has wildcards < 1528669784 212437 :imode-desktop!~imode@unaffiliated/imode PRIVMSG #esoteric :I suppose I should just look into naive string rewriting, ala Thue. do you have any resources/literature you could point me to? < 1528669883 283856 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :not really, I've mostly just been figuring things out myself as I go < 1528669895 656496 :imode-desktop!~imode@unaffiliated/imode PRIVMSG #esoteric :makes sense. it struck me as a relatively unexplored area. < 1528669977 850895 :imode-desktop!~imode@unaffiliated/imode PRIVMSG #esoteric :I've just been wondering about scaling upwards. I wonder what a simulation of a random access machine would look like in Thue. that's one step to getting somewhere close to "usable". < 1528670008 681747 :imode-desktop!~imode@unaffiliated/imode PRIVMSG #esoteric :same with a thue interpreter in... thue. < 1528670099 149513 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you'd have to limit the character set, thue suffers from not escaping its input < 1528670148 718591 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that said, thue would be quite bad at self-interpreting because it's not normally very good with handling two different things at the same time (as you need to keep moving them through each other to get them to the right relative positions) < 1528670163 489482 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and when interpreting thue, you have three things to handle at once (working string, search string, replacement string) < 1528670240 896657 :imode-desktop!~imode@unaffiliated/imode PRIVMSG #esoteric :I assume you'd have to have the equivalent of a tape division. < 1528670322 92935 :imode-desktop!~imode@unaffiliated/imode PRIVMSG #esoteric :construct the equivalent of a multi-tape turing machine and map each tape to each component, scanning through the input one cell at a time.. but then you're back to abstracting towards a TM. < 1528670324 676267 :oerjan!oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric : the queue model also feels essentially concurrent <-- did you see my update to the underload construction in fueue, that's relevant < 1528670376 130170 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I think I might have /seen/ it but I can't remember what it was < 1528670406 134360 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :imode-desktop: well you can make use of the nondeterminism, if it is genuine nondeterminism < 1528670411 275575 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but most thue interps don't implement that < 1528670501 28629 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :ah yes, I remember now < 1528670507 880849 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(now that I've looked at it) > 1528670570 281348 PRIVMSG #esoteric :14[[07SimPPLe14]]4 10 02https://esolangs.org/w/index.php?diff=55608&oldid=53107 5* 03Kaa-kun 5* (-13) 10Reedireect < 1528670630 772019 :imode-desktop!~imode@unaffiliated/imode PRIVMSG #esoteric :ais523: I guess there's potential. what I'm looking to do is stupid but I'm exploring translating traditional game models (like roguelikes, text adventures, anything that involves some abstract interaction between entities that may contain arbitrary codes) to different models of computation, and I've been on a descent to find the most "convenient" one to use. < 1528670680 660021 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :imode-desktop: you might want to talk to Lymia (who was trying something quite similar) about this < 1528670701 682743 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but that's a good idea, I'm also interested in the results of this < 1528670743 195978 :imode-desktop!~imode@unaffiliated/imode PRIVMSG #esoteric :the possibility of interactive I/O and "clean extendability" of whatever model I choose would also mean I get to work with the multiplayer aspect. < 1528670773 342723 :imode-desktop!~imode@unaffiliated/imode PRIVMSG #esoteric :much like how many people have extended brainfuck with I/O and network capabilities. < 1528670798 527404 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I've been thinking about this from the other direction (i.e. creating a new paradigm for games programming) < 1528670812 397051 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I combined something like three old languages I was working on and am really happy with the direction it's going in < 1528670819 442104 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :Hm. idea: call spaghetti queue < 1528670824 407235 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but it's all ideas so far, and possibly will be forever as this is daunting to spec, let alone implement < 1528670855 470160 :imode-desktop!~imode@unaffiliated/imode PRIVMSG #esoteric :I feel that. the hardest part for me is trying to translate different object behaviors to moves of a TM tape head. < 1528670922 660086 :imode-desktop!~imode@unaffiliated/imode PRIVMSG #esoteric :it's kind of degraded into a "multi-user programming environment" based on really small automata. < 1528670985 589853 :imode-desktop!~imode@unaffiliated/imode PRIVMSG #esoteric :because when I started taking into account the behaviors that MUDs offer, for example, it turns out that you just need the ability to execute arbitrary programs that respond to the world state and external player/object events. < 1528671016 103239 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the basic idea is a) objects can be created and persist even when not referenced, they have to be explicitly deleted; b) object fields cannot be directly modified but you can attach modifiers to them, some fields are calculated, and some fields are calculated as integrals of other fields so you can store data in the constant of integration; c) collisions between objects (with a simple or maybe even complex collision-detection algo) are a first-class < 1528671017 736189 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :part of the language, and are the only way to do "discrete" operations like creating and deleting objects; d) collisions may be based on things other than positions but they occupy a sort of "conceptual space" which has a speed of light (thus "distances" are actually measured in time, with c=1) < 1528671084 348116 :imode-desktop!~imode@unaffiliated/imode PRIVMSG #esoteric :that last bit is interesting to me in particular, have you ever seen this?: https://mitpress.mit.edu/books/conceptual-spaces < 1528671122 576105 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I haven't < 1528671133 383966 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :from the abstract it's unclear if the book is describing the same thing as me or not < 1528671136 55326 :imode-desktop!~imode@unaffiliated/imode PRIVMSG #esoteric :the tl;dr is "guy tries to map properties of objects to quality dimensions, and starts sketching out figures that represent concepts and individuals." < 1528671136 897109 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I guess they might be different but similar < 1528671200 842338 :imode-desktop!~imode@unaffiliated/imode PRIVMSG #esoteric :probably different, but you're the only other person I've seen using the term "conceptual space", so I had to at least ask. ;) < 1528671233 246792 :oerjan!oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric : Hm. idea: call spaghetti queue <-- . o O ( call FSM ) < 1528671243 510265 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's more similar than I thought it would be < 1528671262 84452 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :my method is intended as a model of computer thought, though, not a model of human thought, so it's much simpler < 1528671366 797856 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :oerjan: Perhaps stack frames with multiple parents could return to all of them concurrently, or maybe the stack frame would be able to choose which parent to return to. < 1528671499 760652 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :A "call FSM" would be, most likely, a call directed graph, which would allow for cycles of stack frames that return to eachother. I'm unsure of the uses for it, though. < 1528671523 245462 :oerjan!oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :`le/rn call cthulhu//Call Cthulhu is the most destructive calling convention. < 1528671525 310759 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :Learned 'call cthulhu': Call Cthulhu is the most destructive calling convention. < 1528671574 214487 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :"call finite state machine" is basically how Verity works < 1528671581 669086 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it doesn't support (non-tail) recursion for obvious reasons < 1528671591 526990 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :"DEALLOCATE THE KRAKEN!" < 1528671602 586943 :danieljabailey!~danieljab@cpc75709-york6-2-0-cust725.7-1.cable.virginm.net QUIT :Quit: ZNC 1.6.5+deb2build2 - http://znc.in < 1528671621 342073 :danieljabailey!~danieljab@cpc75709-york6-2-0-cust725.7-1.cable.virginm.net JOIN :#esoteric < 1528671629 85990 :imode-desktop!~imode@unaffiliated/imode PRIVMSG #esoteric :ais523: what I'm noticing is the "ultimate game" turns out to be something akin to Ready Player One's oasis, or the Metaverse. not something that has any specific game behavior, but a simple multi-user environment (can be single user as well) that starts off as a simple shell, but can evolve to contain different kinds of interactive game objects. < 1528671665 748753 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so basically a codenomic < 1528671674 731330 :imode-desktop!~imode@unaffiliated/imode PRIVMSG #esoteric :if you wanted to build a forest with some birds in it that hunt and peck for seeds on the ground, you could plop some graph nodes down, write some behavior for the bird, write some behavior for seed growth, and bam. < 1528671692 89583 :imode-desktop!~imode@unaffiliated/imode PRIVMSG #esoteric :kinda, yeah! < 1528671790 931189 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I think that things like the old MUDs/MOOs probably got closest to that < 1528671794 494930 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :Ooh, a codenomic < 1528671794 880883 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :modern games tend to be a lot more controlled < 1528671799 45219 :imode-desktop!~imode@unaffiliated/imode PRIVMSG #esoteric :yeah. < 1528671830 716658 :imode-desktop!~imode@unaffiliated/imode PRIVMSG #esoteric :I don't know why they never took off. there are ways to make those types of worlds graphical, more interactive. < 1528671842 138790 :imode-desktop!~imode@unaffiliated/imode PRIVMSG #esoteric :the closest thing I can see is Second Life. < 1528671844 915416 :imode-desktop!~imode@unaffiliated/imode PRIVMSG #esoteric :but that's a barn fire. < 1528672052 420891 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :probably because it conflicts with the usual monetisation model < 1528672062 809004 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :charging for skins and emotes is not really worth much when players can create anything < 1528672072 850384 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you'd have to do something like charging for anything that's blue, or the like < 1528672089 274483 :zzo38!~zzo38@24-207-13-153.eastlink.ca PRIVMSG #esoteric :There is still the MUDs that you don't need any graphics < 1528672184 674410 :imode-desktop!~imode@unaffiliated/imode PRIVMSG #esoteric :right, but I've not really seen any that are too terribly "out there". let's face it, a lot of the languages that these things are built with suck. and their toolkits are largely game-focused (at least the ones I've seen are.) < 1528672255 680483 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I think you're right that Second Life is close to what you're looking for, at least in concept < 1528672268 350398 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the execution, of course, could be much better < 1528672283 516682 :imode-desktop!~imode@unaffiliated/imode PRIVMSG #esoteric :definitely. imho their first mistake was trying to work within 3D space. < 1528672334 234194 :imode-desktop!~imode@unaffiliated/imode PRIVMSG #esoteric :starting with 3D is not the way to go in my eyes. that kind of abstraction is best left to the logic you define later, not a job for your core systems to manage. 3D mesh data should be an afterthought, and well-considered one at that... < 1528672378 842250 :imode-desktop!~imode@unaffiliated/imode PRIVMSG #esoteric :the early MUDs had it right. flat objects in memory with a loose communication mechanism that tied them all together, so you could have abstract rooms or entire spaces full of interacting objects and players. < 1528672382 71930 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Read error: Connection reset by peer < 1528672425 96317 :imode-desktop!~imode@unaffiliated/imode PRIVMSG #esoteric :the next logical step is the graph of rooms, as with many MUDs. dedicated door objects that can speak to eachother and whoever uses them, so you can coordinate teleportation at the object level, _not_ have it as an engine builtin. < 1528672464 712782 :imode-desktop!~imode@unaffiliated/imode PRIVMSG #esoteric :after that, you can add positional movement on top of the room layout, and even things like SL's grid, just by tying rooms together and being smart about prefetching objects from a certain range out in your renderer. < 1528672520 200586 :zzo38!~zzo38@24-207-13-153.eastlink.ca PRIVMSG #esoteric :What I know is how ifMUD works; there are many objects having locations, and fields on objects, and exits on both items and rooms < 1528672525 775620 :imode-desktop!~imode@unaffiliated/imode PRIVMSG #esoteric :I think the killer there is "choose your interaction". you can either have room-based movement, or location-based movement within rooms, or positional movement as well. < 1528672599 986518 :imode-desktop!~imode@unaffiliated/imode PRIVMSG #esoteric :but imagine you're just using this thing for collaberation? you can pull 4 people into a room, 2 of them create objects, and the other 2 act as QA, trying to break what's been made. < 1528672712 41670 :imode-desktop!~imode@unaffiliated/imode PRIVMSG #esoteric :these kinds of environments aren't just suited towards game-like content, they're essentially multi-agent systems, where the players are the agents and the programmers! < 1528672985 407135 :olsner!~salparot@c83-253-165-33.bredband.comhem.se QUIT :Ping timeout: 240 seconds < 1528673006 53809 :imode-desktop!~imode@unaffiliated/imode PRIVMSG #esoteric :the starting point to all of that, I guess, is finding a solid base, which is why I've been concerned with automata. < 1528673268 561155 :oerjan!oerjan@hagbart.nvg.ntnu.no QUIT :Quit: Nite < 1528673773 996320 :sebbu2!~sebbu@unaffiliated/sebbu NICK :sebbu < 1528673907 363010 :doesthiswork!~Adium@207.55.82.87 QUIT :Ping timeout: 256 seconds < 1528674044 247074 :imode!~imode@unaffiliated/imode JOIN :#esoteric < 1528674154 879956 :olsner!~salparot@c83-253-165-33.bredband.comhem.se JOIN :#esoteric < 1528674776 444485 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :Hm, might start trying to design my own b{markup language}. < 1528674924 509567 :rdococ!rdococ@unaffiliated/rdococ PRIVMSG #esoteric :https://esolangs.org/wiki/Start-reset_markup_language is fairly inaccurate - the IRC control codes for formatting are toggles, so \b turns bold off if it's already on.