> 1591661816 264665 PRIVMSG #esoteric :14[[07Human Resource Code14]]4 M10 02https://esolangs.org/w/index.php?diff=73408&oldid=68416 5* 03PythonshellDebugwindow 5* (+97) 10 < 1591662879 666989 :adu!~arobbins@c-73-129-154-238.hsd1.md.comcast.net QUIT :Quit: adu < 1591662908 871707 :imode!~linear@unaffiliated/imode JOIN :#esoteric < 1591662976 678382 :adu!~arobbins@c-73-129-154-238.hsd1.md.comcast.net JOIN :#esoteric < 1591664524 710634 :adu!~arobbins@c-73-129-154-238.hsd1.md.comcast.net QUIT :Ping timeout: 258 seconds > 1591664857 447130 PRIVMSG #esoteric :14[[07Special:Log/newusers14]]4 create10 02 5* 03Bigyihsuan 5* 10New user account > 1591665016 108424 PRIVMSG #esoteric :14[[07Esolang:Introduce yourself14]]4 10 02https://esolangs.org/w/index.php?diff=73409&oldid=73356 5* 03Bigyihsuan 5* (+313) 10introduce bigyihsuan < 1591665420 957031 :adu!~arobbins@c-73-129-154-238.hsd1.md.comcast.net JOIN :#esoteric < 1591667284 692342 :sprocklem!~sprocklem@unaffiliated/sprocklem QUIT :Quit: brb < 1591667318 936251 :sprocklem!~sprocklem@unaffiliated/sprocklem JOIN :#esoteric < 1591668317 36693 :sprocklem!~sprocklem@unaffiliated/sprocklem QUIT :Quit: brb < 1591668343 869543 :sprocklem!~sprocklem@unaffiliated/sprocklem JOIN :#esoteric < 1591673890 810958 :Sgeo!~Sgeo@ool-18b982ad.dyn.optonline.net PRIVMSG #esoteric :Reading http://exple.tive.org/blarg/2013/10/22/citation-needed/ < 1591673904 474728 :Sgeo!~Sgeo@ool-18b982ad.dyn.optonline.net PRIVMSG #esoteric :(About why most languages start indexing at 0) < 1591674321 667221 :Sgeo!~Sgeo@ool-18b982ad.dyn.optonline.net PRIVMSG #esoteric :https://python-history.blogspot.com/2013/10/why-python-uses-0-based-indexing.html < 1591674400 651720 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :I think zero based indexing has many advantages, although sometimes it is useful to specify a range that starts at whatever number you want (which is possible in BASIC, and I think also in Pascal). < 1591674776 348107 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :(BASIC does allow negative numbers in the range too, which is also useful, I think. But I think that you do not need fractions in array indices.) < 1591674821 312811 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :zzo38: Do you like Macintosh Pascal? < 1591674906 876324 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :I don't know; I didn't use Macintosh Pascal; I only used the Pascal on DOS (and even then, only on a computer with Linux, not DOS). < 1591674979 856590 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Someone mentioned that it has a feature where nested functions can return out of their enclosing functions. < 1591674982 820403 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Do you like this? < 1591675037 414795 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :Yes, that makes sense (if it can be suitably implemented). < 1591675782 569357 :craigo!~craigo@144.136.206.168 JOIN :#esoteric < 1591676096 282787 :MDead!~MDude@74.5.130.30 JOIN :#esoteric < 1591676237 958774 :rain1!~debian@unaffiliated/rain1 JOIN :#esoteric < 1591676274 987418 :MDude!~MDude@74.5.130.30 QUIT :Ping timeout: 256 seconds < 1591676281 402439 :MDead!~MDude@74.5.130.30 NICK :MDude > 1591677263 746167 PRIVMSG #esoteric :14[[07Heebolang14]]4 10 02https://esolangs.org/w/index.php?diff=73410&oldid=73407 5* 03Polybagel 5* (+1191) 10 > 1591677336 822871 PRIVMSG #esoteric :14[[07Heebolang14]]4 10 02https://esolangs.org/w/index.php?diff=73411&oldid=73410 5* 03Polybagel 5* (+17) 10 > 1591677641 396090 PRIVMSG #esoteric :14[[07Heebolang14]]4 M10 02https://esolangs.org/w/index.php?diff=73412&oldid=73411 5* 03Polybagel 5* (+2) 10 > 1591677801 687352 PRIVMSG #esoteric :14[[07Heebolang14]]4 10 02https://esolangs.org/w/index.php?diff=73413&oldid=73412 5* 03Polybagel 5* (+251) 10 < 1591678288 997324 :pikhq!sid394595@gateway/web/irccloud.com/x-gbeubasxzxfppiwt PRIVMSG #esoteric :shachaf: Cute < 1591678727 470617 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :Some things are missing from the Computer Modern fonts, such as thorn letter, blackboard bold, and a few others < 1591681069 213130 :CylonT800!~vamsikris@2409:4070:258c:5f8:d97f:24c4:184:e0b7 JOIN :#esoteric < 1591683046 483487 :adu!~arobbins@c-73-129-154-238.hsd1.md.comcast.net QUIT :Quit: adu < 1591684249 869412 :imode!~linear@unaffiliated/imode QUIT :Ping timeout: 264 seconds < 1591684453 204784 :CylonT800!~vamsikris@2409:4070:258c:5f8:d97f:24c4:184:e0b7 QUIT :Quit: Leaving. < 1591685241 442911 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :METAFONT has the feature that you can put if blocks and for loops anywhere, including inside of expressions, such as: (1 for n=1 upto y: *x endfor) < 1591686508 831300 :rain1!~debian@unaffiliated/rain1 PRIVMSG #esoteric :nice feature, scheme has that too < 1591688501 394599 :TheLie!~TheLie@2a02:8106:215:3300:844d:dece:9bd4:fbb2 JOIN :#esoteric > 1591689803 369722 PRIVMSG #esoteric :14[[07Fading Rainbow14]]4 10 02https://esolangs.org/w/index.php?diff=73414&oldid=73370 5* 03Ais523 5* (+384) 10this is TC (via compiling 01-2C into it) < 1591690559 960866 :cpressey!~cpressey@88.144.69.212 JOIN :#esoteric < 1591690970 564738 :TheLie!~TheLie@2a02:8106:215:3300:844d:dece:9bd4:fbb2 QUIT :Remote host closed the connection < 1591691131 512450 :LKoen!~LKoen___@lstlambert-657-1-123-43.w92-154.abo.wanadoo.fr JOIN :#esoteric < 1591691601 491667 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1591692072 408254 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Well, you know, some dialects of C do too. < 1591692074 641572 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :`cc #include \n int main(void) { printf("%d", ({ int s = 0; for (int i = 1; i <= 5; i++) s += i; s; })); } < 1591692075 900830 :HackEso!~h@unaffiliated/fizzie/bot/hackeso PRIVMSG #esoteric :15 < 1591692627 59275 :myname!~myname@ks300980.kimsufi.com PRIVMSG #esoteric :so for _IS_ an expression but cannot work with statements in its condition? < 1591692695 903865 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :If you mean the C example, that's just a GCC extension. It works anywhere an expression does. < 1591692717 584992 :myname!~myname@ks300980.kimsufi.com PRIVMSG #esoteric :ok < 1591692853 714781 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :https://gcc.gnu.org/onlinedocs/gcc/Statement-Exprs.html for the record. < 1591694390 197363 :Sgeo!~Sgeo@ool-18b982ad.dyn.optonline.net QUIT :Read error: Connection reset by peer < 1591699093 968753 :cpressey!~cpressey@88.144.69.212 QUIT :Ping timeout: 246 seconds < 1591699159 995637 :cpressey!~cpressey@88.144.71.51 JOIN :#esoteric < 1591701071 483985 :sftp!~sftp@unaffiliated/sftp QUIT :Ping timeout: 260 seconds < 1591701100 120003 :sftp!~sftp@unaffiliated/sftp JOIN :#esoteric < 1591701120 398497 :Lord_of_Life_!~Lord@unaffiliated/lord-of-life/x-0885362 JOIN :#esoteric < 1591701313 912830 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 QUIT :Ping timeout: 264 seconds < 1591701314 663953 :Lord_of_Life_!~Lord@unaffiliated/lord-of-life/x-0885362 NICK :Lord_of_Life < 1591701366 987505 :int-e!~noone@int-e.eu PRIVMSG #esoteric :So what's this really... a basic block whose final statement is an expression is an expression itself... < 1591701416 998252 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(will check the link for proper terminology) < 1591702832 456831 :TheLie!~TheLie@2a02:8106:215:3300:844d:dece:9bd4:fbb2 JOIN :#esoteric < 1591702908 500804 :rain1!~debian@unaffiliated/rain1 PRIVMSG #esoteric :https://store.steampowered.com/app/917900/Monster_Logic/ < 1591702917 802843 :rain1!~debian@unaffiliated/rain1 PRIVMSG #esoteric : Based on esoteric languages Befunge and Trefunge < 1591702919 6614 :rain1!~debian@unaffiliated/rain1 PRIVMSG #esoteric :42 unique levels < 1591702926 971774 :APic!apic@apic.name QUIT :Ping timeout: 256 seconds < 1591703067 386892 :APic!apic@apic.name JOIN :#esoteric < 1591703072 636760 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 QUIT :Remote host closed the connection < 1591703156 532520 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 JOIN :#esoteric < 1591703756 981274 :arseniiv_!~arseniiv@136.169.206.76 JOIN :#esoteric < 1591703848 65186 :cpressey!~cpressey@88.144.71.51 QUIT :Quit: WeeChat 1.9.1 < 1591704627 317359 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :int-e: no, you have to parenthisize it and then it's an exception, but only in gcc < 1591704759 607630 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :And clang. < 1591705178 298303 :int-e!~noone@int-e.eu PRIVMSG #esoteric :b_jonas: ({ triggers my brain differently actually. ({ 1,2,3 }) constructs a 3 element array in LPC (and presumably Pike). < 1591705433 930667 :adu!~arobbins@c-73-129-154-238.hsd1.md.comcast.net JOIN :#esoteric > 1591705792 734204 PRIVMSG #esoteric :14[[07BrainSoothe14]]4 N10 02https://esolangs.org/w/index.php?oldid=73415 5* 03Arseniiv 5* (+1776) 10this is bs < 1591705869 114801 :arseniiv_!~arseniiv@136.169.206.76 PRIVMSG #esoteric :hi < 1591705872 647942 :arseniiv_!~arseniiv@136.169.206.76 NICK :arseniiv < 1591705972 279139 :int-e!~noone@int-e.eu PRIVMSG #esoteric :arseniiv: BFF = brainfuck forever < 1591705977 673835 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :at last I’m enacted my revenge and in a not-so-unclassy way. Though I’m not sure at all that is TC < 1591705981 383359 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :int-e: rofl < 1591706492 702825 :TheLie!~TheLie@2a02:8106:215:3300:844d:dece:9bd4:fbb2 QUIT :Remote host closed the connection < 1591707120 680557 :izabera!izabera@unaffiliated/izabera QUIT :Killed (Sigyn (Stay safe off irc)) < 1591707452 794548 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :int-e: in C the syntax for that is (sometype){constructor elements} < 1591707471 732307 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :you can't parenthisize the braces (except in C++, but even then you need a type before it) < 1591707490 748413 :izabera!izabera@unaffiliated/izabera JOIN :#esoteric > 1591707677 106973 PRIVMSG #esoteric :14[[07BrainSoothe14]]4 M10 02https://esolangs.org/w/index.php?diff=73416&oldid=73415 5* 03Int-e 5* (+3) 10why did I read this > 1591707738 26288 PRIVMSG #esoteric :14[[07Carriage/Carriage.hs14]]4 M10 02https://esolangs.org/w/index.php?diff=73417&oldid=34757 5* 03PythonshellDebugwindow 5* (+29) 10clearer linkback > 1591707752 827354 PRIVMSG #esoteric :14[[07Carriage/Carriage.hs14]]4 M10 02https://esolangs.org/w/index.php?diff=73418&oldid=73417 5* 03PythonshellDebugwindow 5* (+0) 10 > 1591707777 938031 PRIVMSG #esoteric :14[[07Carriage/Carriage.hs14]]4 M10 02https://esolangs.org/w/index.php?diff=73419&oldid=73418 5* 03PythonshellDebugwindow 5* (+0) 10 > 1591707895 604989 PRIVMSG #esoteric :14[[07BrainSoothe14]]4 10 02https://esolangs.org/w/index.php?diff=73420&oldid=73416 5* 03Arseniiv 5* (+830) 10 < 1591707933 887290 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :int-e: thanks though the merge conflict made me re-copy some things but that’s okay < 1591708099 518174 :cpressey!~cpressey@88.144.71.51 JOIN :#esoteric < 1591708129 229757 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :oh wait I was to edit “Define x mod 0 := x” to “… = …” to not resemble an assignment but I edited something else it seems > 1591708129 875256 PRIVMSG #esoteric :14[[07Carriage/carriage.ml14]]4 M10 02https://esolangs.org/w/index.php?diff=73421&oldid=34759 5* 03PythonshellDebugwindow 5* (+52) 10 > 1591708159 436488 PRIVMSG #esoteric :14[[07Carriage/carriage.ml14]]4 M10 02https://esolangs.org/w/index.php?diff=73422&oldid=73421 5* 03PythonshellDebugwindow 5* (-11) 10 > 1591708260 451673 PRIVMSG #esoteric :14[[07Carriage/Carriage.hs14]]4 M10 02https://esolangs.org/w/index.php?diff=73423&oldid=73419 5* 03PythonshellDebugwindow 5* (+56) 10see also > 1591708309 231785 PRIVMSG #esoteric :14[[07BrainSoothe14]]4 M10 02https://esolangs.org/w/index.php?diff=73424&oldid=73420 5* 03Arseniiv 5* (+8) 10no more no more sweet music < 1591708546 512383 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :ah, now I see why my changes except pseudocode insertion didn’t apply: I used the wrong tab > 1591708616 528429 PRIVMSG #esoteric :14[[07BrainSoothe14]]4 M10 02https://esolangs.org/w/index.php?diff=73425&oldid=73424 5* 03PythonshellDebugwindow 5* (+13) 10/* Pseudocode */ typing < 1591708892 894395 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :hey what do you think you are doing < 1591709018 277974 :int-e!~noone@int-e.eu PRIVMSG #esoteric :what's with the changed return statement < 1591709044 134558 :int-e!~noone@int-e.eu PRIVMSG #esoteric :The rest looks like it might actually make the code work? I don't know. < 1591709412 595206 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :yes though Sequence was there for a reason < 1591709417 218542 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :I’ll editing that < 1591709435 725565 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :also I found out I ended up with a language which outputs always 0 < 1591709734 420211 :catern!~catern@catern.com PRIVMSG #esoteric :shachaf: I guess that neato is in regard to that link I sent you? > 1591709857 880154 PRIVMSG #esoteric :14[[07BrainSoothe14]]4 10 02https://esolangs.org/w/index.php?diff=73426&oldid=73425 5* 03Arseniiv 5* (+56) 10I used `Sequence` for a reason, and the output should be, well, outputted < 1591710414 606848 :cpressey!~cpressey@88.144.71.51 PRIVMSG #esoteric :"There should be no literals at different positions which denote the same number." -- does that mean 'assert len(instructions) == len(set(instructions))' ? < 1591710810 633340 :cpressey!~cpressey@88.144.71.51 PRIVMSG #esoteric :arseniiv: ^^^ ? < 1591710853 91065 :int-e!~noone@int-e.eu PRIVMSG #esoteric :arseniiv: yeah that's not TC < 1591710880 980909 :int-e!~noone@int-e.eu PRIVMSG #esoteric :hmm < 1591710882 647277 :cpressey!~cpressey@88.144.71.51 PRIVMSG #esoteric :(I'm pretty sure it does, I'm mainly wondering if that line should be in the program to emphasise that part of the definition formally) < 1591710976 963105 :int-e!~noone@int-e.eu PRIVMSG #esoteric :arseniiv: At least as far as I can see. The (mod 0) instruction is just a nop, and we can always reduce x modulo all the lcm of all the other numbers. < 1591710995 549224 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :cpressey: yeah! < 1591711093 923978 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :cpressey: yeah it would be good. At first I added assertions about the length and nonnegativity but then scraped it because I forgot one can assert uniqueness as simple as you shown > 1591711096 378817 PRIVMSG #esoteric :14[[07BrainSoothe14]]4 M10 02https://esolangs.org/w/index.php?diff=73427&oldid=73426 5* 03PythonshellDebugwindow 5* (+34) 10/* Pseudocode */ Sequence is an import < 1591711156 241466 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :I don’t even want to see what they’ve done this time < 1591711180 482010 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :I should’ve made that page my user’s subpage > 1591711219 615471 PRIVMSG #esoteric :14[[07? $51=14]]4 M10 02https://esolangs.org/w/index.php?diff=73428&oldid=65097 5* 03PythonshellDebugwindow 5* (-144) 10rm Example rows < 1591711270 748529 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :int-e: seems so. For some reason I haven’t thought a simple lcm would kill it all :D > 1591711402 762414 PRIVMSG #esoteric :14[[07Emoji-gramming14]]4 M10 02https://esolangs.org/w/index.php?diff=73429&oldid=55194 5* 03PythonshellDebugwindow 5* (+6) 10bold title > 1591711471 222476 PRIVMSG #esoteric :14[[07~English14]]4 M10 02https://esolangs.org/w/index.php?diff=73430&oldid=65546 5* 03PythonshellDebugwindow 5* (+7) 10 < 1591711474 219320 :int-e!~noone@int-e.eu PRIVMSG #esoteric :arseniiv: Now if (mod 0) actually resulted in an observable test for 0... > 1591711486 431494 PRIVMSG #esoteric :14[[07~English14]]4 M10 02https://esolangs.org/w/index.php?diff=73431&oldid=73430 5* 03PythonshellDebugwindow 5* (+27) 10/* External resources */ cat < 1591711501 861137 :int-e!~noone@int-e.eu PRIVMSG #esoteric :then I don't really know what would happen. < 1591711537 174412 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Probably still just a single counter Minsky machine. < 1591711792 171500 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :yeah I didn’t thought that (mod 0) would end up a complete noop < 1591711917 34281 :int-e!~noone@int-e.eu PRIVMSG #esoteric :arseniiv: you can still pull a George Lucas and replace the language by something different, I mean better :P > 1591711917 558366 PRIVMSG #esoteric :14[[07Human's mind have sex with someone14]]4 M10 02https://esolangs.org/w/index.php?diff=73432&oldid=66508 5* 03PythonshellDebugwindow 5* (+190) 10 < 1591711953 501446 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :int-e: :D < 1591711975 619908 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :though I’d wanted it to be of a similar simplicity < 1591712091 26112 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :int-e: single-counter Minsky machine? aren't those basically just finite state machines? > 1591712262 353547 PRIVMSG #esoteric :14[[07BrainSoothe14]]4 M10 02https://esolangs.org/w/index.php?diff=73433&oldid=73427 5* 03Arseniiv 5* (+117) 10suggestions from cpressey and int-e and a *critical* edit > 1591712290 312970 PRIVMSG #esoteric :14[[07User talk:PythonshellDebugwindow14]]4 10 02https://esolangs.org/w/index.php?diff=73434&oldid=73107 5* 03Arseniiv 5* (+596) 10/* On additions to BrainSoothe */ new section < 1591714120 818129 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :I know that in GNU C you can use statements inside of expressions, although in METAFONT it is more like you can even put a for loop where a macro is expected, but unlike C macros you can use values of variables and that stuff. < 1591714194 986295 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :See the example I had given; something like that (which will result in something like "1*x*x*x*x", and computes x to the power of y) won't work in C. > 1591714703 508120 PRIVMSG #esoteric :14[[07BrainSoothe14]]4 M10 02https://esolangs.org/w/index.php?diff=73435&oldid=73433 5* 03PythonshellDebugwindow 5* (+48) 10/* Commentary */ cats > 1591715550 245390 PRIVMSG #esoteric :14[[07Dilemma14]]4 M10 02https://esolangs.org/w/index.php?diff=73436&oldid=68266 5* 03PythonshellDebugwindow 5* (+114) 10cats < 1591715605 955344 :cpressey!~cpressey@88.144.71.51 PRIVMSG #esoteric :arseniiv: Regarding my silly "16 quantifiers" idea, handling empty sets sensibly is the strongest reason (for me) for having only two quantifiers. It's intuitive to me that forall over an empty set is trivially true and exists over an empty set is trivially false, regardless of the predicate. < 1591715722 947802 :cpressey!~cpressey@88.144.71.51 PRIVMSG #esoteric :You could, for other quantifiers, stipulate the sets must not be empty, but then it's probably simpler to just rephrase those in terms of forall or exists, instead of pretending they're quantifiers themselves. < 1591715729 934818 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :cpressey: yeah, an operation should have a neutral element, that time I added it in the requirements too. But XOR has it, so it’s not trivially excluded… < 1591716148 399343 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :though one person said to me that ∀ and ∃ are left and right (or right and left?..) adjoin to substitution or something like that, so they should be special < 1591716167 307594 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :s/adjoin/adjoint < 1591716175 934379 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :as functors > 1591716228 651333 PRIVMSG #esoteric :14[[07User talk:PythonshellDebugwindow14]]4 10 02https://esolangs.org/w/index.php?diff=73437&oldid=73434 5* 03OsmineYT 5* (+157) 10/* Hello (idk why) */ new section < 1591716272 498917 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :(hm hopefully that means endofunctors which decorate a formula with ∀x or ∃x, and map morphisms in some way. I don’t even remember what morphisms there should be between formulas, implications?..) < 1591716286 633523 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :cpressey: oh, as for that, the main problem is not empty sets (you can just choose the result for that), it's that (1) most binary operations aren't associative, some don't make sense when you try to fold an infinite sequence of inputs, most either don't make sense or are trivial when you try to fold more than countable infinite sequence of inputs, and most aren't commutative. < 1591716309 121574 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :cpressey: so if you want a binary output, basically all you get are the foreach, exists, and the two constant operations < 1591716502 167602 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :in general you can generalize a maximum fold to infinitely large inputs as the supremum, or you can take the sum of countably infinite inputs in two ways (limit of sum of prefixes for ordered sequences; the special case sum of absolute convergent unordered sequences, where it's good to know that if every element is nonegative then your sequence is guaranteed to be absolute convergent), < 1591716573 37921 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :but then if you try to take the sum of more than countably infinite nonnegative real numbers, you just find that it is always infinite unless all but countably infinite of the terms are zero, so you can't get too much of a meaningful generalization over countable set of inputs. < 1591716601 398415 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric : some don't make sense when you try to fold an infinite sequence of inputs => oh, right, I think we both there forgot about infinite domains < 1591716664 595765 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :back to boolean functions, you also get four more as folds, unlike what I said, namely foreach on an ordered sequence that negates the first input, and exists on an ordered sequence that negates the last input, plus two just return the first input or its negation < 1591716682 173182 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :arseniiv: I don't think cpressey did, the few days ago when he mentioned this < 1591716755 542042 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :b_jonas: I don’t insist :) < 1591716796 529555 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :cpressey: xor and xnor are associative, but they don't work for an infinite set of inputs, except you can take the xor of infinitely many inputs if all but finitely many of them are zero, < 1591716815 276823 :cpressey!~cpressey@88.144.71.51 QUIT :Quit: WeeChat 1.9.1 < 1591716852 523388 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :but then, if you are interested only in sequences with all but finitely many elements zero, that's fine, filter out the zeros and you can do a lot of things with it < 1591716872 297456 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :similarly xnor with all but finitely many elements nonzero < 1591716901 355306 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :(obviously all of this is with the modern convention that zero means false) < 1591716961 558996 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :. o O ( all but finitely many elements nonfalse :) < 1591717309 812287 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :arseniiv: well, there are two problems here. either 0=false or 0=true would make sense as a representation, perhaps neiter is better than the other, so we had to pick one, and eventually 0=false became standard, except in the posix shell for historical reasons. < 1591717382 834753 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :hm hm but were’n there a couple of mathematical reasons to treat 0 = false? < 1591717403 607166 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :the other problem is that once you pick 0=false, you can pick different representations for true, and which one is convenient can differ on what you're doing, so you can even use more than one representation in your program: 1, -1, min of your signed type, any nonzero value, or even the version where any nonnegative is positive and any negative is true < 1591717440 4925 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :plus you can choose different sizes of course, like 1 bit (in which case all of these are the same), 8 bit, 16 bit, 32 bit, 64 bit, any other size you normally use for integers or whatever < 1591717450 586239 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :ah I thought you used Z₂ < 1591717476 558052 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :but the problem is that 1=true vs -1=true can be confusing, because suddenly min isn't always false and max isn't always true < 1591717525 426423 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :so whenever you want to use a numeric value, outside of a specific language or library that has a convention (like C or BASIC or fortran), you just have to explicitly say if it matters < 1591717608 413657 :Sgeo!~Sgeo@ool-18b982ad.dyn.optonline.net JOIN :#esoteric < 1591717968 788353 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :also the defaults can differ between representation and notation. in C these are the same, because the built-in comparison operators just return 0 or 1, that's all. but C++, in one of its more stupid non-C-compatible changes, changes that so that the comparison operators return bool true or false, < 1591717997 167032 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :which behave in high level language as 1 and 0 (that's how they cast to any type of integer or float), but can be represented in any way. < 1591718042 383999 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :in the x86 abis, they're represented as 8-byte integers with value 0=false 1=true, probably because of the annoying old 386 SETcc instructions that chose that representations and that we're now stuck with, < 1591718112 885966 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :but I sort of think that ideally, if you're not restricted to x86 or MMIX or any current architecture, 0=false -1=true would be the best representation, because that's easier with bitwise operations; but 0=false 1=true would be the best high level meaning (in the C++ sense), because that causes less confusion with signed and unsigned integer types < 1591718216 588791 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :and all the SSE and later x86 instructions know this, so the comparisons represent true as -1, and the instructions that takes boolean input from bytes (or longer words) check the sign bit only < 1591718377 618391 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :Some programming languages don't have boolean values as separate values at all < 1591718451 670843 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :zzo38: yes, specifically C. modern C has a _Bool type, but as it's added later, all the comparison operators still return int, AS THEY SHOULD, DARN YOU STROTROUP < 1591718673 832692 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :but there's also the opposite, languages where neither booleans convert implicitly to integers nor any integers convert implicitly to booleans < 1591718701 405860 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :oh yeah, modern perl has yet another representation: the empty string as false and 1 as true < 1591718746 660754 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :except it's not really the empty string, it's a dual scalar that is the empty string as a string and 0 without warning as a number < 1591718777 71461 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :I mean something a bit different though; for example, in many assembly language where you will have "jump if positive", "jump if nonzero", etc. > 1591721748 982656 PRIVMSG #esoteric :14[[07Modulo14]]4 M10 02https://esolangs.org/w/index.php?diff=73438&oldid=71351 5* 03PythonshellDebugwindow 5* (+94) 10cats > 1591721895 755471 PRIVMSG #esoteric :14[[07Swearjure14]]4 M10 02https://esolangs.org/w/index.php?diff=73439&oldid=43254 5* 03PythonshellDebugwindow 5* (-46) 10/* Examples */ format > 1591722036 858052 PRIVMSG #esoteric :14[[07Poison14]]4 M10 02https://esolangs.org/w/index.php?diff=73440&oldid=62058 5* 03PythonshellDebugwindow 5* (+0) 10/* Help */ < 1591722456 117801 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric : except it's not really the empty string, it's a dual scalar that is the empty string as a string and 0 without warning as a number => some strange entities do they have, eh > 1591722508 274200 PRIVMSG #esoteric :14[[07Furcode14]]4 M10 02https://esolangs.org/w/index.php?diff=73441&oldid=69425 5* 03PythonshellDebugwindow 5* (+6) 10 > 1591722535 233205 PRIVMSG #esoteric :14[[07Furcode14]]4 M10 02https://esolangs.org/w/index.php?diff=73442&oldid=73441 5* 03PythonshellDebugwindow 5* (-11) 10unpipe user link < 1591722652 737646 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :arseniiv: nah, they have arbitrary dual scalars that contain a string and a number (the number can be any of a floating-point, an integer, or an unsigned integer), < 1591722718 210420 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :b_jonas: oh now I need to see how do they initialize them > 1591722723 961994 PRIVMSG #esoteric :14[[07Brace For Impact14]]4 M10 02https://esolangs.org/w/index.php?diff=73443&oldid=64965 5* 03PythonshellDebugwindow 5* (+3) 10/* Turing complete Proof */ fix redirect < 1591722725 905634 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :it's just that *most* such dual scalars that are ever created are either implicitly upgraded from a scalar that has only a string that you use a number so perl caches the number, or from a scalar that stores a number but gets implicitly upgraded to contain a string too by converting the number, or from a boolean false. < 1591722758 829441 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :but you *can* create arbitrary dual string/number scalars, there's a convenient function for it too: Scalar::Util::dualvar < 1591722782 613619 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :(all this applies to perl 5.10 or later, I don't want to keep track of history before that) < 1591722813 615096 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :there are, of course, also scalars that are not numbers or strings or combinations of them < 1591722842 178020 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :premature optimization bears weird things < 1591722846 619182 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :most of them still implicitly convert to a number and to a string, but they don't upgrade to store that sort of thing < 1591722862 489964 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :arseniiv: it made sense back in ye old days when perl was first created. perhaps not so much now. < 1591722921 329984 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :there should be an esolang which has many strange things due to carefully crafted “historical” reasons < 1591722995 230875 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :arseniiv: sure, you can add fake history. that sort of thing can be interesting even if it's only very modern history. > 1591722998 201435 PRIVMSG #esoteric :14[[07SMETANA To Infinity!/brainfuck14]]4 M10 02https://esolangs.org/w/index.php?diff=73444&oldid=49754 5* 03PythonshellDebugwindow 5* (+31) 10i should really make this a template < 1591723044 697044 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :it's the sort of thing that's mostly done by conscripters, who create esoteric (in our sense) natural languages, due to Tolkien's tradition, but it's still possible with esoteric programming langugaes < 1591723048 911821 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :like, once I thought about a stack language which had a queue “stack” among others. Also there was a duplicating stack and a dropping stack (push a value, then pop two copies of it from the first and no copies at all from the second; almost all the commands moved from one or several stacks to another) < 1591723109 359093 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :conlanging/conworlding is interesting, yeah, though I have too few head resources to craft these things in detail I’d like > 1591723123 217206 PRIVMSG #esoteric :14[[07Pure BF/Implementation in Ocaml14]]4 M10 02https://esolangs.org/w/index.php?diff=73445&oldid=34859 5* 03PythonshellDebugwindow 5* (+13) 10 > 1591723132 679994 PRIVMSG #esoteric :14[[07Pure BF/Implementation in Ocaml14]]4 M10 02https://esolangs.org/w/index.php?diff=73446&oldid=73445 5* 03PythonshellDebugwindow 5* (+1) 10 < 1591723148 55473 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :yes, sorry, conlangers and conscripters > 1591723165 553653 PRIVMSG #esoteric :14[[07Pure BF/Implementation in Ocaml14]]4 M10 02https://esolangs.org/w/index.php?diff=73447&oldid=73446 5* 03PythonshellDebugwindow 5* (+0) 10 < 1591723200 299075 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :arseniiv: does it count as a fake history when a language is designed as if its purpose was to implement in hardware, but you only ever plan to implement it in software? MIX and MMIX are such cases < 1591723216 537240 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :b_jonas: I think no conlang is good enough without considering its writing system in some detail, even if it’s an auxlang with latin alphabet < 1591723226 201082 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :so no harm mixing a bit > 1591723229 626742 PRIVMSG #esoteric :14[[07Turth-machine14]]4 M10 02https://esolangs.org/w/index.php?diff=73448&oldid=66236 5* 03PythonshellDebugwindow 5* (+21) 10 < 1591723249 824336 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :and no writing system is good without considering who would use it for what < 1591723301 852682 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric : arseniiv: does it count as a fake history when a language is designed as if its purpose was to implement in hardware, but you only ever plan to implement it in software? MIX and MMIX are such cases => this seems a boundary case but why not indeed < 1591723398 796192 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :arseniiv: I don't see why that would be the case, for two reasons. (1) there are and especially were a lot of natural languages that were used extensively and were certainly useful, but either were never written or were rarely contemporarily written so much that the writing clearly isn't what adds value. why would the writing be necessary for a conlang? this is opposed to a programming language, where I < 1591723404 769932 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :see why writing is generally the best form. < 1591723496 36882 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :(2) there are ancient languages where most people don't bother much with the original writing system, we just transcribe the relatively few artifacts we have and work with the transcriptions, because that's easier for us. ancient egyptian and akkadian would be examples for that. and even for languages where we still sort of use the same script, the writing has evolved a lot: < 1591723586 217810 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :consider latin, which has been a dead language for a pretty long time, but preserved due to the role of christianty. these days we write it in fancy Times roman and italic style lower case letters, with spaces and sometimes punctuation, that weren't used five hundred years ago and may have taken weeks for a scholar back then to adapt to. < 1591723635 109944 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :you could say it's sort of the same writing system, but a lot has changed. can you even read the Fraktur and Blackletter scripts that were used on some ceremonial official documents like university diplomas thirty years ago, and heavily actively used like 120 years ago? < 1591723657 795485 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :yes, some people can read them, in as much as some people can read Chinese too < 1591723728 222337 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :admittedly the writing system changes often more superficially than the spoken language, so deciphering the writing system style within the same script (latin in this example) and adapting to read it is much easier than deciphering and learning the language < 1591723805 106246 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :the cases I mentioned only work because the languages were dead and either preserved on written artifacts (stone, clay, vellum, papyrus etc), or because the language was half-dead and so its form was preserved by organized religion for a long time (latin and church slavonic) < 1591723955 89816 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :b_jonas: yeah I forgot about unwritten languages, sorry < 1591724155 382605 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :You might use METAFONT if you want to invent your own writing too, rather than using existing kind of writing, I think. < 1591724257 679187 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :arseniiv: in fact, writing second and oral form first is the standard for natural languages, and the only languages that exist primarily as writing are the dead ones preserved by religion or artifacts that I mentioned < 1591724299 26479 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :Yes, I think that is why Latin words are pronounced differently sometimes < 1591724408 472230 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :yeah, and also in languages with heavy literary norms the writing slightly leaks into oral language but usually this leak is equated zero < 1591724480 800268 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :I had some ideas about conlang, one idea is about involving different physiology < 1591724529 215989 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :arseniiv: sure, that always happens, in English and a lot of other languages < 1591725765 586562 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :Some kind of writing, such as Germanic rune writing, they don't use much, now using Latin writing instead. < 1591726007 780118 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :oh yeah, futhark runes, as well as Tolkien's conscripts (tengwar and certh) are also examples where they survived in artifacts that we have transliterated and are only studying in transliterations now and use modern scripts to write the ancient languages, in addition to egyptian and akkadian < 1591726355 369094 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Ping timeout: 260 seconds < 1591726727 319588 :craigo!~craigo@144.136.206.168 QUIT :Quit: Leaving < 1591727145 999735 :bigyihsuan!6c32c9ac@pool-108-50-201-172.nwrknj.fios.verizon.net JOIN :#esoteric > 1591727906 333188 PRIVMSG #esoteric :14[[07Special:Log/newusers14]]4 create10 02 5* 03CodeLongAndProsper90 5* 10New user account > 1591728036 147070 PRIVMSG #esoteric :14[[07Esolang:Introduce yourself14]]4 10 02https://esolangs.org/w/index.php?diff=73449&oldid=73409 5* 03CodeLongAndProsper90 5* (+114) 10 > 1591728055 760576 PRIVMSG #esoteric :14[[07Esolang:Introduce yourself14]]4 10 02https://esolangs.org/w/index.php?diff=73450&oldid=73449 5* 03CodeLongAndProsper90 5* (+4) 10 > 1591729396 73378 PRIVMSG #esoteric :14[[07ABCDE14]]4 N10 02https://esolangs.org/w/index.php?oldid=73451 5* 03CodeLongAndProsper90 5* (+1061) 10Created page with "[[Category:2020]] [[Category:Turing complete]] ABCDE is an Turing complete extension to [[ABCD]] make by [[User:CodeLongAndProsper90]] ==Extra commands== {| class="wikitabl..." > 1591729431 3821 PRIVMSG #esoteric :14[[07Language list14]]4 10 02https://esolangs.org/w/index.php?diff=73452&oldid=73381 5* 03CodeLongAndProsper90 5* (+12) 10/* A */ > 1591729463 403559 PRIVMSG #esoteric :14[[07ABCDE14]]4 10 02https://esolangs.org/w/index.php?diff=73453&oldid=73451 5* 03CodeLongAndProsper90 5* (+0) 10 < 1591729483 890443 :bigyihsuan!6c32c9ac@pool-108-50-201-172.nwrknj.fios.verizon.net QUIT :Remote host closed the connection > 1591730027 71803 PRIVMSG #esoteric :14[[07ABCDE14]]4 M10 02https://esolangs.org/w/index.php?diff=73454&oldid=73453 5* 03PythonshellDebugwindow 5* (+30) 10move cats + bold title < 1591730074 821704 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :catern: Yes. < 1591730308 636790 :lifthrasiir!~lifthrasi@ec2-52-79-98-81.ap-northeast-2.compute.amazonaws.com QUIT :Remote host closed the connection < 1591730382 503071 :lifthrasiir!~lifthrasi@ec2-52-79-98-81.ap-northeast-2.compute.amazonaws.com JOIN :#esoteric < 1591730472 17160 :catern!~catern@catern.com PRIVMSG #esoteric :shachaf: is that the kind of thing you were thinking of in your tweet? > 1591730519 237317 PRIVMSG #esoteric :14[[07Rfghjy14]]4 N10 02https://esolangs.org/w/index.php?oldid=73455 5* 03Sugarfi 5* (+1138) 10Created page with "== Rfghy == Rfghy is a simple esolang based around the idea of self-modifying code. There are two registers: `!` and `@`. Each "cycle" of the Rfghy interpreter, `!` is execut..." < 1591730521 692288 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It's the same family of thing, I guess? < 1591730528 110893 :catern!~catern@catern.com PRIVMSG #esoteric :both of them seemed like fairly "direct-style" (here labeled "immediate-mode") argument parsing < 1591730559 723420 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Do you know the human who made that other library? > 1591730571 658121 PRIVMSG #esoteric :14[[07Rfghjy14]]4 10 02https://esolangs.org/w/index.php?diff=73456&oldid=73455 5* 03Sugarfi 5* (-22) 10/* Rfghy */ < 1591730590 53582 :catern!~catern@catern.com PRIVMSG #esoteric :yes, I used to work with him > 1591730593 353265 PRIVMSG #esoteric :14[[07Rfghjy14]]4 10 02https://esolangs.org/w/index.php?diff=73457&oldid=73456 5* 03Sugarfi 5* (-12) 10/* Rfghy */ < 1591730632 827281 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :My friend was talking about them independently in some other context recently. < 1591730697 902857 :catern!~catern@catern.com PRIVMSG #esoteric :how coincidental < 1591730735 968691 :catern!~catern@catern.com PRIVMSG #esoteric :you two should discuss argument parsing - although maybe it's my myopia that makes me think your two schemes look very similar < 1591730809 79395 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I mean, argument parsing doesn't matter that much, I'm sure both are fine. < 1591730836 168139 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :The thing where it parses everything upfront, and gives you the number of times each flag appears etc., is kind of different. > 1591730943 817457 PRIVMSG #esoteric :14[[07International Phonetic Esoteric Language14]]4 N10 02https://esolangs.org/w/index.php?oldid=73458 5* 03Bigyihsuan 5* (+316) 10Created page with "The '''International Phonetic Esoteric Language''', abbreviated to '''IPEL''', is a stack-based [[esoteric programming language]] by [[User:Bigyihsuan]] based on the idea of u..." < 1591730971 284530 :catern!~catern@catern.com PRIVMSG #esoteric :well, yes, argument parsing isn't that fundamental, and especially not in C; better to use a better language for the command-line-UI and just call into C from there > 1591731017 111033 PRIVMSG #esoteric :14[[07User:Bigyihsuan14]]4 N10 02https://esolangs.org/w/index.php?oldid=73459 5* 03Bigyihsuan 5* (+86) 10Created page with "This is my page! '''Languages created:''' * International Phonetic Esoteric Language" > 1591731024 326356 PRIVMSG #esoteric :14[[07User:Bigyihsuan14]]4 10 02https://esolangs.org/w/index.php?diff=73460&oldid=73459 5* 03Bigyihsuan 5* (+4) 10 < 1591731040 353035 :catern!~catern@catern.com PRIVMSG #esoteric :(on the other hand, in some ways, getopt-style CLI arguments are the only standard serialization form for data on Unix, so that could make it important... but probably not) < 1591731125 991367 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Why better to use two languages instead of one? < 1591731250 26354 :catern!~catern@catern.com PRIVMSG #esoteric :'cause I don't want to do fancy UIs in C < 1591731306 322552 :catern!~catern@catern.com PRIVMSG #esoteric :but I presume C is important for some mysterious reason otherwise everyone wouldn't be writing all these argument parsing libraries for C < 1591731359 81147 :catern!~catern@catern.com PRIVMSG #esoteric :also, IPC is a hassle - my program should be available as a library anyway, and my program just a fancy UI over that library. well, that's my cached thought on the topic, maybe it's not right < 1591731387 909512 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I think something like that is right. Command line programs make for pretty bad libraries. < 1591731603 486972 :catern!~catern@catern.com PRIVMSG #esoteric :and if I'm writing in C, it's easy to write a library that's usable from many languages - so if I should be writing a library anyway, it's convenient and easy to write my UI in whatever language is best for writing in UIs < 1591731611 525094 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Mixing APIs and UIs has struck me as a bad idea for a long time. < 1591731642 279738 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I agree with that, but then what language should I write the UI in? < 1591731677 816175 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :I think you could use C for both, if wanted < 1591731687 256651 :catern!~catern@catern.com PRIVMSG #esoteric :that's too concrete of a question for me, I only deal in vagueries < 1591731700 206400 :catern!~catern@catern.com PRIVMSG #esoteric :(in practice I use Python) < 1591731736 576984 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :$ tym pip3 > /dev/null < 1591731739 975114 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :time: real 0.532s (user 0.488s, sys 0.044s; 99.96% cpu) < 1591731764 672048 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :Some programming languages don't have the best way to access C libraries though; for example, PostScript doesn't have a good way to do it (mostly what I do then is using printobject and/or writeobject). Also, you can know how the Glk dispatch API works; it is a design that works better when used from multiple programming languages, than what C does. < 1591731765 63585 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Probably this program is an outlier, but over 500ms for printing the help screen isn't encouraging. < 1591731797 107880 :catern!~catern@catern.com PRIVMSG #esoteric :scheme? typescript? haskell? < 1591731814 627990 :catern!~catern@catern.com PRIVMSG #esoteric :surely there has to be some language that is good....! < 1591731832 594432 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :If only there was. Then I could use it instead of C for the library as well. < 1591731867 335733 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :Well, there are some, which as assembly language, but assembly language isn't so portable. < 1591731914 441581 :catern!~catern@catern.com PRIVMSG #esoteric :shachaf: going back a bit, do you not buy into the, "APIs are UIs" idea? (and symmetrically, UIs are APIs) < 1591731932 757256 :catern!~catern@catern.com PRIVMSG #esoteric :personally, I think merging UI and API closer together is a really interesting area for research < 1591731940 336523 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I do not. < 1591731945 336803 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Well, at least in their current state. < 1591731959 249063 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I agree that merging them could be interesting. < 1591732000 865387 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :I think that sometimes APIs can be good as UIs, and sometimes not so much. (Other way around also) < 1591732005 319627 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :There are many ways that Unix command line programs are designed to be UIs -- for human use on specific things -- rather than APIs. < 1591732042 34371 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Say you have `rm a b c`, and you want to parameterize that on a list of items. In bash you could write something like `rm ${list[@]}` < 1591732050 876569 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :What can go wrong just from doing that? < 1591732072 330496 :catern!~catern@catern.com PRIVMSG #esoteric :many things, but that's partially bash's fault though < 1591732075 148431 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :arr might be empty; an element of arr might start with -; an element of arr might contain whitespace; ... < 1591732086 552638 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :I usually write "echo" first to check that it is correct > 1591732103 668723 PRIVMSG #esoteric :14[[07Strvar14]]4 M10 02https://esolangs.org/w/index.php?diff=73461&oldid=71226 5* 03PythonshellDebugwindow 5* (+0) 10/* Interpreter test cases */ < 1591732115 516708 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :In shell scripts I might add -- before the other arguments < 1591732119 613589 :catern!~catern@catern.com PRIVMSG #esoteric :I would prefer rm to have a typed interface though, for sure < 1591732120 448353 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Some of these are just problems with the Unix command line norms, sure. < 1591732131 468371 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :zzo38: But that still doesn't handle the empty list case. < 1591732144 401252 :catern!~catern@catern.com PRIVMSG #esoteric :e.g (filepath list) -> IO () < 1591732148 12006 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Oh, also some items of arr -- which I called list above -- might contain whitespace. < 1591732188 404076 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :Yes, but the empty list case is I think a problem with rm itself; rm should successfully do nothing if there are no arguments, I think. < 1591732213 808374 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :A UI is intended to be discoverable as you use it, whereas an API has to be discoverable up-front, I suppose. < 1591732230 128050 :catern!~catern@catern.com PRIVMSG #esoteric :(for example, some complicated UI systems have macro systems which you can perform actions using the rich UI capabilities to, in effect, specify a program. and the most powerful IDEs can make it easy to quickly program against APIs through autocomplete and various things. could the two be merged closer together?) < 1591732293 21103 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :I don't know, but I think that Unix command line is good for a lot of stuff, although for writing full programs, C and other programming languages are better < 1591732295 948330 :catern!~catern@catern.com PRIVMSG #esoteric :anyway, if they could be brought closer together, it would be interesting to, instead of the Unix interface which just passes a list of strings to rm, have a nicely typed interface for rm, and many other utilities like it < 1591732328 417340 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Yes, maybe a better shell UI would look a bit more like that, such that you pass structured data to "commands" (which might just be library calls), and it helps you put them together easily. < 1591732359 852653 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I've thought about things like that before. There are many other interface improvements you can make to terminals and shells. < 1591732468 338914 :int-e!~noone@int-e.eu PRIVMSG #esoteric :> isLower 'ꙮ' < 1591732470 211262 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : False < 1591732475 602388 :int-e!~noone@int-e.eu PRIVMSG #esoteric :> isUpper 'ꙮ' < 1591732477 663199 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : False < 1591732490 20462 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :One thing I thought is in Plan10 to have "chain segments", and environment variables and command-line arguments are implemented using chain segments, but then you could define other interfaces too. < 1591732530 815975 :catern!~catern@catern.com PRIVMSG #esoteric :I have a vague suspicion that too many people have tried to make shells better or smarter in various ways - it might be a dead end - maybe it would be more productive to go the other direction, and use your fancy Emacs Agda IDE to manipulate files instead of snippets of code < 1591732587 622064 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I am not too much into turbo-fancy IDEs. < 1591732684 903697 :int-e!~noone@int-e.eu PRIVMSG #esoteric :. o O ( 100% CPU for a blinking cursor. ) < 1591732761 274237 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :If a program calls another program using exec(), and the new program and old program have any chain segments with the same name, then that memory is retained rather than being reset. < 1591732766 432452 :catern!~catern@catern.com PRIVMSG #esoteric :well, turbo-fancy IDEs are hard to manipulate and program right now, so it's quite reasonable. but maybe they can be made more programmable (in a way that your knowledge of the UI directly allow programmability) < 1591732786 876331 :xelxebar!~xelxebar@gateway/tor-sasl/xelxebar QUIT :Remote host closed the connection < 1591732790 211378 :catern!~catern@catern.com PRIVMSG #esoteric :zzo38: what about passing file descriptors or other non-memory resources? < 1591732804 224423 :catern!~catern@catern.com PRIVMSG #esoteric :(such as stdin/stdout/stderr) < 1591732818 823668 :xelxebar!~xelxebar@gateway/tor-sasl/xelxebar JOIN :#esoteric < 1591732837 766308 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :catern: You can already do that in the normal way. < 1591732867 858506 :catern!~catern@catern.com PRIVMSG #esoteric :zzo38: so then why not pass a chain segment as a normal resource rather than by name? < 1591732965 327007 :catern!~catern@catern.com PRIVMSG #esoteric :shachaf: like, one reason I don't like turbo-fancy IDEs is that clicking a button doesn't correlate with knowing the name of the function that that button invokes. which makes it harder to write program involving those functions. but the underlying issue there is that you need to identify the function by some name - why can't you identify it by clicking the button? < 1591732974 765094 :catern!~catern@catern.com PRIVMSG #esoteric :or something like that < 1591733140 455896 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :catern: I am not sure if I understand your question fully. < 1591733327 530915 :catern!~catern@catern.com PRIVMSG #esoteric :zzo38: it sounds like you're proposing that processes have a table of chain segments which they can look up by a string name, and which contain data, is that right? but resources like file descriptors also can contain data. why not unify the two, and instead of having a table of chain segments, just have a table of file descriptors? you can preserve the lookup-by-string-name thing if you want < 1591733557 264768 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :Well, it is a bit different. I was thinking of chain segments like other (unnamed) segments declared in the ELF file would be loaded in memory; chain segments are the same but they have a name, and if it has a name then the operating system can retain whatever data is there rather than reset it, if both programs have the same name of chain segment. If the previous program doesn't have such a segment, then it is loaded like any other se < 1591733614 579276 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :(So, it is otherwise like PT_LOAD, but it does not necessarily load the contents of the executable file.) < 1591733713 551820 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :(Chain segments could be used for other purposes too, such as to implement overlays in a way that is sometimes done in DOS programs.) < 1591734643 137626 :catern!~catern@catern.com PRIVMSG #esoteric :I see < 1591734771 379960 :TheLie!~TheLie@2a02:8106:215:3300:844d:dece:9bd4:fbb2 JOIN :#esoteric > 1591735602 504845 PRIVMSG #esoteric :14[[07International Phonetic Esoteric Language14]]4 M10 02https://esolangs.org/w/index.php?diff=73462&oldid=73458 5* 03PythonshellDebugwindow 5* (+47) 10 > 1591735750 650149 PRIVMSG #esoteric :14[[07MindReadingFuck14]]4 M10 02https://esolangs.org/w/index.php?diff=73463&oldid=67577 5* 03PythonshellDebugwindow 5* (+22) 10/* Solve the halting problem */ < 1591735787 274722 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :shachaf: "`rm ${list[@]}` [...] What can go wrong just from doing that?" => some things that you can fix by writing (rm -- "${list[@]}") instead, and apart from that, errors that you get when you expand a shell parameter or make variable that you thought would be defined but actually isn't and get an empty string, in which case you get serious bugs like that recent uninstaller that tried to rm -rf -- < 1591735793 211911 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :"/usr/${SOMEVARIABLE}" and in fact deleted the /usr of anyone who tried to uninstall their program < 1591735811 88068 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :b_jonas: Yes, I know. < 1591735834 675748 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :isEsoteric 'ꙮ' < 1591735835 906227 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :The point is that hardly anyone writes that unless they're writing a script. > 1591735840 984484 PRIVMSG #esoteric :14[[07NARchy14]]4 M10 02https://esolangs.org/w/index.php?diff=73464&oldid=58278 5* 03PythonshellDebugwindow 5* (-29) 10 < 1591735844 611205 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :> isEsoteric 'ꙮ' < 1591735847 120739 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : True < 1591735852 410571 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :So it highlights how different the UI vs. API thing even in the same program. < 1591735853 212729 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :int-e ^^^ < 1591735864 173899 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :lambdabot knows it all < 1591735865 462902 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :And of course this still doesn't solve every problem. < 1591735876 903976 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Ah the abuses of @let. < 1591735889 829370 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :For example if the list is empty this will still be an error. < 1591735893 445390 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :shachaf: as for "array may be empty" => yes, that can also cause serious bugs with some shell commands, though in the case of rm it's not generally a problem, unless it's a REALLY weird extglob nullglob problem where you accidentally remove a file named "!(*.jpg)" < 1591735917 422432 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :int-e: what @let? < 1591735917 422492 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It's a problem because rm will exit with 1 instead of 0. < 1591735923 914573 :int-e!~noone@int-e.eu PRIVMSG #esoteric :@undef < 1591735924 289314 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :Undefined. < 1591735931 992323 :int-e!~noone@int-e.eu PRIVMSG #esoteric :> isEsoteric 'ꙮ' < 1591735934 206510 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : error: < 1591735934 206565 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : Variable not in scope: isEsoteric :: Char -> t < 1591735939 458981 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :interesting :o < 1591735944 206335 :int-e!~noone@int-e.eu PRIVMSG #esoteric :@let isEsoteric _ = True < 1591735945 701061 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : Defined. < 1591735947 597041 :int-e!~noone@int-e.eu PRIVMSG #esoteric :> isEsoteric 'ꙮ' < 1591735949 483556 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : True < 1591735951 458486 :int-e!~noone@int-e.eu PRIVMSG #esoteric :@undef < 1591735951 975700 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :Undefined. < 1591735952 296767 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :" I would prefer rm to have a typed interface though, for sure" => you're in luck then, we have a remove C function for that, and various apis (mostly in high level languages) for recursive rm < 1591735964 601843 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :hm I think you retroactively defined it for that earlier case, then < 1591735997 3264 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :" zzo38: But that still doesn't handle the empty list case." => it does if you have a -f option. (rm -f --) successfully does nothing and returns true < 1591736013 602844 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Yes, but then it does -f on everything else. < 1591736034 292791 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :" Yes, but the empty list case is I think a problem with rm itself" => no, rm handles it well, it's more of a problem with programs that interpret an empty argument list as acting on stdin < 1591736182 471345 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :zzo38: re chain segments, instead on unix we have three different shared memory APIs in kernel+libc: mmap, sysv ipc, posix ipc. plus some higher level wrappers, such as one in boost whose purpose is to give a portable wrapper to unix vs windows. < 1591736236 511920 :rain1!~debian@unaffiliated/rain1 QUIT :Quit: leaving < 1591736268 337084 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Even if rm did work perfectly here, it wouldn't help you that much because that'd be a big outlier in terms of unixular utilities. < 1591736336 777877 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :that said, something like "chain segment" made sense in high level languages like BASIC on old machines that had very limited RAM, where you would often want to load another BASIC program in such a way as to replace most of your program, but you asked BASIC to chain some of your variables and/or some of your programs. > 1591736369 241171 PRIVMSG #esoteric :14[[07Emoji14]]4 M10 02https://esolangs.org/w/index.php?diff=73465&oldid=65580 5* 03PythonshellDebugwindow 5* (+8) 10/* Interpreters */ < 1591736395 920738 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :Yes, using the CHAIN command, I think. > 1591736471 290727 PRIVMSG #esoteric :14[[07Brainfuck Contest 114]]4 M10 02https://esolangs.org/w/index.php?diff=73466&oldid=70716 5* 03PythonshellDebugwindow 5* (+1) 10/* Code that actually works as required */ < 1591736545 675620 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :shachaf: you usually want -f when you invoke rm from a script. Even without -f, (rm --) does nothing, it just gives you an error, which is sometimes acceptible, the rest of the time you indeed may need a workaround < 1591736567 961406 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :but yes, empty list of files is a much bigger problem for other commands < 1591736570 667787 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :like grep or ls < 1591736619 460175 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :zzo38: but also the MERGE command, which is sort of the same but keeps all variables and most of the code, so it's more useful to load and unload overload code segments < 1591736662 85524 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :@let passwordOfTheMonth = "@let passwordOfTheMonth = \"" ++ take passwordOfTheMonth 27 ++ "\" -- is not quine" < 1591736663 409480 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : .L.hs:158:5: error: < 1591736663 625447 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : • Couldn't match expected type ‘Int’ with actual type ‘[Char]’ < 1591736663 625505 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : • In the expression: < 1591736676 626320 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :@let passwordOfTheMonth = "@let passwordOfTheMonth = \"" ++ take 27 passwordOfTheMonth ++ "\" -- is not quine" < 1591736678 20733 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : Defined. < 1591736684 936858 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :> passwordOfTheMonth < 1591736687 63794 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : "@let passwordOfTheMonth = \"@let passwordOfTheMonth = \"\" -- is not quine" > 1591736713 591265 PRIVMSG #esoteric :14[[07PythonshellDebugwindow/Rewriting Language14]]4 N10 02https://esolangs.org/w/index.php?oldid=73467 5* 03PythonshellDebugwindow 5* (+191) 10Created page with "An esolang based on [[string]] [[rewriting]]. Out of bounds indexing -> 0. ==Examples== ===[[Cat]] program=== 0..*=0..*H ===Reverse [[cat]]=== 0..*=*..0H ===Truth-machin..." < 1591736715 693681 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :oh it’s way clumsier than intended < 1591736725 577653 :arseniiv!~arseniiv@136.169.206.76 PRIVMSG #esoteric :@undef < 1591736725 900986 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :Undefined. > 1591736756 262100 PRIVMSG #esoteric :14[[07PythonshellDebugwindow/Rewriting Language14]]4 M10 02https://esolangs.org/w/index.php?diff=73468&oldid=73467 5* 03PythonshellDebugwindow 5* (-191) 10delete! < 1591736761 816920 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :these days that sort of chaining is rarely relevant, because virtual memory helps you both ways: it lets you swap out parts of your program that are not needed right now, so you can just have one big program, and it lets you cache the contents of regular files that you use to pass data from one program to the next one, such as object files between a compiler and linker > 1591736766 208898 PRIVMSG #esoteric :14[[07User:PythonshellDebugwindow/Rewriting Language14]]4 N10 02https://esolangs.org/w/index.php?oldid=73469 5* 03PythonshellDebugwindow 5* (+191) 10Created page with "An esolang based on [[string]] [[rewriting]]. Out of bounds indexing -> 0. ==Examples== ===[[Cat]] program=== 0..*=0..*H ===Reverse [[cat]]=== 0..*=*..0H ===Truth-machin..." > 1591736976 365068 PRIVMSG #esoteric :14[[07Heebolang14]]4 10 02https://esolangs.org/w/index.php?diff=73470&oldid=73413 5* 03Polybagel 5* (+755) 10 > 1591737011 31162 PRIVMSG #esoteric :14[[07Heebolang14]]4 10 02https://esolangs.org/w/index.php?diff=73471&oldid=73470 5* 03Polybagel 5* (+1) 10 > 1591737040 602541 PRIVMSG #esoteric :14[[07Heebolang14]]4 M10 02https://esolangs.org/w/index.php?diff=73472&oldid=73471 5* 03Polybagel 5* (+1) 10 > 1591737060 252914 PRIVMSG #esoteric :14[[07International Phonetic Esoteric Language14]]4 10 02https://esolangs.org/w/index.php?diff=73473&oldid=73462 5* 03Bigyihsuan 5* (+3568) 10 > 1591737123 362192 PRIVMSG #esoteric :14[[07International Phonetic Esoteric Language14]]4 10 02https://esolangs.org/w/index.php?diff=73474&oldid=73473 5* 03Bigyihsuan 5* (+107) 10 < 1591737132 939558 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :Why does Glulx require the number of arguments to be specified for Glk API calls, even though that can be determined automatically from the type (which the interpreter needs to know anyways, in order to parse the arguments properly)? < 1591737802 620928 :spruit11!~unknown@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :To make it easy to walk or dump the stack? > 1591737893 690624 PRIVMSG #esoteric :14[[07Swapper14]]4 10 02https://esolangs.org/w/index.php?diff=73475&oldid=52869 5* 03Voltage2007 5* (-399) 10bit big of an edit > 1591737921 401827 PRIVMSG #esoteric :14[[07International Phonetic Esoteric Language14]]4 10 02https://esolangs.org/w/index.php?diff=73476&oldid=73474 5* 03Bigyihsuan 5* (+286) 10 < 1591738086 437214 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1591738642 910595 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :zzo38: perhaps as a form of redundancy against programming errors? < 1591738734 547298 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :Maybe. < 1591741121 389636 :adu!~arobbins@c-73-129-154-238.hsd1.md.comcast.net QUIT :Quit: adu < 1591741161 922535 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :zzo38: can it be an artifact from a rarely used vararg function API, possibly one that's not even supported anymore, but whose existence has side effects to non-vararg functions? because that sort of happened to C varargs, which even on x86_64 have an effect on the ABI of a few non-vararg function calls, because we can't distinguish the ABI of vararg function calls from non-vararg calls, because that < 1591741167 900422 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :could break old C programs with no ANSI style prototypes for a function, < 1591741229 806209 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :even though nobody in the x86_64 era writes any new C programs that require that you can call a vararg function without a prototype, except when omitting #include for golf purposes. < 1591741257 391095 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :It would be perfectly legal to break those programs; it's not possible to call a vararg function without a prototype. < 1591741331 299278 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :"If the expression that denotes the called function has a type that does not include a prototype -- [and if] the function is defined with a type that includes a prototype, and -- the prototype ends with an ellipsis --, the behavior is undefined." < 1591741344 786685 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :fizzie: not according to the current C standards (or even C89 I think), but in old compilers it was perfectly possible to call printf or open without a prototype, and as a result people wrote programs that did that and got away with it < 1591741369 403730 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Right, that sort of compatibility thing. < 1591741377 424943 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :fizzie: sure, the C standard says that exactly because we don't want to support that sort of nonsense forever into the future < 1591741388 722460 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :but for now we still have some ancient C programs without prototypes so we can't do it yet < 1591741401 905617 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :or we couldn't do it yet when x86_64 came out < 1591741402 962501 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Is that really true though? The x86-64 varargs ABI *is* different -- will compilers use it "just in case" if there's no prototype? < 1591741430 731412 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :I don't think so, because Glk doesn't use varargs, and anyways it is Glulx, not C. (There is a C API for Glk too, although the Glk dispatch layer deals with the types of the functions and calls them (and also exposes the types in a portable format for all programming languages), so the Glulx interpreter will already know the type and number of arguments, even in case of extensions to Glk.) < 1591741446 206286 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :fizzie: I think so for at least one of the two x86_64 abis, but I'll have to look that up, and it impacts only a few function calls (depending on the type of arguments) < 1591741455 273674 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Apparently they do. Huh. < 1591741457 793114 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :(And I have made some extensions to Glk. Making these extensions does not require changing the Glulx interpreter in any way.) < 1591741463 457497 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Well, it's not a huge hassle, addmittedly. < 1591741513 167326 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I would imagine for the SysV ABI it would affect all prototype-less calls, because you have to clear rax (or rather, set al to the "proper" value), which you otherwise wouldn't. < 1591741539 171157 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :fizzie: but you can see that the ABI is designed such that the called function can access the first argument without knowing what the type of the rest of the arguments are, which probably doesn't cause any performance problems, but even so it is a decision prompted by the vararg history < 1591741597 712891 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :I'll have to look up the details about the x86_64 ABIs in the Agner document later to tell what the AL thing was about, the one that can impact performance. I simply don't remember., < 1591741646 52388 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :You must set AL to the number of SIMD registers used for passing floating-point arguments if you're calling a varargs function. < 1591741663 523241 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :http://ix.io/2oM5 does it for the call to f_noproto, and doesn't for the call to f_withproto. < 1591741693 342015 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I imagine it would by definition "affect" performance insofar that it's an extra instruction. < 1591741726 924734 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :fizzie: but in that case doesn't it impacts only functions that have arguments with floating point in them? < 1591741736 563322 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :No, because you have to set it to 0 if they don't. < 1591741749 1489 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :fizzie: even if you have a prototype and so know that the function isn't vararg? < 1591741757 98941 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :which is the majority of function calls < 1591741762 623747 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Right, yes. < 1591741801 664620 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :The point I was trying to make is that the fact that it's "forced" to assume prototype-less functions might be varargs is affecting all calls to prototype-less functions. < 1591741813 963262 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :fizzie: ah ok < 1591741817 667361 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :that makes sense < 1591741883 523188 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :and we'll get rid of non-prototyped function calls way before we get rid of varargs in C, because *printf, *scanf and open are here to stay. < 1591741913 845306 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :(I know some other vararg C functions that are probably here to stay, but they're used less than those) < 1591742027 576882 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca QUIT :Quit: zzo38 < 1591742081 950277 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca JOIN :#esoteric < 1591742104 679568 :spruit11!~unknown@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :The fact that you can walk the C stack probably made C++ exceptions possible.. < 1591742182 825119 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :spruit11: that might be true historically (I don't know), but these days you can't walk the C stack < 1591742200 671330 :spruit11!~unknown@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :It was a conjecture. No idea. < 1591742202 40181 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :and by "these days" that was already true 20 years ago < 1591742202 40227 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I've been browsing the c2x draft (there's one from Feb this year), and it's got a few headline-grabbing features. Like, `strdup` is finally in, and the [[foo]] attribute syntax has been ported back from C++ (though only for [[nodiscard]], [[maybe_unused]], [[deprecated]] and [[fallthrough]], all of which are merely for better diagnostics). < 1591742280 70313 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Oh, and old-style function definitions are out, which is almost relevant to the earlier discussion. < 1591742317 966709 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :fizzie: is there any feature that they could consider standardizing in the form of an attribute and isn't merely for diagnostics? hmm yes, there is, [[no_unique_address]], but that's so new it just didn't have a chance to get into C standard proposals yet < 1591742331 756438 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :OK, strdup is in, now, but is memdup in yet? < 1591742343 527801 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :(Sort-of unfortunately prototype-free declarations aren't out.) < 1591742356 804286 :spruit11!~unknown@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :Link to the c2x draft? < 1591742360 635127 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :`memdup` is not. < 1591742361 716555 :HackEso!~h@unaffiliated/fizzie/bot/hackeso PRIVMSG #esoteric :memdup`? No such file or directory < 1591742375 367080 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2478.pdf < 1591742383 308552 :spruit11!~unknown@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :Thanks. < 1591742433 772484 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :There are also a bunch of more recent documents at http://www.open-std.org/jtc1/sc22/wg14/www/wg14_document_log.htm but no newer full working draft. < 1591742435 154911 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :fizzie: there's no point to remove prototype-free declarations from the standard, we'll not remove them from real life because they'll still in use (for compatibility only, with default warning, not for new code), so removing it from the standard would be ... oh I see. yes, ignoring the real world and depreciating something that is in use would be exactly the sort of thing that those standard committees < 1591742441 631285 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :occasionally try to do < 1591742447 431674 :imode!~linear@unaffiliated/imode JOIN :#esoteric < 1591742459 680095 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Well, they removed `gets`. < 1591742470 295157 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I suspect it's still in use. < 1591742486 40871 :adu!~arobbins@c-73-129-154-238.hsd1.md.comcast.net JOIN :#esoteric < 1591742488 758911 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :spruit11: you can probably find it from http://www.open-std.org/JTC1/SC22/WG14/ < 1591742558 904224 :b_jonas!~x@catv-176-63-12-72.catv.broadband.hu PRIVMSG #esoteric :fizzie: did they remove asctime or ctime? < 1591742590 996887 :spruit11!~unknown@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :Hmm. I guess unwinding is done by just tracing links. < 1591742591 750774 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :No, but they added asctime_r and ctime_r. < 1591742596 927610 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :So maybe that's a step? < 1591742611 43254 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :Well, gets is the function they should remove. < 1591743731 467566 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Ping timeout: 272 seconds < 1591744397 934593 :Lord_of_Life_!~Lord@unaffiliated/lord-of-life/x-0885362 JOIN :#esoteric < 1591744527 486714 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 QUIT :Ping timeout: 260 seconds < 1591744568 24413 :Lord_of_Life_!~Lord@unaffiliated/lord-of-life/x-0885362 NICK :Lord_of_Life < 1591744643 706866 :TheLie!~TheLie@2a02:8106:215:3300:844d:dece:9bd4:fbb2 QUIT :Remote host closed the connection < 1591745061 430717 :tromp!~tromp@2a02:a210:ca3:2800:383b:582d:1eec:dbd9 QUIT :Ping timeout: 272 seconds < 1591746637 960527 :arseniiv!~arseniiv@136.169.206.76 QUIT :Ping timeout: 246 seconds