←2020-04-30 2020-05-01 2020-05-02→ ↑2020 ↑all
00:30:54 -!- Train has joined.
00:31:22 <Train> zzo38?
00:37:30 <esowiki> [[Cortex language 3A]] M https://esolangs.org/w/index.php?diff=71536&oldid=71533 * PythonshellDebugwindow * (+286) Wip
00:37:43 -!- Train has quit (Remote host closed the connection).
00:38:02 <esowiki> [[Cortex language 3A]] M https://esolangs.org/w/index.php?diff=71537&oldid=71536 * PythonshellDebugwindow * (-13)
00:38:36 <esowiki> [[Cortex language 3A]] M https://esolangs.org/w/index.php?diff=71538&oldid=71537 * PythonshellDebugwindow * (+3) /* Syntax */
00:46:29 -!- tromp has joined.
00:48:32 <esowiki> [[Esolang:Sandbox]] M https://esolangs.org/w/index.php?diff=71539&oldid=71531 * PythonshellDebugwindow * (+126) Test, not spam
00:50:32 -!- tromp has quit (Ping timeout: 246 seconds).
01:08:34 -!- kevinalh has quit (Ping timeout: 260 seconds).
01:26:50 -!- kevinalh has joined.
01:28:58 <orbitaldecay> Does anyone know of a BF variant that executes the program in an implicit loop and only has if-blocks in the language?
01:30:05 <orbitaldecay> I think that would be TC too
01:31:57 <orbitaldecay> L00P is close
01:33:31 <b_jonas> orbitaldecay: it's hard to tell, as there are so many bf variants out there and it's hard to search their docs
01:33:44 <int-e> As long as you ensure that the implicit loop is executed at least once... (an implicit while loop on an empty tape of 0s is a bit useless)...
01:33:46 <b_jonas> that looks like a variant that you can reasonably consider
01:34:46 <int-e> A large part of Brainfuck programming is getting out of loops :P
01:35:27 <orbitaldecay> cool cool
01:35:32 <int-e> Of course that's offset by having just one loop... so I'll not make any claims about which flavor is easier to use :P
01:37:03 <Cale> orbitaldecay: The printable subset of x86 assembly
01:37:10 <int-e> But I have no doubt that this is TC. With unbounded cells you should get a nice Minsky machine implementation; with bounded cells a more cumbersome Turing machine.
01:37:24 <Cale> x86 machine code rather
01:37:41 <Cale> https://www.youtube.com/watch?v=LA_DrBwkiJA&feature=youtu.be
01:37:42 <orbitaldecay> Cale: hahaha, in an implicit loop that would be great
01:38:16 <esowiki> [[Special:Log/newusers]] create * Spssyy * New user account
01:38:26 <int-e> Cale: yeah that one is quite awkward unless you allow run-time patching of the code to arbitrary values.
01:38:41 <Cale> There is an implicit loop if you're in the right mode
01:39:06 <orbitaldecay> Yeah, I remember playing around with printable machine code in the context of writing shell code to sneak into text fields that are validated
01:39:16 <orbitaldecay> In another life...
01:39:56 <shachaf> "if" should be called "affine while".
01:40:14 <b_jonas> orbitaldecay: ah yes, those php thingies that "validate" input by grepping for SQL keywords and for a less than sign followed by a letter, and then using them as unfiltered SQL or HTML if they don't contain them
01:40:18 <b_jonas> gotto love those
01:40:26 <shachaf> C has all four: do/while (relevant), if (affine), while, and a plain block.
01:40:26 <orbitaldecay> haha indeed
01:40:29 <int-e> iffing whale
01:40:56 -!- ArthurStrong has quit (Quit: leaving).
01:40:56 <orbitaldecay> good night all
01:42:40 <b_jonas> orbitaldecay: for printable x86 code, see https://esolangs.org/wiki/ABC_(compiler)
01:43:03 <Cale> orbitaldecay: That video I linked is where tom7 describes a C compiler he wrote which produces this weird printable assembly, and he makes use of the fact that if your address is in the top 16bit region and you issue the right kind of jump instruction, the instruction pointer gets ANDed with 0xffff automatically
01:43:13 <Cale> and that's how he does loops
01:43:17 <Cale> all the loops
01:43:22 <Cale> have to be that one
01:43:57 <Cale> er, printable machine code, I keep saying assembly :)
01:44:01 <b_jonas> Cale: right, the compiler is the one I just linked to
01:44:06 <Cale> yep
01:44:19 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=71540&oldid=71470 * Spssyy * (+199) /* Introductions */
01:45:43 -!- tromp has joined.
01:50:23 <esowiki> [[User:Spssyy]] N https://esolangs.org/w/index.php?oldid=71541 * Spssyy * (+439) Created page with "I am spssyy. I will frequently update this list below when I publish a new Esolang. I had written the documentation for Superset (formerly Brainfuck 3.0, now docs were deleted..."
01:50:53 -!- tromp has quit (Ping timeout: 272 seconds).
02:11:09 -!- Phantom__Hoover has joined.
02:25:20 <esowiki> [[Talk:Picofuck]] https://esolangs.org/w/index.php?diff=71542&oldid=71524 * Salpynx * (+2880) PF using a RBF self-interpreter (hypothetical)
02:37:29 <esowiki> [[Talk:Picofuck]] M https://esolangs.org/w/index.php?diff=71543&oldid=71542 * Salpynx * (+272) /* PF attempt, using a hypothetical RBF self-interpreter */ fix encoding convention
02:40:10 -!- tromp has joined.
02:44:43 -!- tromp has quit (Ping timeout: 272 seconds).
02:57:13 -!- Hooloovo0 has quit (Quit: Temporarily refracted into a free-standing prism.).
02:59:16 -!- Hooloovo0 has joined.
03:07:20 <esowiki> [[Talk:Picofuck]] https://esolangs.org/w/index.php?diff=71544&oldid=71543 * Ais523 * (+768) /* Notes on conjecture */ my thoughts on this
03:12:00 -!- stux has quit (Ping timeout: 265 seconds).
03:13:00 -!- stux has joined.
03:15:23 -!- Phantom__Hoover has quit (Ping timeout: 265 seconds).
03:17:41 <imode> I wonder what Forth would be like if Chuck Moore didn't favor a stack as the method of manipulating data, and instead used something like registers.
03:17:48 -!- izabera has quit (Ping timeout: 265 seconds).
03:18:12 <imode> or just straight up memory. it'd probably require a little more parsing.
03:19:03 -!- izabera has joined.
03:24:00 -!- kevinalh has quit (Ping timeout: 256 seconds).
03:24:35 -!- kevinalh has joined.
03:25:24 <imode> as you'd have an actual format/"grammar", there. it'd probably just be assembly language with fancier blocks.
03:28:55 <imode> https://en.wikipedia.org/wiki/Transport_triggered_architecture neat article.
03:30:35 <zzo38> Transport triggered architecture is something I have also once thought of before I know what it is called, and I once tried to design the electronics schematic for a computer that is based on transport triggered architecture
03:35:37 -!- imode has quit (Ping timeout: 264 seconds).
03:37:25 -!- imode has joined.
03:47:32 -!- FreeFull has quit (Quit: rebooting).
03:55:55 <esowiki> [[Alan Turing]] N https://esolangs.org/w/index.php?oldid=71545 * IFcoltransG * (+870) Created page with "{{stub}} '''Alan Mathison Turing''' was a mathematician, philosopher, cryptographer, and pioneering computer scientist. "Turing" is surely the most common name mentioned on th..."
03:57:07 -!- FreeFull has joined.
03:59:26 <esowiki> [[Lambda calculus]] https://esolangs.org/w/index.php?diff=71546&oldid=66658 * IFcoltransG * (+1262) Rewrote the start to be a better introduction
04:00:18 <zzo38> Even though Adobe does not want to invent level 4 PostScript, I think that level 4 PostScript should be invented, including such thing as transparency, automatic allocation of strings and arrays for some operators if you pass null instead of a preallocated string or array, commands to access font metrics, and some of the features of Ghostscript (such as makeimagedevice and %pipe%), and allowing dictionaries in binary object format.
04:01:20 <esowiki> [[Lambda calculus]] M https://esolangs.org/w/index.php?diff=71547&oldid=71546 * IFcoltransG * (+42) Added a heading to break up wall of text
04:02:15 <esowiki> [[Lambda calculus]] M https://esolangs.org/w/index.php?diff=71548&oldid=71547 * IFcoltransG * (+18) Added another heading because the text was still to much like a wall
04:05:04 <zzo38> And also a JBIG2 decoding filter.
04:17:18 <esowiki> [[Talk:Picofuck]] https://esolangs.org/w/index.php?diff=71549&oldid=71544 * Salpynx * (+1229) /* PF attempt, using a hypothetical RBF self-interpreter */ details of the hypothetical command
04:22:37 <esowiki> [[Lambda calculus]] https://esolangs.org/w/index.php?diff=71550&oldid=71548 * IFcoltransG * (+1093) /* Introduction */ Broke down some of the more complex notation for beginners
04:27:09 <imode> transport triggered architecture seems to be "imperative dataflow programming".
04:31:56 <esowiki> [[Alan Mathison Turing]] N https://esolangs.org/w/index.php?oldid=71551 * IFcoltransG * (+25) Redirected page to [[Alan Turing]]
04:32:53 <esowiki> [[Turing]] https://esolangs.org/w/index.php?diff=71552&oldid=55858 * IFcoltransG * (+53)
04:33:50 <esowiki> [[Turing machine]] M https://esolangs.org/w/index.php?diff=71553&oldid=67049 * IFcoltransG * (+4) Networking, i.e. adding a link
05:00:00 -!- Train has joined.
05:01:59 <Train> What does the bot esowiki do?
05:09:04 <Train> Does it report edits?
05:09:43 <Train> Also zzo38 I found an "amusing" program
05:09:56 <Train> V2+2=4<OUTPUT
05:10:16 <Train> You can probably guess exactly what it does easily.
05:12:51 <zzo38> Hello
05:13:02 <Train> Hello.
05:13:15 <Train> I was reading a codegolf, and that was my program.
05:13:55 <Train> Also, I found an xkcd that I think is relevant for this channel. https://xkcd.com/1782/
05:16:51 <zzo38> I saw that before
05:17:04 <Train> Dang.
05:25:38 <zzo38> I am currently working on TeXnicard, working on the random deck mode.
05:28:58 <zzo38> Do you like to make up Magic: the Gathering cards and puzzles?
05:29:06 <Train> A little.
05:29:27 <Train> I was interested in it at one point, but never really got around to it.
05:29:58 <zzo38> I made up some puzzles of Magic: the Gathering myself too. I also set up a NNTP to discuss such things.
05:30:11 <Train> Nice.
05:35:19 <zzo38> One of them is http://zzo38computer.org/textfile/miscellaneous/magic_card/puzzle.2 and you can try different numbers at the end for different puzzles.
05:36:12 <Train> And what is the goal?
05:36:20 <Train> Is it just the play MTG?
05:36:26 <zzo38> To win the game, of course.
05:36:36 <Train> Okay.
05:37:06 -!- Train has quit (Remote host closed the connection).
05:44:35 <zzo38> I have a question about the rules of Magic: the Gathering, that I wonder if someone on here knows the answer. If during a subgame your opponent concedes the subgame, are you allowed to choose to concede the subgame yourself too at the same time, so that neither player wins the subgame?
05:45:11 <myname> why would anybody want to do that?
05:48:17 <zzo38> In case you are trying to half your life points in the main game, after either you manage to do something in the subgame to take cards out of the main game, in which case your opponent doesn't need to concede, or else your opponent also concedes the subgame which would also half your opponent's points and would be an alternative way to reach the goal, either way requiring your own life points half too.
05:57:50 -!- imode has quit (Ping timeout: 260 seconds).
06:01:48 <zzo38> Has anyone managed to make a satisfying Babson task in Magic: the Gathering?
06:19:31 -!- arseniiv has joined.
06:23:04 <b_jonas> Train: esowiki reports edits, and it may also be the bot that gets the logs for https://esolangs.org/logs/all.html most of the time
06:34:30 -!- tromp has joined.
06:38:06 <probablymoony> been a while since I've spoken in here
06:38:23 <probablymoony> but i've been working on a DEC VAX emulator (as the SIMH one is nigh unreadable and I needed something to do)
06:38:47 <probablymoony> and I finally have it in a state where I can extend it to be a full VAX implementation'
06:39:39 <probablymoony> it seems to take about 25-35ns per instruction right now with the MMU disabled (checks for it exist, but if it was enabled the program would crash as it's unimplemented.)
06:44:41 <probablymoony> also frankly my timing test is very crude :P
06:45:07 <zzo38> Did you implement the extensions? http://esolangs.org/wiki/User:Ian/Computer_architectures#Some_ideas_of_mine
06:45:30 <probablymoony> https://github.com/moonheart08/emutk/tree/master/emutk-vax if any reader is interested. Code's spaghetti but it works. Hmmm?
06:45:33 * probablymoony looks
06:46:11 <probablymoony> zzo38: also it's very early in-dev
06:46:18 <probablymoony> not all instrs are implemented (only a small subset)
06:46:21 <probablymoony> :P
06:46:48 <probablymoony> > code to be run from the registers
06:46:49 <lambdabot> error:
06:46:49 <lambdabot> • Variable not in scope:
06:46:49 <lambdabot> code
06:47:03 <probablymoony> that'd require me to upturn my entire execution model, I think i'm good :P
06:47:21 <probablymoony> > PC shenanigins
06:47:22 <zzo38> O, well, maybe once all of the instructions is implemented, then you can also add a option to make these extensions (or at least some of them), maybe
06:47:23 <lambdabot> error:
06:47:23 <lambdabot> Data constructor not in scope: PC :: t0 -> terror: Variable not in scope...
06:47:36 <probablymoony> I won't stop you. (you can already muck with PC, the emulator won't crash on you)
06:47:52 <probablymoony> it's only UB, not impossible
06:47:58 <probablymoony> and it was easier for me to allow it
06:48:46 <probablymoony> I was going to hold off on implementing instrs that need software float for a godo bit. We'll see.
06:48:53 <zzo38> Would you implement the microcodes?
06:48:58 <probablymoony> Likely not.
06:49:10 <probablymoony> goal is just the ISA, really
06:49:37 <probablymoony> once again, microcode would require a bunch of execution model redesigns and it'd be much much slower
06:50:44 <b_jonas> zzo38: re your question about subgames, I don't know the answer, but I decided that I gave up trying to understand the rules of subgames ever since they've been banned from Vintage
06:50:53 <probablymoony> zzo38: also thanks for that page
06:50:56 <b_jonas> I mean banned from all supported non-un formats
06:50:59 <probablymoony> i'll be giving it a good read
06:51:09 <b_jonas> but that's mostly the same
06:54:11 <probablymoony> zzo38: extra thanks, it immediately made me aware of an unemulated edge-case (incrementing immediates actually works)
06:54:22 <probablymoony> (or writing in general)
06:57:01 <zzo38> Writing immediates is something that some of my own designs supported even before I knew about VAX, just because, to me it is make sense, if it is orthogonal. However, on 6502 the instructions to write immediates don't work, and instead will result in reading immediate (and ignoring the value), it would seem to me.
06:57:03 -!- Train has joined.
06:58:30 <zzo38> (If it did work, it might be a good way to do bank switching in Famicom, when using a suitable mapper.)
06:59:36 <probablymoony> hmm
06:59:38 <probablymoony> actually
06:59:58 <probablymoony> I was considering rearranging my bus model so the bus is the "master" for everything, and the VAX CPU is just a device on it..
07:00:03 <probablymoony> that may allow the addressable register thing
07:00:17 -!- Train has quit (Remote host closed the connection).
07:00:39 -!- Train has joined.
07:00:50 <zzo38> b_jonas: Yes, it is banned in Vintage, but not in "pseudo-Vintage"
07:01:53 <Train> zzo38, should I upload the interpreter to sprunge?
07:01:57 <probablymoony> really if I did that model rearranging the addressable registers would come naturally anyways
07:02:07 <probablymoony> but
07:02:35 <probablymoony> that'd be in violation of DEC's design manuals for obvious reasons (if i modified MOVAx)
07:03:17 <probablymoony> could make it a cfg flag
07:03:20 <probablymoony> just for fun
07:03:28 <zzo38> Train: Yes, probably. (I should also think to put the documentation in esolang wiki)
07:03:48 <zzo38> probablymoony: Making it a configuration option is what I suggested
07:03:49 <Train> Okay.
07:04:22 * probablymoony reads up
07:04:24 <probablymoony> oh, yes, you did
07:05:08 <probablymoony> zzo38: also am I the only one who finds the SIMH implementation of the VAX unreadable? I haven't cross-referenced with it at all because I just can't read it's SRC :T
07:05:41 <zzo38> I don't know; I didn't look at the SIMH.
07:07:02 -!- Train has quit (Remote host closed the connection).
07:08:05 <probablymoony> oh, if I were to make MOVAx work for registers i'd probably want to make rn[rx] work too
07:08:09 <esowiki> [[PixelCode]] https://esolangs.org/w/index.php?diff=71554&oldid=59166 * Voltage2007 * (-579) this thing is a mess - Im fixing the rest of this tomorrow
07:08:42 <shachaf> mov ax already works for registers hth
07:08:54 <shachaf> mov r, r/m
07:08:57 <probablymoony> shachaf: i'm talking VAX :P
07:10:17 -!- atslash has quit (Quit: Leaving).
07:21:58 -!- TheLie has joined.
07:24:51 <zzo38> They mention a variadic instruction mode. Z-machine has that; the EQUAL? instruction takes a variable number of operands. It succeeds if the first operand is equal to any one of the others.
07:27:57 <probablymoony> zzo38: why one doesn't copy-paste: You may accidentially "fix" immediate mode to act like absolute mode
07:28:04 -!- Train has joined.
07:28:31 <Train> What did you think of the program I sent you earlier, zzo38?
07:29:06 <probablymoony> maybe I should just un-specialize immediate/absolute mode.
07:30:56 <probablymoony> de-specialized, and even got a performance improvement with it :D
07:33:29 -!- kevinalh has quit (Ping timeout: 265 seconds).
07:35:53 <b_jonas> Today I learned something about the x86_64 intrinsics in clang and rust using llvm. there's no way to write x86_64-specific code to do a floating point addition (whether scalar or vector) with the SSE/AVX instructions and with the x86_64 rules in such a way that the optimizer can't swap the two input arguments of the addition even if it can't prove that that changes nothing, and get full optimization
07:35:59 <b_jonas> from the compiler. there's just no interface in llvm from this, regardless of what function and optimization flags you use.
07:36:19 <Train> Well, TIL.
07:37:16 <b_jonas> llvm is just allowed to swap the argument of the x86_64 intrinsics, and it doesn't matter whether you use the intel intrinsics, the rust interface for the same, or the gcc-style vector operators and builtins, and regardless of what optimization flags you use
07:38:02 <b_jonas> I didn't ask about gcc, but gcc probably also doesn't have an interface for this, because the semantics for these sorts of things tend to have the same rules as in clang
07:39:41 <b_jonas> so if I want to do floating point addition with a deterministic SSE-style output when both arguments are NaN, either I have to add some extra computation, though in practice in most cases you can do that very efficiently, or write inline assembly or similar, in which case you lose on compiler optimizations.
07:39:59 <b_jonas> this is good to know, I didn't know how the semantics of those intrinsics worked.
07:46:33 <b_jonas> [ 2!21
07:46:33 <j-bot> b_jonas: 210
07:50:45 -!- Train has quit (Remote host closed the connection).
08:05:25 -!- rain1 has joined.
08:09:34 -!- opticnerve has joined.
08:45:46 <rain1> orbitaldecay: I thought I had something but as i try to work out the details it is falling apart
08:46:09 <rain1> I thought we could try to make a simple translation by considering a mapping like this
08:46:12 <rain1> *** -> [][][][]
08:46:15 <rain1> * -> [][]
08:46:17 <rain1> ** -> [][][]
08:46:42 <rain1> [] is a no-op, expect it sets flags (this would use scratch space on the tape so the tapes wouldn't be isomorphic)
08:47:15 <rain1> (*) maps to [[][]] and (*()(**)) maps to [[][][[]][[][][]]]
08:48:10 <rain1> to implement it, [ and ] would manipulate some flags on the tape and there would also be a stack of bits i think, which we can access by storing our the stack height and current tape location as unary (to be able to get back to place after working on the stack)
08:51:40 <rain1> e e e e e e
08:51:40 <rain1> [[][][[]][[][][]]]
08:52:02 <rain1> so basically we are analyzing the code as we execute it, empties are discovered and conditioned on to implement * from just []
09:27:25 -!- LKoen has joined.
09:28:09 <myname> setting flags is not that easy. you need to manuever to the place where the flag is and back
09:29:06 -!- cpressey has joined.
09:32:48 <rain1> i overlooked that, thank you
09:33:19 <rain1> maybe we need to translate to RBF with < and >
09:35:53 <cpressey> In an FPN (applicative) setting, "+12" is well-formed, as are "+1" and "+", but "12" is not. In an RPN (concatenative) setting, "12+" is well-formed, and so are "12" and "2+" and "+". BUT, "2+" and "+" are arguably not meaningful.
09:38:08 <cpressey> There does seem to be an easy way to make a concatenative version of the SKI calculus, but it's also very cheap and unexciting. S: push S combinator on the stack. K: push K combinator on the stack. A: apply topmost combinator on the stack.
09:40:43 <cpressey> That's the Concatentive Consternation for this morning, we now return you to your regular programming.
09:41:55 -!- TheLie has quit (Remote host closed the connection).
09:43:15 -!- cpressey has quit (Quit: WeeChat 1.9.1).
09:48:15 -!- opticnerve has quit (Quit: Leaving).
10:40:17 -!- ArthurStrong has joined.
11:09:47 -!- craigo_ has quit (Ping timeout: 258 seconds).
11:27:16 <arseniiv> @tell cpressey <cpressey> BUT, "2+" and "+" are arguably not meaningful. => why not? "2+" adds 2 to the topmost stack element. If we have quotes, "[2+]" may be used somewhere a quote that changes the topmost elem is needed, e. g. in a looping contruct
11:27:16 <lambdabot> Consider it noted.
11:27:46 -!- Lord_of_Life_ has joined.
11:30:48 -!- Lord_of_Life has quit (Ping timeout: 265 seconds).
11:30:48 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
11:36:51 -!- ais523 has joined.
11:37:34 <ais523> b_jonas: (non-volatile) inline asm looks like the perfect tool for this, AFAICT it suppresses exactly the compiler optimisations you want to suppress and no others
11:39:22 <ais523> it appears that the optimizer's assumptions for a non-volatile asm are that the same inputs always produce the same outputs and there are no side effects
11:40:04 <ais523> those are true for a non-associative floating point add, and I can't immediately think of any other properties it has
11:40:33 <ais523> of course, this is inherently system-specific, but arguably so is non-associative addition in the first plcae
11:42:11 <ais523> zzo38: I believe that the definition of a Babson task in M:tG should be a position where the opponent wishes for a card, and to win you have to wish for the same card
11:42:32 <ais523> the difficulty of this would presumably depend on the content of the sideboards, but assuming 15 different cards, it seems very difficult unless you can compare the card names somehow
11:42:39 <ais523> regardless of what the cards are
11:42:48 <ais523> (as long as they're all wishable by the opponent)
11:45:26 -!- shig has quit (Ping timeout: 256 seconds).
11:55:39 <ais523> orbitaldecay: the definition of "simple translation" strikes me as really important from the esoprogramming point of view, even outside any RBF-related contexts
12:00:15 -!- shig has joined.
12:16:11 <ais523> in particular: suppose we generalize the concept of "simple translation" slightly to allow the translation to put additional fixed strings at the start and end of the program, in addition to its other operations
12:16:54 <ais523> with this generalization, is it possible to find a simple translation between any two TC languages? I suspect the answer is "no, but there's a large subset consisting of most practical TC languages that can do it"
12:17:45 -!- tromp has quit (Read error: Connection reset by peer).
12:17:59 <ais523> in which case we've managed to identify a subset of TC languages which are in a sense more powerful than the others
12:18:33 -!- tromp has joined.
12:21:14 <ais523> I think it's also interesting to think about 2-command simple translations of other languages
12:21:36 <ais523> in Underload, for example, it's fun to try to find a simple translation that handles the ( and ) pseudo-commands
12:25:55 <ais523> conjecture: there is no simple translation between brainfuck and Fractran
12:26:16 <ais523> * no generalized simple translation
12:26:37 <ais523> (you can do Fractran → BF, but it seems unlikely that you can do it the other way round)
12:36:22 <ais523> I think the major requirement for permitting a generalized simple translation is having some sort of fairly traditional string literal
12:36:48 <ais523> e.g. you can do it in The Waterfall Model because you can have a large numeric literal that you parse the digits from (other than the last significant) at runtime
12:37:17 <ais523> and you can do it in BF because you can use >+>+++>++ etc. as a string literal equivalent
12:38:24 -!- Phantom__Hoover has joined.
12:38:36 <ais523> so a "made out of commands" string literal equivalent is enough
12:38:57 <ais523> oh, trivially simple example that can't do it: Incident
12:39:18 <ais523> it has no way to distinguish between the same section of source code repeated five times, or repeated six times
12:58:36 -!- ineiros has joined.
13:00:04 -!- ineiros has quit (Client Quit).
13:00:36 -!- ineiros has joined.
13:00:53 -!- ineiros has quit (Client Quit).
13:01:55 -!- ineiros has joined.
13:10:31 <esowiki> [[Turing machine]] M https://esolangs.org/w/index.php?diff=71555&oldid=71553 * PythonshellDebugwindow * (-4) remove red link
13:15:00 <esowiki> [[Disan count]] N https://esolangs.org/w/index.php?oldid=71556 * PythonshellDebugwindow * (+25) Redirected page to [[Disan Count]]
13:17:40 <esowiki> [[Popular problem]] M https://esolangs.org/w/index.php?diff=71557&oldid=62413 * PythonshellDebugwindow * (-1)
13:26:04 <esowiki> [[Cortex language 3A]] M https://esolangs.org/w/index.php?diff=71558&oldid=71538 * PythonshellDebugwindow * (+265)
13:26:31 <esowiki> [[Cortex language 3A]] M https://esolangs.org/w/index.php?diff=71559&oldid=71558 * PythonshellDebugwindow * (-24)
13:38:22 <b_jonas> ais523: inline asm has the correct semantics for this. however, for inline asm, the compiler won't parse the assembly statement, so it won't know what instruction is inside it, and so can't use timing information to optimize an inner loop with such an asm correctly. inline asm works if you write the whole critical section in one big asm, or if you are using this outside of a critical section where
13:38:28 <b_jonas> optimization isn't so important, but it won't replace intrinsics if I want to rely on the compiler to produce decent code.
13:39:51 <b_jonas> ais523: yes, this is system-specific, in that there are three or four different rules for handling two NaN inputs in instructions. which is why I said I'm asking for this specifically to get the result that SSE/AVX instructions give, when generating code for x86_64 only.
13:40:13 <b_jonas> you could ask the analogous question for ARM, but I'm much less familiar with ARM, so I didn't try to ask about that.
13:43:34 -!- ais523 has quit (Ping timeout: 260 seconds).
13:45:39 <b_jonas> ais523: wish for the same card? it would be too much of cheating if you have a Homing Lightning and mana for it, and the opponent has an Asceticism ton of Clones and mana for them, right?
13:49:43 <esowiki> [[Muriel]] M https://esolangs.org/w/index.php?diff=71560&oldid=58467 * PythonshellDebugwindow * (+0) /* String */
13:50:11 <b_jonas> there's probably a similar cheating solution that compares creature types, not names; and there are probably solutions that are slightly less cheating that compare a combination of colors, power/toughness, land types, it's just that it's hard to get a series of 15 cards by comparing just one of those, so you need more tricks.
13:50:40 <b_jonas> s"power/toughness"power/toughness, converted mana cost"
13:51:32 <b_jonas> you could probably use converted mana cost only, using a card like Counterbalance
14:06:55 <orbitaldecay> rain1: Sounds like you're having ideas!
14:08:01 <orbitaldecay> ais523: Yeah, simple translation seems to capture something significant. I really like your idea of "generalized simple translation" allowing arbitrary strings at the beginning and end of the program.
14:09:22 -!- xkapastel has joined.
14:10:14 <orbitaldecay> I think the definition of "isomorphism between models" needs some work. I'm not quite sure that captures exactly what I'm going for. I was discussing yesterday that between two unbounded tape models you could map 2n to n and use the odd cells to store context, which is kind of outside of the spirit of a simple translation
14:11:02 <orbitaldecay> Maybe simple translation should have it's own page for discussing further?
14:11:35 <rain1> it's a tricky one
14:12:07 <rain1> if you allow a prefix then you can do interpreters of string data
14:12:41 <rain1> this was already said though
14:14:58 <orbitaldecay> Hmm, on second thought, would 2n to n work? how do you map backward? n -> n/2 isn't a valid mapping
14:20:17 -!- zseri has joined.
14:22:08 -!- Phantom_Hoover has joined.
14:24:48 -!- Phantom__Hoover has quit (Ping timeout: 265 seconds).
14:28:48 -!- ais523 has joined.
14:32:25 <ais523> orbitaldecay: I think there's multiple possible senses of the mapping
14:32:33 <ais523> there are senses in which you look only at halting behaviour
14:32:42 <ais523> and senses in which you look at some of the internal state too
14:32:51 <ais523> the later is hard to define rigorously, though, and leads to some odd results
14:33:18 <orbitaldecay> ais523: yes, I was thinking of redefining solely in terms of halting behavior
14:34:06 <ais523> e.g. think of a Salpynx-style simple translation that works via one command providing input to a second command that's an interpreter
14:34:22 <orbitaldecay> as, I think maybe, if the translated program halts iff the original program halts then the machine states must be isomorphic
14:34:40 <ais523> this can't lead to an internal state mapping in PF to/from RBF because RBF is reversible
14:36:03 <orbitaldecay> hmm, I have to think about that
14:36:18 <ais523> so, e.g., a no-op containing a loop that executes will lead to some permanent memory that that loop existed on the PF tape
14:36:54 <ais523> but I can't see a reason why that would apply to irreversible languages
14:37:34 <ais523> a separate thing I noticed is that PF (if it exists) does not necessarily have to be reversible
14:38:12 <ais523> the RBF translation of the PF might, when reversed, use command sequences that don't exist in PF; and the PF translation of the RBF might use sequences of commands that happen to be reversible even if the individual commands aren't
14:38:53 <orbitaldecay> ais523: but if there is an RBF translation of PF, and a PF translation of RBF, then there must be PF representations of inverses of PF operators.
14:39:43 <ais523> orbitaldecay: but if you map RBF to PF and back to RBF, the resulting tape may not be the same
14:40:04 <orbitaldecay> ooo you're right. that's tricky
14:40:11 <orbitaldecay> are we sure about that?
14:40:12 <ais523> this seems to be connected to eigenratios in a way, you'd expect an RBF→PF→RBF translation to expand the tape by some proportion
14:40:49 <orbitaldecay> what are eigenratios?
14:40:50 <ais523> it strikes me that part of the problem is that BF derivatives normally have no way to store temporary data without disturbing the existing tape
14:41:04 <ais523> an eigenratio is the speed at which a self-interpreter runs, compared to running the program natively
14:41:17 <orbitaldecay> ah, I see
14:42:02 <orbitaldecay> I'm currently creating a page for simple translations to discuss some of these idea further and flesh out generalizations
14:42:25 <ais523> I was considering creating a page about simple translations too, but it's your idea so you're probably a better person to do it
14:42:31 <orbitaldecay> I'm thinking of defining it so that A halts iff B halts
14:42:37 <orbitaldecay> we should collab on it
14:42:42 <orbitaldecay> in the spirit of wiki
14:42:44 <ais523> I would consider multiple possible definitions (without fixing a specific definition) because different cases could be interesting
14:43:35 <esowiki> [[Cortex language 3A]] M https://esolangs.org/w/index.php?diff=71561&oldid=71559 * PythonshellDebugwindow * (+372) /* Commands */
14:43:52 <orbitaldecay> Yeah, I agree that different cases should be explored
14:43:58 <esowiki> [[Cortex language 3A]] M https://esolangs.org/w/index.php?diff=71562&oldid=71561 * PythonshellDebugwindow * (+22) /* Commands */
14:44:16 <orbitaldecay> But as a start I really like the idea of avoiding getting into isomorphisms between machine states altogether
14:44:49 <orbitaldecay> Hmm, but dont we need some way to define analogous input?
14:48:53 <ais523> I find that I/O often complicates computational class discussions (I/O isn't needed at all to be TC, after all)
14:49:06 -!- Phantom_Hoover has quit (Ping timeout: 256 seconds).
14:49:27 <ais523> it'd be easy enough to come up with a noninteractive-I/O-dependent version of a simple translation, though ("the program halts, and the same input produces the same output")
14:49:39 <ais523> and the interactive I/O version is also obvious, just a little harder to define
14:52:03 <orbitaldecay> Yeah, I think I'm going to keep I/O out of the conversation for now completely
14:52:10 <orbitaldecay> as it just mucks up the ideas
14:52:15 <orbitaldecay> for no particularly good reason
14:55:51 <esowiki> [[Cortex language 3A]] M https://esolangs.org/w/index.php?diff=71563&oldid=71562 * PythonshellDebugwindow * (+40)
14:58:18 <esowiki> [[Simple Translation]] N https://esolangs.org/w/index.php?oldid=71564 * Orby * (+1974) Getting started
14:58:42 <orbitaldecay> ais523: wrote an initial definition, feel free to modify and expand
14:58:46 <orbitaldecay> going out for a smoke, brb
14:59:27 <esowiki> [[Special:Log/move]] move * Ais523 * moved [[Simple Translation]] to [[Simple translation]]: caps
14:59:50 <esowiki> [[Simple translation]] M https://esolangs.org/w/index.php?diff=71567&oldid=71565 * Ais523 * (+23) cat
15:00:37 <esowiki> [[Simple translation]] https://esolangs.org/w/index.php?diff=71568&oldid=71567 * Orby * (+17)
15:03:11 <esowiki> [[Simple translation]] https://esolangs.org/w/index.php?diff=71569&oldid=71568 * Ais523 * (+177) clarify introduction
15:03:47 <ais523> huh, interesting MediaWiki bug there: "show changes" showed your changes as well as mine, despite the lack of edit conflict
15:04:06 <esowiki> [[Reversible Bitfuck]] https://esolangs.org/w/index.php?diff=71570&oldid=71520 * Orby * (-1658)
15:04:35 <ais523> I wonder if we want the internal state mapping function at all
15:04:48 <ais523> I have the feeling that definitions with and without it are both interesting
15:04:52 <esowiki> [[Nanofuck]] M https://esolangs.org/w/index.php?diff=71571&oldid=71523 * Orby * (+6)
15:05:26 <esowiki> [[Picofuck]] M https://esolangs.org/w/index.php?diff=71572&oldid=71521 * Orby * (+6)
15:05:59 <esowiki> [[User:Orby]] M https://esolangs.org/w/index.php?diff=71573&oldid=71535 * Orby * (-38)
15:06:07 <esowiki> [[Nanofuck]] M https://esolangs.org/w/index.php?diff=71574&oldid=71571 * Ais523 * (-38) remove redundant piping of links
15:06:35 <orbitaldecay> Well, I think we nee the internal state mapping to initialize the machines to the same state
15:07:27 <orbitaldecay> The state being the same on completion is less important I think
15:07:55 <ais523> well, thinking about languages
15:08:04 <ais523> I'm thinking of a simple translation as a mapping of the source code
15:08:10 <ais523> in which case it happens before parsing
15:08:19 <ais523> the current implementation seems to inherently assume that the language is concatenative, doesn't it?
15:08:20 <orbitaldecay> Feel free to generalize on the page
15:08:31 <orbitaldecay> a generalized simple translation could be really useful too
15:08:35 <ais523> (also, somehow I never realised until /just now/ that brainfuck is concatenative)
15:08:56 <orbitaldecay> I originally thought of all this in the context of minimization, but it sounds like you have a bigger vision for it
15:09:12 <esowiki> [[Cortex language 3]] M https://esolangs.org/w/index.php?diff=71575&oldid=71527 * PythonshellDebugwindow * (-92)
15:09:45 <ais523> OK, so https://esolangs.org/wiki/Pure_BF is a joke
15:09:54 <ais523> but it does seem to be the view of BF-alikes that simple translation is taking
15:10:08 <esowiki> [[Cortex language 3A]] M https://esolangs.org/w/index.php?diff=71576&oldid=71563 * PythonshellDebugwindow * (+92) /* Commands */
15:10:47 <esowiki> [[Cortex language 3]] M https://esolangs.org/w/index.php?diff=71577&oldid=71575 * PythonshellDebugwindow * (+40)
15:10:52 -!- zseri has quit (Quit: zseri).
15:11:02 -!- zseri has joined.
15:11:25 <esowiki> [[Truth-machine]] M https://esolangs.org/w/index.php?diff=71578&oldid=71430 * PythonshellDebugwindow * (+33) /* Cortex language 3 */
15:13:53 <ais523> I guess the issue is that we normally see languages in almost any paradigm as a list of commands, that operate on state, and produce a state as output
15:14:38 <ais523> there are some exceptions, like control flow, and those not coincidentally cause the largest issues when writing simple translations
15:16:36 <orbitaldecay> yeah, mapping the IP to a functional language sounds weird
15:17:01 <orbitaldecay> idea: input and output buffers can be considered part of the state. No special consideration for I/O needed.
15:18:55 <ais523> one application for simple translations is in explaining the difference between the :*()a^ and ~:!()^ subsets of Underload
15:19:13 <ais523> the former subset appears to be a simple translation of Underload; the latter isn't "obviously" a simple translation
15:19:58 <orbitaldecay> I need to read up on underload
15:20:21 <ais523> you should, especially if you're interested in minimization
15:21:50 <arseniiv> int-e (or someone skilled in lambdabot’s workings): I tried to abuse lambdabot again, running this obfuscated code:
15:21:50 <arseniiv> @let data O z=O(z(O z)) -- this is a fixpoint of a functor like in Data.Fix
15:21:50 <arseniiv> > let{e m(O c)=m$fmap(e m)c;a g s=j g:a s(O[g,s]);j=e(fmap(+)(foldr(const.const$0)1)<*>sum)}in a(O[])$O[O[]]
15:21:50 <arseniiv> on my GHCi, it starts spewing out the first elements of the list pretty fast but here the computation just times out. I think I did something wrong, what could that be?
15:21:51 <lambdabot> .L.hs:174:1: error:
15:21:51 <lambdabot> Multiple declarations of ‘O’
15:21:51 <lambdabot> Declared at: .L.hs:172:1
15:21:56 <lambdabot> mueval-core: Time limit exceeded
15:22:05 <esowiki> [[User:PythonshellDebugwindow]] M https://esolangs.org/w/index.php?diff=71579&oldid=71513 * PythonshellDebugwindow * (+96) /* Languages */
15:22:17 <ais523> actually for me, one of the most important unanswered questions wrt simple translations at the moment is whether there's some simple, objective way to exclude Salpynx-style translations
15:22:29 <arseniiv> (oh sorry I defined it earlier but that definition hadn’t changed)
15:23:04 <ais523> because those may permit simple translations into anything TC that obeys certain syntactic restrictions
15:24:21 <ais523> or, hmm
15:24:23 <orbitaldecay> okay, run this salpynx-style translation by me again
15:24:57 <ais523> the basic idea is that we have some sort of state that records whether or not we're in the middle of a loop
15:25:05 <ais523> commands run immediately if we aren't
15:25:22 <ais523> if we are, they just add themselves to some data structure, and then ] implements the entire loop
15:25:45 <ais523> the advantage of this is that there's no need for any PF command to translate to an unbalanced loop in RBF
15:26:04 <ais523> * the translation of ) implements the entire loop
15:26:04 -!- kevinalh has joined.
15:27:01 <ais523> so you can create two commands, 1 and 0, where 1 just implements an internal counter, and 0 does all the real work, depending on context either executing a command, or storing that command in a data structure for later use
15:27:14 <ais523> 0 is in effect an RBF self-interpreter
15:27:18 -!- imode has joined.
15:27:24 <ais523> then you just map each RBF command to some string of 1s followed by 0
15:27:56 <esowiki> [[Language list]] M https://esolangs.org/w/index.php?diff=71580&oldid=71515 * PythonshellDebugwindow * (+25) /* C */ + [[Cortex language 3A]]
15:28:05 <orbitaldecay> but how do you express the inverse translation table?
15:28:11 <orbitaldecay> e.g. what is 1 in RBF?
15:28:41 <esowiki> [[Cortex language 3A]] M https://esolangs.org/w/index.php?diff=71581&oldid=71576 * PythonshellDebugwindow * (+460) /* Examples */
15:28:43 <ais523> the inverse translation table is the hard part; 1 basically just has to increment a counter (although you need a complex tape encoding to /have/ a temporary counter in RBF)
15:28:54 <ais523> and 0 is an entire RBF self-interpreter with some additional functionality
15:29:11 <arseniiv> (oh, that translation technique reminds me how I implemented my first incomplete forth-like with quotes: if we are inside a quote, we continue completing it, then we push it on the stack finally—if we aren’t in a quote still; thought there are no more similarities regarding "]", as the evaluation would be a different operation, "!")
15:29:34 <orbitaldecay> is it possible to do that and maintain equivalence under isomorphism?
15:29:36 <ais523> I guess you can think of it as an incremental self-interpreter
15:29:53 <orbitaldecay> of the state?
15:29:59 <ais523> orbitaldecay: no, but only through chance: because RBF is reversible the self-interpreter has no way to delete the program from the tape once it's finished
15:30:14 <ais523> this is specific to the fact that RBF is reversible
15:30:22 <ais523> and the fact that RBF programs with unbalanced () aren't valid
15:30:28 <ais523> or, well
15:30:44 <orbitaldecay> yeah I guess you just erase all the temp stuff when you're done interpretting
15:30:48 <ais523> the point is that you don't need the translation of, say, *>(* to mean anything
15:31:02 <ais523> so the self-interpreter can check to see if we have a complete program with balanced parens
15:31:19 <orbitaldecay> ok, I get the problem
15:31:19 <ais523> if we do, it can evaluate it so far and then delete all the temporary state it used (except that it can't because RBF is reversible)
15:31:30 <orbitaldecay> right right
15:31:37 <ais523> if we don't, then the definition doesn't place constraints on what happens because the input program wasn't valid
15:32:39 <orbitaldecay> What if we require the machine state to be isomorphic after executing each command?
15:33:21 <ais523> I guess what you want to require is that the instruction pointer moves in the same way in both languages
15:33:40 <ais523> your "isomorphic after each command" seems to require an equivalence of instruction pointer movement to even be well-defined
15:33:56 <ais523> and the IP movement equivalent is sufficient by itself to ban Salpynx-style translations
15:34:02 <ais523> but, it seems hard to define rigorously
15:34:26 <orbitaldecay> yeah, particularly because the source and destination programs don't need to require the same number of symbols
15:34:33 <ais523> you can define it rigorously for RBF but I don't think it generalises to other languages
15:35:26 <orbitaldecay> I don't think so either
15:36:04 <orbitaldecay> I mean, the easiest and most restrictive way of dealing with it is to simply require that the languages use the same model
15:36:23 <orbitaldecay> so that's one view
15:36:43 <ais523> hmm, suppose you add to both languages a command that has some observable effect on the outside world, but doesn't affect the program's internal state
15:36:45 <orbitaldecay> that's good for talking about minimalizations of languages
15:36:56 <ais523> now you add it at the same point in both programs
15:37:02 <orbitaldecay> like an output command?
15:37:05 <ais523> right
15:37:14 <ais523> if the control flow is the same, it should run the same number of times in both programs
15:37:34 <ais523> but because it isn't allowed to affect the program's internal state, a Salpynx-style translation can't notice it exists
15:37:40 <ais523> so if you put it inside a loop it runs the wrong number of times
15:38:10 <ais523> I think this works for any programming language that allows an-arbitrary-effect-at-an-arbitrary point
15:38:24 <ais523> which may go some distance to coming up with a definition of what AAEAAAP actually means
15:39:29 <orbitaldecay> I am inclined to require a simple translation to use the same model for both languages and generalize from there, maybe a "generalized simple translation"
15:39:44 <orbitaldecay> could involve something like what you're talking about
15:40:15 <ais523> my #1 concern is making the definition as rigorous and non-corner-casey as possible
15:40:53 <orbitaldecay> I agree
15:41:40 <orbitaldecay> I am going to modify the simple translation page to require the same model as that's the spirit in which it was created. From there let's talk about generalizing it between models.
15:41:51 <ais523> anyway, I believe that a definition of simple translation that a) focuses entirely on halt behaviour, not internal state, b) allows an arbitrary prefix and suffix
15:42:02 <ais523> is an entirely different concept from yours but also randomly happens to be very useful for thinking about languages
15:42:20 <ais523> even though the definition is almost the same, it now permits almost anything (because it permits interpreters that look at a string literal)
15:42:53 <ais523> and the nice thing about permitting almost anything TC is that it /doesn't/ permit some things that are TC, which is valuable information in its own right
15:43:23 <ais523> I was hoping to call that "generalized simple translation" but perhaps it needs its own name
15:44:25 <ais523> anyway, even looking at the small picture, RBF→PF→RBF simple translation is a really interesting problem (I believe it's possible without Salpynx-style approaches, although you might need a lot of temporary tape space)
15:44:37 <ais523> and Underload→2-command Underload→Underload simple translation is also interesting
15:44:41 <ais523> at the lexical level
15:44:59 <orbitaldecay> Yeah, I am quite interested in exploring underload minimizations in this context
15:45:09 <ais523> we already have a translation that handles everything except "complex" (…), where the commands are (~)(:)(^)(a)(*)(!!!!!!) and ^
15:45:39 <esowiki> [[Simple translation]] https://esolangs.org/w/index.php?diff=71582&oldid=71569 * Orby * (-277) Changing definition to require same machine model between languages
15:46:11 <ais523> Underload is TC using finitely many possible (…) commands; the usual set is (~)(:)(!)(*)(a)(^), and it's trivial to break down any existing Underload programs to use only those 6 (…) commands
15:46:59 <ais523> and you can produce a simple translation between (~) (:) (!) (*) (a) (^) ~ : ! * a ^ Underload and (~)(:)(^)(a)(*)(!!!!!!) ^ Underload
15:47:31 <ais523> but what's piqued my interest is: in the full version of Underload, can you produce a simple translation of ( and ) on their own?
15:47:54 <ais523> I guess you could call this a "lexical simple translation" because it's based on the characters of the source code, not the individual commands
15:48:37 <orbitaldecay> interesting!
15:49:21 <orbitaldecay> I am concerned that the current definition of simple translation still allows for salpynx-style translations
15:50:07 <orbitaldecay> My brain is getting fuzzy
15:50:12 <ais523> the best part of Underload minimization, IMO, is when we discovered that ~ can be expressed in terms of the other commands, but it's really complicated to do so
15:50:31 <ais523> the shortest known implementation of ~ in terms of the others is a(!a)(!)(a*a*:*^!a*^):*^ which is just ridiculous :-)
15:50:53 <orbitaldecay> Man, I need to get into underload
15:52:29 <ais523> ^ul (a)(b)SS
15:52:29 <fungot> ba
15:52:37 <ais523> ^ul (a)(b)a(!a)(!)(a*a*:*^!a*^):*^SS
15:52:37 <fungot> ab
15:52:50 <ais523> ^ul (a)(b)a(!a)(!)(a*a*:*^!a*^)^SS
15:52:51 <fungot> b!
15:52:57 <ais523> ^ul (a)(b)a(!a)(!)(a*a*:*^!a*^)^SSS
15:52:57 <fungot> b!(a)
15:53:03 <ais523> ^ul (a)(b)a(!a)(!)(a*a*:*^!a*^)^SSSS
15:53:03 <fungot> b!(a) ...out of stack!
15:53:39 <b_jonas> ^ul (a)(b) ~ S(-)S
15:53:40 <fungot> ...bad insn!
15:54:01 <b_jonas> ^ul (a)(b)SS
15:54:01 <fungot> ba
15:54:09 <b_jonas> ^ul (a)(b) ~ S(z)S
15:54:09 <fungot> ...bad insn!
15:54:14 <b_jonas> ^ul (a)(b) ~ SS
15:54:14 <fungot> ...bad insn!
15:54:19 <b_jonas> ^ul (a)(b) ~ S
15:54:19 <fungot> ...bad insn!
15:54:21 <b_jonas> ^ul (a)(b)~S
15:54:21 <fungot> a
15:54:25 <b_jonas> oh, it doesn't like whitespace
15:54:32 <b_jonas> ^ul (a)(b)~S(-)SS
15:54:32 <fungot> a-b
15:54:40 <b_jonas> ^ul (a)(b)a(!a)(!)(a*a*:*^!a*^):*^S(-)SS
15:54:40 <fungot> a-b
15:55:15 <orbitaldecay> gtg, catch yall later
15:55:33 -!- tromp has quit (Remote host closed the connection).
15:56:16 <b_jonas> ^ul (a)(b)~*()SS
15:56:16 <fungot> ba
15:56:21 <b_jonas> ^ul (a)(b)*()SS
15:56:22 <fungot> ab
15:56:31 <b_jonas> ^ right, that's why you can't test with just SS
15:56:37 <b_jonas> ^ul (a)(b)*()S(-)SS
15:56:37 <fungot> -ab
15:56:46 <ais523> b_jonas: I was being sloppy, I know
15:56:51 <ais523> but it's good enough for testing when you know you aren't cheating
15:59:11 -!- zseri has quit (Quit: zseri).
15:59:35 <ais523> what we really need for this is the A command from Underlambda
15:59:50 <ais523> it puts parentheses around the /entire/ stack, not just the top element
16:00:03 <ais523> so, e.g. (a)(b)AS prints "(a)(b)"
16:16:06 -!- ais523 has quit (Quit: quit).
16:24:19 -!- user24 has joined.
16:28:56 <esowiki> [[W (A)]] https://esolangs.org/w/index.php?diff=71583&oldid=71402 * LegionMammal978 * (-11) Undo revision 71402 by [[Special:Contributions/LegionMammal978|LegionMammal978]] ([[User talk:LegionMammal978|talk]])
16:28:59 <esowiki> [[Resource]] https://esolangs.org/w/index.php?diff=71584&oldid=71403 * LegionMammal978 * (-11) Undo revision 71403 by [[Special:Contributions/LegionMammal978|LegionMammal978]] ([[User talk:LegionMammal978|talk]])
16:29:01 <esowiki> [[Tq]] https://esolangs.org/w/index.php?diff=71585&oldid=71404 * LegionMammal978 * (-11) Undo revision 71404 by [[Special:Contributions/LegionMammal978|LegionMammal978]] ([[User talk:LegionMammal978|talk]])
16:32:41 <rain1> > BF derivatives
16:32:44 <lambdabot> error:
16:32:44 <lambdabot> Data constructor not in scope: BF :: t0 -> terror: Variable not in scope...
16:32:49 <rain1> is it possible to differentiate brainfuck programs?
16:32:54 -!- tromp has joined.
16:34:26 <rain1> i like RBF
16:34:36 <rain1> it has a nice minimalism
16:42:46 <arseniiv> (BF)′ = B′F + BF′. A brain derivative may well be psyche, but I’ll abstain from finding the second one :?
16:47:04 -!- rain1 has quit (Quit: leaving).
16:49:21 <b_jonas> `! underload (hello )S
16:49:22 <HackEso> hello
16:50:03 <b_jonas> `` \! underload "(hello )S"
16:50:11 <HackEso> Attempt to execute unknown command 117
16:50:17 <b_jonas> ^ why does this one fail?
16:50:29 <b_jonas> where is that error message coming from?
16:53:10 -!- zseri has joined.
16:54:19 <esowiki> [[Simple translation]] https://esolangs.org/w/index.php?diff=71586&oldid=71582 * Orby * (+280)
16:55:15 <int-e> `` \! "underload (hello )S"
16:55:16 <HackEso> hello
16:56:32 <b_jonas> int-e: oh right! sorry
16:56:41 <b_jonas> `! underload
16:56:42 <HackEso> Attempt to execute unknown command 117
16:56:49 <b_jonas> `! underload
16:56:50 <HackEso> No output.
17:00:23 <int-e> `` echo -n "ul" | cut -d' ' -f2-
17:00:26 <HackEso> ul
17:02:39 -!- Phantom_Hoover has joined.
17:03:08 <int-e> (that doesn't cut it)
17:07:15 <esowiki> [[User:Willicoder]] https://esolangs.org/w/index.php?diff=71587&oldid=71382 * Willicoder * (+143)
17:14:43 -!- ais523 has joined.
17:19:18 <tswett[m]> Hmmmm
17:22:07 <tswett[m]> a(b(c + d + e) + c(d + e) + de) + b(c(d + e) + de) + cde
17:22:52 <tswett[m]> If you want to write a Boolean function, one way is as an expression such as the above.
17:23:10 <tswett[m]> But those can get cumbersome; at some point you want to switch from expressions to circuits.
17:26:51 <tswett[m]> a(b(c(d + e + f + g) + d(e + f + g) + e(f + g) + fg) + c(d(e + f + g) + e(f + g) + fg) + d(e(f + g) + fg) + efg) + b(c(d(e + f + g) + e(f + g) + fg) + d(e(f + g) + fg) + efg) + c(d(e(f + g) + fg) + e(f + g) + fg) + defg
17:27:09 <tswett[m]> I think that's how to write the 4-of-7 majority gate as an expression.
17:27:12 <tswett[m]> It's awful :D
17:31:39 <esowiki> [[Nanofuck]] M https://esolangs.org/w/index.php?diff=71588&oldid=71574 * PythonshellDebugwindow * (-38)
17:32:49 <esowiki> [[Nanofuck]] M https://esolangs.org/w/index.php?diff=71589&oldid=71588 * PythonshellDebugwindow * (+0) /* Reversible Bitfuck */
17:35:04 <esowiki> [[Small]] M https://esolangs.org/w/index.php?diff=71590&oldid=71167 * LegionMammal978 * (-45) fixed example
17:35:37 <esowiki> [[Small]] M https://esolangs.org/w/index.php?diff=71591&oldid=71590 * LegionMammal978 * (+17) fixed code
17:36:33 -!- xelxebar has quit (Remote host closed the connection).
17:36:58 -!- xelxebar has joined.
17:37:58 <esowiki> [[Small]] M https://esolangs.org/w/index.php?diff=71592&oldid=71591 * PythonshellDebugwindow * (-2) /* Interpreter */
17:38:13 <esowiki> [[Small]] M https://esolangs.org/w/index.php?diff=71593&oldid=71592 * PythonshellDebugwindow * (+5) /* Interpreter */
17:38:54 -!- tromp has quit (Remote host closed the connection).
17:40:09 <esowiki> [[W (A)]] M https://esolangs.org/w/index.php?diff=71594&oldid=71583 * PythonshellDebugwindow * (+0) fix bold
17:40:21 <esowiki> [[W (A)]] M https://esolangs.org/w/index.php?diff=71595&oldid=71594 * PythonshellDebugwindow * (+2)
17:45:57 -!- rain1 has joined.
17:46:00 <esowiki> [[$ $]] M https://esolangs.org/w/index.php?diff=71596&oldid=69461 * PythonshellDebugwindow * (+0) /* Commands */
17:51:20 -!- tromp has joined.
18:04:34 -!- kevinalh has quit (Ping timeout: 240 seconds).
18:08:05 -!- xkapastel has quit (Quit: Connection closed for inactivity).
19:03:35 -!- kevinalh has joined.
19:09:16 -!- kevinalh has quit (Ping timeout: 246 seconds).
19:16:37 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds).
19:25:56 <esowiki> [[Conditional brainfuck]] N https://esolangs.org/w/index.php?oldid=71597 * Orby * (+1609) Created page with "Conditional brainfuck (CBF) is a brainfuck variant discovered by [[User:Orby]] in May of 2020. =Model= CBF uses a tape of n-bit wrapping cells which is unbounded on the right...."
19:28:14 -!- kevinalh has joined.
19:33:15 <esowiki> [[VALGOL]] M https://esolangs.org/w/index.php?diff=71598&oldid=31183 * PythonshellDebugwindow * (+152) deadlink/wayback
19:33:24 -!- craigo_ has joined.
19:35:19 -!- Phantom_Hoover has joined.
19:36:49 <esowiki> [[User:Orby]] M https://esolangs.org/w/index.php?diff=71599&oldid=71573 * Orby * (+96)
19:39:35 -!- user24 has quit (Quit: Leaving).
19:39:41 <esowiki> [[FLIPER Computer]] M https://esolangs.org/w/index.php?diff=71600&oldid=58030 * PythonshellDebugwindow * (+35) /* Examples */ cat
19:40:25 -!- arseniiv has quit (Ping timeout: 246 seconds).
19:42:05 -!- tromp has quit (Remote host closed the connection).
19:53:46 -!- rain1 has quit (Quit: leaving).
19:58:27 <esowiki> [[Alphaprint]] M https://esolangs.org/w/index.php?diff=71601&oldid=70707 * PythonshellDebugwindow * (+19) /* Resources */ cat
19:59:50 <esowiki> [[Exp]] M https://esolangs.org/w/index.php?diff=71602&oldid=70011 * PythonshellDebugwindow * (+20) /* Cat program (1 character) */ category
20:00:22 <esowiki> [[Line Feed]] M https://esolangs.org/w/index.php?diff=71603&oldid=70442 * PythonshellDebugwindow * (+19) /* Interpreter in Io */ cat
20:03:08 <esowiki> [[Uack]] M https://esolangs.org/w/index.php?diff=71604&oldid=71492 * PythonshellDebugwindow * (+19) /* Examples */
20:03:08 -!- tromp has joined.
20:03:42 -!- TheLie has joined.
20:04:26 <esowiki> [[PlusOrMinus]] M https://esolangs.org/w/index.php?diff=71605&oldid=71427 * PythonshellDebugwindow * (+19) /* Resources */ cat
20:05:26 <esowiki> [[MangularJS]] M https://esolangs.org/w/index.php?diff=71606&oldid=71465 * PythonshellDebugwindow * (+27) /* Variable */
20:05:57 <esowiki> [[HaltJS]] M https://esolangs.org/w/index.php?diff=71607&oldid=70959 * PythonshellDebugwindow * (+7) /* Hello World */ cat
20:06:26 <esowiki> [[HaltJS]] M https://esolangs.org/w/index.php?diff=71608&oldid=71607 * PythonshellDebugwindow * (-8) damn Unicode quotes
20:06:42 <esowiki> [[HaltJS]] M https://esolangs.org/w/index.php?diff=71609&oldid=71608 * PythonshellDebugwindow * (+31) /* Hello World */
20:08:29 <esowiki> [[Cut]] M https://esolangs.org/w/index.php?diff=71610&oldid=68212 * PythonshellDebugwindow * (+19) cats
20:09:10 <esowiki> [[HQ9+]] https://esolangs.org/w/index.php?diff=71611&oldid=70415 * PythonshellDebugwindow * (+19) /* External resources */ cat
20:09:47 <esowiki> [[H9+]] M https://esolangs.org/w/index.php?diff=71612&oldid=54612 * PythonshellDebugwindow * (+19) cats
20:13:27 -!- tromp has quit (Remote host closed the connection).
20:13:54 -!- tromp has joined.
20:14:39 <esowiki> [[APLWSI]] https://esolangs.org/w/index.php?diff=71613&oldid=66297 * PythonshellDebugwindow * (+19) /* Interpreter */ cat
20:16:53 <Sgeo> Would conscious life be more likely to emerge in a randomly seeded Game of Life universe (with no known small replicators) or in a HighLife universe (with a known small replicator)?
20:18:45 <Sgeo> (Although I guess GoL still has replicators likely to be a lot smaller than anything resembling actual life?)
20:19:06 <fizzie> I imagine you'll just have to conduct some simulations to find out.
20:19:15 <esowiki> [[GHOST]] M https://esolangs.org/w/index.php?diff=71614&oldid=57429 * PythonshellDebugwindow * (+4) /* See Also */ cat
20:21:21 <esowiki> [[Gibberish/JavaScript]] https://esolangs.org/w/index.php?diff=71615&oldid=43349 * PythonshellDebugwindow * (-4) /* Asterisks counter */ rm redlink
20:22:51 <esowiki> [[BitChanger]] M https://esolangs.org/w/index.php?diff=71616&oldid=53679 * PythonshellDebugwindow * (+29) /* External resources */ cat
20:23:31 <esowiki> [[XO Mchne]] M https://esolangs.org/w/index.php?diff=71617&oldid=68211 * PythonshellDebugwindow * (+19) /* C Implementation */ cat
20:41:52 <ais523> orbitaldecay: why do you keep using <h1> headings on the wiki? those are meant to be for the heading at the top of the page
20:42:01 <ais523> or for special cases where you need something bigger than the normal <h2>
21:05:55 <zzo38> The shuffling function I implemented in TeXnicard seems to work now, in addition to the random number function. (I implemented my own rather than using that of SQLite or of the operating system, because I will need the random numbers to be reproducible.)
21:15:35 -!- TheLie has quit (Ping timeout: 244 seconds).
21:18:25 <orbitaldecay> ais523: just plain ignorance on my part :)
21:30:12 <orbitaldecay> ais523: Ok, I'm really interested in Overload due to it's close relationship with unlambda and my recent foray into adding the forth : ; to stack based languages
21:31:07 <orbitaldecay> I made a bootable iso last week of what I'm calling Skiforth, which is basically postfix unlamda with the forth style : ; word definitions
21:31:43 <orbitaldecay> The forth style word definitions are crazy powerful when combined with basically any stack based language
21:32:12 <orbitaldecay> I should say specifically postfix stack based languages
21:33:51 <orbitaldecay> I don't understand the overload ^ operator, could you explain the model?
21:42:03 <imode> forth style word definitions are insanely powerful. forth without random access is nearly unbearable!
21:54:11 -!- ais523 has quit (Read error: Connection reset by peer).
21:55:06 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
22:07:03 -!- Train has joined.
22:07:31 -!- lambdabot has quit (*.net *.split).
22:07:31 -!- HackEso has quit (*.net *.split).
22:07:31 -!- j-bot has quit (*.net *.split).
22:07:31 -!- Vorpal has quit (*.net *.split).
22:07:31 -!- ornxka has quit (*.net *.split).
22:07:31 -!- b_jonas has quit (*.net *.split).
22:07:31 -!- sebbu has quit (*.net *.split).
22:07:31 -!- sprocklem has quit (*.net *.split).
22:07:31 -!- rodgort has quit (*.net *.split).
22:07:33 -!- zseri has quit (*.net *.split).
22:07:33 -!- probablymoony has quit (*.net *.split).
22:07:33 -!- iovoid has quit (*.net *.split).
22:07:33 -!- shinh has quit (*.net *.split).
22:07:33 -!- nchambers has quit (*.net *.split).
22:07:33 -!- aloril has quit (*.net *.split).
22:08:02 -!- shinh has joined.
22:08:27 -!- aloril has joined.
22:08:50 -!- HackEso has joined.
22:09:05 <Train> I golfed my addition program.
22:09:28 -!- HackEso has quit (Changing host).
22:09:28 -!- HackEso has joined.
22:09:49 -!- rodgort has joined.
22:10:02 -!- iovoid has joined.
22:10:11 -!- iovoid has quit (Changing host).
22:10:11 -!- iovoid has joined.
22:10:19 -!- Vorpal has joined.
22:10:30 -!- Vorpal has quit (Changing host).
22:10:30 -!- Vorpal has joined.
22:10:48 -!- zseri has joined.
22:10:55 -!- ornxka has joined.
22:10:56 -!- nchambers has joined.
22:11:56 -!- lambdabot has joined.
22:12:47 -!- b_jonas has joined.
22:12:55 -!- sprocklem has joined.
22:13:08 -!- moony has joined.
22:17:54 -!- sebbu has joined.
22:18:25 <zseri> huh, did freenode have a hiccup?
22:18:35 <Train> I think so.
22:21:33 <Train> zzo38, I golfed my addition.
22:21:40 <Train> 357 bytes down to 114.
22:23:02 <zzo38> Train: O, good.
22:23:41 <Train> Here's the new one:
22:23:47 <Train> SdaaaaaaaaaaaaaaaaV
22:23:55 <Train> It's much tidier.
22:24:08 <Train> Do you know how I can represent it so it doesn't fill spaces
22:24:25 <Train> Because it doesn't show the code very well on here.
22:24:35 <Train> Does freenode support latex?
22:24:52 <zzo38> You should perhaps post with sprunge and then post the link.
22:25:00 <Train> Okay.
22:25:24 <Train> http://sprunge.us/9HUcOz
22:25:25 <zzo38> Freenode is a IRC server; it isn't the job of the IRC server to support LaTeX, although maybe some clients do I don't know (although mine doesn't).
22:25:53 <Train> Okay.
22:27:46 <zzo38> I do have TeX on my computer, although it is Plain TeX and not LaTeX.
22:28:19 <Train> Alright. Can you see the sprunge?
22:28:37 <zzo38> Yes.
22:28:47 <Train> What do you think?
22:29:02 <Train> Of the new addition program?
22:29:55 <zzo38> It look like OK to me.
22:30:25 <Train> It's nice and compact.
22:31:01 <zzo38> Yes.
22:31:33 <Train> I'm quite proud of the little relay down the bottom, since it's so compact.
22:33:37 <Train> I saw one of your esolangs, memfractal. Quite a cool concept.
22:37:07 <Train> https://esolangs.org/logs/2002-12-14.html is the first log I can see. How long has this channel been around for?
22:37:25 <zzo38> I don't know.
22:37:44 -!- kevinalh has quit (Ping timeout: 256 seconds).
22:40:37 -!- kevinalh has joined.
22:51:16 <Train> zzo38, I'm still curious about your method for finding quines. Can you elaborate?
22:59:58 -!- xkapastel has joined.
23:02:17 <zzo38> I don't have any method; I just did it.
23:03:01 -!- Train has quit (Remote host closed the connection).
23:04:46 <b_jonas> I do have a method. It's that I create a quine by making a list of strings and indexing into them from a list of indexes.
23:04:52 <b_jonas> Train: ^
23:05:19 <b_jonas> It leads to quines like
23:05:29 <b_jonas> `perl -eprint+("`perl -eprint+(","\"",",","\\",")[g1012131121212133121414=~/./g]")[g1012131121212133121414=~/./g]
23:05:30 <HackEso> ​`perl -eprint+("`perl -eprint+(","\"",",","\\",")[g1012131121212133121414=~/./g]")[g1012131121212133121414=~/./g]
23:09:37 -!- j-bot has joined.
23:12:16 -!- Train has joined.
23:12:52 <Train> I can see how you worked out it would be one line long, but the actual interspersing of NOPs was amazing.
23:19:13 <zzo38> Well, I don't really have a method.
23:20:39 <b_jonas> `` rm -v /hackenv/stuff
23:20:41 <HackEso> removed '/hackenv/stuff'
23:29:42 -!- Lord_of_Life_ has joined.
23:31:44 -!- Lord_of_Life has quit (Ping timeout: 256 seconds).
23:32:30 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
23:57:23 -!- kevinalh has quit (Ping timeout: 260 seconds).
23:58:24 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”).
←2020-04-30 2020-05-01 2020-05-02→ ↑2020 ↑all