00:29:02 -!- nchambers has changed nick to uplime. 00:33:05 -!- sprocklem has quit (Ping timeout: 248 seconds). 00:36:30 `mkx bin/5?//cmds=($1); for i in {1..5}; do \` "${cmds[$((RANDOM % ${#cmds[@]}))]}"; done 00:36:44 bin/5? 00:36:46 `mkx bin/q//quote "$@" 00:36:48 bin/q 00:36:51 `5? w q 00:36:54 1074) <+kmc> my girlfriend served as an adult control subject for some behavioral research on children [...] <+kmc> she did live on psych studies for a year yeah Is there a control protocol where you don't use people who live off being sociology test subjects \ 323//323 is a quine in McCulloch's first machine. \ furryscript//FurryScrip 00:37:17 `sled bin/5?//s/$/ | sport/ 00:37:24 bin/5?//cmds=($1); for i in {1..5}; do \` "${cmds[$((RANDOM % ${#cmds[@]}))]}"; done | sport 00:37:26 `5? w q 00:37:30 1/2:quadrilateral//Don't you mean "tetrapleur"? \ 134) It's like mathematicians, where the next step up from "trivial" is "open research question". "Nope... No...This problem can't be done AT ALL. This one--maybe, but only with two yaks and a sherpa. ..." \ flower//flower. what IS a flower? \ cow//A cow is an animal best se 00:37:36 `n 00:37:37 2/2:rved at minus zero degrees Celsius. \ page//The smallest floating-point number is known as pages. Fungot discovered it. 00:38:30 `sled bin/5?//s/1/{1:-w q}/ 00:38:32 bin/5?//cmds=(${1:-w q}); for i in {1..5}; do \` "${cmds[$((RANDOM % ${#cmds[@]}))]}"; done | sport 00:38:34 `5? 00:38:38 1/2:nnection//Nnections are measured in millibytes per siemens. \ 761) i don't get how people are afraid of parachute jumping but they routinely drive a car in fucking traffic \ codo//The codo button is the dodo's undo button. \ 428) beautiful summer / fuck fuck fuck fuck fuck fuck fuck / fuck fuck fuck fuck fuck \ ist//An i 00:38:42 `n 00:38:43 2/2:st is an incomplete list. 00:45:29 Should software written in a interpreted language (and as such ran by software) be called softerware? 00:47:32 Nope. 00:47:39 Well… 00:47:43 Maybe once LLVM supports it. 00:47:49 Either as Front-End, or as Back-End, 00:47:57 s#d,#d. 00:48:10 LLVM is ingenious. 00:48:24 (But i still like GNU-Stuffs better because of religious Issues) 01:28:40 APic, LLVM has a bitcode interpreter already 01:28:54 so you can interpret your C code, if you really want to do that 01:31:27 -!- zzo38 has joined. 01:35:45 -!- imode has quit (Ping timeout: 264 seconds). 01:36:07 `5? 01:36:11 1/2:846) it's weird hanging around people for whom the northernmost point in the world is nottingham \ just//Just is just a just adverb. \ qc//QC is Quantum Computing. \ homophone//Homophones are pairs of words that sound totally gay together. \ 435) Tooth or Bear: Each turn, either take out your own tooth, or wrestle 01:36:17 `n 01:36:18 2/2: a bear. 01:36:38 Hmm, there's no reason to implement 5? this way, this is nonsense. 01:37:05 Just use `5 choose w q 01:37:28 I think I had something fancier in mind before. 01:45:35 -!- variable has joined. 01:47:50 -!- variable has changed nick to function. 01:54:19 I have figured out the Hero Mesh file format some more now 02:02:56 Someone should invent a good name for choose. 02:26:27 -!- imode has joined. 02:51:01 -!- function has quit (Quit: /dev/null is full). 03:57:49 -!- doesthiswork has quit (Read error: Connection reset by peer). 03:57:51 -!- doesthiswork1 has joined. 04:37:38 Have you ever seen how APL programmers write C? http://code.jsoftware.com/wiki/Essays/Incunabulum 04:58:07 Now I can 05:18:00 -!- variable has joined. 05:28:11 oh god 05:50:25 you can tell that they value conciseness very highly 05:50:43 Yes 05:55:48 -!- sprocklem has joined. 06:02:52 -!- augur has quit (Remote host closed the connection). 06:18:31 computers suck 06:22:41 -!- Melvar has quit (Ping timeout: 256 seconds). 06:22:57 -!- idris-bot has quit (Ping timeout: 248 seconds). 06:25:12 -!- sleffy has quit (Ping timeout: 246 seconds). 06:27:07 -!- tromp_ has joined. 06:29:13 -!- tromp has quit (Ping timeout: 240 seconds). 06:36:57 -!- Melvar has joined. 06:44:31 -!- tromp_ has quit (Remote host closed the connection). 06:57:07 -!- doesthiswork1 has quit (Quit: Leaving.). 07:06:49 -!- imode has quit (Ping timeout: 260 seconds). 07:11:50 -!- sprocklem has quit (Read error: Connection reset by peer). 07:12:27 -!- sprocklem has joined. 07:15:13 -!- Melvar has quit (Ping timeout: 248 seconds). 07:30:37 -!- Melvar has joined. 08:14:08 -!- tromp has joined. 08:47:25 -!- xkapastel has quit (Quit: Connection closed for inactivity). 09:40:03 [[Meq]] https://esolangs.org/w/index.php?diff=54345&oldid=42646 * Oerjan * (+25) /* External resources */ Wayback 09:57:21 -!- rodgort has quit (Quit: Leaving). 10:02:23 -!- rodgort has joined. 10:21:32 -!- sebbu has quit (Quit: reboot). 10:29:35 -!- sebbu has joined. 10:47:21 -!- Naergon_ has quit (Ping timeout: 268 seconds). 10:47:21 -!- LKoen has joined. 11:15:10 -!- AnotherTest has joined. 11:33:05 -!- wob_jonas has joined. 11:37:03 -!- LKoen has quit (Remote host closed the connection). 11:41:06 ``` cat "bin/5?" 11:41:48 fungot, prod HackEgo for me, he's asleep again 11:41:49 wob_jonas: next-position is expecting something that is easy to make it 11:41:54 `ping 11:43:28 pong 11:43:33 cmds=(${1:-w q}); for i in {1..5}; do \` "${cmds[$((RANDOM % ${#cmds[@]}))]}"; done | sport 11:43:43 thanks, fungot. thungot. 11:43:43 wob_jonas: no worries. 11:44:21 ``` cat "bin/sport" 11:44:22 distort "${2:-/dev/stdin}" | spore "${1-1}" 11:44:28 `? sport 11:44:33 `? distort 11:44:35 `? spore 11:44:42 sport divides its input into irc-sized pieces and displays the nth (default first). The pipe version of `1. See also spore. 11:44:42 distort? ¯\(°​_o)/¯ 11:44:42 spore stores its input in tmp/spout and displays the nth line (default first). For a version considering irc line lengths, see sport. See also `spam. 11:45:12 ``` cat "bin/spam" 11:45:14 line="${1-$(cat /hackenv/tmp/spline)}"; len="$(awk 'END{print NR}' /hackenv/tmp/spout)"; echo -n "$line/$len:"; sed -n "${line}{p;q}" /hackenv/tmp/spout; echo "$((line /hackenv/tmp/spline 11:45:21 ``` cat "bin/5" 11:45:22 cmd="${1-quote}"; \`^ 5 "$cmd" 11:45:26 ``` cat "bin/1" 11:45:27 ​\` "$@" |& sport 11:45:44 nice. so I can just pipe into sport. 12:10:04 -!- idris-bot has joined. 12:20:31 .. so 12:20:35 Both BFJoust hills are dead? 12:21:52 -!- AnotherTest has quit (Ping timeout: 245 seconds). 12:42:49 -!- sprocklem has quit (Ping timeout: 260 seconds). 12:52:02 -!- LKoen has joined. 12:57:25 -!- spacial_being328 has joined. 12:57:26 -!- spacial_being328 has quit (Remote host closed the connection). 13:00:30 -!- doesthiswork has joined. 13:05:09 -!- doesthiswork has quit (Ping timeout: 265 seconds). 13:13:18 -!- sprocklem has joined. 13:15:54 !bfjoust life < 13:27:24 Lymia: I've been working on migrating it to esolangs.org, but it's taken longer than expected, probably because I started overengineering some bits. 13:27:32 Lymia: Let me just bring up the zem.fi instance. 13:27:39 (It's down since a reboot.) 13:27:40 Well :P 13:27:52 I thought this might be the perfect chance to work on that "#1 ever" ranking 13:27:54 Since everything's down 13:29:31 -!- zemhill has joined. 13:30:32 Just to give some indication as to how far I've gotten from a simple migration, I just finished writing a static website generator with Bazel macros. 13:30:46 It's probably lunchtime. Let me know if it doesn't work. 13:31:00 ...actually, I'm supposed to be getting alerts if it's down. Wonder what happened to those. 14:28:20 !bfjoust going-out-on-a-limb < 14:28:41 is - invalid? 14:28:52 `grwp invalid character 14:29:58 No output. 14:35:46 int-e: No, but the command is !zjoust (or !ztest). 14:36:12 (The characters [a-zA-Z0-9_-] are valid.) 14:36:57 If I migrate it to esolangs.org, I may consider changing the command back to !bfjoust, since it doesn't look too likely the codu.org hill is coming back. 14:37:13 !zjoust going-out-on-a-limb < 14:37:14 int-e.going-out-on-a-limb: points -46.00, score 0.00, rank 47/47 14:40:42 In retrospect, I should've tested what's wrong with the alert before I brought that back up. 14:41:22 The alert is based on probing the web endpoint with a POST request in the "test" mode, and checking that returns a 200 status code. 14:41:41 Maybe when it's down it still returns a 200 but with an error message payload. 15:00:58 -!- LKoen has quit (Remote host closed the connection). 15:06:16 -!- doesthiswork has joined. 15:19:35 -!- LKoen has joined. 15:45:20 -!- xkapastel has joined. 15:59:43 -!- rumble has joined. 16:03:02 -!- fractal has quit (*.net *.split). 16:03:03 -!- shachaf has quit (*.net *.split). 16:03:03 -!- grumble has quit (*.net *.split). 16:03:06 -!- trn has quit (*.net *.split). 16:03:06 -!- Soni has quit (*.net *.split). 16:03:19 -!- rumble has changed nick to grumble. 16:09:40 -!- Soni has joined. 16:09:40 -!- Soni has quit (Changing host). 16:09:40 -!- Soni has joined. 16:11:05 -!- Taneb has quit (Ping timeout: 256 seconds). 16:11:09 -!- sdhand has quit (Ping timeout: 265 seconds). 16:11:31 -!- fractal has joined. 16:12:03 -!- sdhand has joined. 16:12:26 -!- sdhand has changed nick to Guest38837. 16:12:59 -!- Taneb has joined. 16:13:43 -!- Guest38837 has quit (Changing host). 16:13:43 -!- Guest38837 has joined. 16:13:43 -!- Guest38837 has changed nick to sdhand. 16:17:54 -!- trn has joined. 16:18:58 -!- shachaf has joined. 16:30:45 -!- imode has joined. 16:33:22 -!- AnotherTest has joined. 17:52:40 -!- contrapumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…). 18:13:00 -!- contrapumpkin has joined. 18:14:07 -!- sleffy has joined. 18:36:58 -!- sprocklem has quit (Ping timeout: 264 seconds). 18:45:33 -!- Phantom_Hoover has joined. 18:45:33 -!- Phantom_Hoover has quit (Changing host). 18:45:33 -!- Phantom_Hoover has joined. 18:46:27 -!- sprocklem has joined. 19:31:44 -!- sprocklem has quit (Ping timeout: 260 seconds). 19:43:12 -!- sleffy has quit (Ping timeout: 246 seconds). 19:58:20 -!- Naergon has joined. 20:03:47 -!- augur has joined. 20:17:49 -!- ais523 has joined. 20:39:12 -!- ais523 has quit (Remote host closed the connection). 20:39:24 -!- ais523 has joined. 20:44:13 -!- Slereah has quit (Ping timeout: 256 seconds). 20:46:20 -!- Guest6451 has joined. 20:57:07 fungot 20:57:08 olsner: before ass'? the tuple approach is an alternative subculture in brisbane. or dark ambient.) emacs is honestly much better 20:59:15 `' 20:59:21 451) What does "life" actually mean, anyway; it seems to mean "this thing that's infinitely greater than all my actual hobbies that I do all the time because I rule" 21:00:17 `5? 21:00:27 1/2:hat//hatee-hatee-hatee-hooo \ 686) ok in other words, its a lot easier to reason about 2^43112609-1 apples by using the text "2^43112609-1" than it is to actually produce 2^43112609-1 apples \ 932) my university spam filter thinks it's okay for someone i have never met to discuss "usd 2,142,728.00 dollars" with me and "NE 21:00:30 `n 21:00:31 2/2:ED MY HELP" etc. however, inviting me to a conference? such a nigerian thing to do. \ stereotype//A stereotype is a two-channel monotype. \ madness//madness lies thataway. 21:03:57 Cale: index notation is too good 21:13:28 ais523: hi 21:13:39 hi 21:13:57 I came up with a really promising tarpit design recently and have already proved it TC in my head 21:14:02 but I need to work on writing it all down 21:14:06 here are the commands: 21:14:13 I: (*p)++ 21:14:17 D: p=*p 21:14:18 that's it 21:14:43 (p initially points to the start of RAM, each element of RAM also initially points to the start of RAM, just like in Three Star Programmer) 21:14:50 this is simpler than 3* and also a little easier to prove TC 21:15:22 ais523: on https://esolangs.org/wiki/RAM0 , I for one think that a reduction from 3SP is overcomplicating things. It seems obvious that you can directly emulate a pointer machine with writable heap with RAM0. 21:15:40 wob_jonas: yes, there's a construction from Minsky Machines shown first 21:15:58 For that, you have to program it somewhat like you program a 6502, by keeping all the registers in memory at fixed (low) addresses. 21:15:59 the 3* construction is for RAM0-minus-C 21:16:23 ais523: no, I mean no bignums either. either of those hurt my sense of computational efficiency. 21:16:39 you clearly need at least one bignum 21:16:41 ais523: ah, it's for RAM0-minus-C. that's different... hmm 21:16:48 because otherwise you can't access unbounded memory 21:16:53 ais523: sure, eventually you need arbitrarily large addresses 21:17:03 not sure if you can do it with only one, you can almost certainly do it with two 21:17:30 -!- oerjan has joined. 21:17:33 or, hmm 21:17:35 but still, I prefer constructions where you can compile a pointer machine in such a way that the slowdown from the pointer model is only a factor of polylog of the execution time 21:17:40 it's not quite obvious you can do it with two 21:18:11 wob_jonas: I think RAM0-minus-CZ can implement cyclic tag in time proportional to the original cyclic tag program 21:18:21 but presumably you want to implement something faster than cyclic tag 21:18:24 and here you can do it easily, you never have to do real arithmetic with bignums, you only have to add small offsets to the pointers to access fields of structures (or of algebraic datatypes or whatever you call them), plus one register that points to the end of the heap for new allocation 21:18:47 ooh, making linked lists and the like 21:18:52 that's clever, I was wondering how you did arithmetic 21:19:07 not being able to decrement things makes arithmetic in RAM0 pretty hard 21:19:10 ais523: ok, if you want to remove commands from RAM0 that's different, I wasn't thinking of that 21:19:48 ais523: ah, I see. sorry, a pointer machine without call stack, and possibly even with read-only heap, is a very natural model of computation for me 21:19:58 even though in practice I do want fast fixed-size integer arithmetic 21:20:02 @messages-loud 21:20:03 ais523 said 1d 16h 41m 43s ago: re: Fractran with no deterministic execution order, I believe that's equivalent to Petri nets; apparently it took from 1939 to 1981 before it was discovered to be 21:20:03 decidable whether a particular state could be reached, and it's known to be EXPSPACE-hard 21:20:06 but for theoretical models I don't care about that 21:20:22 oerjan: tarpit I'm working on: I means "(*p)++", D means "p=*p", all bignums are valid memory addresses and valid memory values, memory is initially all-zeroes 21:20:32 I believe this is TC (proved it in my head but haven't written it down yet) 21:20:55 hmm, how does "p=*p+=n" parse in C? 21:21:16 I'd want p=((*p)+=n) 21:21:17 And the pointer machine is what I use a standard for considering the computational model efficient. Ideal is polylog factor slowdown, the lower standard is polynomial slowdown, next lower is exponential, then double exponential. 21:21:35 ais523: I think that's how it parses in C, yes 21:21:40 ais523: well maybe reachability is harder than halting, then. 21:21:41 ais523: That's how it parses, but I think it's undefined behavior? 21:22:07 oerjan: I think your proof is for worst-case Fractran 21:22:12 whereas the problem considered there is best-case Fractran 21:22:32 i.e. the difference between always getting a particular state, and getting a particular state with at least one evaluation order 21:23:18 shachaf: hmm, it doesn't violate the same UB rule as "i=i++" 21:23:25 but it might violate a different one 21:23:57 I believe it's defined because the new value assigned to p depends on the old value of p 21:24:09 and no other value is being both read or written, or written twice 21:24:42 ugh... that strange UB rule in C, I don't remember how it goes 21:24:58 ais523: do you assume that p isn't a pointer to p? 21:25:22 no wait 21:25:36 that can't easily happen in C anyway, because of strong type rules 21:25:46 -!- sleffy has joined. 21:25:56 I've asked ##c 21:26:10 (although I changed *p to a[p] so that the data types work out) 21:27:19 Hm, maybe it's not undefined. 21:28:15 ais523: how are a, p, n declareD? 21:29:00 wob_jonas: int a[]; int p; int n; 21:29:03 -!- sprocklem has joined. 21:29:48 if &p isn't something that can be put into the array, it should be fine. 21:29:52 i think. 21:29:55 hmm wait 21:30:03 ais523: and what are your instructions? 21:30:13 wob_jonas: you can view it two ways 21:30:21 either as two commands with no arguments 21:30:25 p=a[p]+=n sounds nice, but you probably need something else, something that sets n 21:30:33 or in an RLE form, in which case we have one command, p=a[p]+=n, and n is its argument 21:30:41 ah, that's more familiar 21:30:45 i.e. a and p are the data storage, and the program is just a list of values of n 21:30:50 I have made an abstract machine somewhat similar to that 21:31:10 (this is comparable to 3*, where the instruction is a[a[a[n]]]++) 21:34:58 [[ByteByteJump]] M https://esolangs.org/w/index.php?diff=54346&oldid=20135 * Ais523 * (+19) +[[Category: OISC]] 21:35:20 [[MISC]] M https://esolangs.org/w/index.php?diff=54347&oldid=24993 * Ais523 * (+19) +[[Category: OISC]] 21:35:36 [[RSSB]] M https://esolangs.org/w/index.php?diff=54348&oldid=46149 * Ais523 * (+19) /* External resources */ +[[Category: OISC]] 21:35:57 [[Subskin]] M https://esolangs.org/w/index.php?diff=54349&oldid=46019 * Ais523 * (+19) +[[Category: OISC]] 21:36:13 [[Three Star Programmer]] M https://esolangs.org/w/index.php?diff=54350&oldid=53321 * Ais523 * (+18) +[[Category: OISC]] 21:36:30 [[TOGA computer]] M https://esolangs.org/w/index.php?diff=54351&oldid=45610 * Ais523 * (+18) +[[Category: OISC]] 21:36:42 cat was being used inconsistently, it was on about half the OISCs 21:36:50 so I added it to the other half (that are categorised at all) 21:37:27 i,i Is cat an esolang? 21:37:37 My abstract machine uses self-modifying instructions, with the instructions stored in main memory. Each instruction has two arguments stored consecutively; and there's two memory-mapped registers, IP at 1 and a comparison flag at 2. unsigned a[9999] = {/*program*/}; for(;;) { unsigned s = a[a[1]]; a[1]++; unsigned d = a[a[1]]; a[1]++; a[2] = (a[s] 21:37:37 -= a[d]) < 0; } 21:38:33 shachaf: https://esolangs.org/wiki/Text 21:38:36 ^botsnack 21:38:36 Oh nom nom nom! 21:38:45 That's one where it would be convenient to just write the main loop as a[2] = (a[a[a[1]]] -= a[a[a[1]]]) < 0; but that would result in UB because it's essential for the program to write into the memory-mapped IP 21:39:11 shachaf: so yes, it's an esolang in the sense of existing on the wiki, just not a very good one 21:39:14 Also, IIRC this model doesn't really need self-modification, because it has double-indirection in the instruction. 21:39:27 it does, however, make for a decent benchmark for kolmogorov-complexity challenges on PPCG 21:39:48 Nor does it need wraparound, you could use int a[9999]; as the memory and write programs that avoid overflow. 21:40:05 wob_jonas: is this some sort of self-modifying 3*? 21:40:20 ais523: no, it's much more convenient than that 21:40:34 where does the a[a[a[]]] come from then? 21:40:52 it allows you to directly do arithmetic subtraction and comparison, as long as you keep a guard bit at the top of the machine word 21:42:32 ais523: the outer a[a[]] comes from wanting to allow indirection so you can avoid self-modifying code; the inner a[1] comes because I added a memory-mapped IP so that an instr with 2 as the first operand is effectively a conditional goto that writes the IP iff the comparison in the previous instruction was true 21:43:36 since this is an OISC, you need a way to goto. the more elegant way for that is something like subleq, which has a conditional goto built into the instruction semantics. the less elegant one is to have two special memory-mapped registers like here, one for IP and one for the comparison 21:43:46 and arrange it for somewhat compact code 21:44:37 This model sucks because I invented it way back in 2005, but I can't uninvent it now. 21:45:03 it's like a really primitive ancestor of 3* 21:45:09 more useful but less elegant 21:45:35 I'd rather compare it to the OISCs of the like of subleq and like five other similar ones 21:45:43 `dobg q 21:45:53 oerjan: please delete 5? twh 21:45:54 11456:2018-03-16 mkx bin/q//quote "$@" \ 9982:2016-12-15 ` mv bin/q quines/q2 \ 9981:2016-12-15 revert \ 9980:2016-12-15 ` q > quines/q2; rm bin/q \ 2691:2013-04-14 mv {,bin/}q && rm q.c \ 1771:2013-01-25 mv bin/q bin/\\? \ 1768:2013-01-25 echo -e \'#!/bin/sh\\ntopic=$(echo 21:46:04 and thene come up with a good name for choose 21:46:46 apparently everyone invents something like this, sometimes with just one instruction, sometimes two or three or four 21:46:48 and then tell me why people call vectors contravariant and covectors covariant twh 21:46:58 wob_jonas: well this new language of mine ("I/D machine") is both very 3* like, and an OISC if you run-length-encode it 21:47:13 `rm bin/5? 21:47:23 No output. 21:47:27 `owrjan 21:47:28 Your omnidryad saddle principal swatty kind "Darth Ook" oerjan the shifty loud punster is a hazy expert in minor compaction. Also a Groadep who minces Roald Dahl. He could never render the word "amortized" so he put it here for connivance. His ark-nemesis is Noah. He twice punned without noticing it. 21:47:47 `swrjan s/punster/hero/ 21:47:53 . o O ( ow ) 21:47:54 oerjan//Your omnidryad saddle principal swatty kind "Darth Ook" oerjan the shifty loud hero is a hazy expert in minor compaction. Also a Groadep who minces Roald Dahl. He could never render the word "amortized" so he put it here for connivance. His ark-nemesis is Noah. He twice punned without noticing it. 21:47:55 ais523: in the non-RLE form, the commands would be { p=a[p]+=n; n=0; } and { n++; } right? 21:48:31 wob_jonas: in the non-RLE form, the commands are { p = a[p]; } and { a[p]++; } 21:48:38 no parameters anywhere 21:48:40 ah 21:48:46 that's even simpler 21:48:53 no wait 21:48:55 how woudl that work? 21:49:08 this isn't supposed to be self-modifying, right? 21:49:14 no 21:49:21 it works in a similar way to 3* 21:49:26 but it's not quite the same 21:49:30 ah... 21:49:42 yes, I think I can see the similarity 21:49:51 in the RLE form there's just one command, { p = a[p] += n; } 21:50:10 and the commands are in a single for(;;) loop, right? 21:50:23 yes 21:50:56 it's sort of like 3SP because you can never decrease the contents of memory cells 21:51:00 which really limits how you can use memory 21:51:19 n is always nonnegative 21:51:22 right 21:51:25 irreversible programming 21:51:37 although I guess in the RLE form, there's no actual /reason/ to disallow negatiev n 21:51:54 other than allowing the language to be converted back into two-command form 21:52:07 my TC construction only uses nonnegative n though 21:52:08 but wouldn't that make it reversible? 21:52:38 I mean, it's still a tarpit that way, and I don't really see how you program it, probably you need some crazy construction like for 3SP 21:52:39 it's not reversible in the sense of, say, BackFlip, because it's possible for two elements of a to have the same value 21:52:45 so you can't reverse it because you don't know which it came from 21:53:03 the construction is very similar to the TC construction for 3*, but simpler (and thus easier to prove) 21:55:09 Totally different topic. I was reading the story of Fingon and Maedhros in the Silmarillion. These two were best friends who got separated at the burning of the Teler ships, Maedhros being Feanor's eldest son and taking the ships, Fingon taking the hard route. 21:56:25 Then Maedhros got captured, and Morgoth made an example of him, chaining him on a tall mountain peak from one of his wrists, sort of Prometheus style, which apparently a first age elf can survive for a long time. 21:58:22 Then Fingon decided to both play a hero and show forgiveness for Feanor's sins in a long-shot attempt to reconcile the conflicts amongst the Noldor under the oath, and he decided to try to rescue Maedhros. 22:00:26 And the interesting part of the story is, since Morgoth has caused permanent magical darkness on his lands, Fingon had to find Maedhros by sound. So Fingon took his harp and started to sing, then listened to where Maedhros sang back from. 22:02:08 Which is another example showing that "harp" doesn't only mean these huge bulky modern orchestra instruments that you have to carry with a truck and tune for hours before the concert starts, but apparently also older portable stringed instruments. 22:04:35 Is there a trope on Tvtropes for when you find someone by their singing, as opposed to them just shouting or crying for help? 22:05:33 I don't know. 22:06:44 I've been watching Steven Universe, and the season 1 finale has an example of this. 22:07:19 -!- Phantom_Hoover has quit (*.net *.split). 22:07:19 -!- Taneb has quit (*.net *.split). 22:07:19 -!- xkapastel has quit (*.net *.split). 22:07:19 -!- sebbu has quit (*.net *.split). 22:07:22 -!- ineiros has quit (*.net *.split). 22:07:23 -!- clog has quit (*.net *.split). 22:07:52 -!- Phantom_Hoover has joined. 22:07:52 -!- Taneb has joined. 22:07:52 -!- xkapastel has joined. 22:07:52 -!- sebbu has joined. 22:07:52 -!- ineiros has joined. 22:07:52 -!- clog has joined. 22:08:14 A prisoner who has the opportunity to break out from her cell wants to find her best friend. They were both captured but separated to different cells, and she finds her by following her singing voice. 22:08:30 -!- xkapastel has quit (Max SendQ exceeded). 22:08:54 In that case only one of them is singing, not both like in Fingon's story. 22:08:59 I have access to All The Tropes wiki, but do not know what to look up, to find such things, unfortunately 22:10:05 -!- xkapastel has joined. 22:10:07 zzo38: probably a mention of Maedhros and Fingon and the Silmarillion and Saphire singing in a Steven Universe episode 22:10:57 -!- sdhand has quit (Ping timeout: 240 seconds). 22:10:59 -!- Naergon has quit (Ping timeout: 260 seconds). 22:12:30 -!- sdhand has joined. 22:12:53 -!- sdhand has changed nick to Guest25915. 22:13:31 I looked up [[Steven Universe]] and see nothing about that (but maybe I did not look clearly enough) 22:13:56 zzo38: yes, it doesn't seem to be mentioned in SPOILERS http://tvtropes.org/pmwiki/pmwiki.php/Recap/StevenUniverseS1E49JailBreak 22:14:37 let me start to search for Fingon and Maedhros instead 22:15:13 Oh, I forgot to mention it, but Fingon is the eldest son of Fingolfin. The story makes a bit more sense that way. 22:15:19 fizzie, PR to chainlance, btw 22:15:54 O, OK 22:16:44 http://tvtropes.org/pmwiki/pmwiki.php/HoYay/TheLordOfTheRings makes a mention of the episode, but doesn't name a trope for finding someone by singing 22:17:13 What is the most number of moves that would ever be possible in a reachable chess position? 22:18:17 zzo38: hmm, I seem to remember someone has considered that problem, and probably solved it, or at least gave very good bounds 22:18:56 zzo38: a similar question: https://www.chess.com/forum/view/fun-with-chess/what-chess-position-has-the-most-number-of-possible-moves 22:19:21 asks for no promoted pawns, probably because extra queens could increase the number 22:19:59 zzo38: also https://www.reddit.com/r/chess/comments/5mazmo/what_is_the_legal_chess_position_where_white_has/ 22:20:47 I though want to know the answer with promoted pawns. 22:21:30 the latter asks that, but I'm not sure it gives a definitive answer, doesn't seem like many people looked in that thread 22:22:03 zzo38: this seems more definitive: https://chessprogramming.wikispaces.com/Encoding%20Moves#MoveIndex 22:22:40 gives references to two or three other older disc'n threads 22:22:54 I'd look there if you want an answer. that considers promoted men too. 22:23:49 That last two looks same except the position of the king 22:24:40 However, it answers the question, so, that is good 22:24:43 do they get the same number? if so, I don't think that's a problem 22:24:50 is there a proof that it's optimal? 22:24:58 I mean 22:25:04 do they give a draft proof that it's optimal? 22:26:19 (I'm not asking if there exists a proof in the mathematical sense, there definitely exists an exponential time brute force one) 22:27:31 :t \a -> (a (\b c -> b)) (\x y z -> (x z) (y z)) 22:27:33 ((p1 -> p2 -> p1) -> ((t1 -> t2 -> t3) -> (t1 -> t2) -> t1 -> t3) -> t4) -> t4 22:28:09 :t let i = \a -> (a (\b c -> b)) (\x y z -> (x z) (y z)) in (i i) 22:28:11 p -> (t1 -> t2 -> t3) -> (t1 -> t2) -> t1 -> t3 22:28:23 hmm, that doesn't look right 22:28:39 I don't know if there is a shorter proof. I looked at those webpages and they don't mention such a thing 22:28:42 :t \a -> a (\x y z -> (x z) (y z)) (\b c -> b) 22:28:44 (((t1 -> t2 -> t3) -> (t1 -> t2) -> t1 -> t3) -> (p1 -> p2 -> p1) -> t4) -> t4 22:28:53 :t let i = \a -> a (\x y z -> (x z) (y z)) (\b c -> b) in (i i) 22:28:55 error: 22:28:55 • Occurs check: cannot construct the infinite type: 22:28:55 p0 ~ t -> p0 -> t 22:29:05 that is, oddly, more plausible 22:29:58 although still not what I expected 22:30:14 that said, I wouldn't expect Iota to work in a strongly typed language anyway 22:30:30 Lymia: I don't know if wrenchlance is the best tool, but it's a reasonable enough feature, so sure. 22:30:48 fizzie: I've lost track of the various lances 22:30:52 although I'm happy that they're being discussed 22:30:59 ais523: for an infinite type occurs check, the compiler has some freedom in what error message it gives exactly, so it needn't be what you expect, right? 22:31:04 !help 22:31:04 ais523: I do !zjoust; see http://zem.fi/bfjoust/ for more information. 22:31:09 ais523: That's very reasonable, I have to look them up in the README too. 22:31:26 In fact I think even for a conflicting type constructors type error, the compiler has that freedom. 22:31:45 Someone should make an esolang based on abstract index notation for general functions rather than just linear ones. 22:31:46 hmm, this nyuroki2 thing seems new 22:31:52 fizzie, what'd you use to achieve that? 22:32:01 But maybe it doesn't. 22:32:35 It could be an interesting syntax. You label all the inputs and outputs to each function, and they get connected together if you use the same name. 22:32:56 Like some sort of dataflow graph? Maybe a language like this already exists. 22:33:10 shachaf: um, what do you mean by abstract index notation? not just de Bruin indexes to encode lambda calculus terms like Real fast Nora's hair salon 2: shear disaster download right? 22:33:43 wob_jonas: No, I mean https://en.wikipedia.org/wiki/Abstract_index_notation 22:33:51 Which is like a basis-free version of Einstein index notation. 22:34:18 `? real fast nora's hair salon 3: shear disaster download 22:34:20 Lymia: have you documented your new winner on the wiki? 22:34:27 Real Fast Nora's Hair Salon 3: Shear Disaster Download is the most readable functional programming language out there. 22:34:33 ais523, nope :D 22:34:40 Nor the autogeneration shenanigans 22:34:42 shachaf: ouch 22:36:39 correction, it's spelled De Bruijn index 22:37:10 Instead of writing f(x,y), you write f_i_j x^i y_j 22:37:19 Er, y^j 22:37:33 Or x^i f_i_j y^j or something, it's commutative. 22:38:30 Or maybe f_i_j^k x^i y^j 22:38:38 Lymia: is the trail to beat margins? or is there some other reason for it? 22:38:44 Where the ^k represents the output 22:39:03 Function composition can be written like f_i^j g_j^k 22:39:43 shachaf: is that just naming all the intermediate results in expressions, like you have to do in prolog? 22:40:09 I haven't really thought it through. 22:40:12 Lymia: gearlance's threaded-code implementation has (generally, anecdotally) outperformed the fancier lances. It's got two "multi-program" binaries, gearlanced (which I use to run the hill, though the interface it has is terrible) and genelance. I guess for a really really big hill your mileage may vary. 22:40:17 Lymia: I've thought about running the "every distinct program in the repository history" tournament, assuming the O(n^2) for that is feasible, but never got around to it. 22:40:23 Maybe this syntax would make more sense for dealing with linear types. 22:40:59 Since a single value x^i^j isn't really the same as a pair of values x^i and y^j, it has more information. 22:42:00 (You can always go from x^i and y^j to z^i^j = x^i y^j, but not in the other direction in general.) 22:43:23 ais523, I've completely forgotten. :D 22:43:37 this is why I document my winners soon after they win :D 22:43:55 fizzie, I'm getting ~11000 programs 22:44:04 margins is weird anyway, it tries to win by winning on tape length 10 and drawing everything else 22:44:07 fizzie: are programs in repository history the ones that got on the leaderboard? 22:44:24 or ladder or whatever it's called noe 22:44:46 wob_jonas: This is all very clear with tensors but it's not quite as clear what it would mean in other contexts. 22:45:11 "all very clear with tensors" 22:45:19 -!- boily has joined. 22:45:24 wob_jonas: It's everything submitted in non-test mode, because the operating logic on the zem.fi hill is that whenever you submit something, you always get on the hill (replacing the current worst program, or the previous version if using the same name). 22:45:54 I see 22:46:02 The current version of Nyuroki's similar to margins, in that it makes bets on tape length, I guess. It wins tape lengths ~10-12, loses ~13-16 (by suicide), and wins ~17+. Against some bots, it starts losing again on very long tapes. 22:46:03 that must be even more programs 22:46:23 I think the codu.org hill had some special-casing so that you had to get a non-worst result in order to get permanently committed. 22:46:25 wob_jonas: Maybe string diagrams are a good way to think about it. 22:46:30 11000 is after normalization, so. 22:46:52 A single object with two lines coming out of it can be more things than two separate objects with one line each. 22:47:05 Lymia: Where are you getting these programs from? 22:47:05 although if it's too many, you could filter them to exclude programs that only appeared in the bottom one or two ranks 22:47:31 fizzie, A merge of egobot and zemhill 22:47:54 wait, is it ranks? 22:48:03 whatever do you call positions on a ladder? 22:48:14 "Rungs"? 22:48:41 wow 22:48:45 Just a guess. 22:49:46 it can't be right if it's rung. 22:49:53 "rung" seems right from a dictionary, but I didn't even remember passively that that noun existed 22:50:18 ais523, looking at it, it's mostly a numbers adjustment 22:50:51 There's a lot of terminology in BF Joust. In the overengineered esolangs.org reimplementation, I'm using "duel" for a single match between two programs with a specific tape length and polarity; "joust" for the results of two programs with all 42 tape/polarity settings; "bout" for the results of one program against everyone else on the hill; and "tournament" the whole matrix. Not sure if those exactly 22:50:55 can they be called "step"? if not, does that work for the positions in a flight of stairs at least? 22:50:57 match standard terminology. 22:50:57 it's nice that things like nyuroki can still do well 22:51:07 (And of course there's kettle/sieve.) 22:51:08 wob_jonas: that works for stairs, also for stepladders 22:51:15 I don't thnk it works for regular ladders 22:51:20 fizzie: that terminology makes no sense :-D 22:51:28 It uses faster rushes when it detects a decoy conflict (rather than the small ones it used to), and I replaced the flag repair with an outright one-time probabilistic lock 22:51:39 Step's possibly reasonable for a metaphorical ladder though. 22:51:50 Lymia: ooh, I'm glad probabilistic locks are catching on 22:51:52 what's the difference between a stepladder and a regular ladder? 22:52:00 ais523: Words are arbitrary. 22:52:15 IIRC, I made sure to time it exactly when a 2-cycle clear that skips all the decoys would clear. 22:52:24 wob_jonas: it's easiest to tell from a photo, you might want to try an image search 22:52:31 ok, a moment 22:52:33 but a stepladder is basically like a very aspect-ratio-distorted set of stairs 22:53:02 an arithmetic sequence of flat surfaces, highly offset vertically, slightly offset horizontally 22:53:10 you can stand on a single step of a stepladder if you have good balance 22:53:38 also, stepladders are nearly always V-shaped, having a "stand" at the back, so that you can place them in the open and all the steps will be at the right orientation 22:54:03 regular ladders tend to be an arithmetic progression of small cylinders that it'd be very hard to place anything on, and work in a much wider range of orientations (including horizontally) 22:54:17 ais523: that latter, from an image search, a stepladder seems to be A-shaped so you don't have to lean the top to anything, it stands on four legs 22:54:18 but you normally have to hold onto them at multiple locations to keep your balance 22:54:34 but that's two different differences 22:54:35 "First-time buyers: reaching for that first rung" (regarding the "property ladder", which is also sort of non-physical). 22:54:37 wob_jonas: right, that's one of the properties that stepladders usually (always?) have 22:54:53 fizzie: now I'm imagining a physical property ladder 22:55:01 ideally a stepladder so that the houses don't fall off :-D 22:55:16 one property is wide vs narrow beams to step on, the other is back legs at the bottom 22:55:21 that doesn't seem to be the same 22:55:36 for getting onto cellars, we usually use ladders that have wide steps but don't have a back leg 22:56:15 if a ladder is permanently fixed to a particular location, it's considered a ladder even if it has wide steps and not narrow rungs 22:56:22 if it isn't, I'm not sure there's actually a term for it, that's rare here 22:58:13 there's still like three different kinds of these cellar laddres, (1) completely fixed to the building like stairs, might be called stairs, the difference being that the steps don't have a vertical back part, (2) simple ladder that has two legs at the bottom and is leant to the edge of the opening, and only friction at the bottom stops it from slid 22:58:13 ing down from the hole, and 22:59:11 (3) hinged or collapsible ladders that are fixed at the top, so the top holds all of the ladder's own weight and some of your weight, although you lean them on the floor for support when in use 23:02:38 Actually 23:02:47 The anti-defense loop is now a 7-cycle instead of 5-cycle too 23:03:48 Lymia: write all that in the source code as comments and nominate a new version so this useful info gets saved in a convenient place? 23:04:35 ais523, I think ([-+..--])*2 is more sound than it seems. Since it comes after an offset clear, there's no way a defense program's synched to it. So, the average flag value will drift over time, while the anti-defense loop tries (most) combinations of two of +-. over its execution. 23:04:48 <\oren\> ais523: a phyisical property ladder would be a tiered city like the movie version of minas tirith 23:04:54 Meaning if it was the flag, it should have already won by the time it observes two zeros. 23:05:43 Lymia: yes, that sort of clear loop is fairly good as counter-defence 23:06:07 -!- AnotherTest has quit (Ping timeout: 268 seconds). 23:07:51 ... I do have an idea for a real improvement that isn't just numbers 23:08:21 A decoy clash is also some evidence that the enemy is doing a reverse decoy setup, thus, stealth3's decoy skipping is a good idea. :D 23:12:06 Really, I'm not sure it's worth a writeup for "Numbers were tuned, it now goes faster when it can" :p 23:13:47 wait, I think there are two more updates to Abstruse Goose 23:14:03 `aglist http://abstrusegoose.com/581 23:14:09 aglist http://abstrusegoose.com/581: b_jonas shachaf 23:14:21 I thought you deleted that. 23:15:45 shachaf: I can't follow which ones I deleted, and I think I'm allowed to use deleted ones too, they're still greppable in the logs 23:16:10 shachaf: I think there's one I used but never even created, one of ehlist or bobadventureslist 23:16:26 `dowg ehlist 23:16:29 no 23:16:34 `doag bin/ehlist 23:16:35 11364:2018-02-28 forget ehlist \ 7216:2016-03-14 learn ehlist is update notification for the Everyday Heroes webcomic. http://eheroes.smackjeeves.com/ 23:16:39 `doag bin/bobadventureslist 23:16:44 11365:2018-02-28 rm bin/ehlist \ 7215:2016-03-14 `` echo b_jonas >> bin/ehlist \ 7214:2016-03-14 makelist ehlist 23:16:49 No output. 23:17:02 the latter then 23:17:13 I think I invoked bobadventureslist several times 23:17:23 it updates so rarely that it's worth 23:20:25 oerjan: whoa, you're editing https://en.wikipedia.org/wiki/Abstract_index_notation 23:26:56 am i? 23:27:54 why so i am 23:28:58 oerjan: I just realized that abstract index notation is just a text syntax for string diagrams. 23:29:01 It's the best. 23:29:49 OKAY 23:30:33 BONSŒØIRJAN. 23:31:52 hi 23:32:57 bood evenily. 23:34:29 wellob_jonas. 23:35:09 -!- sleffy has quit (Ping timeout: 256 seconds). 23:35:58 -!- augur has quit (Remote host closed the connection). 23:45:09 -!- augur has joined. 23:55:35 <\oren\> "thirteen percent of the U.S. population consumes pizza on any given day." 23:56:34 no way 23:58:30 <\oren\> https://www.ars.usda.gov/ARSUserFiles/80400530/pdf/DBrief/11_consumption_of_pizza_0710.pdf