< 1568075218 414805 :Sgeo_!~Sgeo@ool-18b98995.dyn.optonline.net QUIT :Read error: Connection reset by peer < 1568075241 772273 :Sgeo_!~Sgeo@ool-18b98995.dyn.optonline.net JOIN :#esoteric < 1568076933 237352 :Lykaina!~lyka@unaffiliated/schrodingerscat JOIN :#esoteric < 1568077140 374268 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :b_jonas: i don't know any other way < 1568077457 568246 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net JOIN :#esoteric < 1568077549 67919 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net PRIVMSG #esoteric :By definition, a bully automaton is just an extension of a cellular automata < 1568077572 268144 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net PRIVMSG #esoteric :So would ALPACA still be viable to implement a bully automaton? < 1568077629 610189 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :20:29:07 Lykania: again, do not define global variables in a header file that you #include into multiple source files. especially not non-constant globals. < 1568077696 167925 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :any idea where else i should declare global variables? < 1568077712 583904 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :and define < 1568077754 937503 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :and what's the difference (in C) between declaring and defining? < 1568077856 29645 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :A /definition/ of an identifier is a declaration for that identifier that: for an object, causes storage to be reserved for that object; -- < 1568077889 117606 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Typically you'll have a declaration that's not a definition (such as `extern int x;`) in a .h file, and a corresponding definition (`int x = 123;`) in exactly one .c file. < 1568077914 753237 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :why shouldn't they go in headers? < 1568077942 796986 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :oh < 1568077949 910871 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Because if you have it in a header file, chances are that header file is going to be included in more than one translation unit, and then you end up with more than one definition for the same object, which is generally illegal. < 1568077953 914012 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :(With some subtlety.) < 1568077969 956764 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :b_jonas wasn't beclear enough < 1568077980 293530 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :http://ix.io/1Mys (from the C99 rationale) explains it better than I could. < 1568078038 451361 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :...well, "better" is subjective. But definitely in more detail. < 1568078075 475078 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :In particular, it goes into the detail of what the standard model is, and what happens in practice on many implementations. < 1568078143 356346 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net PRIVMSG #esoteric :C looks so simple from the outside, yet it's actually quite complex < 1568078206 517877 :pikhq!~pikhq@70-59-9-101.hlrn.qwest.net JOIN :#esoteric < 1568078229 132608 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net PRIVMSG #esoteric :Its subjective, but C++ just looks more natural to learn for me < 1568078256 708176 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net PRIVMSG #esoteric :Which is weird, since my first language was C# < 1568078258 472228 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I guess it has at least the benefit of nobody accidentally thinking it's simple. < 1568078310 980310 :pikhq_!~pikhq@97-118-196-215.hlrn.qwest.net QUIT :Ping timeout: 258 seconds < 1568078498 681012 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net QUIT :Remote host closed the connection < 1568078576 568687 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net JOIN :#esoteric < 1568078597 620580 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :fizzie: can you look at the echidna repo and find the problem b_jonas is complaining about? < 1568078622 934398 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :i mean, it's location < 1568078623 840227 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net PRIVMSG #esoteric :So, again, is ALPACA viable for the implementation of bully automaton? < 1568078701 819017 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Lykaina: I assume they might've been talking about globals.h, and/or argnums.h. < 1568078910 20884 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :A declaration of the form of `unsigned long progindex;` is what's called a /tentative definition/, which (if a translation unit has no actual definition) is treated as if there was a definition like `unsigned long progindex = 0;` in the translation unit. So if globals.h is included in, say, cmds.c and main.c, both will have a definition for it, which is not strictly conforming C. < 1568078973 699040 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Assuming they end up in the same program, anyway. < 1568079084 782109 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :("If an identifier declared with external linkage is used in an expression (other than [unrelated exception]), somewhere in the entire program there shall be exactly one external definition for the identifier; otherwise, there shall be no more than one.") < 1568079243 481798 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Many implementations are in practice more relaxed than that and allow multiple definitions esp. as long as they don't have an initializer, but that's just a common extension and not guaranteed by the standard. < 1568079411 560531 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :A strictly conforming program could, for example, have a globals.h with `extern unsigned long progindex;`, and then either in a dedicated globals.c, or in some other one .c file where it makes sense, include an `unsigned long progindex;` to provide the "exactly one" definition required for it. < 1568079454 213637 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :(A lot of people would prefer to avoid global state entirely, but that's more of a design question than a correctness question.) < 1568079489 249002 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :look now < 1568079510 282975 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :i just pushed what i think is a fix < 1568079557 520501 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I don't have any complaints about that one, at least on a quick glance. < 1568079571 400238 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :so it's better? < 1568079585 832751 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Yes, assuming I've interpreted b_jonas's criticism right. < 1568079592 647829 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Except that it's exceedingly strange to put header guards *outside* the header files. < 1568079638 377861 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :oops < 1568079644 916061 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :i'll fix that < 1568079688 474353 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Also, it's safe to include standard headers like multiple times. It doesn't hurt to guard against that, but you don't need to unless you want to. < 1568079718 426867 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :("Standard headers may be included in any order; each may be included more than once in a given scope, with no effect different from being included only once, except [a niche thing].") < 1568079877 981875 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :pushed < 1568080020 160064 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Well, I mean... normally you'd have #ifndef H_DEFINES #define H_DEFINES as the first two lines of defines.h itself, and an #endif as the last line. That way all the different places where it's included won't need to (a) remember to wrap the #include in a #infdef-#define-#endif sequence, and (b) coordinate what the name used for the header guard is. < 1568080095 510205 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :oh < 1568080161 692686 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Of course from the compiler's perspective there's no difference whether those are inside the .h file or around the #include statement, it just treats the whole thing as a sequence of lines. It's just a convenience thing. < 1568080167 691700 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :do i need to have the license in every file or just in the LICENSE file? < 1568080249 95585 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :#pragma once < 1568080249 420263 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :! < 1568080271 701521 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I'm not qualified to give legal advice, and I've seen both done. < 1568080271 864460 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :what's that? < 1568080279 53347 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :It's another nonstandard extension. < 1568080332 383708 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :kmc: what are you asking me to change? < 1568080375 316560 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :no < 1568080378 662101 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :i was just saying < 1568080386 121247 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :that you can use #pragma once instead of include guards < 1568080396 296191 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :if all the compilers you want to use support it < 1568080402 190011 :MDude!AdiIRC@c-174-55-101-236.hsd1.pa.comcast.net QUIT :Ping timeout: 245 seconds < 1568080402 269706 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :it's faster and less error-prone < 1568080417 406109 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I wouldn't. But it's true, you definitely can. < 1568080428 410962 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :faster because, as soon as a header has been seen to have #pragma once, the compiler will not even bother reading it again < 1568080446 463152 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :although I think these days compilers also detect include guards and treat them similarly < 1568080723 568038 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net QUIT :Ping timeout: 260 seconds < 1568080726 628727 :j4cbo!sid186930@gateway/web/irccloud.com/x-rhlvmgrmtzwmpdca PRIVMSG #esoteric :aiui what kmc said < 1568080754 684051 :j4cbo!sid186930@gateway/web/irccloud.com/x-rhlvmgrmtzwmpdca PRIVMSG #esoteric :the main advantage of #pragma once is not having to pick an include guard format < 1568080785 694735 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :I have actually had issues with include guard name collisions once or twice < 1568080981 132745 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Regarding the performance question, https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58770 < 1568081112 494425 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :As for the correctness question, I understand a number of implementations have had issues determining what exactly is the same file, given symlinks and all that. < 1568081243 862275 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Although you can very reasonably say that you've got bigger problems if, in a single build operation, the same header file is reached via two unrelated paths. < 1568081294 378203 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :it probably happens < 1568081400 803422 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :pushed < 1568081415 599077 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :fizzie's advice < 1568081642 962254 :imode!~imode@unaffiliated/imode QUIT :Ping timeout: 246 seconds < 1568081812 128951 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Should probably have a look at what this language is all about in the first place. Does it have anything to do with the spiky mammals or is that just a name? < 1568081822 219825 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :name < 1568081962 947665 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Aw. They're pretty cute. < 1568081973 850503 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :fizzie: http://sif.lesidhetree.com/sara/echidna/echidna_v0_02a2.pdf > 1568082127 755993 PRIVMSG #esoteric :14[[07NotBrainFuck14]]4 N10 02https://esolangs.org/w/index.php?oldid=66054 5* 03Spleeshmicannon 5* (+1325) 10Created page with "'''NotBrainFuck''' (or not brainfuck) is an extension of brainfuck by Jack Benson ([[User:Spleeshmicannon|Spleeshmicannon]]). It adds 8 new symbols to make it easier for begin..." < 1568082404 362806 :xkapastel!uid17782@gateway/web/irccloud.com/x-ndakgrwgobuucgrz QUIT :Quit: Connection closed for inactivity < 1568082870 131304 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :fizzie: Echidna was originally designed to be run on an Arduino, but memory requirements eventually made this unfeasable, with the Arduino version being shelved. < 1568082926 30486 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :I then modified the PC version to use far more memory. < 1568083017 664375 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :eventually, i figured out how to load the file into ram and run the program from there < 1568083070 189444 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :there are 20 Ops, from G - Z < 1568083164 928975 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :the interpreter has problems with the if/while loops on while mode that i am unsure how to debug < 1568083351 467038 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :at the moment, i feel it's lacking in ops, and i think i can be willing to have ops 0-9 and A-F if needed (i wanted to not use those) < 1568083455 172785 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :any questions? < 1568083683 72280 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Not at this point, because I have to sleep instead. But I like the L operation, it kind of reminds me of INTERCAL's "select" operator. < 1568083722 819714 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :Finally! Someone who likes L! < 1568084228 482375 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :kmc: even though it doesn't have "pragma", how do you feel about Echidna? < 1568084261 663205 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :(not sure if you are still active) < 1568084332 517170 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :i don't know anything about echidna < 1568084361 134695 :Hooloovo0!Hooloovoo@sorunome.de PRIVMSG #esoteric :wait what does arg1<=1 do in L? < 1568084365 827269 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :read whan i told fuzzie < 1568084384 463503 :Hooloovo0!Hooloovoo@sorunome.de PRIVMSG #esoteric :http://sif.lesidhetree.com/sara/echidna/echidna_v0_02a2.pdf took me a while to find it < 1568084396 142088 :Hooloovo0!Hooloovoo@sorunome.de PRIVMSG #esoteric :might want to put that on the esolang wiki or the github < 1568084431 889366 :Hooloovo0!Hooloovoo@sorunome.de PRIVMSG #esoteric :(was just in scrollback but /me never reads that far < 1568084499 193020 :Hooloovo0!Hooloovoo@sorunome.de PRIVMSG #esoteric :oh <<= < 1568086813 868205 :imode!~imode@unaffiliated/imode JOIN :#esoteric < 1568088416 979145 :tromp!~tromp@2a02:a210:1585:3200:19c1:e4fc:a6e0:6ddd JOIN :#esoteric < 1568088678 18557 :tromp!~tromp@2a02:a210:1585:3200:19c1:e4fc:a6e0:6ddd QUIT :Ping timeout: 246 seconds < 1568088860 67542 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1568088903 766434 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric : do i need to have the license in every file or just in the LICENSE file? ← I don't know whether or not it's legally necessary to put the license in every file, but a) it doesn't hurt and b) there are a lot of good practical reasons to do it that way < 1568088927 210778 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :if you're using a license written professionally, it'll normally have an appendix giving approved wording to place in every file (which is shorter than the license itself) < 1568090237 884921 :ais523!~ais523@unaffiliated/ais523 QUIT :Quit: quit < 1568092509 240644 :MDude!AdiIRC@c-174-55-101-236.hsd1.pa.comcast.net JOIN :#esoteric < 1568094894 540438 :tromp!~tromp@2a02:a210:1585:3200:19c1:e4fc:a6e0:6ddd JOIN :#esoteric < 1568095178 519843 :tromp!~tromp@2a02:a210:1585:3200:19c1:e4fc:a6e0:6ddd QUIT :Ping timeout: 276 seconds < 1568097116 980775 :tromp!~tromp@2a02:a210:1585:3200:19c1:e4fc:a6e0:6ddd JOIN :#esoteric < 1568101395 967700 :Frater_EST!~adrianbib@wsip-68-15-198-210.ok.ok.cox.net JOIN :#esoteric < 1568102447 3328 :cpressey!~cpressey@5.133.242.4 JOIN :#esoteric < 1568102930 890679 :imode!~imode@unaffiliated/imode QUIT :Ping timeout: 240 seconds < 1568103331 243750 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1568104852 920932 :grumble!~grumble@freenode/staff/grumble QUIT :Ping timeout: 622 seconds < 1568104925 516212 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 JOIN :#esoteric < 1568104996 222500 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :Lykiana: https://esolangs.org/logs/2019-09-07.html#lrh < 1568105011 501361 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :about global variables < 1568105048 4005 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :`5 w < 1568105054 582446 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :1/1:mother//A mother is a person who practices mothology. \ dc//dc is short for "dump core". (try it out yourself: dc -e '[') \ wat//ኢትዮጵያ ውስጥ የሚሰራ የምግብ አይነት ሲሆን፣ የሚሰራውም ከጤፍ ነው። \ atwp//According to Wikipedia, ATWP means "Air Transport White Paper". \ mussel//Mussels are boily's natural enemies. Fortunately he runs faster than them. < 1568105074 715601 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :Lykaina: ^ < 1568105087 141999 :myname!~myname@ks300980.kimsufi.com PRIVMSG #esoteric :i agree on wat < 1568105115 201397 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :iirc globals.h was included to two C source files < 1568105289 488762 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I should figure out a way to make global variables work across .so reloads. < 1568105528 733264 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 QUIT :Ping timeout: 245 seconds < 1568105601 81206 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :ais523: whether there's a separate long license and you only include a short text and reference to it, or whether there's a short license that you include in full, also seems to be a matter of taste between licenses. < 1568105692 561192 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 JOIN :#esoteric < 1568105698 939038 :tromp!~tromp@2a02:a210:1585:3200:19c1:e4fc:a6e0:6ddd QUIT :Remote host closed the connection < 1568105751 859324 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :The X11 license, most BSD-like licenses, and the boost license are short enough, and at least the FAQ https://www.boost.org/users/license.html considers this an advantage. I personally don't like the boost license though because it doesn't mention a time limit or geograhpical area (eg. "worldwide perpetual"). < 1568105897 633617 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :Whereas the apache license, which is pretty similar to the boost license, is too long to embed into every source file, so for that, they use just a short version with reference in source files. < 1568105947 254324 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :In effect, the short licenses don't tend to work, because many project derive parts from code with various other licenses, so they have to include a separate notice anyway to tell which part comes with what license. < 1568105978 469040 :myname!~myname@ks300980.kimsufi.com PRIVMSG #esoteric :the wtfpl works < 1568106037 590489 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :This is especially typical for big amalgam projects like ffmpeg and mplayer, each of which embed like a hundred codecs and a large part of each other (it's a miracle that they haven't yet blown up exponentially by recursively embedding each other). < 1568106178 852935 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :Similarly the creative commons licenses are also too long to embed. < 1568106362 470461 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :The MIT license requires that you include it, so all the projects that have only a one-line statement to the effect of "License: MIT" aren't actually under the MIT license. < 1568106380 572985 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :And y'know what? This matters almost not at all < 1568106529 731677 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :cpressey: sure, even the short disclaimers are always at least a few lines long, except for the ones that are equivalent to the WTFPL, such as the sqlite non-license. < 1568106609 186174 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I like the irony though. < 1568106611 171968 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :The short form reference to the apache license is 15 lines long < 1568106769 554891 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :cpresseyllo < 1568106778 637622 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :What's the Prompt thing you were talking about the other day? < 1568106830 288273 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :But that's still shorter than the 24 long line boost license < 1568106855 446285 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :shachaf: https://hackage.haskell.org/package/MonadPrompt-1.0.0.5/docs/Control-Monad-Prompt.html < 1568106871 327051 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :cpressey: It's not related to delimited continuations < 1568106883 414750 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :ACTION frowns < 1568106905 296031 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :shachaf: It's not related to delimited continuations < 1568106947 151533 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Perhaps I should say, it's not *obviously* related to delimited continuations < 1568107080 234484 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Oh, that thing. < 1568107174 493370 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It's "just" the free monad, right? < 1568107182 915556 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Or the free monad of Coyoneda of f. < 1568107235 46092 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :shachaf: cpressey: yeah the connection to free monads uses a fairly odd functor: http://paste.debian.net/1099707/ < 1568107318 766054 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :(maybe you can make more sense of that than I can) < 1568107521 507250 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Yes, that functor is sometimes called Coyoneda. < 1568107530 752909 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It's the free functor on a type constructor, if that means something to you. < 1568107544 15228 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Not really, sorry < 1568107593 412384 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :OK. It's not that useful a statement anyway. < 1568107625 512820 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :If my computer wasn't presently so slow I could type a better explanation. One moment. < 1568107628 262289 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :scary < 1568107648 56698 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :ACTION wakes < 1568107651 647090 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :brb < 1568107719 465702 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Hmm, I'll just try anyway. < 1568107772 235601 :tromp!~tromp@ip-213-127-58-74.ip.prioritytelecom.net JOIN :#esoteric < 1568107790 3440 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :Lykania: I haven't yet looked at how you're now reading the source code into memory and how you use it, or changing the data memory to 16-bit, so I can't comment on that yet < 1568107842 461470 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :i am doing the global variable thing now < 1568107851 563238 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :cpressey: I don't remember how much Haskell you know. < 1568107884 470779 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :The type is this: data Coyoneda f a = forall x. Coyoneda (f x) (x -> a) < 1568107903 725959 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :and using the kind of header guards that go on top and bottom of every header file < 1568108167 207453 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It's about fmap fusion, or something. < 1568108187 606657 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It turns (fmap f . fmap g . fmap h) into fmap (f . g . h) < 1568108218 1847 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :back < 1568108347 958539 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :i meant that, at the moment, Echidna uses the global variable suggestion and the kind of header guards that gow on top an bottom of each header file. < 1568108962 299211 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :README.md pushed > 1568109450 392450 PRIVMSG #esoteric :14[[07Echidna14]]4 10 02https://esolangs.org/w/index.php?diff=66055&oldid=66042 5* 03Lykaina 5* (+434) 10Updating the info to match the Github README. < 1568110204 422193 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :README.md pushed again < 1568110247 629302 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :shachaf: I don't really know Haskell, in the sense that I've never built up good intuitions about anything in its type system. < 1568110332 710749 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I still don't really know what a monad is. < 1568110348 704100 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :`? monad < 1568110350 40141 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :Monads are just monoids in the category of endofunctors. < 1568110350 359895 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :`? burrito < 1568110351 521363 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :Burritos are like Monads, according to Joe. See https://byorgey.wordpress.com/2009/01/12/abstraction-intuition-and-the-monad-tutorial-fallacy/ < 1568110363 881203 :Taneb!~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0 PRIVMSG #esoteric :`quote burrito < 1568110364 813786 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :875) btw, I finally discovered what a burrito was, recently they're kind of nice to eat but don't really resemble monads \ 908) well what is time imo: an illusion [...] elliott, I think it's more like a burrito If you have too much of time you get ill But damn it felt good You only get out what you put in, unless your time was made by someone else, which isn't as fun 1568110814 818402 PRIVMSG #esoteric :14[[07NotBrainFuck14]]4 M10 02https://esolangs.org/w/index.php?diff=66056&oldid=66054 5* 03A 5* (-110) 10Here you go < 1568110828 863493 :myname!~myname@ks300980.kimsufi.com PRIVMSG #esoteric :okay < 1568110834 899529 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :and of course some programs are easier to write if you do use the ST monad, to be able to prove that a function is pure even if it uses certain impure internals < 1568110843 732200 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :(as in mutable arrays) < 1568110848 424473 :Taneb!~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0 PRIVMSG #esoteric :(I have a copy of Cakes, Custard and Category Theory but I haven't read it yet) < 1568110858 434346 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :wob_jonas: You don't *have* to use interactive IO to write, say, a compiler < 1568110871 101491 :myname!~myname@ks300980.kimsufi.com PRIVMSG #esoteric :it's not that deep a read < 1568110896 999028 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :cpressey: sure you do, at least if it's a compiler for a language where files can include other files and you don't know which files in advance < 1568110900 252989 :Taneb!~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0 PRIVMSG #esoteric :Yes but I keep wanting to follow along with the exercises and that means going to the shop and buying ingredients < 1568110926 283678 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :that includes not only preprocessor includes, but indirect linker dependencies < 1568110989 992661 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :wob_jonas: So your argument is that you have to understand a dozen common monad transformers in order to program in Haskell because the compilers you write in Haskell are necessarily ones with #include statements < 1568111012 830809 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :cpressey: and if you have a compiler where you aren't sure that it can't be very slow (or infinitely slow) for some input files, then it may be better to write error/warning messages early, before you finish compiling everything < 1568111046 40562 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :cpressey: no, that's not my argument. my argument is that you don't always write compilers, so it's worth to understand at least how to use IO interactively; < 1568111074 169302 :grumble!~grumble@freenode/staff/grumble JOIN :#esoteric < 1568111080 214992 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :and that I want to use mutable arrays for efficiently, for which it's worth to understand ST to be able to use them inside pure functions in a way that the compiler can prove safe. < 1568111113 300073 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :you probably aren't required to use the other monads or monad transformers directly. < 1568111114 238001 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :wob_jonas: Right, well as I said, I *don't* understand them. It doesn't stick. Should I stop programming in Haskell? < 1568111124 581310 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :obviously you'll use lists, but not specifically their monad instance. < 1568111154 242125 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :cpressey: no, because if you stop then you'll probably never understand them, unless you program something very similar to haskell instead < 1568111181 222501 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :wob_jonas: It's been 10 years. I don't have any reason to assume I'll ever understand them. < 1568111205 223038 :Taneb!~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0 PRIVMSG #esoteric :Do you need to understand them to use them? < 1568111241 68252 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :cpressey: how about the special case of IO where you glue a >>= onto every IO primitive (except the ones that terminate the program), but don't use >>= with a composed value on the left? < 1568111262 591634 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :More like 12 years: I wrote this in 2007: https://github.com/catseye/Hev/blob/master/src/Hev.hs < 1568111278 352094 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Oh, apparently I started it in 2005, so: 14 years. < 1568111325 673160 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Doesn't use a single monad, except in the driver code that reads cmdline arguments and the input file and outputs the result. < 1568111414 689816 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :cpressey: have you written code in non-haskell languages that does interactive IO in an event-driven continuation-passings style where you write explicit continuations to run when an event fires, instead of language support for threads with blocking IO? < 1568111481 593454 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :because as far as I understand, if you do that style consistently so that you do it for every IO operation, even for ones that don't block or the ones that only count as IO in haskell (i.e. accessing mutable state), you get IO monad with >>= only on the right of primitives < 1568111504 573885 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :at least that's how I understand IO, but it could be wrong, or it could be just one of the many food metaphors for IO < 1568111524 908040 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :cpressey: I think Haskell people typically say "monoid in the category of endofunctors" as a joke to try to make things complicated? < 1568111545 529447 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It's not very complicated but also not very helpful. < 1568111547 462345 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :maybe someone who understands haskell a bit more can tell me whether that's a reasonable way to think of it < 1568111559 290833 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Anyway this is irrelevant for Coyoneda, which is a pretty simple type. < 1568111564 93828 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :shachaf: yes, I think that's intended as a joke < 1568111568 985678 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :lol < 1568111580 613073 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :"pretty simple type" < 1568111588 641863 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :wob_jonas: Yes, that's pretty reasonable. < 1568111609 381276 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I once wrote this: https://stackoverflow.com/a/13538351 < 1568111759 819713 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :shachaf: oh wow, that mentions that IO mechanism that I've only seen in that one crazy esolang < 1568111782 830729 :Taneb!~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0 PRIVMSG #esoteric :wob_jonas: is that crazy esolang called Haskell? < 1568111829 507214 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :https://esolangs.org/wiki/Lazy_K < 1568111842 984795 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :Taneb: no, Haskell has a different IO mechanism < 1568111863 584577 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :which that writeup also mentions < 1568111872 422904 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :(what a surprise) < 1568111955 616149 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :shachaf: ok, but that doesn't seem to explain how you can write IO as an abstraction of ContIO. is there an explanation for that somewhere? < 1568111979 187772 :Taneb!~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0 PRIVMSG #esoteric :wob_jonas: Lazy K has the same IO mechanism as Real Fast Nora's Hair Salon 3: Shear Disaster Download < 1568112031 633927 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :Taneb: ok, then it's two crazy esolangs < 1568112034 959360 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru JOIN :#esoteric < 1568112040 626834 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :fair enough < 1568112046 259007 :Taneb!~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0 PRIVMSG #esoteric :And it's fairly similar to Binary Lambda Calculus < 1568112058 49707 :Taneb!~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0 PRIVMSG #esoteric :(which uses strings of bits, I believe, rather than characters or codepoints) < 1568112115 676546 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :ok, I think if I saw that esolang, it didn't stick in my head < 1568112136 149173 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :or in my hair or whatever < 1568112161 689183 :Taneb!~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0 PRIVMSG #esoteric :Yeah, it has a hard to remember name < 1568112211 469972 :Taneb!~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0 PRIVMSG #esoteric :And it's not particularly original < 1568112432 310092 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :wob_jonas: explicit continuations on event handlers sounds like Javascript with Promises. > 1568112475 150504 PRIVMSG #esoteric :14[[07Vafix14]]4 N10 02https://esolangs.org/w/index.php?oldid=66057 5* 03A 5* (+205) 10New unimplemented thought experiment < 1568112744 266083 :Taneb!~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0 PRIVMSG #esoteric :In a programming lanugage strictly following the actor model, how is input (e.g. command line input, key presses) handled? < 1568112779 975179 :Taneb!~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0 PRIVMSG #esoteric :Some sort of special actor? < 1568112781 783220 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :I don't know what the actor model is < 1568112801 615618 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :but sure, if it's foo-oriented then keypresses are probably a kind of foo < 1568112805 772894 :Taneb!~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0 PRIVMSG #esoteric :https://en.wikipedia.org/wiki/Actor_model < 1568112830 797427 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :wob_jonas: What do you mean? < 1568112877 815994 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :Taneb: is that like holywood actors who must look as beautiful as a fashion model all the time? < 1568112900 499399 :Taneb!~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0 PRIVMSG #esoteric :wob_jonas: I think it's more like models who gain popularity and want more money sometimes start acting too < 1568112901 668135 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Taneb: I can put it this way: if I were designing an actor language, I'd make the source of keystrokes an actor < 1568112929 773479 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :That said, in Erlang, iirc,it's not like that, you just call io:readln() like everyone else < 1568113446 245597 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I can see having to look at all I/O like you're writing Promises in Javascript (I guess) but it escapes me why anyone would want to model *non*-I/O things like that. < 1568113552 705401 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Not too long ago, I saw a unification algorithm written in Haskell, built with a state monad. < 1568113555 42598 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :whyyyyyyyyyyyy < 1568113566 476694 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :cpressey: that's actually two steps. firstly they model not just interactive blocking IO, but every IO, even the ones that can't block, as the same sort of IO action; < 1568113575 945916 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :then they model access to mutable state the same way < 1568113604 939466 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :and inter-thread synchronization as well < 1568113655 157426 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :but I think the reason is always that they want the language to be pure functional < 1568113681 430181 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :with every function being deterministic and side-effectless < 1568113715 557537 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :A language that's pure functional, where every library has an interface that mocks an effectful language. Again I ask: whyyyyyyy < 1568113754 727124 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :it would just be a different language without. if you don't like it, use ocaml or rust or something. < 1568113768 26192 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :and that applies to me, I don't use haskell for anything anymore < 1568113780 438065 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :(well, except some lambdabot one-liners or something) < 1568113820 479602 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I do like it, though, because it's essentially the only popular language that actually is purely functional. < 1568113857 214905 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :but if you do want a purely functional language, then you need to have those abstractions over everything that isn't purely functional < 1568113859 933185 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :If users of the only popular language that's purely functional write their algorithms in terms of state mutation, maybe that means those algorithms are best expressed as state mutation. < 1568113904 426077 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :shachaf: at least if you care about real-world efficiency < 1568113941 720767 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :or interaction with anything outside the program < 1568114128 255512 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Ping timeout: 245 seconds < 1568114970 504298 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Well, I don't, so, until a better language comes along, I'll just learn to live with the alienation, I suppose. < 1568115268 373364 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :you could just use a language that isn't pure functional, but use the pure functional subset for much of your code < 1568115320 315035 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I do that sometimes with Scheme. < 1568115350 357194 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :do you do it with ocaml? < 1568115371 298745 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I don't write OCaml. < 1568115598 251078 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Well, at least I understand continuations. I think. < 1568115605 135495 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :ACTION goes for a walk < 1568115615 462413 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :whoa, more schema incompatibility < 1568115625 65711 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :only forwards, not backwards < 1568115634 544617 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :or wait < 1568115644 959591 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :which one is backwards compatibility and which one is forward compatibility? < 1568115652 598371 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :I think it's only backwards, not forwards < 1568115788 996783 :Frater_EST!~adrianbib@wsip-68-15-198-210.ok.ok.cox.net QUIT :Ping timeout: 246 seconds < 1568116229 733749 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :hmm no > 1568117585 673372 PRIVMSG #esoteric :14[[07Vafix14]]4 M10 02https://esolangs.org/w/index.php?diff=66058&oldid=66057 5* 03A 5* (+659) 10 < 1568117784 899449 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :On a positive note, a nonstandard formulation of function composition that I came up with for an experimental concatenative language I'm working on, does appear to be associative and have an identity. So I'll be able to keep working on that. < 1568117851 633688 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :cpressey: that sounds scary < 1568117947 971507 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :but then, I guess, any monoid operation can be thought of as function composition of the bound products with elements of the monoid < 1568117968 344610 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :also known as "every group is a permutation group" > 1568118021 372244 PRIVMSG #esoteric :14[[07Vafix14]]4 M10 02https://esolangs.org/w/index.php?diff=66059&oldid=66058 5* 03A 5* (+1103) 10 > 1568118508 449967 PRIVMSG #esoteric :14[[07Vafix14]]4 M10 02https://esolangs.org/w/index.php?diff=66060&oldid=66059 5* 03A 5* (+1031) 10/* Execution scheme */ More of the execution < 1568118526 510605 :Frater_EST!~adrianbib@wsip-68-15-198-210.ok.ok.cox.net JOIN :#esoteric > 1568118855 175354 PRIVMSG #esoteric :14[[07Vafix14]]4 M10 02https://esolangs.org/w/index.php?diff=66061&oldid=66060 5* 03A 5* (+585) 10Complete odd process < 1568119015 626061 :grumble!~grumble@freenode/staff/grumble NICK :\emph{grumble} < 1568119077 6780 :FraterEST!~adrianbib@wsip-68-15-198-210.ok.ok.cox.net JOIN :#esoteric < 1568119103 740757 :Frater_EST!~adrianbib@wsip-68-15-198-210.ok.ok.cox.net QUIT :Ping timeout: 268 seconds > 1568119225 271470 PRIVMSG #esoteric :14[[07Vafix14]]4 M10 02https://esolangs.org/w/index.php?diff=66062&oldid=66061 5* 03A 5* (+564) 10 < 1568120230 545083 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I found the unification algorithm I mentioned above, if anyone is interested: https://github.com/parsonsmatt/unification/blob/master/Unification.pdf < 1568121410 981772 :atslash!~atslash@static.231.107.9.5.clients.your-server.de JOIN :#esoteric > 1568121414 106049 PRIVMSG #esoteric :14[[07Vafix14]]4 M10 02https://esolangs.org/w/index.php?diff=66063&oldid=66062 5* 03A 5* (+370) 10/* Vafix in comparision with a normal infix */ < 1568122321 304738 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :gtg wake < 1568122400 213821 :Lykaina!~lyka@unaffiliated/schrodingerscat QUIT :Quit: leaving < 1568123574 905449 :sprocklem!~sprocklem@unaffiliated/sprocklem QUIT :Ping timeout: 258 seconds < 1568124428 539415 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 QUIT :Ping timeout: 276 seconds < 1568124979 972762 :Lykaina!~lyka@unaffiliated/schrodingerscat JOIN :#esoteric > 1568125571 873229 PRIVMSG #esoteric :14[[07Encapsulation14]]4 10 02https://esolangs.org/w/index.php?diff=66064&oldid=66039 5* 03A 5* (+100) 10/* Computational class */ < 1568125583 798270 :rain2!~My_user_n@unaffiliated/rain1 JOIN :#esoteric < 1568125693 406218 :rain1!~My_user_n@unaffiliated/rain1 QUIT :Ping timeout: 244 seconds < 1568126127 485804 :sebbu!~sebbu@unaffiliated/sebbu QUIT :Ping timeout: 244 seconds < 1568126185 654077 :sebbu!~sebbu@unaffiliated/sebbu JOIN :#esoteric < 1568127102 681163 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :hi < 1568127138 930377 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :just seet up email filters for the annoying github alerts i actually want > 1568127374 876156 PRIVMSG #esoteric :14[[07Vafix14]]4 M10 02https://esolangs.org/w/index.php?diff=66065&oldid=66063 5* 03A 5* (+32) 10/* Vafix in comparision with a normal infix */ > 1568127509 130175 PRIVMSG #esoteric :14[[07Vafix14]]4 M10 02https://esolangs.org/w/index.php?diff=66066&oldid=66065 5* 03A 5* (+358) 10/* Parentheses and rules */ > 1568127521 860244 PRIVMSG #esoteric :14[[07Pxem14]]4 10 02https://esolangs.org/w/index.php?diff=66067&oldid=65944 5* 03YamTokTpaFa 5* (+96) 10/* Examples */ > 1568127609 562452 PRIVMSG #esoteric :14[[07Vafix14]]4 M10 02https://esolangs.org/w/index.php?diff=66068&oldid=66066 5* 03A 5* (+165) 10 < 1568128016 564968 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 QUIT :Ping timeout: 276 seconds < 1568128327 925470 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 JOIN :#esoteric < 1568128357 486891 :cpressey!~cpressey@5.133.242.4 QUIT :Quit: A la prochaine. > 1568128873 396644 PRIVMSG #esoteric :14[[07Talk:Pxem14]]4 10 02https://esolangs.org/w/index.php?diff=66069&oldid=61433 5* 03YamTokTpaFa 5* (+535) 10/* About unclear conditional looping instructions. */ new section < 1568129343 385886 :FraterEST!~adrianbib@wsip-68-15-198-210.ok.ok.cox.net PART :#esoteric < 1568130367 165077 :tromp!~tromp@ip-213-127-58-74.ip.prioritytelecom.net QUIT :Remote host closed the connection < 1568130402 1038 :tromp!~tromp@2a02:a210:1585:3200:5cfd:ddf:4d65:900c JOIN :#esoteric < 1568130499 796562 :craigo!~craigo@144.136.206.168 QUIT :Ping timeout: 268 seconds < 1568130810 567492 :andrewg12!5d565769@93-86-87-105.dynamic.isp.telekom.rs JOIN :#esoteric < 1568130817 631348 :andrewg12!5d565769@93-86-87-105.dynamic.isp.telekom.rs PRIVMSG #esoteric :h < 1568131209 980988 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :hi andrewg12 < 1568131258 245080 :andrewg12!5d565769@93-86-87-105.dynamic.isp.telekom.rs PRIVMSG #esoteric :sup < 1568131370 471869 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :so used to using linux with it's multiple desktops that when i use windows it gets harder < 1568131406 296466 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :keep doing ctrl-alt-left < 1568131427 590452 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :which is something different in windows < 1568131452 597478 :andrewg12!5d565769@93-86-87-105.dynamic.isp.telekom.rs PRIVMSG #esoteric :i dunno < 1568131455 534946 :andrewg12!5d565769@93-86-87-105.dynamic.isp.telekom.rs PRIVMSG #esoteric :i prefer windows < 1568131477 8315 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :i prefer linux < 1568131565 713035 :andrewg12!5d565769@93-86-87-105.dynamic.isp.telekom.rs PRIVMSG #esoteric :o < 1568131909 356560 :int-e!~noone@int-e.eu PRIVMSG #esoteric :sigh: https://devtalk.nvidia.com/default/topic/1052743/linux/what-is-nv_queue-and-why-is-it-the-top-process-on-my-system-/ (solution: don't look at top) < 1568133403 7713 :FreeFull!~freefull@defocus/sausage-lover JOIN :#esoteric < 1568134080 360834 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Another bad idea: watching open network connections while firefox is open with nothing but a blank page. Wtf are you doing, Firefox? < 1568134227 79105 :int-e!~noone@int-e.eu PRIVMSG #esoteric :This may be too much to expect, but why can't we make a browser that, when starting up on a blank page, makes zero network connections? < 1568134265 455300 :int-e!~noone@int-e.eu PRIVMSG #esoteric :zzo38: don't answer that. It's a rhetorical question. > 1568134412 162742 PRIVMSG #esoteric :14[[07Arch14]]4 10 02https://esolangs.org/w/index.php?diff=66070&oldid=64661 5* 03Areallycoolusername 5* (+0) 10/* Pop */ > 1568134423 673219 PRIVMSG #esoteric :14[[07Arch14]]4 10 02https://esolangs.org/w/index.php?diff=66071&oldid=66070 5* 03Areallycoolusername 5* (+0) 10/* Point */ > 1568134437 835427 PRIVMSG #esoteric :14[[07Arch14]]4 10 02https://esolangs.org/w/index.php?diff=66072&oldid=66071 5* 03Areallycoolusername 5* (+0) 10/* Cells & Split */ > 1568134492 375966 PRIVMSG #esoteric :14[[07Arch14]]4 10 02https://esolangs.org/w/index.php?diff=66073&oldid=66072 5* 03Areallycoolusername 5* (-1) 10/* Properties */ > 1568134730 531556 PRIVMSG #esoteric :14[[07///14]]4 10 02https://esolangs.org/w/index.php?diff=66074&oldid=65775 5* 03CarlosLuna 5* (+1469) 10Adding the "Unary to binary conversion" example. < 1568135167 212852 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1568136077 245007 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :int-e: I had a somewhat similar feeling as the nv_queue for kidle_inject. < 1568136577 910116 :andrewg12!5d565769@93-86-87-105.dynamic.isp.telekom.rs PRIVMSG #esoteric :hello < 1568136585 753897 :APic!apic@apic.name PRIVMSG #esoteric :Hi < 1568136655 789962 :andrewg12!5d565769@93-86-87-105.dynamic.isp.telekom.rs PRIVMSG #esoteric :what about the language or < 1568136748 52403 :APic!apic@apic.name PRIVMSG #esoteric :The Languages. < 1568137028 543514 :int-e!~noone@int-e.eu PRIVMSG #esoteric :meh: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842292 < 1568137062 419244 :int-e!~noone@int-e.eu PRIVMSG #esoteric :anyway... the most suspicious looking connection was the captive portal detection < 1568137190 822697 :int-e!~noone@int-e.eu PRIVMSG #esoteric :From here I get detectportal.firefox.com = CNAME detectportal.prod.mozaws.net = CNAME detectportal.firefox.com-v2.edgesuite.net = CNAME a1089.dscd.akamai.net = 46.125.232.9 or 46.125.232.24; these resolve back to 046125232009.public.t-mobile.at and 046125232024.public.t-mobile.at respectively. < 1568137244 726993 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Which is not the kind of host name I wanted to see my browser connect to unasked. < 1568137278 887542 :imode!~imode@unaffiliated/imode JOIN :#esoteric < 1568137922 878581 :imode!~imode@unaffiliated/imode QUIT :Ping timeout: 240 seconds < 1568138065 78159 :int-e!~noone@int-e.eu PRIVMSG #esoteric :And wtf is push.services.mozilla.com good for, aside from giving Mozilla information on how long people keep their browsers open? < 1568138103 348167 :andrewg12!5d565769@93-86-87-105.dynamic.isp.telekom.rs PRIVMSG #esoteric :nothing < 1568138107 87424 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(It can be disabled. But this is the kind of thing I want to be opt-in, not opt-out. At which point it's clear that software developers shouldn't bother with it in the first place.) < 1568138426 917966 :Sgeo__!~Sgeo@ool-18b98995.dyn.optonline.net JOIN :#esoteric < 1568138639 798698 :Sgeo_!~Sgeo@ool-18b98995.dyn.optonline.net QUIT :Ping timeout: 268 seconds < 1568139412 130028 :int-e!~noone@int-e.eu PRIVMSG #esoteric :ow, libnss is big... I guess I don't want to rebuild that myself just to see what's inside those https connections :/ < 1568139419 910105 :imode!~imode@unaffiliated/imode JOIN :#esoteric > 1568140710 903582 PRIVMSG #esoteric :14[[07Special:Log/newusers14]]4 create10 02 5* 03Visual-mov 5* 10New user account < 1568141062 556781 :andrewg12!5d565769@93-86-87-105.dynamic.isp.telekom.rs QUIT :Remote host closed the connection < 1568141177 902061 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :int-e: Is that the thing the Web Push API on Firefox uses? < 1568141257 216314 :int-e!~noone@int-e.eu PRIVMSG #esoteric :fizzie: Shouldn't that be up to the particular website? < 1568141292 530957 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I don't know, that's why I asked. < 1568141293 639874 :int-e!~noone@int-e.eu PRIVMSG #esoteric :fizzie: I'd think this is a particular push service just for firefox itself, for bs like studies. < 1568141308 938410 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I see. < 1568141323 252517 :int-e!~noone@int-e.eu PRIVMSG #esoteric :But it's a guess; I have not done any research on it. < 1568141323 318333 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Presumably also for pushing updates to their tracking blacklists and that sort of stuff. < 1568141344 30960 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :https://wiki.mozilla.org/CloudServices is "delightedly whimsical". < 1568141381 338658 :int-e!~noone@int-e.eu PRIVMSG #esoteric :"Tracking Protection" ... I almost laughed. < 1568141422 281672 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :int-e: What do you think of this Coyoneda type? < 1568141434 135421 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Other than "a fairly odd functor". < 1568141468 942360 :int-e!~noone@int-e.eu PRIVMSG #esoteric :shachaf: nothing < 1568141496 162382 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :That makes sense. < 1568141521 868942 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I think it's a neat trick that comes up in multiple contexts, not just this Prompt monad. < 1568141563 379569 :int-e!~noone@int-e.eu PRIVMSG #esoteric :I tend to think of that stuff very concretely, in terms of continuations. < 1568141631 730908 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :(Obviously it's not a useful trick because it's just Haskell nonsense.) < 1568141656 103674 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :(Or maybe it is useful? I'm skeptical.) < 1568141689 578322 :int-e!~noone@int-e.eu PRIVMSG #esoteric :I also wrote "Codensity transformation" the other day but when I did it, I did a CPS transformation with several continuations. < 1568141858 744203 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Well, the Codensity transformation is the same as the CPS transformation. < 1568141871 337797 :int-e!~noone@int-e.eu PRIVMSG #esoteric :I wasn't even conscious of the fact that (a -> r, b -> r) is isomorphic to Either a b -> r (ignoring bottoms) < 1568141887 936203 :int-e!~noone@int-e.eu PRIVMSG #esoteric :shachaf: Yeah but the latter term makes sense! < 1568141943 993374 :int-e!~noone@int-e.eu PRIVMSG #esoteric :It's meaningful, it can be decomposed into subconcepts. "Codensity" is just nonsense. < 1568142088 180484 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Unfortunately the nonsense has taken over the Haskell community. :P < 1568142485 824032 :Lykaina!~lyka@unaffiliated/schrodingerscat QUIT :Quit: leaving < 1568142611 457729 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Read error: Connection reset by peer < 1568143348 403851 :b_jonas!~x@catv-176-63-24-243.catv.broadband.hu JOIN :#esoteric < 1568143488 571855 :b_jonas!~x@catv-176-63-24-243.catv.broadband.hu PRIVMSG #esoteric :Lykania: I recommend https://virtuawin.sourceforge.io/ , a software that lets you use virtual desktops in windows and set up your favourite keyboard shortcuts < 1568143654 906704 :b_jonas!~x@catv-176-63-24-243.catv.broadband.hu PRIVMSG #esoteric :int-e: re browser and connections, https://twitter.com/jonathansampson/status/1166005813548396549 , also try the debian version, it does 20% less connections because debian patched it so that the favicons for the search websites in the search bar menu are installed with the browser rather than downloaded < 1568143819 394398 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1568144005 53555 :int-e!~noone@int-e.eu PRIVMSG #esoteric :fizzie: you were right, this is connected to the service worker push api. < 1568144039 224951 :int-e!~noone@int-e.eu PRIVMSG #esoteric :b_jonas: I'm using the debian version already. < 1568144112 256186 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Oh well. Service workers are another thing that has no right of existing in the first place. < 1568144167 797603 :int-e!~noone@int-e.eu PRIVMSG #esoteric :I guess you could set up your own personal push service and use that to alleviate the tracking concerns. < 1568144339 402460 :ArthurStrong!~ArthurStr@slow.wreckage.volia.net JOIN :#esoteric < 1568144389 795033 :b_jonas!~x@catv-176-63-24-243.catv.broadband.hu PRIVMSG #esoteric :int-e: ok, then imagine that backwards. be glad you're not using the vanilla version, because that does 20% more connections. < 1568144657 828993 :b_jonas!~x@catv-176-63-24-243.catv.broadband.hu PRIVMSG #esoteric :the tweet I linked to measures the windows version < 1568145047 860590 :int-e!~noone@int-e.eu PRIVMSG #esoteric :b_jonas: reading your thread. "[...] is a feature that allows Mozilla to change the default value of a preference for a targeted set of users [...]" is so ominous. < 1568145162 162945 :b_jonas!~x@catv-176-63-24-243.catv.broadband.hu PRIVMSG #esoteric :int-e: it's not my thread < 1568145262 490216 :int-e!~noone@int-e.eu PRIVMSG #esoteric :ah. okay, then the thread you linked to (the Firefox subthread in particular.) < 1568145422 180991 :int-e!~noone@int-e.eu PRIVMSG #esoteric :b_jonas: the funny thing about the quote is that its' from Mozilla themselves < 1568145438 125118 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Or maybe it's worrying rather than funny. Let's call it interesting. < 1568145471 108159 :b_jonas!~x@catv-176-63-24-243.catv.broadband.hu PRIVMSG #esoteric :int-e: that means sometimes they say things about what their browser is doing. what a weird concept for software < 1568145604 656206 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Ah. "Normandy manages recipes of changes to make to Firefox, including temporary studies, user surveys and controlled rollout of new features." < 1568145620 582061 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Clearly another thing to disable. < 1568145637 453679 :int-e!~noone@int-e.eu PRIVMSG #esoteric :I miss Iceweasel. < 1568145656 557900 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(But maintaining the thing must've been a lot of work.) > 1568145658 719264 PRIVMSG #esoteric :14[[07Echidna14]]4 10 02https://esolangs.org/w/index.php?diff=66075&oldid=66055 5* 03Lykaina 5* (-90) 10Updating documentation. < 1568145661 907527 :b_jonas!~x@catv-176-63-24-243.catv.broadband.hu PRIVMSG #esoteric :int-e: debian's firefox is iceweasel. it's the same thing, they just decided it's safe to use the firefox brand name < 1568145671 436623 :b_jonas!~x@catv-176-63-24-243.catv.broadband.hu PRIVMSG #esoteric :and they do disable some firefox features < 1568145683 438005 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Not enough, apparently. < 1568145695 572998 :b_jonas!~x@catv-176-63-24-243.catv.broadband.hu PRIVMSG #esoteric :yes, admittedly they do have a hard time keeping up with all the stuff that mozilla adds to firefox < 1568145710 962884 :b_jonas!~x@catv-176-63-24-243.catv.broadband.hu PRIVMSG #esoteric :it's not a sw that anyone enjoys to package < 1568145729 324192 :b_jonas!~x@catv-176-63-24-243.catv.broadband.hu PRIVMSG #esoteric :even making it compile is basically impossible < 1568145882 880197 :Lykaina!~lyka@unaffiliated/schrodingerscat JOIN :#esoteric < 1568145927 827722 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Also, how many IDs does Firefox have for a single profile... < 1568145935 675152 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :patched the If/While bug! < 1568145947 86003 :b_jonas!~x@catv-176-63-24-243.catv.broadband.hu PRIVMSG #esoteric :Lykaina: nice < 1568145961 319726 :b_jonas!~x@catv-176-63-24-243.catv.broadband.hu PRIVMSG #esoteric :Lykania: I recommend https://virtuawin.sourceforge.io/ , a software that lets you use virtual desktops in windows and set up your favourite keyboard shortcuts < 1568145978 121407 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :thanks < 1568146095 492547 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Normandy has one. The push service has one. The activity stream of the default new tab page as one. Telemetry has its own id as well, it seems (and why is that even set when Debian disabled the telemetry feature?!). < 1568146102 743531 :int-e!~noone@int-e.eu PRIVMSG #esoteric :I don't like what I see. < 1568146113 381084 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :i rewarded myself by upping the version to 0.03a0 < 1568146386 637066 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :brb < 1568146854 555691 :int-e!~noone@int-e.eu PRIVMSG #esoteric :b_jonas: the thing is, the *right* way to disable all these things is to rip out the code in question, which is a maintenance nightmare, and will upset users who have different ideas about usefulness. < 1568146879 737172 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(For example I'd rip out the Gollum feature ("pocket"), but I imagine some people find it useful.) < 1568146943 80093 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(This association is a bit unfair because the pocket in question was really Frodo's.) < 1568146946 728428 :b_jonas!~x@catv-176-63-24-243.catv.broadband.hu PRIVMSG #esoteric :int-e: like I said, the original codebase is already almost impossible to build. it may be harder to build than glibc, which is impressive. if they manage to successfully rip out the right pieces, it may become slightly less hard to build, so it may be less of a maintenance nightmare than you think. < 1568146984 711863 :b_jonas!~x@catv-176-63-24-243.catv.broadband.hu PRIVMSG #esoteric :int-e: isn't the pocket at the mozilla servers (frodo) and you the user of pocket are on your computer (gollum)? < 1568146992 790171 :b_jonas!~x@catv-176-63-24-243.catv.broadband.hu PRIVMSG #esoteric :but you want the thing in frodo's pocket? < 1568146998 382664 :b_jonas!~x@catv-176-63-24-243.catv.broadband.hu PRIVMSG #esoteric :well not you int-e, but the people who ise it < 1568147036 543929 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :back < 1568147100 127668 :b_jonas!~x@catv-176-63-24-243.catv.broadband.hu PRIVMSG #esoteric :int-e: hmm, how about Han Solo then? https://scifi.stackexchange.com/q/145117/ < 1568147117 617928 :int-e!~noone@int-e.eu PRIVMSG #esoteric :wrong franchise, never cared much about it < 1568147522 871807 :imode!~imode@unaffiliated/imode QUIT :Ping timeout: 240 seconds < 1568147760 302602 :b_jonas!~x@catv-176-63-24-243.catv.broadband.hu PRIVMSG #esoteric :yeah, Gollum is better < 1568147864 155173 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :i need to know: what is my language missing? < 1568147982 295200 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :it's something opvious, i'm just blanking out on it < 1568148034 25702 :b_jonas!~x@catv-176-63-24-243.catv.broadband.hu PRIVMSG #esoteric :Lykaina: nothing, I think it has all the operations you need. although I haven't checked the modified implementation yet. < 1568148147 902522 :b_jonas!~x@catv-176-63-24-243.catv.broadband.hu PRIVMSG #esoteric :really, it has arithmetic, flow control, interactive IO, and now array access too, that's enough for anything reasonable < 1568148168 808963 :b_jonas!~x@catv-176-63-24-243.catv.broadband.hu PRIVMSG #esoteric :the array access part is important, you can't really do without < 1568148199 727593 :b_jonas!~x@catv-176-63-24-243.catv.broadband.hu PRIVMSG #esoteric :if the interpreter works correctly, then it's a fine general purpose language < 1568148223 728251 :b_jonas!~x@catv-176-63-24-243.catv.broadband.hu PRIVMSG #esoteric :a low-level one that you want to compile to and use a generous library of useful functions, but still < 1568148382 958075 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :how do i implement functions? < 1568148405 654256 :b_jonas!~x@catv-176-63-24-243.catv.broadband.hu PRIVMSG #esoteric :Lykaina: do you mean in the interpreter with the existing semantics? < 1568148433 391810 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :i mean in the language < 1568148442 855468 :b_jonas!~x@catv-176-63-24-243.catv.broadband.hu PRIVMSG #esoteric :doesn't it already have functions? < 1568148453 256955 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :oh, right < 1568148460 650159 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :i mean external < 1568148473 813736 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :libraries < 1568148550 99340 :b_jonas!~x@catv-176-63-24-243.catv.broadband.hu PRIVMSG #esoteric :do you mean like calling other functions written in echidna? just concatenate the source codes, plus modify the addresses they use in the data space so they don't clash with each other < 1568148627 780785 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :thinking the difference between c and standard library < 1568148643 590636 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :extensibility < 1568148689 570411 :b_jonas!~x@catv-176-63-24-243.catv.broadband.hu PRIVMSG #esoteric :sure, but echidna already has built-ins for input and output. you can just build functions over that. < 1568148732 438853 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :what about time? < 1568148794 962150 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 QUIT :Ping timeout: 240 seconds < 1568148839 929172 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 JOIN :#esoteric < 1568149098 609498 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :how neeeded is the current 'G'? < 1568149193 583966 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :it's currently printf("%u",mem[addr]) < 1568149225 467951 :crash_n_burn!~master@fsf/member/crash-n-burn JOIN :#esoteric < 1568149983 878169 :b_jonas!~x@catv-176-63-24-243.catv.broadband.hu PRIVMSG #esoteric :I think that's convenient for debugging < 1568150001 478582 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :good point < 1568150009 619081 :b_jonas!~x@catv-176-63-24-243.catv.broadband.hu PRIVMSG #esoteric :though to make it even more convenient, you could make it output a space first if the previous output operation was also this numeral thing < 1568150022 404808 :b_jonas!~x@catv-176-63-24-243.catv.broadband.hu PRIVMSG #esoteric :that's magic, but probably acceptible magic < 1568150026 311358 :b_jonas!~x@catv-176-63-24-243.catv.broadband.hu PRIVMSG #esoteric :as long as it's documented < 1568150082 2495 :FreeFull!~freefull@defocus/sausage-lover QUIT :Ping timeout: 246 seconds < 1568150119 566915 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :would ':' be good for time? < 1568150172 83954 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :cause it's in the middle of every digital clock < 1568150202 979338 :FreeFull!~freefull@defocus/sausage-lover JOIN :#esoteric < 1568150267 509603 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :and i'm thinking about changing M to be more like L < 1568150273 121197 :b_jonas!~x@catv-176-63-24-243.catv.broadband.hu PRIVMSG #esoteric :Lykaina: dunno, if you want a lot of fancy io stuff like that, you could add some dispatch builtin where one argument decides what operation to do, or builtin functions that have the same interface as echidna functions so you call them with N or something, but are not implemented in echidna? < 1568150432 735993 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :that could work < 1568150540 392450 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :an m that operated like l would require a lot of arguments < 1568150600 902501 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :30 < 1568150614 312683 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :it can be done < 1568150635 452557 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :better than that weird logic code < 1568150679 269687 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :well, 6 5-char arguments < 1568151043 876102 :imode!~imode@unaffiliated/imode JOIN :#esoteric < 1568151489 563651 :FreeFull!~freefull@defocus/sausage-lover QUIT : < 1568152177 871904 :b_jonas!~x@catv-176-63-24-243.catv.broadband.hu QUIT :Remote host closed the connection < 1568152359 303367 :crash_n_burn!~master@fsf/member/crash-n-burn QUIT :Quit: Lost terminal < 1568154127 253552 :craigo!~craigo@144.136.206.168 JOIN :#esoteric < 1568154128 305540 :MDude!AdiIRC@c-174-55-101-236.hsd1.pa.comcast.net QUIT :Ping timeout: 245 seconds < 1568154159 478665 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :implemented the new M < 1568154333 216111 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :c = a AND b : M @c @a @b =0000 =0000 =0000 =FFFF < 1568154616 530031 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :so I have a language named SPL, which for control flow has the following primitives: [?;]. `[` is `while(1){`, `?` is `if(pop(&stack)==0){break;}`, `;` is `break;`, and `]` is `}`. this means you can write pretty clean control structures like `if`, `while` loops, etc. < 1568154684 357041 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :I've been wondering what kind of reduction you can make to eliminate `?` and `;`. < 1568154794 724962 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :https://hastebin.com/eqogofoqef some sample programs. if there was a clean way to integrate the conditional check into the `[` instruction, that'd be neat. < 1568154811 625680 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :the latter one is an iterative factorial algorithm. < 1568154936 929211 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :it's a stack based language, and all operations reference the top of the stack. similar to Mouse and stuff. < 1568155008 613131 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :an `if` statement can be built using the following form: ` [? ;]`. you can build if/else if/else chains via passing boolean flags around on the stack. < 1568155055 689833 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :`.` is `drop`, `:` is `pick`, `\` is `roll`, `~` is negate, `=` is equality... etc. < 1568155056 465365 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: .`: not found < 1568155098 763047 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :a `while` statement can be built as a similar form. trying to condense this into just `[` and `]` while preserving the same "structure" is what I'm struggling with. < 1568155331 783372 :imode!~imode@unaffiliated/imode QUIT :Remote host closed the connection < 1568155376 531958 :imode!~imode@unaffiliated/imode JOIN :#esoteric < 1568155428 976740 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :the ability to break arbitrarily is also incredibly useful. < 1568155747 530255 :xkapastel!uid17782@gateway/web/irccloud.com/x-dvtfothrelugbtvk JOIN :#esoteric < 1568156569 388925 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Ping timeout: 244 seconds > 1568156922 535075 PRIVMSG #esoteric :14[[07///14]]4 M10 02https://esolangs.org/w/index.php?diff=66076&oldid=66074 5* 03A 5* (+32) 10/* Examples */ Not in this wiki < 1568156938 838981 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :imode: why should you eliminate both `?` and `;`? < 1568157016 296033 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :bringing it more in line with something like brainfuck. < 1568157034 242599 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :just to see if it's possible, mainly. < 1568157052 843027 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :anyway [;?] are a find too, at least for me! < 1568157123 453982 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :yeah? I dunno. there's always this niggling doubt in the back of my mind in the form of "you can make the instruction set smaller". < 1568157146 99149 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :hm, could one set `]` to be the current `?]` ? < 1568157190 692749 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :interesting. < 1568157218 565650 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :you could eliminate `;` by doing `,?` < 1568157224 578741 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :`[? ... ,?]` < 1568157225 317094 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: [?: not found < 1568157249 420955 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :ah, break seems inexpressible < 1568157262 433047 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :the `,` instruction pushes a zero to the stack. all other numerals like 1, 2, 3 ... A, B, C ... F shifts hexadecimal digits into the top of the stack. < 1568157271 852629 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :here, lemme bring up the interpreter. < 1568157291 447716 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :https://repl.it/repls/UnknownGenerousLifecycle < 1568157305 784769 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :; as ? is pretty obvious, I agree :D < 1568157316 369529 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :hehehe. < 1568157360 513279 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :see instinctively, I wanna make `[` into `while(pop(&stack)){` < 1568157396 930355 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :but that's weird. your conditional check now has to be duplicated _prior_ to the loop, and _after_ the loop body. < 1568157456 830475 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :hmm < 1568157462 258752 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :if statement is now ` [ ,]` < 1568157490 147298 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :but `while` is now ` [ ]` < 1568157561 477484 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :hm. < 1568157658 874697 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :is there a sense to make this a post-condition loop do … while(cond)? < 1568157702 969919 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :hm now `if` would be a pain instead < 1568157704 635326 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :could you still express a precondition loop with a postcondition loop? < 1568157706 847404 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :yeah.. < 1568157758 391768 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :why while is so universal hm. I never thought about that, ever < 1568158077 856716 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :I used to tutor CS concepts, and I used to blow my students' minds when I tell them that they can form every single control flow construct from `while`s. < 1568158105 219789 :atslash!~atslash@static.231.107.9.5.clients.your-server.de QUIT :Quit: This computer has gone to sleep < 1568158293 91145 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :'while' is universal in the same way that 'jmp' and 'jnz'/'jz' instructions are universal. < 1568158938 323204 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :interesting, `[?;]` can be used to construct something like `begin while repeat < 1568158944 22003 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :https://en.wikipedia.org/wiki/Control_flow#Loop_with_test_in_the_middle < 1568159045 329450 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :[ ? ] would be the equivalent code. < 1568159045 948527 :j-bot!eldis4@firefly.nu PRIVMSG #esoteric :imode: |spelling error < 1568159046 28458 :j-bot!eldis4@firefly.nu PRIVMSG #esoteric :imode: | ? ] would be the equivalent code. < 1568159046 64935 :j-bot!eldis4@firefly.nu PRIVMSG #esoteric :imode: | ^ < 1568159053 484280 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :whoops, sorry. forget what triggers bots. < 1568159717 224440 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric : https://en.wikipedia.org/wiki/Control_flow#Loop_with_test_in_the_middle => very interesting, thanks! < 1568159733 750906 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :https://repl.it/repls/AjarFirmSystemresource an example of just using `while` and `break`. < 1568159738 448435 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :np! < 1568159754 527224 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :a while ago I did thought about named loops and breaks/continues but for some reason not of that loop type < 1568159768 689768 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :that entire page will be useful to me, I think < 1568159794 814901 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :[ ] < 1568159795 544864 :j-bot!eldis4@firefly.nu PRIVMSG #esoteric :arseniiv: ] < 1568159801 375141 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :haha it works < 1568159805 93006 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :hah. < 1568159811 238293 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :[ [ ] ] < 1568159811 898272 :j-bot!eldis4@firefly.nu PRIVMSG #esoteric :arseniiv: [ ] ] < 1568159851 275581 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :[+-] < 1568159864 414567 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :ACTION pretends he knows what he’s doing < 1568159879 566091 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :Lykaina: I think there should be at least one space after [ < 1568159882 594684 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :ACTION has no clue either < 1568159890 798737 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :[ ] [ ] < 1568159891 403167 :j-bot!eldis4@firefly.nu PRIVMSG #esoteric :arseniiv: ] [ ] < 1568159899 433991 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :huh, looking at brainfuck algorithms. < 1568159899 690958 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :okay I’ll go sleep < 1568159904 345189 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :it looks like I'm right. < 1568159932 29237 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :'while () { }' results in you requiring to evalute the condition _again_ at the end of the loop if you just use [ and ]. < 1568159952 497191 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :independent rediscovery! < 1568159959 773823 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :ah < 1568159997 692944 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :to send you off, here's a recursive factorial function: ,2{:,0=[:?..,1,;][?:,1-,2!*;]},10,2!