< 1566260593 644683 :FreeFull!~freefull@defocus/sausage-lover QUIT : < 1566260816 455057 :sleepnap!~thomas@c-69-244-159-71.hsd1.mi.comcast.net JOIN :#esoteric < 1566260932 6688 :tromp!~tromp@2a02:a210:1585:3200:5d4a:2029:f374:a2d7 JOIN :#esoteric < 1566260938 901183 :sleepnap1!~thomas@2607:fb90:1787:637f:d926:f894:74a2:ea27 JOIN :#esoteric < 1566261074 391252 :sleepnap!~thomas@c-69-244-159-71.hsd1.mi.comcast.net QUIT :Ping timeout: 244 seconds < 1566261195 958583 :tromp!~tromp@2a02:a210:1585:3200:5d4a:2029:f374:a2d7 QUIT :Ping timeout: 252 seconds < 1566262345 187579 :ais523!~ais523@unaffiliated/ais523 QUIT :Quit: quit < 1566262898 743314 :sleepnap1!~thomas@2607:fb90:1787:637f:d926:f894:74a2:ea27 QUIT :Quit: Leaving. < 1566268652 78769 :heroux!sandroco@gateway/shell/insomnia247/x-czajepotlypsxlhl QUIT :Ping timeout: 245 seconds < 1566268664 10559 :heroux!sandroco@gateway/shell/insomnia247/x-hmzsunahslcugfld JOIN :#esoteric < 1566273008 324385 :Sgeo__!~Sgeo@ool-18b98995.dyn.optonline.net JOIN :#esoteric < 1566273178 333994 :Sgeo_!~Sgeo@ool-18b98995.dyn.optonline.net QUIT :Ping timeout: 245 seconds < 1566279203 966845 :tromp!~tromp@2a02:a210:1585:3200:5d4a:2029:f374:a2d7 JOIN :#esoteric < 1566279219 919853 :uplime!uplime@learnprogramming/staff/nchambers QUIT :Quit: ZNC 1.7.3 - https://znc.in < 1566279248 587631 :uplime!uplime@learnprogramming/staff/nchambers JOIN :#esoteric < 1566279477 956338 :tromp!~tromp@2a02:a210:1585:3200:5d4a:2029:f374:a2d7 QUIT :Ping timeout: 252 seconds < 1566283519 665635 :tromp!~tromp@ip-213-127-58-74.ip.prioritytelecom.net JOIN :#esoteric < 1566284461 354209 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :$ a=b b=a; echo $((a)) < 1566284463 108296 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :bash: b: expression recursion level exceeded (error token is "b") < 1566286731 621949 :xkapastel!uid17782@gateway/web/irccloud.com/x-ioeuliotvkewzlqx JOIN :#esoteric < 1566287936 731454 :AnotherTest!~turingcom@d51A4B8E1.access.telenet.be JOIN :#esoteric < 1566288752 238290 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1566289678 636438 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 QUIT :Ping timeout: 272 seconds < 1566289735 499997 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 JOIN :#esoteric < 1566290224 46815 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Quit: Leaving < 1566292426 733656 :onon!~onon@unaffiliated/onon PART #esoteric :"†" < 1566294264 129509 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :I've just realised that the idea I had for writing a text editor is, rougly speaking, Smalltalk < 1566294737 232376 :cpressey!~cpressey@5.133.242.4 JOIN :#esoteric < 1566294991 311689 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Good morning. I've been reading the R7RS. It's been making me laugh. < 1566295112 749646 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I don't mean to say that it is laughable; overall, I like Scheme. < 1566295120 13823 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :what funny abut it < 1566295142 313265 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :think R7RS could be better but course corrected well < 1566295199 799968 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Mainly, it's amusing when they leave so much wiggle room. < 1566295214 848233 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :For example, a Scheme implementation is allowed to use symbols outside Unicode if it wants. < 1566295222 182653 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :They say this explicitly. < 1566295285 369159 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :oh yeah < 1566295293 740557 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :they don't even specify stuff about filesystem paths for importing files < 1566295313 564733 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :in case someone wants an SQL database backed complaint r7rs implementation < 1566295319 61246 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :the result is you cannot portably do a multiple file project < 1566295496 85432 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :https://rain-1.github.io/scheme-srfi-1.html < 1566295607 989441 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :rain1: Is it ironic that *none* of those look like https://srfi.schemers.org/srfi-55/srfi-55.html ? < 1566295644 735283 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :wow i didnt even realize that < 1566295648 553551 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :i should add that < 1566295663 698205 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :(require-extension (srfi 1)) might work in one or more of those < 1566295663 773006 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :but yeah this is the mess we're in < 1566295671 229232 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :and everybody is wondering why nobody uses scheme < 1566295937 592338 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I still prefer it over Common Lisp and Clojure (but I'm probably not typical). I'd like it even more if mutability was forbidden. I thought there was a SRFI for this, but I went looking for it again and I couldn't find it. < 1566295967 908644 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :I would remove the call/cc and similar operators < 1566295973 280425 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :I think it's become clear that they aren't useful < 1566296160 318534 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Scheme (and Haskell) have a lot of features in them that are mainly to support PL research and education... I'd put call/cc in that bucket. < 1566296191 61937 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :For learning about continuations, it's cool. Will I ever actually *use* it...? Probably not. < 1566298119 957480 :int-e!~noone@int-e.eu PRIVMSG #esoteric :continuations are easy < 1566298125 591894 :int-e!~noone@int-e.eu PRIVMSG #esoteric :delimited continuations are weird < 1566298146 85190 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :All programming constructions are weird < 1566298148 743976 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(bla bla shift bla bla reset bla bla) < 1566298191 246487 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Taneb: that was an opinion, of course < 1566298198 883766 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :Yes < 1566298205 223915 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Or maybe a statement that I grokked the former but not the latter. < 1566298242 627464 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :Whereas what I said was a contrarian but defensible statement made partially in jest < 1566298653 966900 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :All continuations are delimited, though. < 1566298667 338058 :xkapastel!uid17782@gateway/web/irccloud.com/x-ioeuliotvkewzlqx QUIT :Quit: Connection closed for inactivity < 1566298678 217068 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Therefore continuations are easy and weird < 1566298741 347832 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I have the start of a CPS concatenative language but I had to use a nonstandard definition of function composition to get it < 1566298763 937852 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :cpressey: cpresshey < 1566298790 222072 :arseniiv!~arseniiv@94.41.19.60.dynamic.ufanet.ru JOIN :#esoteric < 1566298805 546710 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I'm mystified by this, actually: < 1566298830 261221 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :* I feel like I understand undelimited continuations < 1566298841 816152 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :* I feel like I don't understand delimited continuations < 1566298849 871991 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :* All continuations are delimited < 1566298884 667756 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Actually, see "A theory of regulation." in https://www.bloomberg.com/opinion/articles/2017-01-24/metrics-fees-and-regulations < 1566298915 61656 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Thing I didn't expect after your list of bullet points about continuations: a link to Bloomberg.com < 1566298946 387221 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I only realized that I was quoting that article after I finished writing the bullet points. < 1566298995 340608 :int-e!~noone@int-e.eu PRIVMSG #esoteric :shachaf: I'm confused by the shift/reset syntax, and how it translates to the common functional (a -> r) -> r idea. < 1566299048 354309 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Maybe I just haven't read the right paper(s) yet. < 1566299091 337353 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Haskell Cont continuations are delimited by runCont. < 1566299136 488241 :int-e!~noone@int-e.eu PRIVMSG #esoteric :As I said, I'm mainly confused by shift & reset. < 1566299168 521243 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I suspect "delimited" refers to something that's not actually the continuation per se -- but I don't really know. < 1566299197 165529 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Well, whole program continuations are silly. < 1566299248 936805 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Oh, my pseudo-continuation thing has a delimiter, normally written {}. < 1566299254 622566 :int-e!~noone@int-e.eu PRIVMSG #esoteric :To carve out a context from a program you need a point where the context starts, and a hole, "delimiting" it from two sides. < 1566299306 306525 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :When you write { ...foo`...; ... }, foo gets "{\x; ...x...; ... }" as an argument. < 1566299328 383735 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Rather than the entire rest of the program. < 1566299487 22239 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :In the classic Scheme shift-reset thing, shift is a binder, right? < 1566299491 774994 :arseniiv!~arseniiv@94.41.19.60.dynamic.ufanet.ru PRIVMSG #esoteric :int-e: shift/reset confuses me too. This or previous year I have seen something more natural but I don’t remember if it was purely about delimited continuations or something other < 1566299578 975000 :arseniiv!~arseniiv@94.41.19.60.dynamic.ufanet.ru PRIVMSG #esoteric :hm how algebraic effects relate to continuations? At least syntactic ideas about the former are more understandable for me < 1566299605 303486 :arseniiv!~arseniiv@94.41.19.60.dynamic.ufanet.ru PRIVMSG #esoteric :s/about/related to < 1566299660 605720 :arseniiv!~arseniiv@94.41.19.60.dynamic.ufanet.ru PRIVMSG #esoteric :that handling case-like construct and data-like definition of an effect < 1566299665 876888 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Oh, I think I understand shift/reset now. < 1566299705 941176 :atslash!~atslash@static.231.107.9.5.clients.your-server.de JOIN :#esoteric < 1566299719 358079 :arseniiv!~arseniiv@94.41.19.60.dynamic.ufanet.ru PRIVMSG #esoteric :IMO shift takes on itself too much, and that effect syntax takes from it some control to the “reset” side < 1566299727 84094 :arseniiv!~arseniiv@94.41.19.60.dynamic.ufanet.ru PRIVMSG #esoteric :AFAIR < 1566299768 203316 :arseniiv!~arseniiv@94.41.19.60.dynamic.ufanet.ru PRIVMSG #esoteric :and then suddenly it starts to resemble control constructs from imperative languages, e. g. try/catch < 1566299873 444283 :arseniiv!~arseniiv@94.41.19.60.dynamic.ufanet.ru PRIVMSG #esoteric :oh also I had read something that made me think I understood shift/reset, but now I remember it only vaguely < 1566300080 657197 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :int-e: OK, I now understand shift-reset and can work the examples. < 1566300091 907645 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It seems pretty simple. < 1566300158 726262 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I'm not sure why shift is called shift, and why it doesn't take a lambda. < 1566300729 679881 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :The shift/reset in http://pllab.is.ocha.ac.jp/~asai/cw2011tutorial/main-e.pdf seem a bit more reasonable. < 1566302107 51306 :adu!~ajr@pool-173-73-86-191.washdc.fios.verizon.net QUIT :Quit: adu < 1566302627 479060 :int-e!~noone@int-e.eu PRIVMSG #esoteric :okay... next question... why? < 1566302643 580826 :int-e!~noone@int-e.eu PRIVMSG #esoteric :fungot: why? < 1566302643 735820 :fungot!~fungot@2a01:4b00:82bb:1341::2 PRIVMSG #esoteric :int-e: i hope something good came in the mail < 1566302673 497057 :int-e!~noone@int-e.eu PRIVMSG #esoteric :That's a better answer than I hoped for. But it's still not very satisfying. < 1566302738 676225 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :So "delimited" means that instead of one thing called call/cc you have two things called shift and reset < 1566302781 354374 :int-e!~noone@int-e.eu PRIVMSG #esoteric :shachaf: there's a subtlety around the behavior of ; inside reset though... < 1566302807 383284 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Here's a stack. No, there's no stack now. Okay, now there's a stack again, but it's a different stack. < 1566302809 815090 :int-e!~noone@int-e.eu PRIVMSG #esoteric :shachaf: reset (foo; shift ...) doesn't capture the 'foo' part. < 1566302855 541576 :int-e!~noone@int-e.eu PRIVMSG #esoteric :shachaf: otherwise the tree walking wouldn't make sense (I think) < 1566302959 742988 :int-e!~noone@int-e.eu PRIVMSG #esoteric :cpressey: Yeah I guess that explains it operationally, more or less... shift = "capture the stack between here and the latest reset on the heap, and return a closure that, when invoked, puts it back on the stack". < 1566303225 202899 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :int-e: if it explains anything operationally, it was by accident < 1566303255 741196 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :it was more about... well, hard to say. I am prattling. < 1566303348 412915 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Oh was I finding patterns in the noise... mistaking them for communication? I believe that's a common mistake for humans :) < 1566303356 563839 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(So maybe I'm human? Who knew...) < 1566303583 602031 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I'll chalk it up to coincidence. I was perhaps trying to answer "why?" < 1566303623 178005 :int-e!~noone@int-e.eu PRIVMSG #esoteric :This is all so dysfuncational! < 1566303688 349532 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Do I really want continuations that have been made more useful by making them delimited continuations? Isn't the point kind of to make it *less* useful? To make it easier to analyze, etc. < 1566303707 789767 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :If I wanted useful, I'd just not deal with continuations at all. < 1566303746 332466 :int-e!~noone@int-e.eu PRIVMSG #esoteric :I rather suspect that continuations were meant to be useful. < 1566303747 279240 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I guess there is some kind of control structure that delimited continuations can capture, that "regular" ones can't, but I haven't seen what it is < 1566303815 908082 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :doesn't interest me enough to justify me hunting it down unfortunately < 1566303843 993740 :int-e!~noone@int-e.eu PRIVMSG #esoteric :I wonder about the history. < 1566303856 793112 :int-e!~noone@int-e.eu PRIVMSG #esoteric :This may have been an accident. < 1566304023 202841 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I dunno, I kind of stopped paying listening to academics after I heard Wadler compare monads to a solution to Descartes' mind-body problem. < 1566304026 107813 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(Made-up history: 1. We want exception-like behavior, a bit like setjmp/longjmp, but memory-safe! Let's make something that captures the current state of the stack so we can resume at this point later. Let's name it call/cc. 2. call/cc is slow because it has to capture all of the current stack... let's add a mechanism to limit the amount of stack we safe! (reset / shift=call/cc up to last... < 1566304032 161369 :int-e!~noone@int-e.eu PRIVMSG #esoteric :...reset). 3. Hmm, what can we use this new primitive for? 4. 100 papers. ) < 1566304041 210553 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :*paying attention to < 1566304079 547070 :PaniniTheDevelop!b03b2908@176.59.41.8 JOIN :#esoteric < 1566304081 938728 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :int-e: I believe continuations, the concept, started in denotational semantics. < 1566304090 894308 :PaniniTheDevelop!b03b2908@176.59.41.8 PRIVMSG #esoteric :hello! < 1566304100 107730 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :So if it's "We want to write a function that describes exception-like behaviour" then yes < 1566304116 302238 :int-e!~noone@int-e.eu PRIVMSG #esoteric :cpressey: let's focus on steps 2-4 :) < 1566304225 727519 :int-e!~noone@int-e.eu PRIVMSG #esoteric :("1. God gave us call/cc." - Let's pretend I wrote that instead ;) ) < 1566304228 54007 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :int-e: https://cs.indiana.edu/~dyb/pubs/monadicDC.pdf refers to a 1987 paper called "Beyond continuations" that < 1566304250 491477 :PaniniTheDevelop!b03b2908@176.59.41.8 PRIVMSG #esoteric :help < 1566304255 662500 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :PaniniTheDevelop: hi < 1566304261 433628 :int-e!~noone@int-e.eu PRIVMSG #esoteric :`relcome PaniniTheDevelop < 1566304262 774931 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :​07PaniniTheDevelop: 08Welcome 09to 02the 06international 13hub 04for 07esoteric 08programming 09language 02design 06and 13deployment! 04For 07more 08information, 09check 02out 06our 13wiki: 04. 07(For 08the 09other 02kind 06of 13esoterica, 04try 07#esoteric 08on 09EFnet 02or 06DALnet.) < 1566304270 448786 :PaniniTheDevelop!b03b2908@176.59.41.8 PRIVMSG #esoteric :i cant register < 1566304278 503001 :int-e!~noone@int-e.eu PRIVMSG #esoteric :PaniniTheDevelop: ask on #freenode < 1566304313 965418 :PaniniTheDevelop!b03b2908@176.59.41.8 PRIVMSG #esoteric :just < 1566304323 805241 :PaniniTheDevelop!b03b2908@176.59.41.8 PRIVMSG #esoteric :i dont know befunge < 1566304334 424573 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(oh. register where?) < 1566304342 955099 :PaniniTheDevelop!b03b2908@176.59.41.8 PRIVMSG #esoteric :on the wiki < 1566304393 723624 :int-e!~noone@int-e.eu PRIVMSG #esoteric :sorry, I somehow assumed the IRC server < 1566304431 4132 :PaniniTheDevelop!b03b2908@176.59.41.8 PRIVMSG #esoteric :okay... < 1566304442 750130 :int-e!~noone@int-e.eu PRIVMSG #esoteric :`bf 64+"!dlroW ,olleH">:#,_@ < 1566304445 101652 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :No output. < 1566304456 322429 :int-e!~noone@int-e.eu PRIVMSG #esoteric :hrm < 1566304480 734125 :PaniniTheDevelop!b03b2908@176.59.41.8 PRIVMSG #esoteric :i think its brainfck < 1566304678 896429 :int-e!~noone@int-e.eu PRIVMSG #esoteric :`ibin/befunge 64+"!dlroW ,olleH">:#,_@ < 1566304679 477729 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :Hello, World! < 1566304702 108933 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Now what was the official way to do that... < 1566304705 493819 :PaniniTheDevelop!b03b2908@176.59.41.8 PRIVMSG #esoteric :9857727254>\#+:#*9-#\_$.@ < 1566304710 487906 :int-e!~noone@int-e.eu PRIVMSG #esoteric :`help interp < 1566304711 791885 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :​`interp? ¯\(°​_o)/¯ < 1566304722 610351 :PaniniTheDevelop!b03b2908@176.59.41.8 PRIVMSG #esoteric :help with this < 1566304736 226477 :int-e!~noone@int-e.eu PRIVMSG #esoteric :the `ibin/befunge was important < 1566304825 687814 :int-e!~noone@int-e.eu PRIVMSG #esoteric :`! befunge 9857727254>\#+:#*9-#\_$.@ < 1566304826 758069 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :197596799 < 1566304881 567301 :int-e!~noone@int-e.eu PRIVMSG #esoteric :`? `! < 1566304882 646983 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :​`! emulates the ! command of our former bot EgoBot. You write `! then the name of the language then a program, and it runs the program you give and returns the result. We used to use it to test out esoprograms in-channel all the time, but the set of included esolangs is fairly old now and so it's rarely used. < 1566304900 167921 :PaniniTheDevelop!b03b2908@176.59.41.8 PRIVMSG #esoteric :thanks > 1566304913 413975 PRIVMSG #esoteric :14[[07Special:Log/newusers14]]4 create10 02 5* 03PaniniTheDeveloper 5* 10New user account < 1566304932 232560 :PaniniTheDevelop!b03b2908@176.59.41.8 PRIVMSG #esoteric :yaaay < 1566304943 959507 :int-e!~noone@int-e.eu PRIVMSG #esoteric :One more hoop to jump through. < 1566304950 107637 :PaniniTheDevelop!b03b2908@176.59.41.8 PRIVMSG #esoteric :what < 1566305150 612682 :int-e!~noone@int-e.eu PRIVMSG #esoteric :It will ask you to introduce yourself at some point... I don't know whether it tells you immediately after creating the account or when you attempt to edit a page though. (Maybe both, but perhaps only the latter.) < 1566305235 990995 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Anyway, we're all sorry for those hoops but we did suffer from a lot of spam in the past (including some that figured out how to solve the befunge captcha, either automatically or perhaps by employing humans that are rewarded simply for creating an account successfully.) < 1566305496 760263 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :If the latter, it is probably the only instance ever of people being paid to code in Befunge. < 1566305526 888325 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Anyway I didn't realize there was a captcha at all < 1566305677 933220 :int-e!~noone@int-e.eu PRIVMSG #esoteric :cpressey: I imagine the reward to be more along the lines of being allowed to download a couple of pornographic videos. < 1566305726 799261 :int-e!~noone@int-e.eu PRIVMSG #esoteric :or maybe a "stress-test" of the network connection of "a friend". < 1566305839 654405 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :oh dear < 1566306104 14042 :int-e!~noone@int-e.eu PRIVMSG #esoteric :I should stress that I don't know. I'm extrapolating from https://krebsonsecurity.com/ mostly. < 1566307298 307323 :PaniniTheDevelop!b03b2908@176.59.41.8 QUIT :Remote host closed the connection > 1566310168 398911 PRIVMSG #esoteric :14[[07Emoji14]]4 M10 02https://esolangs.org/w/index.php?diff=65578&oldid=65554 5* 03Dtuser1337 5* (-35) 10removing unnecessary newlines. > 1566310194 645070 PRIVMSG #esoteric :14[[07Emoji14]]4 10 02https://esolangs.org/w/index.php?diff=65579&oldid=65578 5* 03Dtuser1337 5* (+35) 10Undo revision 65578 by [[Special:Contributions/Dtuser1337|Dtuser1337]] ([[User talk:Dtuser1337|talk]]) Oops > 1566310306 793959 PRIVMSG #esoteric :14[[07Emoji14]]4 M10 02https://esolangs.org/w/index.php?diff=65580&oldid=65579 5* 03Dtuser1337 5* (+1) 10trying out new thing. < 1566310642 80640 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :I think delimited continuations are easier < 1566310648 4279 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :for one thing you can algebraically axiomatize them < 1566310672 653340 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :(2004) Axioms for Delimited Continuations in the CPS Hierarchy - Yukiyoshi Kameyama < 1566310729 935186 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :if you wanted to define orthogonal language constructs in terms of continuations you need multiple-prompt continuations to separate them though < 1566311987 326362 :arseniiv!~arseniiv@94.41.19.60.dynamic.ufanet.ru PRIVMSG #esoteric : ("1. God gave us call/cc." - Let's pretend I wrote that instead ;) ) => no, God gave us the integers, he couldn’t have given us two different things at once, it would be cheating < 1566312030 759410 :arseniiv!~arseniiv@94.41.19.60.dynamic.ufanet.ru PRIVMSG #esoteric :if you’re right, call/cc = integers < 1566312036 573043 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :call/succ < 1566312135 390960 :arseniiv!~arseniiv@94.41.19.60.dynamic.ufanet.ru PRIVMSG #esoteric :but what about call/pred then? I know Kronecker probably meant only nonnegative/positive integers, but it’s more fun if we’d take them all < 1566312152 744801 :arseniiv!~arseniiv@94.41.19.60.dynamic.ufanet.ru PRIVMSG #esoteric :oh one time I was bored and tried to make Peano-like axioms for Z < 1566312172 918453 :arseniiv!~arseniiv@94.41.19.60.dynamic.ufanet.ru PRIVMSG #esoteric :it ended up too verbose < 1566312575 537807 :int-e!~noone@int-e.eu PRIVMSG #esoteric :arseniiv: I thought he gave use more tablets full of commandments but Moses was too lazy to carry them down the mountain? < 1566312596 435835 :arseniiv!~arseniiv@94.41.19.60.dynamic.ufanet.ru PRIVMSG #esoteric :maybe < 1566312601 532936 :arseniiv!~arseniiv@94.41.19.60.dynamic.ufanet.ru PRIVMSG #esoteric :they are heavy < 1566312617 376028 :int-e!~noone@int-e.eu PRIVMSG #esoteric :should've used paper < 1566312640 113401 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :arseniiv: hmm, 0 is in Z, succ is a bijection from Z -> Z such that succ(x) != x < 1566312708 967889 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :Induction's the tricky one, as always < 1566312715 156495 :int-e!~noone@int-e.eu PRIVMSG #esoteric :ACTION tries to find context < 1566312728 147791 :int-e!~noone@int-e.eu PRIVMSG #esoteric :ah. "I was bored and tried to make Peano-like axioms" < 1566312767 812466 :arseniiv!~arseniiv@94.41.19.60.dynamic.ufanet.ru PRIVMSG #esoteric :I added prev and tried to make sure pred succ = succ pred = id < 1566312779 935381 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :If K is a set such that 0 is in K and for every integer n, n being in K implies that succ(n) and succ^-1(n) is in K, then K contains every integer < 1566312808 101488 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :arseniiv: I was trying to be sneaky and rely on pred existing due to succ being bijective < 1566312808 324425 :arseniiv!~arseniiv@94.41.19.60.dynamic.ufanet.ru PRIVMSG #esoteric :Taneb: yeah, I wrote it in that way, though using pred instead of succ^−1 < 1566312812 242142 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Z is the monoid given by the presentation < 1566312833 431847 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(that's ) < 1566312852 390796 :arseniiv!~arseniiv@94.41.19.60.dynamic.ufanet.ru PRIVMSG #esoteric :int-e: that’s cheating < 1566312868 919868 :int-e!~noone@int-e.eu PRIVMSG #esoteric :arseniiv: we can translate that back into peano style, surely. < 1566312894 992422 :int-e!~noone@int-e.eu PRIVMSG #esoteric :It just won't be nearly as nice as Peano's axioms... unfortunately. < 1566312919 196096 :arseniiv!~arseniiv@94.41.19.60.dynamic.ufanet.ru PRIVMSG #esoteric :though all said, I like the definition of N as a free monoid on one generator :) < 1566312942 91852 :arseniiv!~arseniiv@94.41.19.60.dynamic.ufanet.ru PRIVMSG #esoteric :then we can add multiplication more or less naturally < 1566312972 744695 :int-e!~noone@int-e.eu PRIVMSG #esoteric :In reality I like Z as a quotient of N x N (with (a,b) = (c,d) whenever a + d = b + c) < 1566313012 443245 :arseniiv!~arseniiv@94.41.19.60.dynamic.ufanet.ru PRIVMSG #esoteric :yeah it’s a nice construction and works for more things, I forgot what it’s named in general < 1566313057 841403 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Just like Q is the quotient of (Z x (Z - {0})) w.r.t (a,b) = (c,d) <--> a*d = b*c) < 1566313095 524329 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :a + 0 = a, a + succ(b) = succ(a + b), a + succ^-1(b) = succ^-1(a + b), exercize: show that this is consistent < 1566313131 401473 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Taneb: what do you mean by succ^-1? < 1566313137 21148 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :is ^-1 just a constructor < 1566313158 85394 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :or maybe succ^-1 is a single constructor < 1566313164 997172 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Taneb: I'd be happier if you used `pred` and axioms for the interaction of succ and pred < 1566313260 701876 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :int-e: I define succ to be a bijection, and succ^-1 is the inverse function of succ, which you can call pred if you like < 1566313332 48667 :int-e!~noone@int-e.eu PRIVMSG #esoteric :so putting that equationally, you have pred(succ(x)) = x and succ(pred(x)) = x. < 1566313368 565703 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :oh ok i get it < 1566313375 413651 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :BTW < 1566313387 252414 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :http://minikanren.org/workshop/2019/minikanren19-final4.pdf I like this < 1566313447 473910 :int-e!~noone@int-e.eu PRIVMSG #esoteric :fortuntately, the rewrite rules +(x, 0) -> x, +(x, s(y)) -> s(+(x,y)), +(x, p(y)) -> p(+(x,y)), s(p(x)) -> x, p(s(x)) -> x are terminating and confluent, and there are distinct normal forms (e.g., 0 and s(0)), so the system is consistent. (Exercise: Figure out what having distinct normal forms has to do with "consistency") < 1566313534 991998 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :what theorem is that < 1566313552 650406 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I am probably missing something, but, how is this not group theory < 1566313556 114098 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :I guess its some fundamental result from term rewriting theory < 1566313646 346819 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(Solution to exercise: Since we're specifying an algebraic structure by equations alone, there's always a model that consists of a single element. So the natural analogue of "consistency" is not "has a model", but "has a non-trivial model", which means a model with more than one element.) < 1566313675 115565 :int-e!~noone@int-e.eu PRIVMSG #esoteric :This /is/ related to standard consitency formulated in terms of booleans: we don't want to have false = true. < 1566314187 503022 :int-e!~noone@int-e.eu PRIVMSG #esoteric :cpressey: "how is this not group theory" -- term rewriting is closer to universal algebra (you can have an arbitrary number of functions of arbitrary arity, and you can talk about presentations of such structures (given by equations between terms that may contain variables, like that s(p(x)) = x above) and stuff like that. And then you can ask questions like whether two terms (0 and s(0)) are... < 1566314193 510781 :int-e!~noone@int-e.eu PRIVMSG #esoteric :...the same. To that end, one can try to "complete" the system, by which checking whether t = u amounts to reducing t and u to a normal form with respect to a complete (terminating and confluent) system, and then comparing those normal forms syntactically.). < 1566314275 15659 :int-e!~noone@int-e.eu PRIVMSG #esoteric :https://en.wikipedia.org/wiki/Knuth%E2%80%93Bendix_completion_algorithm is not the best Wikipedia article ever... but it might serve as a starting point nonetheless. Note that the seminal paper is titled "Simple Word Problems in Universal Algebras", so the universal algebra angle was there from the very beginning. < 1566314340 392889 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :OK, well, yes, ok < 1566314353 32690 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Eh bien, gut, ok, yes, ok < 1566314366 439594 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Sorry, I've worked in this field for 8 years. Some things stick :P < 1566314434 245153 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Is it not the case that "Peano-like axioms for Z" would be roughly the same as "Axioms for (infinite, ordered) groups" < 1566314476 542123 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Hmm, ordered. < 1566314484 683130 :int-e!~noone@int-e.eu PRIVMSG #esoteric :abelian would've been my first instinct < 1566314504 104917 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :abelian, right, that too < 1566314512 607597 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :But s() induces an order, I'm sure < 1566314536 455194 :int-e!~noone@int-e.eu PRIVMSG #esoteric :until it runs into a cycle (and cycle avoidance is the main challenge here) < 1566314545 195689 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I sure hope it induces an order, or I've wandered into an episode of The Twilight Zone < 1566314571 965886 :int-e!~noone@int-e.eu PRIVMSG #esoteric :modulo 3 you have 0 < 1 < 2 < 0 < 1 < 2 < 0 < 1 ... < 1566314586 563302 :int-e!~noone@int-e.eu PRIVMSG #esoteric :That's not much of an order, if you ask me. < 1566314606 20487 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :Who ordered this? < 1566314607 630945 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Anyway, that's what derailed *my* train of thought. < 1566314631 643764 :int-e!~noone@int-e.eu PRIVMSG #esoteric :And at least it's still a quasi-order. < 1566314693 211660 :int-e!~noone@int-e.eu PRIVMSG #esoteric :and even a... https://en.wikipedia.org/wiki/Well-quasi-ordering < 1566314719 675340 :xkapastel!uid17782@gateway/web/irccloud.com/x-hcrsrsvvbjsvjcxo JOIN :#esoteric < 1566314727 959521 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I think I see what you're getting at < 1566315033 988450 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :ACTION tries to think of how to extend the Peano axioms to ensure that the set is infinite < 1566315092 955366 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :I think the peano axioms do imply the set is infinite < 1566315103 447710 :int-e!~noone@int-e.eu PRIVMSG #esoteric :by induction < 1566315129 995842 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(the axiom schema, not the proof method) < 1566315155 871883 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :Because succ is injective and there's no natural n such that succ(n) = 0 < 1566315156 762377 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :couldn't you just assume you had a finite model then add one to the biggest number < 1566315248 985083 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I'm completely lost then. That's okay. < 1566315286 942988 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I'm not sure where the modulo 3 thing came from. < 1566315312 776399 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :Me neither < 1566315329 190597 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :well if you had a finite model < 1566315336 861307 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :take the biggest element < 1566315344 698636 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :the assumption is that S(biggest) is not in that set < 1566315363 464036 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :if it was in the set, then you have S(biggest) = something so theres a loop, kind of like modular arithmetic < 1566315369 979775 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :rain1: I don't think that that's where cpressey is lost < 1566315614 252713 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I don't really know anything about model theory so I have no intuitions here, but if you have axioms for infinite ordered groups, I would expect that there is no finite model that would satisfy them < 1566315617 594965 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I could be totally wrong < 1566315647 761136 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :On the other hand I can see how you could have a finite model satisying axioms for abelian groups, that doesn't sound wrong to me < 1566315663 150314 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :And that's where modulo 3 could come in, I can see that < 1566315696 739395 :int-e!~noone@int-e.eu PRIVMSG #esoteric :cpressey: oh well I'm having a totally different wtf moment about this: https://www.gq.com/story/war-against-sneaker-bots < 1566315944 637297 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :int-e: it's amazing the things that happen in this world < 1566316135 630040 :int-e!~noone@int-e.eu PRIVMSG #esoteric :or, to quote Brian Krebs, 'For readers unfamiliar with this term, “shoe botting” or “sneaker bots” refers to the use of automated bot programs and services that aid in the rapid acquisition of limited-release, highly sought-after designer shoes that can then be resold at a profit on secondary markets.' < 1566316164 288514 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Taneb: And disturbing. < 1566316660 878013 :Sgeo_!~Sgeo@ool-18b98995.dyn.optonline.net JOIN :#esoteric < 1566316852 195119 :Sgeo__!~Sgeo@ool-18b98995.dyn.optonline.net QUIT :Ping timeout: 245 seconds < 1566317014 209942 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :What they don't tell you is that the shoes are highly sought-after because, properly applied, they will eradicate 80% of the world's diseases < 1566317115 558467 :int-e!~noone@int-e.eu PRIVMSG #esoteric :. o O ( Instead of dozens of different causes, everybody will die from shoe poisoning from this point onward. ) < 1566317197 221275 :sebbu2!~sebbu@unaffiliated/sebbu JOIN :#esoteric < 1566317284 148785 :int-e!~noone@int-e.eu PRIVMSG #esoteric :cpressey: I'm only half kidding. I have a genuine problem with applying percentages to causes of death when we're dealing with a 100% mortality rate in the long run. < 1566317352 202569 :Vorpal!~Vorpal@unaffiliated/vorpal QUIT :Ping timeout: 245 seconds < 1566317425 769007 :sebbu!~sebbu@unaffiliated/sebbu QUIT :Ping timeout: 268 seconds < 1566317463 681549 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :I remember seeing some headline that eating cheese reduces death rate from all causes < 1566317474 398639 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :The obvious jokes were made < 1566317671 244504 :Vorpal!~Vorpal@c80-216-244-252.bredband.comhem.se JOIN :#esoteric < 1566317671 303803 :Vorpal!~Vorpal@c80-216-244-252.bredband.comhem.se QUIT :Changing host < 1566317671 303850 :Vorpal!~Vorpal@unaffiliated/vorpal JOIN :#esoteric < 1566319023 440591 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :What they don't tell you is that the shoes are highly sought-after because they cause the wearer to become invisible and able to sneak up on dragons and slay them and take their treasure. < 1566319041 839930 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :And the reason they don't tell you these things, is because they're not true. < 1566319318 210120 :sebbu!~sebbu@unaffiliated/sebbu JOIN :#esoteric < 1566319543 216876 :sebbu2!~sebbu@unaffiliated/sebbu QUIT :Ping timeout: 246 seconds < 1566319567 135190 :sebbu2!~sebbu@unaffiliated/sebbu JOIN :#esoteric < 1566319728 307273 :sebbu!~sebbu@unaffiliated/sebbu QUIT :Ping timeout: 245 seconds < 1566319733 22861 :sebbu2!~sebbu@unaffiliated/sebbu NICK :sebbu < 1566320404 919180 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Hmm. Four languages called "Robin" on Github, and only one of them's mine. < 1566320412 20287 :cpressey!~cpressey@5.133.242.4 QUIT :Quit: A la prochaine. < 1566321684 368851 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1566322315 545004 :b_jonas!~x@catv-176-63-24-45.catv.broadband.hu JOIN :#esoteric < 1566322449 526975 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :ACTION lurks < 1566322505 583381 :xkapastel!uid17782@gateway/web/irccloud.com/x-hcrsrsvvbjsvjcxo QUIT :Quit: Connection closed for inactivity < 1566322537 854373 :b_jonas!~x@catv-176-63-24-45.catv.broadband.hu PRIVMSG #esoteric :fungot, has SGDQ started yet? < 1566322538 248132 :fungot!~fungot@2a01:4b00:82bb:1341::2 PRIVMSG #esoteric :b_jonas: is it 1974? what's for supper? can i program as if it was much thanks to oerjan)). how do you duplicate the list d e k f g c h i j w p r < 1566322566 125931 :b_jonas!~x@catv-176-63-24-45.catv.broadband.hu PRIVMSG #esoteric :`olist 1176 < 1566322569 228479 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :olist 1176: shachaf oerjan Sgeo FireFly boily nortti b_jonas < 1566322681 320726 :b_jonas!~x@catv-176-63-24-45.catv.broadband.hu PRIVMSG #esoteric :" Why would ELF symbol relocations be relevant for a statically linked executable?" => the program will refer to symbols in vdso < 1566323667 198153 :b_jonas!~x@catv-176-63-24-45.catv.broadband.hu PRIVMSG #esoteric :" Here's a stack. No, there's no stack now. Okay, now there's a stack again, but it's a different stack." => right, a cactus stack, because if you capture a continuation and leak it, it keeps a reference to the stack frame (and all stack frames below) even though you've exited those already < 1566323690 992853 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :all hail the cactus stack < 1566323719 365926 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :pointy and prickly and stabs whoever dares touch it < 1566323908 746018 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :fungot, has SGDQ started yet? < 1566323908 911720 :fungot!~fungot@2a01:4b00:82bb:1341::2 PRIVMSG #esoteric :rain1: i got it set up a return address) to each function, correct?) < 1566324285 434048 :b_jonas!~x@catv-176-63-24-45.catv.broadband.hu PRIVMSG #esoteric :int-e: that may be the history, but it also happens to allow cooperative context switching between execution threads, which is sort of nice to show how powerful that primitive is < 1566324358 908266 :b_jonas!~x@catv-176-63-24-45.catv.broadband.hu PRIVMSG #esoteric :alternately maybe it started because someone wrote a lisp an interpreter that stored the stack frames individually allocated in a linked list on the heap, and then noticed that now his interpreter is so inefficient that they can implement call/cc without making it too much worse < 1566324420 726115 :b_jonas!~x@catv-176-63-24-45.catv.broadband.hu PRIVMSG #esoteric :`! befunge 64+"!dlroW ,olleH">:#,_@ < 1566324421 453755 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :Hello, World! < 1566324427 478976 :b_jonas!~x@catv-176-63-24-45.catv.broadband.hu PRIVMSG #esoteric :int-e: ^ the official way < 1566324429 406695 :b_jonas!~x@catv-176-63-24-45.catv.broadband.hu PRIVMSG #esoteric :`? `! < 1566324430 736608 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :​`! emulates the ! command of our former bot EgoBot. You write `! then the name of the language then a program, and it runs the program you give and returns the result. We used to use it to test out esoprograms in-channel all the time, but the set of included esolangs is fairly old now and so it's rarely used. < 1566324513 973005 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :fungot: r7rs < 1566324514 110743 :fungot!~fungot@2a01:4b00:82bb:1341::2 PRIVMSG #esoteric :rain1: well i guess i could < 1566324531 129874 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :fungot: rust < 1566324531 328590 :fungot!~fungot@2a01:4b00:82bb:1341::2 PRIVMSG #esoteric :moony: so i've always tied another on top of scheme, i don't know how < 1566324652 621786 :b_jonas!~x@catv-176-63-24-45.catv.broadband.hu PRIVMSG #esoteric :heh, analyzing the axioms < 1566324797 203893 :b_jonas!~x@catv-176-63-24-45.catv.broadband.hu PRIVMSG #esoteric :" ... I have a genuine problem with applying percentages to causes of death when we're dealing with a 100% mortality rate in the long run." => the mortality rates are usually given in deaths per year though, so they don't add up to 100%, they add up to about 1/70 year^-1 < 1566325466 482787 :b_jonas!~x@catv-176-63-24-45.catv.broadband.hu PRIVMSG #esoteric :fungot: is the weather warm at wherever you are too? I guess you're in a server room with nice heat conditioning. < 1566325468 25525 :fungot!~fungot@2a01:4b00:82bb:1341::2 PRIVMSG #esoteric :b_jonas: ( map ' ( 1 2 4 8 16... 2n, the difference between what?! what good is a kaiser roll without a little < 1566325515 460017 :b_jonas!~x@catv-176-63-24-45.catv.broadband.hu PRIVMSG #esoteric :today's the last hot day though < 1566325526 925488 :Sgeo_!~Sgeo@ool-18b98995.dyn.optonline.net QUIT :Ping timeout: 258 seconds < 1566325593 987229 :b_jonas!~x@catv-176-63-24-45.catv.broadband.hu PRIVMSG #esoteric :it will be less hot during the week < 1566325808 244435 :moony!moony@hellomouse/dev/moony NICK :nogoawayiciloo < 1566325818 731005 :nogoawayiciloo!moony@hellomouse/dev/moony NICK :moony < 1566326310 644109 :FreeFull!~freefull@defocus/sausage-lover JOIN :#esoteric < 1566326483 964356 :moony!moony@hellomouse/dev/moony QUIT :Quit: Bye! < 1566326500 566905 :asdfbot!potato@hellomouse/bin/notJeffbot QUIT :Ping timeout: 272 seconds < 1566326534 665708 :moony!moony@hellomouse/dev/moony JOIN :#esoteric < 1566326695 761456 :Sgeo!~Sgeo@ool-18b98995.dyn.optonline.net JOIN :#esoteric < 1566328527 552721 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :int-e: It doesn't? It seems to in the (reset (begin ...)) example on Wikipedia. < 1566328701 566251 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :int-e: In my variant, {} is the delimiter, and { a; b; c; } means { a; { b; c; } }, but I don't think regular shift/reset does that. < 1566329146 106122 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :I need to take higher math classes sooner, so i can understand some of the stuff talked about in here :P < 1566329501 856755 :b_jonas!~x@catv-176-63-24-45.catv.broadband.hu PRIVMSG #esoteric :moony: I'm not sure it would let you understand the crazy stuff on this channel, but I do support the idea of taking math classes < 1566329534 113715 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :b_jonas: fair. And I would take the classes anyways < 1566329539 977691 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :i like math < 1566329553 649119 :b_jonas!~x@catv-176-63-24-45.catv.broadband.hu PRIVMSG #esoteric :right < 1566329564 479830 :b_jonas!~x@catv-176-63-24-45.catv.broadband.hu PRIVMSG #esoteric :it's worth for things other than understanding #esoteric < 1566329583 809748 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Mathematical Anti Telharsic Harfatum Septomin < 1566329666 651510 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :it'd help a bit < 1566329666 711737 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :because things like set theory < 1566329897 659102 :b_jonas!~x@catv-176-63-24-45.catv.broadband.hu PRIVMSG #esoteric :why set theory in particular? < 1566330035 831099 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :let this = Goodstein's theorem in Do you like this? < 1566330703 243978 :Vorpal!~Vorpal@unaffiliated/vorpal QUIT :Ping timeout: 245 seconds < 1566331006 516809 :Vorpal!~Vorpal@c80-216-244-252.bredband.comhem.se JOIN :#esoteric < 1566331006 575814 :Vorpal!~Vorpal@c80-216-244-252.bredband.comhem.se QUIT :Changing host < 1566331006 575860 :Vorpal!~Vorpal@unaffiliated/vorpal JOIN :#esoteric < 1566331292 105339 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :whoa, https://bitbucket.org/blog/sunsetting-mercurial-support-in-bitbucket < 1566332841 287616 :Lord_of_Life_!~Lord@unaffiliated/lord-of-life/x-0885362 JOIN :#esoteric < 1566332901 465485 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 QUIT :Ping timeout: 244 seconds < 1566333004 755029 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :b_jonas: I see it a lot, and think it could be useful for software optimization, as well < 1566333016 525760 :Lord_of_Life_!~Lord@unaffiliated/lord-of-life/x-0885362 NICK :Lord_of_Life < 1566333129 824625 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :int-e: Oh, maybe you're right. I wish I could test this. < 1566334961 361370 :b_jonas!~x@catv-176-63-24-45.catv.broadband.hu QUIT :Quit: leaving < 1566336212 428075 :moony!moony@hellomouse/dev/moony NICK :asdfbot2 < 1566336481 694295 :asdfbot2!moony@hellomouse/dev/moony QUIT :Quit: Bye! < 1566336503 22915 :moony!moony@hellomouse/dev/moony JOIN :#esoteric < 1566337146 792861 :AnotherTest!~turingcom@d51A4B8E1.access.telenet.be QUIT :Ping timeout: 268 seconds < 1566337842 912752 :xkapastel!uid17782@gateway/web/irccloud.com/x-cvzwnvqkuuueqszj JOIN :#esoteric < 1566338185 4328 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1566338208 272984 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I'm currently trying to learn the theorem prover / SAT solver Z3 < 1566338296 316934 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Oh, I was trying to use Z3 the other day. < 1566338304 641446 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it produces some pretty esoteric answers sometimes < 1566338313 580933 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :SMT solvers are TG < 1566338325 482431 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :for example, if you ask it "find an integer x such that x * x > 3", it pretty consistently produces the answer -8 < 1566338336 593791 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :which is a valid answer to the question, but not one I would have thought of < 1566338423 73559 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :`! brachylog A×↙A>3∧Aw < 1566338426 626558 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :2 \ true. < 1566338439 34761 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Brachylog's answer to the same question is more expected < 1566338822 730267 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Hmm, when you link against a .o, does dead coffee elimination on functions you don't use typically happen? < 1566338828 511616 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Dead code elimination < 1566338852 302555 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It seems like that would put a bunch of restrictions on the .o < 1566338875 787014 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :shachaf: depends < 1566338882 895522 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Or maybe this is why people use .a instead of .o files, because it can only be done on the file level? < 1566338900 95118 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :for C/C++ using GCC/Clang, it only happens if you use -fLTO, which adds a lot of link-time data that can be used for dead code elimination, among other optimizations < 1566338925 522634 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Man. That sounds mega complicated. < 1566338950 163166 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I want to write my own linker for my own program but I still want to use C libraries. < 1566338954 444409 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :it's compilerspecific < 1566338957 236017 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :so < 1566338960 491868 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :yea.. < 1566338972 823973 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :But .o files are a standard format. < 1566338988 163375 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Probably some kind of .note.gnu.whatever section < 1566338994 403125 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :What's the situation on Windows? < 1566338995 380788 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :yea, prolly < 1566338999 106670 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :Windows? < 1566339008 637853 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :Windows is dominated by MSVC, which is closed source < 1566339010 838071 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :have fun < 1566339021 542447 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :lld links on Windows < 1566339031 773613 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :And the PE format is pretty well documented < 1566339121 168335 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :i mean < 1566339127 475920 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :i dunno < 1566339130 933566 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :i don't really use windows < 1566339239 854364 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Neither do I. < 1566339348 508203 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :shachaf: by default, you get no dead code elimination with .o but do get dead code elimination with .a (in the sense that an entire file in the archive won't be used if nothing in it is referenced) < 1566339415 36673 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the way LTO is implemented is normally a fairly good approximation to "let's just do all the actual work of the compile during the link" < 1566339432 896851 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :of course some of it is done during the compile step, but it moves a number of compile steps to happen at link-time instead < 1566339446 976438 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :this needs a very configurable linker so that you can ask it to call back into the compiler < 1566339604 934514 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Wow, that sounds horrible. < 1566339622 752670 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Why does it need to call back into the compiler? < 1566339733 636538 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :to do the rest of the optimisation < 1566339751 433557 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Is it things like cross-module inlining? < 1566339779 307188 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :That sounds so complicated. < 1566339881 944796 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's basically cross-module everything, a typical LTO is the equivalent of just dumping your entire program (and its libraries) into one file with #include and optimising that < 1566339945 376985 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Then why not just do whole-program compilation? < 1566339970 12158 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that's pretty much what's happening, I think < 1566339984 866407 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but -fLTO is stronger than -fwhole-program because it looks in the libraries for things to optimise in too < 1566340007 282122 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :also, you do get incremental builds to some extent < 1566340019 614747 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :because there is a lot of work the compiler has to do before it even starts to optimise the program < 1566340031 955809 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and many optimisations are done first on a single procedure before being extended to being interprocedural < 1566340034 235257 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :The problem is that I want to write my program in a non-gcc language. < 1566340052 832669 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :But I want to use some libraries written in C. < 1566340186 477639 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's probably best to not LTO against them, in that case < 1566340195 716913 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :unless your compiler and theirs have a common backend < 1566340208 324699 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I'm not aware of any LTOers which try to parse asm, although it's an interesting idea < 1566340225 724987 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :generally speaking optimisations want a higher-level source format anyway so that they know what UB they're allowed to exploit < 1566340226 669553 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Isn't the basic idea of a linker that it supports linking code written in multiple languages? < 1566340234 344262 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :That's the only reason you need a linker or object files. < 1566340263 923066 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :no, the main reason you need a linker is for updating separately compiled files so that they reference each other < 1566340272 837726 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that's useful even within a single language < 1566340288 816788 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :many linkers do support multiple source languages, typically by only working at the asm level anyway < 1566340296 156016 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :GCC and LLVM both use a intermediate language for LTO < 1566340303 754552 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :LLVM uses it's IR, as expected < 1566340306 29736 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but I was once paid to write a linker, and that linker was specific to a single language < 1566340308 329741 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :GCC uses GIMPLE < 1566340341 169687 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :its main purpose was to generate glue code to allow different compilation units to call functions defined in each other < 1566340377 564178 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :But splitting a program into multiple translation units is an implementation detail of a compiler. < 1566340383 388840 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :You could just do whole program compilation. < 1566340477 432030 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the main reason not to is because the separate translation units make incremental builds much easier to implement < 1566340504 247454 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(obviously, implementing incremental builds with whole-program compilation isn't impossible, but building a file at a time is a really easy way to do them and it's what's normally done in practice) < 1566340517 187673 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I'm not sure how much incremental builds matter. < 1566340533 672040 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :…do you never work on large programs? < 1566340559 668668 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :even on something like NetHack, which isn't even large, there are at least tens of seconds difference between an incremental build and a full rebuild < 1566340576 77681 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I mean that I find the argument that compilers should be way faster and then incrementality doesn't matter so much pretty compelling. < 1566340594 646353 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Hmm, I bet NetHack would compile faster if it was in one translation unit. < 1566340615 3194 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it would, there are a lot of headers that are recursively included in everything < 1566340617 47683 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :We have [REDACTED] lines of code in [REDACTED], and incremental builds are pretty [REDACTED] for it. < 1566340648 646990 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Certainly [REDACTED] benefits from incremental builds. < 1566340671 574274 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :But it's probably written in C++ or something. < 1566340703 705407 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I sort-of would prefer to go the other way, I think compilers should consider spending more effort than they do a) proving the input program correct and b) optimising it < 1566340749 838815 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Well, a very fast debug-only build should be available. < 1566340821 222248 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :At one point Chromium started combining its translation units into larger chunks (I think ~30 files each maybe?) to make compilation faster. < 1566340848 245674 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :The trouble with (some) C++ code is that all the code is in headers, so each translation includes the entire program. < 1566340959 283322 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Heh, the Chrome build instructions start with: "Are you a Google employee? See go/building-chrome instead." < 1566341014 850472 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I mean, the Chromium build instructions. < 1566341068 584411 :ais523!~ais523@unaffiliated/ais523 QUIT :Remote host closed the connection < 1566341141 205275 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1566341151 247076 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I think they've been switching build systems every now and then. I guess it's still GN+Ninja though. < 1566341165 449771 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :But it definitely was GYP before, and I think something else before that. < 1566341302 620873 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I'm trying to build NetHack now to compare build times. < 1566341324 603843 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :But the build instructions are convoluted so I still haven't figured it out. < 1566341372 977795 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :shachaf: for NetHack 3.4.3, try this patch: https://bilious.alt.org/?452 < 1566341393 721543 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it automates all the manual steps of the build < 1566341410 987937 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I'm trying 3.6.2 < 1566341429 43153 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that has a different build system < 1566341440 867829 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but it's a bit easier to use than 3.4.3's once you have an appropriate hints file < 1566341448 315642 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :ais523: Hmm, instead of application/octet-stream you should serve your .patch fail as text/plain so it opens in browsers. < 1566341467 587382 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that isn't my website < 1566341469 770027 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :just my patch < 1566341495 703755 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Ah. < 1566341512 783897 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Oh, I was only looking for executable files in the hints directory, with tab completion. So I thought there was only one for Mac OS. < 1566341553 189647 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the one for Linux mostly works apart from the directories I think < 1566341567 315782 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oh, hmm, apparently bilious is downloading it /from/ my website < 1566341598 76334 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :text/plain is the wrong MIME type for a diff, though (and there are security reasons not to use text/plain for /anything/ online, blame Microsoft) < 1566341619 232578 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :ais523: what's MS do < 1566341658 7693 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :moony: some versions of IE interpret text/plain as text/html if they think the file looks sufficiently HTMLlish < 1566341667 827547 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :this allows XSS attacks against plaintext files < 1566341669 870174 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :pffffft < 1566341688 885269 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(last time this conversation came up, someone successfully XSS-attacked oerjan via a plaintext log file) < 1566341699 217383 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(so it's not just a theoretical issue) < 1566341703 788746 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :log for #esoteric, that is < 1566341830 488109 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :There were some workarounds though. Like, X-Content-Type-Options=nosniff on IE >= 8.0, which is... well, it's something. < 1566341862 802008 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Well, I really don't like application/octet-stream because no browser shows a preview option. < 1566341864 569356 :FreeFull!~freefull@defocus/sausage-lover QUIT : < 1566341871 39123 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :note to self: put demo for this madness on hellomouse.net < 1566341874 575626 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the workaround we were always told to use on Wikipedia was to serve as text/css < 1566341875 703347 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :This is really a problem with browsers, but all browsers have this behavior. < 1566341899 455194 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :fwiw, when I followed the link it opened in my text editor, with syntax highlighting < 1566341904 928801 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :ais523: I think that works on older versions of IE than just the header. < 1566341912 371917 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but I suspect that's a consequence of some configuration I did in the past < 1566341941 296800 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :"on Wikipedia" here = to prevent people XSS-attacking Wikipedia itself < 1566341948 552699 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I'm sending "Content-Type: text/plain" + "X-Content-Type-Options: nosniff" from hack.esolangs.org/tmp/... URLs. < 1566341979 841069 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I guess that should probably be served from a different second-level domain than the wiki, actually. < 1566341996 25117 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :But I don't want to pay for esolangsusercontent.com or some such. < 1566342067 971477 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :are the wiki cookies marked HTTP-only? < 1566342077 587518 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that would probably be enough as far as mitigations go < 1566342102 843849 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I'd test this but I'm not particularly inclined to fire up IE on the live internet < 1566342115 835864 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :especially as the version of IE that I have installed is IE6 < 1566342155 42752 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I think at least some of them are. < 1566342166 304229 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Man, NetHack has all sorts of problems. < 1566342174 762451 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :"Set-Cookie: esolang_wiki_session=[redacted]; path=/; secure; HttpOnly" < 1566342175 29068 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Like multiple incompatible definitions of "struct monst". < 1566342284 795977 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that's a new one for me < 1566342304 840446 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Putting everything into one translation unit will show all sorts of odd things. < 1566342321 245052 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Some of them are sort of reasonable, like #defines for common words without #undefs. < 1566342338 347766 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oh, I see < 1566342349 464882 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :objects.h gets compiled twice, the first time uses a dummy definition for struct monst < 1566342353 910382 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :*objects.c < 1566342463 844808 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :objects.c is compiled twice? Oh no. < 1566342504 612402 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :several of the files that are compiled are generated from other compiled files at build time < 1566342806 159726 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Quit: Leaving < 1566343251 361319 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :what's the name for the version of boolean satisfaction where you can put as many forall quantifiers as you like at the start, but don't get other quantifiers or quantifiers anywhere else? < 1566343266 633602 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :e.g. "find x, y, such that forall a, b, c, f(a,b,c,x,y) is true" < 1566343367 675634 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Someone told me the name of that recently but I've forgotten it. < 1566343719 561267 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Without -O, NetHack builds in <5 seconds on my machine. > 1566343722 567900 PRIVMSG #esoteric :14[[07Blackspace14]]4 N10 02https://esolangs.org/w/index.php?oldid=65581 5* 03A 5* (+219) 10Created page with "[[Blackspace]] is an [[esoteric programming language]] completely based on the old-fashioned control characters. Currently this page is a placeholder. [[Category:2019]] Cat..." < 1566343722 649354 :Sgeo!~Sgeo@ool-18b98995.dyn.optonline.net QUIT :Read error: Connection reset by peer < 1566343745 926367 :Sgeo!~Sgeo@ool-18b98995.dyn.optonline.net JOIN :#esoteric > 1566343759 848877 PRIVMSG #esoteric :14[[07Husk14]]4 M10 02https://esolangs.org/w/index.php?diff=65582&oldid=65577 5* 03A 5* (+30) 10 < 1566343992 688281 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :(This is unrelated to the one-translation-unit thing, which isn't working very well in this code base.) < 1566344030 571257 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Also a big problem is that you can only get parallelization in most compilers by breaking up your code into multiple translation units. < 1566344325 311693 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I thought that but forgot to say it in-channel < 1566344436 835293 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Me too. < 1566344860 63915 :atslash!~atslash@static.231.107.9.5.clients.your-server.de QUIT :Quit: This computer has gone to sleep < 1566344994 273712 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Is -O even relevant to a program like NetHack? < 1566345124 299671 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :yes, we need to do optimisation rounds every now and then < 1566345158 401535 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :vanilla NetHack was designed for very old computers where it ran very slowly, so a lot of optimisation was needed for that and means that we can afford to be sloppy when running old parts of the code on modern computers < 1566345185 761995 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but NetHack derivatives like NH4 take advantage of the speed of modern computers to do things like continuously saving the game (the save code is pretty slow) < 1566345211 591960 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :also, reading code compiled at -O0 hurts to look at < 1566345230 140124 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it often doesn't even really use registers, everything gets loaded from memory for one instruction then put right back into memory < 1566345271 2214 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :yes, -O0 bad < 1566345282 593222 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :also < 1566345298 327569 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :there can be programs that behave differently because of how unoptimized -O0 is < 1566345310 989105 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :and languages like Rust kinda depend on -O1 or better to even make good code < 1566345320 274394 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :But if you're recompiling for development (which is the case where you want incremental builds) you presumably don't care about that so much. < 1566345333 284327 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Yes, Rust has certainly taken that part of the C++ philosophy. < 1566345385 867566 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :i.e. take Rust futures < 1566345388 986565 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :if they weren't optimized < 1566345396 625338 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :a single Future object could reach 100s of KBs large < 1566345399 959795 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :shachaf: I consider the generation of suboptimal asm to be a bug < 1566345406 386448 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :^ < 1566345416 439868 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :in either the compilier or the source code, but the source code is normally easier to fix < 1566345428 612007 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :But generating optimal assembly is uncomputable. < 1566345430 660284 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I'll write a piece of the program, then look at the generated asm to see if it's fast enough or if I need to do better < 1566345444 931370 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :shachaf: depends on what the program is doing < 1566345462 710580 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :in many cases you just have a finite-state machine, optimising that is very computable < 1566345470 321943 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :I think part of the difficulty in generating optimal asm is, yknow, x86 itself < 1566345470 609195 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Something like a computer game, even NetHack, is more like a real-time system. < 1566345477 427543 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :why do you think I'm learning Z3? :-D < 1566345494 353659 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It's a bug if it's too slow but if you don't miss your deadlines it's fine. < 1566345505 375386 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :ais523: compiler for a FSM language that generates nearly optimal ASM when < 1566345506 859847 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :shachaf: I actually really disagree with this < 1566345518 299731 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I am upset at all the electricity that's being wasted in parts of the cycles that could be idle < 1566345533 639318 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :moony: I'm really seriously considering it atm < 1566345547 236925 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :i mean, that'd be amazing for some problems < 1566345559 214954 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :ais523: I bet more cycles are being used to display NetHack in a GUI terminal than on computing NetHack. < 1566345565 420404 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :actually, Z3 is sufficiently high level that I think you could express it in only a few hundred lines or so of Z3 + a program wrapping it < 1566345592 599905 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :whether Z3 could actually run the resulting program with any sort of efficiency would be the real question < 1566345594 988835 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :ais523: good luck handling the insanity that is per-processor behavior and SSE