00:00:02 Okay, there's an exit syscall. man 2 exit isn't too helpful about it on my system... 00:00:27 that kills the process iirc 00:01:04 i think _start eventually boils down to exit(main(argc, argv)) 00:01:11 no, there's exit_group for that. 00:02:08 "The function _exit() terminates the calling process[...]" 00:02:24 (libc function names do not always correspond to syscall names) 00:02:38 i'm looking at the syscall documentation 00:02:52 look under C library/kernel differences 00:03:49 i just looked closer at clone(2) and yeah, i guess since threads would be individual processes that'd only kill the current thread 00:11:36 hmm of course sierpinsky is perfect for 56 threads and 9 cycles... 00:13:35 ah the leaderboard is confused... the 0x05 should be lines of code 00:17:47 Apparently I was wrong and everything is actually more severely wrong now 00:17:54 Phantom_Hoover: The _Exit function doesn't actually map to the exit syscall, though. 00:18:26 pikhq, i was reading the man page for exit(2) 00:18:55 Ah, which mentions that. :) 00:19:35 Yeah, the kernel level notion of "process" is more "a schedulable entity" which may or may not map to a Unix "process". So you get a few weird things like that in the syscall layer. 00:20:53 Probably the worst thing is that setuid etc. is a *god damned pain* to do correctly, because there's not a way of telling Linux to do it atomically across all threads in a process. 00:21:07 http://pastebin.com/PnRYcK9L 00:21:13 For oerjan 00:24:32 -!- jaboja has quit (Ping timeout: 268 seconds). 00:24:55 -!- Sprocklem has quit (Ping timeout: 244 seconds). 00:31:16 Nevermind, I got it 00:31:46 yay 00:34:46 as claimed, 0x09 cycles sierpinski... http://sprunge.us/BEba 00:35:36 (hmm, I could save a thread...) 00:39:33 -!- centrinia has quit (Quit: Leaving). 00:43:51 -!- lambda-11235 has joined. 00:47:27 Ok, I did some thinking and came up with a more succinct language, https://notehub.org/mvig3. 00:47:37 Toughts? 00:52:08 -!- zzo38 has joined. 00:53:26 I found a book describing the original IBM PC hardware including the full BIOS code, instruction set, and schematic diagrams. 00:55:31 int-e, it's this kind of shit that makes me hate THR!! 00:56:33 Phantom_Hoover: you must really loathe my 15 cycles checkerboard then :P 00:56:58 (0xf) 00:58:39 -!- centrinia has joined. 01:06:25 -!- Sprocklem has joined. 01:07:13 -!- earendel has joined. 01:07:56 Nice work on the Sierpinski int-e :-) 01:09:27 impomatic, that mario program is the kind of outrage that has provoked inquisitions 01:09:29 I wonder whether my 5 lines sierpinski is the same as yours... will find out in a moment... 01:10:31 it'll take almost 0x4000 cycles, ouch 01:14:42 int-e: 5 line Sierpinski 0x4FC cycles 01:25:14 okay, mine is 4 lines :) 01:26:14 what languagd? 01:26:48 quintopia, http://box-256.com/ 01:26:52 that box-256 thing 01:27:20 and with that odd LOC counting that ignores empty lines 01:27:41 though, hmm, that's not essential anymore... 01:28:01 -!- bb010g has joined. 01:28:58 -!- tromp_ has joined. 01:30:34 http://sprunge.us/KDYB 01:33:16 -!- tromp_ has quit (Ping timeout: 250 seconds). 01:33:51 -!- tromp_ has joined. 01:33:53 Hmmm... I should've thought of that! 01:37:30 in fact, wth... I've spent enough time on this to put it on github... https://github.com/int-e/box256 01:42:34 Some of mine are on Github https://github.com/impomatic/BOX256 01:43:51 ah but at least our basic idea is the same :) 01:46:14 (though I somehow failed to make the forward iteration work) 01:56:00 lambda-11235: Individual token notes should have the tokens in monospace 01:57:46 hppavilion[1]: Token notes? 01:58:29 lambda-11235: Like "-> is right associative, so a -> b -> c = a -> (b -> c). a -> b always has type *." 01:58:34 -> and * should be monospaced 02:01:04 hppavilion[1]: Better? https://notehub.org/mvig3 02:02:06 lambda-11235: No; that's literally the exact same page, but I'm really just nitpicking 02:02:34 lambda-11235: If recursive functions are banned, and functions can only use their predecessor-defined functions, doesn't that make it a BSM? 02:03:30 hppavilion[1]: BSM? 02:03:34 -!- Phantom_Hoover has quit (Remote host closed the connection). 02:03:46 lambda-11235: Bounded State Machine 02:03:57 lambda-11235: A TM with finite memory; FSM-complete 02:04:28 linear bounded automaton... how many names does this thing have? 02:08:28 hppavilion[1]: I don't think so. An FSM could loop forever. This language can't. 02:08:46 lambda-11235: Oh, right 02:08:58 int-e: I think I just used the wrong acronym 02:09:56 int-e: Also, for a finite string of length 3-5, 12355928 02:10:21 int-e: Would you like the complete list? 02:11:07 * int-e is not really paying attention 02:12:21 Recursive functions are banned to garauntee totality, a property of any typed lambda calculus that doesn't have the fix point function. 02:15:52 -!- tromp_ has quit (Remote host closed the connection). 02:19:22 nonterminating functions can still be immensely more powerful than linear bounded. i recall we found previously that system F can implement goodstein sequences. 02:19:42 although this seemed like a different system - dependent but not polymorphic? 02:20:02 or wait, s/polymorphic/higher rank/ 02:21:08 (goodstein sequences, fwiw, cannot be proved to terminate in peano arithmetic) 02:21:16 er 02:21:24 s/nonterminating/terminating/, sheesh 02:22:30 was it impomatic who wrote that up in restricted haskell 02:22:44 Not me 02:22:52 oh. 02:23:06 hm who am i confusing you with 02:23:19 quintopia maybe 02:24:14 (haskell using rank-n extension but no recursion, so equivalent to system F) 02:27:54 int-e: There. I wrote a program to generate all possible names for a LBA 02:28:06 int-e: (of reasonable length) 02:28:11 When it finishes running, I'll pastebin it 02:29:00 * oerjan keeps getting the impression that google only knows a fraction of our logs 02:29:33 oerjan: BTW, do you remember who it was that made Predicate Nomic? 02:29:49 i found a relevant page, but not the haskell program 02:30:11 hppavilion[1]: the first time i remember seeing that name was yesterday. 02:31:30 * oerjan tries looking for just system f 02:33:20 impomatic: https://raw.githubusercontent.com/int-e/box256/master/four_squares_2/multi_0x0B :-) 02:34:35 @ask quintopia Are you the one who invented Predicate Nomic? 02:34:36 Consider it noted. 02:38:23 -!- tromp_ has joined. 02:59:01 -!- hppavilion[1] has quit (Ping timeout: 252 seconds). 03:00:41 -!- hppavilion[1] has joined. 03:07:16 -!- hppavilion[1] has quit (Ping timeout: 252 seconds). 03:43:30 impomatic: https://raw.githubusercontent.com/int-e/box256/master/checkerboard_2/multi_0x10 ... this time, 0x0F looks impossible, but perhaps there's a better way of dealing with the color swaps. 04:01:42 help. 04:01:45 how did I become a contributor to len 04:01:47 *lens 04:02:44 you probably made a categorical mistake. 04:04:24 coppro: You pointed them at the sun, and got burned. 04:04:51 oerjan: tdh 04:22:44 -!- XorSwap has joined. 04:44:23 -!- centrinia has quit (Quit: Leaving). 04:59:17 -!- lambda-11235 has quit (Ping timeout: 244 seconds). 05:04:45 -!- lambda-11235 has joined. 05:09:03 -!- earendel has changed nick to jessi. 05:09:19 -!- jessi has changed nick to earendel. 05:14:42 -!- iconmaster has quit (Ping timeout: 246 seconds). 05:17:59 -!- XorSwap has quit (Quit: Leaving). 05:20:08 What is best way to make up temporary files in a shell script? Is it possible to automatically delete once it is finish? 05:21:03 -!- Kaynato has quit (Ping timeout: 240 seconds). 05:27:11 zzo38: Maybe if you opened a file descriptor and then unlinked the file. 05:27:27 I'm not sure how well that approach works for shell scripts. 05:32:01 Would it be possible to make up another program that will do the necessary stuff (given the process ID if necessary) and output the commands that can be use with eval or whatever? 05:33:07 -!- jessi has joined. 05:34:06 impomatic: it fit... https://raw.githubusercontent.com/int-e/box256/master/checkerboard_2/multi_0x0F 05:36:14 -!- hppavilion[1] has joined. 05:37:46 Product type yields tuples, but what exactly does quotient type yield? 05:39:39 trouble iiuc 05:46:18 lambda-11235: All functional languages seem a little contrived. What happens when you grow one? 05:46:33 oerjan: IIUC? 05:46:52 `? iiuc 05:47:27 iiuc i understand iiuc correctly. 05:48:14 oerjan: Ah 05:48:30 For "what a quotient type yields": that's tricky. 05:49:02 tswett: Assuming "yields" is not whatever high-level math word you think I meant 05:49:38 There's no such high-level math term, so I'm pretty sure I'm thinking the same thing you're thinking. 05:49:50 tswett: OK 05:49:57 @brain 05:49:58 It must be inordinately taxing to be such a boob. 05:50:21 tswett: For reference, sum types yield tagged unions and product types yield tuples 05:51:19 Right. Let's say that we're working in the category of... recursive sets, where the arrows are computable functions. 05:51:26 Exponents would then yield functions I suppose 05:51:43 Then yeah. Tagged unions are an implementation of sum types, and tuples are an implementation of product types. 05:51:47 -!- oerjan has quit (Quit: Nite). 05:52:09 Sum types and product types are category theoretic duals to each other. 05:52:20 Likewise, subset types and quotient types are category theoretic duals to each other. 05:52:44 -!- tromp_ has quit (Remote host closed the connection). 05:53:00 Subset types can be implemented by just dropping the values that are outside the subset. 05:53:16 generator functions in js yield valiues..like compute and spawn the next element of a determined series 05:53:23 is it similar 05:53:55 earendel: no, not really. 05:54:00 one of more functional aspects in js. 05:54:03 okay then. 05:54:20 nice word though. 05:54:23 That is true of JavaScript although it is not related to what hppavilion[1] and tswett was talking about 05:54:44 sum types yield tuples 05:54:52 Yeah, generator functions like this are a pretty neat thing. 05:55:09 well.. maybe you're even wrong those generators are quite fancy stuff. 05:55:14 maybe not. 05:55:41 ah good. we have an agreement. 05:56:36 Monadic generators is also possible and I have written some JavaScript codes for doing such thing 05:56:49 hppavilion[1]: so here's a disappointing answer for you: often, quotient types can't be implemented. 05:56:59 hppavilion[1]: let me also give you an answer you'll be happier with. 05:57:34 Often, quotient types can be implemented by picking one particular element of each equivalence class, and using that to represent the corresponding element of the quotient type. 05:57:36 tswett: Damn xD 05:57:37 In other words... 05:57:52 Node.js does not implement the "return" method for generator objects although I made up my own implementation which seem to work in most cases and requires that the function just rethrows any exception it does not know 05:57:59 You can often implement a quotient type by having a function which converts all its inputs to some "normal form". 05:58:18 And if you do that, then the answer to your original question is... 05:58:22 Quotient types yield normal forms. 05:58:33 tswett: Oh, I suppose that makes sense; if x*y/y = x, then ((T, U)U = T, but 05:58:36 Whoops 05:59:13 tswett: Oh, I suppose that makes sense; if x*y/y = x, then {(T, U) `U} = T, but what's {T `U} if T isn't a tuple? 06:00:00 tswett: Oh, subset types would be difference types, wouldn't they? 06:00:11 Yeah, pretty much. 06:00:13 zzo38: return? useless in async code. also you can return values. but why not yield* them? 06:00:20 Now, quotients of sets are more general than quotients of numbers. 06:00:49 In general, the thing that you "quotient over" isn't another set; it's an equivalence relation. 06:01:22 earendel: Not all code will be asynchronous though anyways. But yes you can use return and yield and yield* inside of a function, just the method called "return" is not yet implemented 06:01:34 So if you have a set with 100 elements, doing a quotient could land you with any number of elements from 1 to 100 (inclusive). 06:01:44 hppavilion[1]: All languages are contrived. 06:02:13 Sometimes, you'll do a quotient where every equivalence class has the same number of elements. 06:02:23 *This* is the case that corresponds to quotients of numbers. 06:02:49 If you have a set with 100 elements, and you do a quotient such that every equivalence class contains exactly 5 elements, then you'll end up, at the end, with a set with 20 elements. 06:02:56 But with the monadic generator operations you can do such thing as .joinR() which replaces "return x" with "return yield*x" for example. 06:03:17 -!- infinitymaster has joined. 06:04:02 Hey everyone, I've been working on my English–Spanish blend some more. 06:04:23 I've finally managed to produce... about two words' worth of vocabulary. 06:04:27 esperanto? 06:04:34 well the tricky part is the generator "stops" the computation until next yield..allowing a nice form of memoization 06:05:05 @zzo38. anything else isn't even that world-moving. 06:05:05 Unknown command, try @list 06:05:07 I'm starting by blending Old English and Latin, and to start, I'm doing just the consonants. 06:05:22 Pretty much ignoring the vowels. 06:05:40 earendel: I am not sure what you meant. 06:06:09 I know what you say is true but I do not understand how it is related to 06:06:15 Most of the words I've come up with are kinda boring, because they're identical to either the Old English or the Latin. 06:06:42 There's one exception, which is the word for "brother". It is: 06:06:45 fr_þ_r 06:06:54 I'm sure you are all very impressed by this. 06:08:43 earendel: I do not understand what you mean by "anything else isn't even that world-moving" and what your point is by that, is what I meant. 06:08:54 nevermind.. i'm not able to express that in a formal way, and it's indeed not related to whatever you guys do here. it's a fun channel, since i never know what you're talking about. one of the last of these channels.. 06:09:10 so i silence myself again and listen here and then. 06:09:13 I've gotta sleep now. Night, everyone. 06:09:36 good night. 06:10:03 Here's a pretty esoteric thing 06:10:09 return^x y 06:10:31 Which is meaning what? 06:10:36 zzo38: Explaining 06:10:42 return^1 y is just return, of course 06:10:48 return^2 y returns from the caller 06:10:56 return^3 y returns from the caller's caller 06:10:58 etc. 06:11:11 O, OK 06:11:40 I think dc and INTERCAL both have something similar 06:11:48 zzo38: Of course they do 06:12:51 Tcl does too. 06:13:03 (Such thing could also be implemented in some Forth systems probably) 06:13:18 return -level 2 x returns from the caller, for example. 06:13:42 what happens if you give it a negative level 06:15:01 I would also thought of a strange kind of JavaScript where you can write such thing as "arguments.caller.caller.return(x)" 06:15:14 Don't know. 06:16:31 pikhq: how're things over at pooch hq 06:19:53 * Sgeo wouldn't be surprised if that's how Tcl worked 06:20:25 -!- jessi has quit (Ping timeout: 244 seconds). 06:25:05 Another idea is evasive exceptions, such as if it is implemented extending JavaScript then a label name might be a constant local to the function, the label is itself a function which throws an evasive exception and the function containing that label catches it at the point where the label is (it cannot be caught by "catch" blocks, although "finally" blocks still work) 06:26:45 So it is like a "goto" command but is a bit more generalized 06:49:04 shachaf: It returns from a callee 06:49:24 I wrote a chdir executable for Linux once. 06:49:46 shachaf: return^-1 x returns x from the current function's callee 06:50:12 shachaf: Upside-down call stack: Every function has 0..infinity callers and 1 callee 06:50:41 Better yet, 0..infinity callers AND callees 06:51:23 zzo38: It's a sort of functional version of COMPUTED goto, I suppose 06:52:31 hppavilion[1]: Yes it is 06:53:25 -!- tromp_ has joined. 06:54:02 -!- infinitymaster has quit (Remote host closed the connection). 06:55:15 zzo38: Any other types of GOTO to functionalize? 06:55:59 I don't know 06:57:33 -!- tromp_ has quit (Ping timeout: 240 seconds). 06:59:37 -!- Grenlo has joined. 07:00:41 Bump? 07:01:46 -!- infinitymaster has joined. 07:01:52 Bumping what? 07:02:45 I don't know, I wasn't sure if people were lurking about here. 07:02:53 Grenlo: Are you trying to kick this channel into gear? 07:02:58 Grenlo: We're already a working channel 07:03:03 Grenlo: Just quiet ATM 07:03:56 Mm what are you working on? *Braces himself* 07:03:59 There are people on this channel. You can ask the question if you have something to write please 07:04:04 Otherwise you do not have to. 07:05:02 I work on many things, currently on some utilities for farbfeld 07:05:05 So https://en.wikipedia.org/wiki/Eiichi_Goto was a person 07:05:24 Mostly I just work on random bullshit, really. 07:05:31 Grenlo: A discussion you just missed was about a functional computed GOTO statement 07:05:37 Grenlo: call/cc is the functional GOTO 07:06:09 What kind of random bullshit? 07:07:04 zzo38: He uses an octuple-blind process to randomly sample male cow excrement from farms around the world, which he then studies 07:07:18 Precisely. 07:07:22 OK 07:07:31 It's great research for my upcoming esolang, Cowpie. 07:09:16 pikhq: A much-anticipated development in the Esolang industry 07:11:01 Perhaps I would gain at least some understanding of functional programming by listening in here. 07:11:08 Grenlo: Perhaps 07:11:44 I suppose to an esoteric-ish extent. 07:12:10 -!- AnotherTest has joined. 07:12:29 -!- Grenlo has left. 07:17:41 -!- lambda-11235 has quit (Quit: Bye). 07:18:45 zzo38: I wonder if a usable typesys could be implemented with return^n 07:19:19 I don't know 07:25:44 -!- rdococ has joined. 07:32:55 -!- hppavilion[1] has quit (Ping timeout: 252 seconds). 07:35:03 -!- infinitymaster has quit (Quit: Leaving...). 07:39:03 -!- bb010g has quit (Quit: Connection closed for inactivity). 08:35:37 -!- J_Arcane has quit (Ping timeout: 252 seconds). 08:48:13 -!- AnotherTest has quit (Ping timeout: 248 seconds). 08:53:50 -!- tromp_ has joined. 08:58:10 -!- tromp_ has quit (Ping timeout: 252 seconds). 09:06:40 -!- jaboja has joined. 09:18:39 -!- jaboja has quit (Ping timeout: 246 seconds). 09:32:30 -!- jaboja has joined. 09:50:05 -!- jaboja64 has joined. 09:51:05 -!- jaboja has quit (Disconnected by services). 09:51:52 -!- jaboja64 has changed nick to jaboja. 10:18:23 -!- jaboja has quit (Ping timeout: 268 seconds). 11:18:01 -!- rdococ has quit (Ping timeout: 244 seconds). 11:25:29 -!- boily has joined. 11:35:58 @metar CYUL 11:35:58 CYUL 111000Z 11010G15KT 1 1/2SM -SN SCT007 OVC020 M01/M02 A3005 RMK SF3NS5 /S02/ SLP178 11:36:20 @metar KOAK 11:36:20 KOAK 110953Z 25007KT 10SM OVC020 13/09 A3002 RMK AO2 SLP165 T01330094 PNO $ 11:36:29 * boily glares at the shachafweather 11:47:00 -!- AnotherTest has joined. 11:55:28 -!- tromp_ has joined. 11:59:20 -!- jaboja has joined. 11:59:52 -!- tromp_ has quit (Ping timeout: 250 seconds). 12:19:36 -!- boily has quit (Quit: PETROLEUM CHICKEN). 12:22:54 -!- ais523 has joined. 12:28:30 In git, is there a command to reset/merge a branch without checking it out first but in such a way that it only works if it's a fast-forward? 12:28:34 Hello, ais523 12:28:42 hi 12:29:02 b_jonas: also, the only such command I can think of is push 12:29:11 and you'd need to do it from a different repo 12:55:41 hmm 12:57:16 git branch can reset a branch without checking it out, but it doesn't offer a check for fast forward 12:58:11 or maybe it does? I dunno 13:13:33 -!- Sgeo has quit (Ping timeout: 240 seconds). 13:20:22 -!- spiette has joined. 13:34:25 -!- jaboja has quit (Ping timeout: 244 seconds). 13:45:41 [wiki] [[Talk:Brainfuck]] https://esolangs.org/w/index.php?diff=46769&oldid=46491 * Primo * (+600) /* Shortest known "hello world" program. */ 13:49:16 -!- jaboja has joined. 13:50:12 -!- Kaynato has joined. 13:56:59 -!- tromp_ has joined. 14:01:23 -!- tromp_ has quit (Ping timeout: 248 seconds). 14:14:03 -!- jaboja has quit (Ping timeout: 240 seconds). 14:19:19 -!- Kaynato has quit (Ping timeout: 244 seconds). 14:38:58 -!- nycs has joined. 14:50:25 -!- J_Arcane has joined. 14:58:10 -!- impomatic_ has joined. 14:58:20 -!- tromp_ has joined. 15:00:15 -!- AnotherTest has quit (Ping timeout: 246 seconds). 15:03:02 -!- tromp_ has quit (Ping timeout: 260 seconds). 15:22:53 -!- Kaynato has joined. 15:27:54 -!- Kaynato has quit (Ping timeout: 260 seconds). 15:34:42 I need to choose my final year project... 15:34:50 Two I'm tempted by are basically esolanging, it seems 15:36:07 -!- lambda-11235 has joined. 15:36:36 (functional programming with orderings and equivalences; and a proof assistant for a graph programming language) 15:47:53 Tanello 15:49:22 b_jonas: do you have any insights as to my path forwards? 16:07:34 -!- rdococ has joined. 16:08:41 -!- Kaynato has joined. 16:08:55 -!- jaboja has joined. 16:11:56 -!- gamemanj has joined. 16:17:45 -!- AnotherTest has joined. 16:24:21 -!- rdococ has quit (Quit: Leaving). 16:24:44 -!- rdococ has joined. 16:59:16 -!- zadock has joined. 16:59:29 -!- jaboja has quit (Ping timeout: 244 seconds). 17:01:58 -!- Reece` has joined. 17:03:01 -!- Frooxius has quit (Quit: *bubbles away*). 17:08:18 -!- ais523 has quit (Quit: buying food). 17:24:26 -!- Kaynato has quit (Ping timeout: 250 seconds). 17:29:43 -!- zadock has quit (Quit: Leaving). 17:31:13 argh, I'm getting malloc crashes. something's going very wrong here. 17:32:01 potential(ly impractical) solution: "Who uses malloc? Static allocation is The Future!" 17:32:38 -!- Kaynato has joined. 17:33:36 probably heap corruption 17:34:12 does valgrind help? 17:34:22 gamemanj: I'm not sure that's how it works... 17:34:35 int-e: I know, it's a joke :) 17:34:41 -!- `^_^ has joined. 17:34:45 gamemanj: managed heaps are a more likely candidate... and being used quite successfully I might say 17:34:46 Heap corruption is actually a benefit, because it means the code is writing to addresses you won't be using in your program, so it's at least theoretically tracable. 17:36:09 hmm, is the allocator a strange enough machine that it's TC with a carefully crafted heap? 17:36:13 -!- nycs has quit (Ping timeout: 268 seconds). 17:36:23 (very C library specific question, obviously) 17:36:33 That much depends on your allocator and how insane the writer of the heap was. 17:36:52 Managed heaps are even weirder since I've heard they allow memory to be moved. 17:40:01 they might. it's beneficial for avoiding fragmentation and speeding up allocation 17:42:32 -!- p34k has joined. 17:46:16 Hmm. Maybe there's a solution in this to the old problem of "how to specify the exact alignment, permissions and other requirements for a block of memory" 17:46:47 An allocator that requires supplying it with a block of bytecode to determine a good address. 17:49:50 Now, the bytecode will use relative addressing for instructions. The bytecode will also use a randomly chosen* set of instruction IDs: 91, 93, 43, 45, 60, 62. 17:51:59 -!- ais523 has joined. 17:52:21 ah I knew it wasn't my own idea.... the term is "weird machine". http://langsec.org/papers/Bratus.pdf uses an allocator as an example. 17:52:34 what? no, you don't need fancy bytecode, you only need about four integer parameters and a ton of flags for a memory allocation 17:52:50 (no details) 17:53:39 b_jonas: ...I think you may be missing the point. Notice my odd choice of instruction IDs... 17:54:24 um 17:54:32 I don't see anything interesting about those ids 17:55:11 `lua -e "print(string.char(91))" 17:55:17 -!- Kaynato has quit (Ping timeout: 244 seconds). 17:55:31 lua: (command line):1: unexpected symbol near '"print(string.char(91))"' 17:55:54 gamemanj: try without the quotes 18:02:28 ironically, when I tested it in a command line, I tried without the quotes first. 18:02:33 `lua print(string.char(91)) 18:02:42 lua: cannot open print(string.char(91)): No such file or directory 18:02:46 `lua -e print(string.char(91)) 18:02:48 ​[ 18:03:01 gamemanj: yes, like that 18:03:20 The point being, of course, that the "bytecode" is Brainfuck. 18:09:02 -!- centrinia has joined. 18:12:38 -!- lambdabot has quit (Remote host closed the connection). 18:12:54 -!- jaboja has joined. 18:16:02 -!- lambdabot has joined. 18:18:43 -!- lambdabot has quit (Remote host closed the connection). 18:23:10 -!- erdic has quit (Ping timeout: 248 seconds). 18:24:00 -!- Elronnd has quit (Quit: Let's jump!). 18:25:30 -!- hppavilion[1] has joined. 18:26:03 -!- Phantom_Hoover has joined. 18:27:52 -!- augur_ has quit (Ping timeout: 244 seconds). 18:27:58 -!- Elronnd has joined. 18:31:16 -!- hppavilion[1] has quit (Ping timeout: 252 seconds). 18:32:33 -!- Elronnd has quit (Client Quit). 18:35:10 -!- erdic has joined. 18:35:14 @tell boily One day last week it was 30 degrees here. 18:35:26 lackdabot 18:35:55 -!- Elronnd has joined. 18:39:24 -!- lambdabot has joined. 18:41:18 -!- hppavilion[1] has joined. 18:41:18 -!- augur has joined. 18:46:10 -!- Kaynato has joined. 18:47:54 -!- Frooxius has joined. 18:55:33 -!- Kaynato has quit (Ping timeout: 240 seconds). 18:58:05 fungot: You're a clever bot, why can't you support note-sending? 18:58:05 fizzie: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp 18:58:20 fungot: I see you're up to your old tricks. 18:58:20 fizzie: that is just a value of type is created containing the syntax for mark if he was really gonna get worse and worse each week, 18:59:12 -!- Kaynato has joined. 18:59:56 -!- tromp_ has joined. 19:01:05 huh, fungot is mimicking itself? 19:01:06 ais523: if that is not used commonly and carries with it an array subscript was too easy heh one time i figured if it's possible. 19:01:08 ^style 19:01:08 Available: agora alice c64 ct darwin discworld enron europarl ff7 fisher fungot* homestuck ic irc iwcs jargon lovecraft nethack oots pa qwantz sms speeches ss wp youtube 19:01:12 ah yes 19:01:42 fizzie: feature idea: ^style random 19:04:12 -!- tromp_ has quit (Ping timeout: 246 seconds). 19:05:57 -!- gremlins has joined. 19:07:14 -!- Reece` has quit (Ping timeout: 260 seconds). 19:09:11 fizzie: feature idea: a 64Kb permanent store and command to define a command in brainfuck + extras that can access it (as a "second tape"), and can call other commands. That way, if someone gives you an implementable feature request, you can just point them at that meta-command. 19:12:09 (There are loads of problems with this idea, specifically that someone, someday, would wipe the permanent store - but if only a specific group of people could access it, and they had a standard for data storage, plus a simulator to make sure it doesn't crash?) 19:13:27 gamemanj: err, ^def already exists 19:13:32 ^help 19:13:32 ^ ; ^def ; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool 19:14:02 ... 19:14:04 ^def exampleforgamemanj ul (here's an example for gamemanj)S 19:14:04 Defined. 19:14:08 ^exampleforgamemanj 19:14:08 here's an example for gamemanj 19:14:10 you have got to be kidding me. 19:14:33 that said each defined command is self-contained, and doesn't have permanent storage (yet) 19:14:42 wouldn't be too hard to implement the permastore though 19:14:55 (note also that defined commands are temporary unless fizzie makes them permanent) 19:15:01 ^def exampleforgamemanj 19:15:01 Usage: ^def 19:15:04 ^def exampleforgamemanj bf 19:15:04 Usage: ^def 19:15:09 hmm, how do you delete these things? 19:15:12 ^undef exampleforgamemanj 19:15:19 ^exampleforgamemanj 19:15:19 here's an example for gamemanj 19:15:22 meh, it'll disappear at the next reboot 19:15:29 ^def exampleforgamemanj bf +[] 19:15:29 Defined. 19:15:30 there 19:15:34 now it won't do anything 19:15:46 why did you define it to an infinite loop? 19:15:49 ^exampleforgamemanj 19:15:53 ...out of time! 19:15:53 that normally gives an error message after a while 19:16:00 ^def exampleforgamemanj + 19:16:00 Usage: ^def 19:16:03 ^def exampleforgamemanj bf + 19:16:03 Defined. 19:16:07 that would make a lot more sense 19:16:07 yay! 19:16:27 ^exampleforgamemanj 19:16:47 huh, I was thinking that the program returning normally would cause it to output something like "no output". 19:16:54 HackEgo does that 19:17:02 ^cat /dev/null 19:17:04 err 19:17:07 `cat /dev/null 19:17:17 No output. 19:17:18 although it takes a while to react if it hasn't been used recently 19:18:00 -!- Kaynato has quit (Ping timeout: 244 seconds). 19:18:01 /dev/null probably wasn't in the cache 19:18:26 `` while true; do true; done 19:18:38 I think infinite loops give no output in HackEgo, not sure though 19:18:57 busy trying to implement ^cat /dev/null 19:18:59 No output. 19:19:24 oh, hmm, that's an interesting reaction 19:19:28 `` sleep 4; echo test 19:19:35 test 19:19:40 `` sleep 10; echo test 19:19:52 test 19:20:13 `` sleep 20; echo test 19:20:33 test 19:20:49 `` x=1; while true; do echo $x; x=$((x+1)); sleep 1; done 19:21:20 No output. 19:21:33 -!- Elronnd has quit (Quit: Let's jump!). 19:21:44 I'm guessing the no output is because it produces no output if it times out? 19:21:57 `` x=1; while [ $x -lt 20 ] ; do echo $x; x=$((x+1)); sleep 1; done 19:22:17 1 \ 2 \ 3 \ 4 \ 5 \ 6 \ 7 \ 8 \ 9 \ 10 \ 11 \ 12 \ 13 \ 14 \ 15 \ 16 \ 17 \ 18 \ 19 19:22:27 `` x=1; while [ $x -lt 60 ] ; do echo $x; x=$((x+1)); sleep 1; done 19:22:58 No output. 19:23:30 `` x=1; while [ $x -lt 50 ] ; do echo $x; x=$((x+1)); sleep 1; done 19:24:03 No output. 19:24:21 `` x=1; while [ $x -lt 40 ] ; do echo $x; x=$((x+1)); sleep 1; done 19:24:24 -!- Elronnd has joined. 19:24:36 documenting brainfuck code is hard "at 0 if mem0 not 0 then decrement mem2 and zero mem0" 19:24:52 No output. 19:25:01 `` x=1; while [ $x -lt 30 ] ; do echo $x; x=$((x+1)); sleep 1; done 19:25:32 No output. 19:25:44 `` x=1; while [ $x -lt 29 ] ; do echo $x; x=$((x+1)); sleep 1; done 19:26:14 1 \ 2 \ 3 \ 4 \ 5 \ 6 \ 7 \ 8 \ 9 \ 10 \ 11 \ 12 \ 13 \ 14 \ 15 \ 16 \ 17 \ 18 \ 19 \ 20 \ 21 \ 22 \ 23 \ 24 \ 25 \ 26 \ 27 \ 28 19:26:30 aha 19:26:58 `` stdbuf -o0 echo test; while true; do true; done 19:27:29 No output. 19:28:01 `` stdbuf -o0 echo test 19:28:04 test 19:28:21 hmm, what if no shell is involved 19:28:29 `mkx 19:28:31 usage: mk[x] file//contents 19:29:51 -!- J_Arcane_ has joined. 19:30:36 -!- Reece` has joined. 19:30:42 ^def cat-experiment-gamemanj bf +++++++++[>+++++<-]>++<,>[<->-]>+<<[>>-<<[-]]>>[>+++++++++++[->++++++<]>++++++++++++.+++++++.--------..++++++.-.----.+++++.-.[-]<<[-]] 19:30:42 Defined. 19:30:51 ^cat-experiment-gamemanj this will have no output 19:30:55 ^cat-experiment-gamemanj /dev/null 19:30:55 NUMMSRNSR 19:31:05 Huh, I messed up something. 19:31:33 -!- gremlins has quit (Ping timeout: 240 seconds). 19:31:46 gamemanj: it might help if your , was in a loop 19:31:52 if you're trying to read more than one character of input 19:32:52 -!- J_Arcane has quit (Ping timeout: 252 seconds). 19:32:56 actually that's deliberate - trying to match the whole of /dev/null would be hard 19:33:01 -!- J_Arcane_ has changed nick to J_Arcane. 19:33:03 it's the output routine that's having problems 19:33:10 it's supposed to say NOOUTPUT 19:33:18 but it seems I messed up 19:37:24 ^def cat-experiment-gamemanj bf +++++++++[>+++++<-]>++<,>[<->-]>+<<[>>-<<[-]]>>[>+++++++++++[->++++++>+++<<]>++++++++++++.+.>-.<.++++++.-.----.+++++.-.[-]>[-]<<<[-]] 19:37:24 Defined. 19:37:27 ^cat-experiment-gamemanj /dev/null 19:37:27 NO OUTPUT 19:40:31 now to check if someone already did this 19:40:34 ^cat /dev/null 19:41:00 ^show cat 19:41:25 ^show cat-experiment-gamemanj 19:41:25 +9[>+5<-]>+2<,>[<->-]>+<2[>2-<2[-]]>2[>+11[->+6>+3<2]>+12.+.>-.<.+6.-.-4.+5.-.[-]>[-]<3[-]] 19:42:08 -!- Kaynato has joined. 19:42:26 ok, so cat isn't defined. If anyone wants ^cat /dev/null to show "NO OUTPUT", ^def the above :) 19:45:52 -!- impomatic__ has joined. 19:46:04 -!- impomatic_ has quit (Quit: http://corewar.co.uk). 19:47:27 -!- impomatic has quit (Ping timeout: 244 seconds). 19:47:41 -!- impomatic__ has changed nick to impomatic. 19:47:57 -!- jaboja has quit (Ping timeout: 244 seconds). 19:49:56 @tell boily One day last week it was 30 degrees here. 19:49:57 Consider it noted. 20:00:26 -!- rdococ has quit (Quit: Leaving). 20:01:36 -!- earendel has quit (Ping timeout: 246 seconds). 20:05:31 -!- jaboja has joined. 20:11:37 -!- Kaynato has quit (Ping timeout: 268 seconds). 20:17:45 -!- Elronnd has quit (Quit: Let's jump!). 20:19:09 -!- Elronnd has joined. 20:29:11 -!- Reece` has quit (Quit: Alsithyafturttararfunar). 20:29:25 -!- lambda-11235 has quit (Quit: Bye). 20:37:46 -!- hppavilion[1] has quit (Ping timeout: 252 seconds). 20:41:28 -!- hppavilion[1] has joined. 20:47:23 -!- Kaynato has joined. 20:48:48 -!- lambdabot has quit (Remote host closed the connection). 20:53:21 -!- lambdabot has joined. 21:14:25 -!- iconmaster has joined. 21:15:02 -!- Digby has joined. 21:19:51 -!- hppavilion[1] has quit (Ping timeout: 276 seconds). 21:27:00 -!- hppavilion[1] has joined. 21:28:12 -!- Digby has left ("Leaving"). 21:58:28 `smlist 435 21:58:38 smlist 435: shachaf monqy elliott mnoqy 21:58:48 sm? 21:59:52 super mega 22:00:01 `? smlist 22:00:04 Non-update notification for the webcomic Super Mega. 22:00:10 http://www.supermegacomics.com/index.php?i=435 22:00:14 kickstarter announcement 22:00:19 this is p. exciting 22:00:26 nobody else on that list is still in the channel shachaf 22:00:40 yes 22:00:45 but people might still be interested 22:01:08 how are people going to know about the super mega update service if it's never used 22:02:26 On that note 22:02:28 `slist 22:02:31 slist: Taneb atriq Ngevd nvd Fiora Sgeo ThatOtherPerson alot 22:02:37 wait what's s 22:02:42 homestuck 22:02:44 `? slist 22:02:45 was that homestuck...? 22:02:45 Update notification for the webcomic Homestuck. 22:02:50 oh jesus 22:02:51 Taneb: did you ever `list 22:02:55 shachaf: yes 22:02:59 `list 22:03:00 is it finished yet 22:03:10 Phantom_Hoover: will be on Wednesday 22:03:15 `enlist 22:03:16 Taneb: You're the only person on that list in this channel. 22:03:27 Taneb, fuckin finally 22:03:29 shachaf: yes but I'm four of them 22:03:33 hppavilion[1] b_jonas boily a`a`a`a`jo7as a`a`a`a`jo8as a`a`a`a`jo3as a`a`a`a`jo6as a`a`a`a`jo5as a`a`a`a`jo4as a`a`a`a`jo2as a`a`a`a`jo1as a`a`a`a`jonas0 a`a`a`a lambdabot chicken_jonas myname 22:03:34 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: enlist: not found 22:03:46 int-e: ... 22:03:59 -!- AnotherTest has quit (Quit: ZNC - http://znc.in). 22:04:17 wtf does `list do 22:04:38 int-e: do it again 22:04:41 int-e: Try it again and you'll see. 22:04:42 you will see 22:06:04 is he scared? 22:06:15 no, I read the source code... 22:06:22 ...apparently I should've done this first :P 22:06:22 :D 22:06:30 int-e: Well, it's too late now. 22:06:38 You might as well `list to see it in action. 22:06:46 don't you like highlights? 22:07:18 `` sed -i 's/..xargs/| grep -v int-e | xargs/' bin/list 22:07:20 No output. 22:07:39 you are lame 22:09:16 `? shuf 22:09:19 shuf? ¯\(°​_o)/¯ 22:09:23 err 22:09:27 `shuf 22:09:58 No output. 22:10:10 -!- hppavilion[1] has quit (Ping timeout: 252 seconds). 22:10:17 fine... 22:10:19 `revert 22:10:30 rm: cannot remove `/home/hackbot/hackbot.hg/multibot_cmds/env/.hg/store/data/canary.orig': Is a directory \ Done. 22:10:46 `` sed =i 's/..xargs/| shuf | xargs/' bin/list 22:10:51 sed: -e expression #1, char 2: extra characters after command 22:11:13 why shuf? 22:11:25 `` sed -i 's/..xargs/| shuf | xargs/' bin/list 22:11:27 No output. 22:11:31 for fairness :P 22:12:15 -!- hppavilion[1] has joined. 22:12:15 Fairness isn't right. 22:12:23 It's supposed to be sorted by most recent modifiers. 22:12:40 well it's going to be one of thise versions 22:13:05 b_jonas sabotaged the list with a bunch of spurious entries. 22:14:20 -!- hppavilion[2] has joined. 22:15:51 -!- earendel has joined. 22:17:19 -!- hppavilion[1] has quit (Ping timeout: 252 seconds). 22:19:06 -!- hppavilion[2] has quit (Ping timeout: 250 seconds). 22:20:24 -!- jaboja has quit (Ping timeout: 250 seconds). 22:27:57 -!- gamemanj has quit (Ping timeout: 248 seconds). 22:28:16 hmm, actually 22:28:34 `revert 22:28:35 rm: cannot remove `/home/hackbot/hackbot.hg/multibot_cmds/env/.hg/store/data/canary.orig': Is a directory \ Done. 22:28:45 I think it doesn't even hilight people anymore 22:28:52 -!- `^_^ has quit (Quit: This computer has gone to sleep). 22:29:02 `list 22:29:07 `cat bin/list 22:29:36 int-e hppavilion[1] b_jonas boily a`a`a`a`jo7as a`a`a`a`jo8as a`a`a`a`jo3as a`a`a`a`jo6as a`a`a`a`jo5as a`a`a`a`jo4as a`a`a`a`jo2as a`a`a`a`jo1as a`a`a`a`jonas0 a`a`a`a lambdabot chicken_jonas myname 22:29:37 date > share/conscripts; culprits share/conscripts | xargs -n 1 | awk '!x[$0]++' | xargs 22:30:01 yep it doesn't. 22:30:50 yeah... and I still haven't written that new noping filter I promised 22:34:57 `? mopiing 22:34:58 mopiing? ¯\(°​_o)/¯ 22:34:59 `? moping 22:34:59 moping? ¯\(°​_o)/¯ 22:35:25 huh, did Phantom_Hoover just join the new `list for the first time? 22:36:13 `list 22:36:18 Phantom_Hoover int-e hppavilion[1] b_jonas boily a`a`a`a`jo7as a`a`a`a`jo8as a`a`a`a`jo3as a`a`a`a`jo6as a`a`a`a`jo5as a`a`a`a`jo4as a`a`a`a`jo2as a`a`a`a`jo1as a`a`a`a`jonas0 a`a`a`a lambdabot chicken_jonas myname 22:36:23 ais523, looks like it 22:36:44 that's rare 22:36:56 also b_jonas is on there a lot 22:37:31 ais523: yeah, I started to put a lot when I thought it was alphabetized 22:37:58 -!- haavard_ has quit (Remote host closed the connection). 22:38:01 ais523: but it's sorted latest first, so there's no point adding lots of entries until after I want to remove an entry 22:38:04 you were trying to push yourself past 512 characters? 22:38:15 how devious 22:38:21 this really subverts the `list's purpose 22:38:31 ais523: sort of. I was never on the list as b_jonas, but I was trying to make it so that I couldn't get on it 22:38:35 insomuch as it has one at all 22:38:39 since the list would consist only of names starting with a 22:38:40 -!- haavard has joined. 22:39:02 then when you realised the sorting rules, you added yourself so that over time you'd fall off the end? 22:39:34 ais523: no, I didn't add myself, and I think that doesn't help, because I think it's sorted by last appearance descending 22:39:46 so it's a queue and every time you list you move on the head 22:39:55 ah right 22:39:59 that's an even better sorting rule 22:40:01 but I'm not sure that's how it works 22:40:05 even if it's accidental, I like it 22:40:07 -!- ais523 has quit. 22:40:16 ``` cat bin/culprits-ng 22:40:17 ​#!/bin/sh \ exec hg log -l 512 --template "{desc}\0" -- "$@" | perl -0ne '/^<([^>]*)>/ and print"$1 "' 22:40:22 -!- ais523 has joined. 22:40:25 ``` cat bin/culprits-ng 22:40:26 ``` cat bin/culprits 22:40:26 ​#!/bin/sh \ exec hg log -l 512 --template "{desc}\0" -- "$@" | perl -0ne '/^<([^>]*)>/ and print"$1 "' 22:40:26 hg log --removed "$1" | grep summary: | awk '{print substr($2,2,length($2)-2)}' | sed "s/.$/\x0F&/" | xargs 22:43:04 reminder: culprits-ng is disabled because I haven't implemented a noping filter yet 22:45:43 b_jonas: you canntest if you move to the front, you know ... 22:46:52 myname: I think I did test that with some of the numbered variants 22:47:17 but you can see it from the source too: culprits lists in order of date backwards, then that awk thing filters keeping the first instance of each name 22:47:41 myname: also, "chicken_jonas" appears on that list because the real b_jonas was too much of a chicken to list 22:47:59 lol 22:48:24 wasn't it obvious? 22:51:52 -!- Sgeo has joined. 22:53:00 -!- boily has joined. 22:54:04 the real b_jonas is more chicken than chicken jonas? 22:54:58 olsner: sort of 22:55:16 -!- earendel has quit (Ping timeout: 252 seconds). 22:56:17 hellolsner, b_jellonas. chickening? 22:56:39 quack 22:56:44 * boily premptives shachaf's unloud-massage. 22:56:47 @massages-loud 22:56:47 shachaf said 3h 6m 50s ago: One day last week it was 30 degrees here. 22:56:56 shachaf: hellochaf. AAAAAAAAAAAAAARGH! 22:57:11 b_jonas: quack. 22:57:20 boily: But now it's cold again. 22:57:22 @metar KOAK 22:57:22 KOAK 112153Z 27009KT 10SM FEW024 BKN045 18/09 A3011 RMK AO2 SLP195 T01830094 PNO 22:58:09 shachaf: bekekekech? 22:58:17 ? 22:58:35 @metar EGBB 22:58:36 EGBB 112150Z 22003KT 4200 BR BKN028 09/09 Q1005 22:58:39 fungot: quack 22:58:39 b_jonas: i, myself, will bring an end to all. ghosts lurk in the ruins were in truth, and everything in readiness for fnord. under these is concerned, the use of " coup" here is one that only takes predicates and has not named a 22:58:42 Chorus of the Frogs from Aristophanes' play The Frogs 22:59:03 shachaf: it's +18. it's hot. 22:59:09 @metar CYUL 22:59:09 CYUL 112100Z 15012KT 10SM -RA FEW015 OVC020 06/05 A2983 RMK SF1SC7 SLP104 22:59:46 Aaaaah, my uni's weather station has a broken wind measurer thingy 22:59:59 anemometer? 23:00:28 hmm, EGBB is easy to remember as "England, Great Britain, Birmingham" even though it doesn't actually stand for that 23:00:38 Taneb: it's not broken. there's a terrible hurricane there right now. 23:00:56 Europe (part of), Gunited Kingdom, BBirmingham. 23:01:16 Britain gets hurricanes? 23:01:16 Taneb: Oh. I feel like I talked about that play in here recently but I don't remember the context. 23:01:29 boily: we did, once 23:01:35 Back in the 80's 23:01:38 It was very lost 23:01:42 -!- tromp_ has joined. 23:01:44 oh, "Europe, Great Britain, Birmingham" works even better because it's in the right order 23:02:03 even if it's still a little incorrect etymologically 23:03:10 I wish Bbirmingham was pronounced with a bilabial trill. 23:03:52 I'm not sure I /can/ pronounce a bilabial trill 23:04:11 I'm not even sure what one is 23:04:36 Taneb: you know how you say "b" by blowing outwards with your lips together, then letting your lips separate? 23:04:49 if you have your lips in the right position, you can separate them with the force of your breath 23:04:49 ais523: yeah? 23:05:04 Making a sort of brr sound? 23:05:08 /now/, if you blow at the right speed, they'll separate then come back together, and separate again 23:05:15 thus you get two b's in a row 23:05:17 that's a trill 23:06:03 -!- tromp_ has quit (Ping timeout: 246 seconds). 23:06:15 -!- oerjan has joined. 23:06:17 I can *almost* do that, but not consistently 23:06:39 Taneb, it's blowing a raspberry with your lips basically? 23:08:18 exactly one raspberry 23:08:31 bbellørjan. 23:08:45 and then you somehow have to segue into "irmingham" without dropping a beat 23:09:14 It always comes out as prrirmingham for me 23:09:19 -!- hppavilion[2] has joined. 23:09:39 purrmingham 23:10:26 pbvbvbvbvbvrirngmingham... 23:10:31 A javascript framework that forces you to prove pages... 23:10:41 Basically, JavaScript+Coq 23:11:24 -!- earendel has joined. 23:11:34 I've wanted strongly typed LaTeX for a while 23:11:43 which could catch typos in formulas you write via the units on the two sides not being the same 23:12:27 ais523: um... there's strongly typed stuff that catches non-matching units, but I don't think it's LaTeX 23:12:40 right, I didn't think it /existed/ 23:12:41 I just wanted it 23:12:45 I typo formulas too often 23:12:46 sure 23:17:10 * oerjan is disappointed that this bbirmingham stuff wasn't how they actually pronounce it there 23:18:09 bøøily 23:21:49 bb_jonas 23:22:48 how do you say the "_"? 23:23:27 boily: I'm not sure, it's a screen name so I don't have to pronounce it 23:23:27 I had that problem too trying to pronounce it 23:23:30 I guess you just wait for a bt 23:23:32 *bit 23:23:45 but I usually pronounce it as béjónás 23:23:51 so there's a vowel between 23:24:05 I have now authored a piece of serious software whose source code includes the word "Coyoneda". What has come of my life? 23:24:25 heh 23:25:09 cobbrello. mwah ah ah. 23:26:03 I didn't know "Coyoneda" was a word at all 23:26:35 It's a little rude to dualize someone's name, don't you think? 23:26:41 Coyoneda is great, though. 23:27:04 coppro: If you don't want to include the word "Coyoneda" you can inline it. 23:27:09 Like Operational does. 23:28:19 oh, I didn't even parse it with a break after the first o 23:28:21 "co-Yoneda"? 23:28:29 that's how I normally see it spelled 23:29:17 It's a Haskell type in this case. 23:29:27 Coyoneda f a = exists x. (f x, x -> a) 23:30:33 wait 23:31:04 how do you know what coyoneda is in coppro's software? 23:31:40 these exists thingies always get me 23:32:09 why would it even use Haskell? 23:32:39 cause haskell is awesome 23:33:54 b_jonas: I've been seeing coppro's discussion of it in another channel. 23:34:05 Well, I haven't really been reading it in detail. 23:34:17 ah 23:34:47 but why would any serious software use haskell? 23:34:58 why not? 23:36:12 while we are at it: how do i do nested if then else in a do block without adding identation at every if 23:36:54 @google DoAndIfThenElse 23:36:55 https://prime.haskell.org/wiki/DoAndIfThenElse 23:37:01 shachaf: I could, yes. That would somewhat defeat the entire point though 23:37:28 which was to build the Operational instance of Zoom off of the Functor instance 23:38:18 zzo38: I wonder if a usable typesys could be implemented with return^n <-- you'd need the type of a function to include the return types of its callers... 23:38:24 so, as i guessed, you can't? 23:39:13 I don't know what you want to do. 23:39:47 > if 1 > 2 ; then 1 ; else if 2 > 3 ; then 2 ; else 3 23:39:48 3 23:39:58 myname: you can in ghc. 23:40:30 because you don't have to indent then or else. 23:40:58 interesting 23:41:00 well you have to start with "else if". 23:41:12 that might even be official haskell2010, not sure. 23:41:33 huh... how does that even parse? there shouldn't be semicolons there 23:42:06 b_jonas: the semicolons (optional) are what makes it work 23:42:18 (in haskell that is. in ruby semicolons would be allowed) 23:42:20 because they're equivalent to newlines. 23:42:45 oerjan: um... nah, I don't get it 23:43:03 that's just not how H syntax used to work 23:43:43 -!- hppavilion[2] has changed nick to hppavilion[1]. 23:44:01 -!- p34k has quit. 23:44:13 b_jonas: Right, that's why the Haskell Prime proposal I linked to above changed it. 23:44:26 but that's impossible! 23:44:55 meh, haskell syntax was screwed up a few times already 23:44:57 b_jonas: what's impossible about it? it's just a small change to the grammar. 23:45:25 them haskellers just have a very different idea about syntax from me 23:45:43 haters gonna hate 23:45:53 I should go and program C++ and Rust, those have syntax I like 23:46:42 b_jonas: Just write Haskell with {} and ; 23:46:49 Your life will be easy. 23:47:01 that's already how I write H 23:47:03 b_jonas: ok, it's official haskell 2010. 23:47:52 -!- boily has quit (Quit: CARRY CHICKEN). 23:58:28 meh, it'll disappear at the next reboot <-- i think that's the only way to get rid of them. 23:58:58 are there any languages which can be written with /just/ {};? 23:59:04 perhaps there are some DSLs inside IOCCC entries 23:59:14 which tend to use {};-based encodings a lot 23:59:26 due to an intentional exploit of the byte counter 23:59:39 huh?