00:04:28 -!- TeruFSX has joined. 00:10:21 I wish haskell would allow you to write something like 3 < length xs and have it terminate as soon as the answer is known. 00:10:52 it does 00:11:07 > 3 < length [1..] 00:11:08 s/length/genericLength/ and define the type of lazy conatural numbers 00:11:11 mueval-core: Time limit exceeded 00:11:14 however you should not be using length at all generally 00:11:46 Would lazy conatural numbers be as efficient? 00:12:22 @let voided n = replicate n () 00:12:24 Defined. 00:12:28 > voided 3 < void [1..] 00:12:30 True 00:13:02 length with lazy nats isn't necessarily bad. 00:13:18 Ah, ord instance for lists 00:13:29 genericTake (genericLength xs) ys is clearer than zipWith const xs ys, is it not? 00:13:40 -!- DHeadshot has joined. 00:13:42 -!- DHeadshot has quit (Remote host closed the connection). 00:14:20 shachaf: Maybe if you used an alternate prelude 00:23:57 -!- zzo38 has joined. 00:25:43 -!- DHeadshot has joined. 00:27:58 -!- mtve has joined. 00:39:20 -!- WeThePeople has joined. 00:42:40 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 00:44:45 -!- Phantom_Hoover has joined. 00:50:27 -!- augur has joined. 00:56:44 does haskell let you do eager evaluation ever 00:57:03 sure 00:57:05 depending on what that means 00:57:32 -!- zzo38 has quit (Remote host closed the connection). 01:09:07 -!- wareya has quit (Read error: Connection reset by peer). 01:09:57 -!- wareya has joined. 01:13:09 -!- Nisstyre-laptop has joined. 01:19:16 -!- doesthiswork has joined. 01:42:20 -!- WeThePeople has quit (Quit: Leaving). 02:01:23 -!- Phantom_Hoover has quit (Quit: Leaving). 02:10:10 If anyone didn't know this, I nostalgia quite easily. 02:10:19 Listening to Enya is a pretty good way to trigger that. 02:14:59 (Yes, there might be people who are unaware of my proclivities of falling into nostaliga. Bike, kmc and shachaf are fairly new here) 02:15:23 thank god they're filled in now 02:15:32 You don't need to tell Bike that kmc and I are fairly new here. 02:15:39 I'm sure everyone knows that. 02:15:44 `pastelogs shachaf 02:15:52 elliott: no dont do it....... 02:16:00 im doing it 02:16:13 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.22268 02:16:45 -!- augur has quit (Read error: Connection reset by peer). 02:16:46 Cale was in #esoteric? 02:17:08 He was? 02:17:15 I like how shachaf has technically been here longer than PH 02:17:24 `pastelogs Sgeo 02:17:31 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.28554 02:17:39 2011-01-04.txt:17:01:10: elliott: Dwarf Fortress? Minecraft? What about your liberty? 02:17:42 2011-01-04.txt:17:02:39: elliott: Dwarf Fortress doesn't provide the source code. Minecraft doesn't even provide the binary without payment. 02:17:52 shachaf: i can't tell if this was a joke or not 02:18:03 If I said "What about your liberty" it was probably a joke. 02:18:14 -!- augur has joined. 02:18:41 `pastelogs nostalgia 02:18:48 2011-05-26.txt:07:35:35: oerjan: What ar eyou doing in this channel instead of #haskell? :-) 02:18:57 elliott: It's OK, we get it. 02:19:03 You can stop quoting oldshachaf. 02:19:04 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.32092 02:19:07 don't worry. I can only read at most 300 of these lines. 02:19:09 or was it 350 02:19:19 (Actually oldshachaf is/was younger than I am?) 02:19:26 (Maybe it should be youngshachaf.) 02:19:54 2011-08-13.txt:02:18:16: shachaf: Shut up my number keys are broken. 02:19:56 I remember this. 02:20:21 Don't read logs, elliott. 02:20:24 It's not polite. 02:20:28 2009-10-30.txt:22:19:12: I have search-software-related nostalgia now 02:20:49 shachaf: my offer to delete logs for money stands!!! 02:20:50 `pastelogs ehird 02:20:58 elliott: You can't delete #esoteric logs for money. 02:20:58 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.9922 02:21:05 Well, not usefully. 02:21:10 are you really going to waste your time reading 300 dumb things i said in the past as revenge 02:21:16 Nah. 02:21:58 -!- monqy has joined. 02:22:56 Am... I having nostalgia for my past bouts of nostalgia??? 02:23:05 You would be the only one. 02:27:50 i think i used to have bouts of nostalgia 02:28:08 Hey, I didn't choose my college for nostalgic purposes! ... I didn't really choose my college at all 02:28:37 And yes, there totally was a college that I had nostalgic feelings for before I entered college 02:28:42 sgeo thats the saddest thing youve ever said 02:31:11 you'r ehaving nostalgia for having nostalgia fora school you never actually enrolled in? 02:33:16 No recursive nostalgia. 02:33:43 And the college in question had a summer day camp that I went to for 3 years 02:35:56 -!- mad has joined. 02:45:25 `welcome mad 02:45:27 mad: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.) 02:47:13 sup 02:47:55 trying to see if I can pipeline my staggered-SIMD risc cpu design :D (and produce something ressembling verilog) 02:49:01 I need some non-insane ways of dealing with memory aliasing faults and split branch faults 02:53:05 like, horrible CPUs like the P2 can do it because nothing you do is real, everything you do is speculative branch predicted register renamed reordered 02:53:16 horrible/awesome :D 02:53:49 like, if you have a loop 02:53:56 cpu core 1 is on iteration 1 02:53:59 cpu core 2 is on iteration 2 02:54:02 cpu core 3 is on iteration 3 02:54:06 cpu core 4 is on iteration 4 02:54:07 etc.. 02:54:27 cpu core 1 takes a branch 02:54:30 o, u r just madbr 02:54:41 but, say, cpu core 4 doesn't take the branch 02:54:56 hindu cpu 02:55:34 since there's only 1 scheduler (on core 1), core 4 must stop processing 02:55:49 how do you present that to the programmer 02:55:55 in a way that makes any sense at all 02:57:36 like, his loop bails midway 02:57:51 it's either some jump that makes no sense and happens randomly 02:58:28 or core 4 goes into dormant state and then you never know how many cores will be still active, so you don't know what register file to feedback values from 03:03:27 dealing with memory aliasing isn't beeter 03:04:10 it's like, you have to lock your write destination addresses before you read anything in the loop (well, anything that could alias) 03:05:10 then if a read lands on one of these you know there's an alias and you can bail... but then once again you have a random jump out of the blue that you have to recover from 03:05:28 Sgeo: Is today the ninth day of the olist sequence? 03:05:43 shachaf, I believe so. 03:05:53 Assuming that there is an update today, haven't seen one yet 03:06:08 So if there's no update then there'll be a nine-day sequence some other time? 03:06:15 Yes. 03:06:32 871-878 is the current days-in-a-row sequence 03:07:27 Sgeo: What's the problem with vampires anyway? Why don't people like them? 03:07:40 they're for girls 03:07:53 I assume they're Evil. 03:08:00 Oh. Why? 03:08:03 Although people like Belkar just fine. 03:08:07 I don't play D&D, sorry. 03:09:34 They always rubbed me wrong 03:10:10 http://www.supermegacomics.com/images/386.gif 03:12:06 monqy: is supermegacomics where you got your style 03:12:12 or did supermegacomics get it from you 03:12:21 i dont think either of those are true 03:12:56 monqy: by the law of excluded middle one of them has to be true 03:13:18 i dont think thats how that works shachaf..................................... 03:14:11 oh, those constructivists 03:18:44 is the opcode dest, src ordering of operands in x86 and ARM assembly some kind of ergativity 03:20:12 http://www.supermegacomics.com/index.php?i=302 03:20:42 ergativity...? 03:22:18 it's a linguistics term 03:23:14 well, i doubt assembler designers know linguistics above a superficial level 03:23:27 it refers to languages where the subjects of intransitive verbs have the same case as objects of transitive verbs 03:23:38 so they're essentially always in passive voice 03:23:43 yeah i thought you meant ergodic theory for some stupid reason 03:25:03 http://www.supermegacomics.com/index.php?i=317 03:26:18 I guess that would mean asm would have, like, a VSO order? 03:26:40 yeah 03:26:49 C would probably be SVO 03:26:54 linguistics makes me sad 03:27:00 or is that linguistics make me sad? 03:27:01 well I guess ARM would be VSOO 03:27:02 forth would be SOV of course 03:27:08 linguistics is cool, but programming languages are nothing like natural languages usually. 03:27:13 x86 would be weird some some instructions use their destination as input, while some don't 03:27:24 SVO would be some OO language thing. 03:27:32 whereas that isn't true in ARM... well except for weird things like vtrn 03:28:19 doesn't arm has same order for opcodes as intel? 03:28:46 aside from having 3 argument opcodes 03:29:10 instead of having only 2 argument opcodes that are really 3 arguments due to the aggressive register renaming 03:29:59 yeah, but like, it has op dst, src1, src2 03:30:04 x86 has op dst, src 03:30:15 so lots of x86 instructions use both dst and src as input 03:30:24 but on arm dst is almost never an input I think? 03:31:31 arm as op dst, src 03:31:48 but it's just a shortcut for op dst, src1=dst, src2 03:31:51 yeah 03:32:04 and it assembles to the 3 operand operation 03:35:37 I think stores are reversed tho 03:36:30 (on ARM, not on x86 since they can't because for some reason there are read-modify versions of the opcodes) 03:37:30 x86 has op dst, src or else op %src, %dst ;P 03:37:58 Intel syntax is weird. 03:38:02 hmmmmm 03:38:16 gcc assembly syntax doesn't count 03:38:20 it's impossible to read 03:38:23 is intel syntax CFGable? could you use a regular expression 03:38:36 it is pretty bad 03:38:39 could it be the link anti-chomkyists are looking for 03:38:56 x86 does have a few three-operand instructions by now as well 03:39:04 well, all of AVX XD 03:39:10 also some where one is implicitly fixed (like edx:eax for mul/div) 03:39:12 plus BMI1/2 03:39:15 after 30 years of resistance from intel yes 03:39:18 Also a 3-operand addition instruction! 03:39:20 and imul reg,reg,imm if an immediate counts 03:39:31 shachaf: you mean LEA? ;) 03:39:33 and FMA4, vpperm are 4-op because AMD 03:39:35 kmc: Yep. 03:39:43 not just addition! reg + {1,2,4}*reg + imm 03:39:53 good instruction, that 03:39:58 there's some implicit 3-op ones like pblendvb that use hardcoded xmm0 <.< 03:40:22 If I remember correctly "x86 has a 3-operand addition instruction" was a factor in the design of Salsa20. 03:40:35 i still can't understand how the fuck you can remember "pblendvb" 03:40:46 packed, blend, variable, bytes 03:41:02 it's impossible 03:41:05 XD 03:41:06 «I chose “xor a rotated sum” over “add a rotated xor” for simple performance reasons: the x86 architecture has a three-operand addition (LEA) but not a three-operand xor.» 03:41:26 I wonder how much of a difference that actually makes. 03:41:28 lemme see the most registers I can use in one instruction... 03:41:52 vpperm xmm0, xmm1, xmm2, [rax+rbx*8+0xDEADBEEF] 03:41:57 5 regs, I think, I don't think one can beat that XD 03:42:17 heh 03:42:37 you can have both a displacement immediate and a displacement register? 03:42:51 Yep. 03:43:12 I thought it was either/or 03:43:24 Fiora: pusha 03:43:26 * shachaf wins 03:43:44 shachaf: ... that is TECHNICALLY TRUE 03:43:45 you win 03:43:46 that's 5 GP regs but also %ds! 03:43:51 and %cs arguably 03:43:54 and Others 03:44:09 in that case it still loses to ARM :D 03:44:09 arguably 03:44:12 ????? 03:44:14 %cr3 arguably 03:44:18 due to LDRM and stuff like VLDM 03:44:21 now i'm just being silly 03:44:26 though. vzeroupper affects -16- registers. 03:44:29 nyahahahaha 03:44:29 !!?!????!??!?????? 03:44:49 Hmm. 03:44:57 maybe i should pretend to learn lojban again, it had syntax vaguely analogous to that of programming languages 03:45:14 Don't do that! 03:45:19 tswett: Tell Bike not to do it. 03:45:50 oh. xsave wins even more XD 03:45:56 xsave/xrstor 03:46:41 As long as he's only pretending, it's okay. 03:46:55 considering there aren't speakers i doubt i could learn even if i tried 03:46:58 it saves x87 FPU state, MMX state, SSE state, MXCSR... 03:47:46 That's just a cheap plastic imitation of pusha! 03:47:58 I think there's at least one fluent speaker. 03:48:14 No native speakers, unless you count Robin Lee Powell's twin daughters. 03:48:17 that's sad 03:48:26 Frances and Kelly. I don't know whether or not their last name is Powell. 03:49:06 They have three parents, one of whom (RLP) has been speaking to them exclusively in Lojban. I think they're now between 1 and 2 years old. 03:49:30 fun family 03:49:33 that's kind of a cruel experiment :/ 03:49:49 Fiora: *shrug* They still have the usual number of English-speaking parents. 03:49:54 oh, just one. 03:49:55 sorry, misread 03:49:55 I kinda remember hearing about one like that but for... I think it was klingon 03:50:09 I was thinking they were -only- speaking lojban <.< 03:50:20 it's amazing how fast linguistics experiments run into language experiments. if you'd told me the study of language got a lot of its weirder data from mentally ill children i wouldn't have believed you 03:50:27 IIRC, they realized that Klingon just isn't usable as a day-to-day language. 03:50:44 oh? 03:50:49 having one parent talk in a language probably won't let you learn it too well, anyhow 03:50:57 tswett: missing vocabulary? 03:50:58 klingon's probably missing a lot of vocabulary? 03:50:59 Apparently not. 03:51:01 mad: yup. 03:51:11 it's like i'm reverse psychic 03:51:14 ☝ ☝ ☝ PUN ALERT 03:51:37 And I've heard that yeah, a kid just won't really learn a language if the only person they know who speaks it is one parent. 03:52:04 see also, second generation immigrant children 03:53:52 kinda wonder if klingon is "compact" or not, too 03:53:58 compact? 03:54:07 If every open cover of it has a finite subcover. 03:54:16 thx 03:54:23 yw 03:54:36 bike: as in has low-ish number of syllables for the more common things you might want to say 03:55:05 Oh. Like a natural language. 03:55:30 yeah 03:55:45 so, like, good huffman coding I guess? 03:55:57 mhm 03:56:47 huff man 03:56:50 hm, i don't think i've actually read anything rigorous about information theory and linguistics. minimum description length something something bayes 03:57:38 intel\ combined\ manual.pdf is so awkward to use. :-( 03:58:57 that must be gigantic 03:59:58 Is there a big fancy hypertext? 04:03:03 Is there a nice and simple assembly language that is nevertheless very much usable? 04:03:11 MIPS, perhaps, or something simpler. 04:03:26 Whose specification is freely available online, and short. 04:03:29 yeah, RISC instruction sets 04:03:31 ARM 04:03:31 MIPS is the usual for pedagogy 04:03:34 Like 50 pages or something. 04:03:42 Sgeo: What's the problem with vampires anyway? Why don't people like them? <-- well _i_ like malack... 04:04:53 vampires are probably going to be out of style before too long 04:04:55 overdone 04:05:25 MIPS is relatively simple but still has some idiosynchracies I guess 04:05:44 everything has idiosyncracies 04:06:01 like delay slots and the mul/div thing and hazards and whatevers 04:06:07 that's what the ARM guy was saying anyways 04:06:13 all architectures have warts 04:06:36 also all architectures have hazards :D 04:06:48 ARM seems relatively low on warts, but the instruction set is pretty gargantuan 04:06:51 well, you could use MIX or something. 04:06:53 hope you like bcd 04:07:07 bcd is a wart all by itself :D 04:08:04 xactly 04:08:27 delay slots make sense in the "486" generation 04:08:39 ie before you have branch prediction 04:09:09 yeah, they make -sense-, they're just. I guess, one extra messy thing to worry about when learning 04:10:01 would learning a machine without understanding branch prediction be worth it? (I did not learn branch prediction) 04:10:07 Is there a better way to look things up than intel\ combined\ manual.pdf? 04:10:31 bike : you could start with an old arm that doesn't have branch prediction :3 04:11:21 http://www.intel.com/content/dam/doc/manual/64-ia-32-architectures-software-developer-instruction-set-reference-manual-325383.pdf this thing has it listed by instruction ? 04:11:38 personally I kinda feel http://developer.apple.com/library/mac/#documentation/DeveloperTools/nasm/nasmdocb.html is more succinct and easy to read even though it's not quite complete 04:11:44 what about geek32 04:11:52 That's just section something-something of the combined manual. 04:11:55 It's still a huge PDF. 04:12:14 ahaha hate PDF instruction manuals 04:12:14 Hmm. 04:12:24 why do they make PDF instruction manuals anyways 04:12:29 -!- Arc_Koen has quit (Quit: Arc_Koen). 04:12:32 is it wrong if I like them :< 04:12:57 yes 04:13:22 how do you search them 04:13:29 it's... alphabetical 04:13:31 also most pdf readers are laggy 04:13:35 and it has a table of contents on the left 04:13:51 I use the built in firefox one... <.< 04:13:51 still worse than just a framed webpage 04:14:37 * mad opens the table of contents on the ia32 manual 04:14:43 gread it's not wide enough 04:14:51 :33 < it's purrty bad, Firoara 04:14:52 half of the text is cutoff and I can't widen it 04:14:55 I don't know why firefox doesn't let me resize it 04:14:57 it's really annoying 04:15:00 foxit was better 04:15:05 Hmm, :< isn't even part of that. 04:15:16 * shachaf maintains that there are only two smiley faces in the world. 04:15:40 <: 04:16:20 :33 < pdfs arent purrfect but, waterever, they fit whale into my roetine, even if crappie 04:17:20 roetine...? 04:17:42 whale? 04:17:59 am I not allowed to be fefeta :< 04:18:13 no i mean what is "roetine" a pun on, I get "routine" but 04:18:14 I don't know. 04:18:20 roe 04:18:21 What's a fefeta? 04:18:27 Kind of pasta. 04:18:40 what you get when you combine feferi (fish puns) with nepeta (cat puns) 04:19:07 roe no! 04:19:14 What do you get when you combine them with Scooby Doo puns? 04:19:27 oh god 04:19:28 -!- augur has quit (Remote host closed the connection). 04:20:11 ummm more seriously http://ref.x86asm.net/coder64-abc.html is a table reference 04:20:28 -!- augur has joined. 04:20:55 right... I like how you have to sort opcodes as "useful" or "useless" 04:21:34 ? 04:22:12 ie the ones that are vaguely risc-like and you can do lots of 04:22:32 I think there's only a few old instructions like that 04:22:34 vs the ones that are cisc and have all sorts of penalties and don't pair on the pentium 04:22:38 er, the ones that you should avoid 04:22:50 all 16bit and 8bit opcodes should be avoided afaik 04:22:57 except movsx and movzx 04:23:02 using 8-bit and 16-bit stuff is okay, I think? I do it all the time... 04:23:12 there's some exceptions (like, you need to avoid flag merging penalties) 04:23:17 afaik the register renaming hates it 04:23:17 but, like, setCC is 8-bit only and you kinda need that 04:23:25 yeah, it's bad if you trigger hte merging penalties 04:23:41 -!- c00kiemon5ter has joined. 04:23:52 also they are mostly useless anyways 04:24:12 but setCC is 8-bit only :< 04:24:29 setCC? 04:24:39 is that something they added on the p2? 04:24:40 setc, sete, and so on? 04:24:49 it's since 386 04:24:55 -!- c00kiemon5ter has left. 04:25:05 set current continuation? 04:25:08 int a = b == c; gets compiled as 04:25:11 And I thought getCC was bad! 04:25:13 cmp b, c 04:25:18 sete a 04:25:23 first time I see that 04:25:26 movzx reg, a 04:26:52 set current continuation would just be invoking the continuation. oh nooooo 04:29:12 By the way, continuations aren't functions. 04:29:32 http://okmij.org/ftp/continuations/undelimited.html 04:29:37 Not that you said they are. 04:29:55 i suppose scheme's pretending they are is related to them being "procedures" instead 04:30:22 okies I kinda tried to make a list of the things not to use 04:30:44 it's probably not perfect but: AAA/AAS/AAM/AAD/DAA/DAS (bcd instructions), BOUND, ENTER, J(E)CXZ, LOOP*, MOVS*, RC*, SCAS*, XLATB 04:30:59 xlatb sounds exciting. 04:31:05 I bet it calculated latitude in binary. 04:31:32 lookup table <.< 04:32:07 "XLATB adds the value in AL, treated as an unsigned byte, to BX or EBX, and loads the byte from the resulting address (in the segment specified by DS) back into AL. " 04:32:13 I think it only existed because the 8086 had like, no addressing modes 04:33:02 I think I'm going to write a fanfiction where Bletchley Park never happened, and computers end up being developed only by the Kriegsmarine. 04:33:12 * shachaf so tired :-( 04:35:07 Bike: is that a fanfiction for... life 04:35:15 historical fiction? 04:35:21 ... alternate history fic? 04:36:00 Well, the seventh book introduces Nepeta Leijon. 04:36:46 fiora : what about everything that involves segment registers? :D 04:37:10 I don't think you can even use those in 32-bit protected mode? XD 04:37:57 actually you can 04:38:19 maybe not in paged mode tho 04:38:22 can you even set them outside of ring0? 04:38:49 it probably adds on a penalty if you set a segment that doesn't start at 0 too 04:39:25 I think I remember reading it adds 1 clock cycle latency to loads on recent intel 04:39:41 it's not actually that bad, I think fs/gs stuff gets used for things like native client? 04:39:44 I'm not sure 04:40:23 I've never done anything with it so don't trust me I'm probably totally clueless 04:42:10 all I remember is that in djgpp (32bit dos version of gcc) you could have it set gs to a segment that overlaps all RAM 04:42:22 and overwrite everything willy nilly :D 04:42:51 tho you had to use that hack to write to VRAM too 04:43:05 oh geez XD 04:44:10 write garbage to 0xa0000 -> yay pretty garbage on the screen :D 04:45:50 writing code for that was pretty fun actually 04:49:10 that impression of power you get from writing straight to the metal is nice 04:49:33 rather than having 213423 layers of abstraction and you never know anything about what's happening 05:07:37 -!- Frooxius_ has joined. 05:07:46 -!- Frooxius_ has quit (Client Quit). 05:10:27 -!- Frooxius has quit (Ping timeout: 276 seconds). 05:17:58 `olist 05:18:00 olist: shachaf oerjan Sgeo 05:19:06 oerjan, for your benefit: The new comic is 879 05:20:05 -!- Frooxius has joined. 05:21:10 Also the website is broken 05:21:29 Or, it was, briefly 05:22:12 "Also, this is the last of the 9-in-a-row, so there won't be any more until next week while I try to catch up on other work." 05:25:21 the o in olist stands for oerjan 05:25:22 -!- Frooxius has quit (Ping timeout: 252 seconds). 05:25:39 it also stands for of 05:29:24 -!- Frooxius has joined. 05:29:46 do you know where I can read about Lagrangian Probability Distributions, all the google results seem to be books 05:31:15 -!- TeruFSX has quit (Ping timeout: 276 seconds). 05:32:40 Is that a distribution named after Lagrange or a distribution over Lagrangians or a Lagrangian of probabilities 05:33:39 I have no idea, its what you get when you take some random subsets of random binary trees 05:34:20 the distribution of sizes is supposed to be a lagrange distribution 05:34:47 only, I don't know what that is 05:36:54 I've never heard of a "Lagrange distrubition" in common use... 05:38:54 i'll have to go back and bug the professor then 05:46:51 -!- oerjan has quit (Quit: Gnite). 05:55:16 how would you do something like SSE branch 05:55:43 like, if across your 4 units the condition is false, don't branch 05:55:54 if across your 4 units the condition is true, branch 05:56:04 ptest? 05:56:06 but what if it's only true on some of the units? 05:56:13 ummm usually you use branchless code and merge 05:56:28 say mad have you seen weird-ass computer designs like the connection machine 05:56:35 yeah but that's not really a branch :3 05:56:43 but that's the whole point, you avoid the branch :P 05:56:53 in the absolute worst case, compute both sides and merge 05:57:00 usually you can find shortcuts though 05:57:22 what about the branch at the end of the loop? :D 05:57:34 ummm wait but why would that be per-element 05:57:35 you can't turn that one into a conditional mov :D 05:57:46 I don't understand... 05:57:46 it's the fallout of my current design 05:57:58 branches at the end of loops work the same in simd as normal... 05:58:32 classic risc except that instructions are first done on the "head" unit (the one with the scheduler) 05:58:39 then replicated on the other units 05:59:08 also it's a possible avenue for autovectorization 05:59:46 So you have like... a four vector [7,7,6,7] and decrement loop on each number? And what happens when the 6 zeroes first? 06:00:30 normally something like a loop counter will end up being vectorized as something like [11, 10, 9, 8] 06:01:06 and then once it does the decrement it actually loads the 8 from the last unit into the first one and produces [7, 6, 5, 4] 06:01:44 suppose you exit the loop when i < 1 06:01:59 the next iteration will produce [3, 2, ,1, 0] 06:02:35 since the scheduling is done on the first unit, it will see 3 and try to loop again 06:02:55 This seems like a bad use of autovectorization? 06:02:56 except the branch instruction will go the other way 3 cycles later on the 4th unit 06:03:44 bike : if I can solve this and memory aliasing I can probably get llvm to autovectorize almost any loop 06:04:22 but you're vectorizing something that's probably supposed to go one at a time 06:04:58 hm 06:05:21 well I have to admit that feedback loops that only have += are a lot easier to deal with 06:05:31 since for those ones it can probably guess 06:05:37 like if i have for (int i = 0; i < 10; ++i) print(i); i probably want 0 through 10 to print in order. 06:05:55 right 06:06:13 the trick is that you can put the memory writes after the conditional jump 06:07:12 so your loop will escape before any bad data will get printed 06:07:40 irl it will probably try to vectorize print(i) actually 06:08:13 which will probably work for something like print("Hello world this is a long message") 06:08:35 I mean, I want the prints to happen in a certain order. 06:08:42 not much point in parallelizing that? 06:09:08 tbh it's not what I'm targetting 06:09:12 And if you vectorized a long string print you'd be like, setting up multiple buffers? 06:09:16 more like the data processing loops 06:09:26 I know it's not, I'm just trying to see why you'd want to do this for all loops. 06:09:37 which probably have guessable conditions like for(int i=0; i mostly to avoid the cases where there's some exceptional case somewhere in the loop and the compiler can't guess it so it has to give up entirely on vectorizing 06:10:33 I thought this was the processor? 06:10:59 like, if all the branches go the same way, the branches are almost free 06:11:26 and that's the typical case in loops that aren't completely sequential and where you can't do anything 06:11:58 maybe at some point in the loop it will start going the other side once or twice 06:12:13 which is essentially how branch prediction works 06:13:21 -!- sebbu has quit (Ping timeout: 248 seconds). 06:13:25 Oh god there's YET ANOTHER Haskell Iteratee library 06:13:34 Iteratees are the new monad tutorials. 06:13:47 How'ss branch prediction work in Haskell 06:13:53 or maybe I could have two types of vectorized loops 06:14:23 one for manual ASM (where when the 1st unit branch, all units branch, no choice, also no anti-alias) 06:14:55 and one for compilers (which support trapping split branches and memory aliasing but have crazy semantics that make no sense) 06:17:37 hmm 06:17:55 how expensive are comparators in terms of gates 06:19:21 like, is doing 96 comparisons (32 bits each) on each memory read crazy? :D 06:19:50 isn't it subtraction and then sign check 06:20:42 well, it's exact value comparison 06:20:55 xnor 06:20:58 so it can be like a xor for each bit then 32-wide or :D 06:21:24 equality is just xnor and then checking for 1s i guess 06:21:37 I guess that doesn't have much propagation delay 06:21:50 and not all that much many more gates than just a register 06:22:44 96 32-bit xnors on every read sounds like a bit much but i have no basis for comparison 06:23:17 other solution would be just a ~2048 bit array 06:23:26 each cache address gets 1 bit 06:23:41 -!- AgonyLang has quit (Quit: Page closed). 06:34:56 The Beers, Burritos, and Bonghits Diet 06:35:24 but then it can generate false positives :( 06:36:39 it's kinda stupid for handwritten ASM too since people can guess what can alias or not 06:39:44 same for split branches I guess 06:56:43 -!- epicmonkey has joined. 07:05:02 -!- abumirqaan has quit (Ping timeout: 252 seconds). 07:06:43 -!- doesthiswork has quit (Quit: Leaving.). 07:08:44 -!- ssue_ has quit (Ping timeout: 255 seconds). 07:19:18 -!- epicmonkey has quit (Ping timeout: 245 seconds). 07:34:34 -!- azaq23 has joined. 07:48:46 -!- mad has quit (Quit: Radiateur). 08:16:16 -!- nooga has joined. 08:28:27 -!- epicmonkey has joined. 08:29:31 -!- ssue_ has joined. 08:42:06 -!- sirdancealo2 has quit (Ping timeout: 264 seconds). 08:47:56 -!- Nisstyre-laptop has quit (Ping timeout: 245 seconds). 08:53:54 -!- Taneb has joined. 08:58:45 -!- sirdancealo2 has joined. 09:01:42 -!- abumirqaan has joined. 09:05:51 -!- monqy has quit (Quit: hello). 09:06:50 -!- Jafet has joined. 09:07:05 -!- Bike has quit (Ping timeout: 245 seconds). 09:13:34 -!- FreeFull has quit. 09:34:22 -!- hagb4rd|lounge has joined. 09:39:58 -!- sirdancealo2 has quit (Ping timeout: 256 seconds). 09:50:43 -!- hagb4rd|lounge has quit (Read error: Connection reset by peer). 10:03:46 -!- Taneb has quit (Ping timeout: 256 seconds). 10:29:15 -!- Phantom_Hoover has joined. 10:40:23 -!- carado_ has joined. 10:55:10 -!- sirdancealo2 has joined. 11:10:28 -!- nooodl has joined. 11:13:46 -!- sebbu has joined. 11:13:46 -!- sebbu has quit (Changing host). 11:13:46 -!- sebbu has joined. 11:30:01 -!- sirdancealo2 has quit (Ping timeout: 245 seconds). 11:43:40 -!- sirdancealo2 has joined. 11:51:12 -!- copumpkin has quit (Ping timeout: 240 seconds). 11:51:43 -!- copumpkin has joined. 12:02:06 -!- sirdancealo2 has quit (Ping timeout: 245 seconds). 12:13:55 -!- sirdancealo2 has joined. 12:35:55 -!- Arc_Koen has joined. 12:38:20 -!- sirdancealo2 has quit (Ping timeout: 245 seconds). 12:44:29 -!- Taneb has joined. 12:56:17 -!- carado has joined. 13:00:14 -!- carado_ has quit (Quit: Leaving). 13:00:38 -!- sirdancealo2 has joined. 13:47:17 -!- Nisstyre-laptop has joined. 13:58:00 -!- Taneb has quit (Quit: Leaving). 14:05:30 -!- ogrom has joined. 14:06:18 -!- boily has joined. 14:06:19 -!- Nisstyre-laptop has quit (Ping timeout: 260 seconds). 14:08:44 -!- boily has quit (Client Quit). 14:11:20 -!- boily has joined. 14:16:57 -!- ogrom has quit (Ping timeout: 256 seconds). 14:19:35 -!- ogrom has joined. 14:21:30 -!- Taneb has joined. 14:44:08 -!- olsner has quit (Ping timeout: 272 seconds). 14:46:10 `run (echo '#!/bin/sh'; echo 'if [ $# -ne 0 ]; then for f in "$@"; do echo "#!/bin/cat" && cat "$f"; done; else echo "#!/bin/cat" && cat; fi') > bin/makequine && chmod +x bin/makequine 14:46:16 No output. 14:47:22 `makequine 14:47:53 ​#!/bin/cat 14:55:42 -!- olsner has joined. 14:58:12 -!- ogrom has quit (Quit: Left). 15:30:49 -!- ais523 has joined. 15:33:53 -!- DHeadshot has quit (Ping timeout: 245 seconds). 15:41:30 -!- DHeadshot has joined. 16:01:30 anyone experience with cpp? 16:01:39 It seems it decides to ignore my -B option 16:04:41 -!- sirdancealo2 has quit (Ping timeout: 255 seconds). 16:05:02 -I works. 16:05:41 but cpp --help does not even list that option 16:06:39 -!- AnotherTest has joined. 16:07:23 Hello 16:07:24 AnotherTest: You have 3 new messages. '/msg lambdabot @messages' to read them. 16:10:50 mroman_: cpp, as in g++? 16:11:57 When is -(a ProductLog(-(log(a))/a))/(log(a)) integral? 16:12:03 (an integer) 16:12:19 (for what values of a, that is) 16:22:14 I suspected that a^b = b^a (with a !=b) is true only for 4 and 2 16:22:33 I'm not really sure anymore now though 16:22:53 -!- ogrom has joined. 16:24:07 -!- sirdancealo2 has joined. 16:25:03 log(2) / log(4) = 2 / 4, what other integers exists so that log(a) / log (b) = a/b? 16:25:09 *exist 16:28:29 AnotherTest: I spent some time with a math teacher trying to find others or to prove that they were the only ones 16:28:37 we didn't get very far 16:29:56 (that was in high school though) 16:29:57 well at least not for all combinations of numbers from 2 to 100 16:30:31 b =-(a ProductLog(-(log(a))/a))/(log(a)), but that really doesn't tell me a lot 16:30:37 as I only want integer solutions 16:31:53 normally, log(a) / log(a²) = 1/2, right? 16:32:18 I wouldn't say "normally", since that is always true 16:32:31 yes, always 16:33:24 at least for positive a 16:33:30 now it happens that for 4 and 2, it is true that a² = 2a 16:33:44 (well just for 2) 16:34:01 yup 16:34:35 Well I think log (a) / log(b) = a /b is one of the conditions. 16:35:00 If it really is, then it would indeed only be true for 2 16:35:02 one of the conditions? that's equivalent to a^b=b^a 16:35:19 Well, a != b is there too 16:35:26 so one of both conditions 16:35:27 oh rifht 16:38:38 -!- ogrom has quit (Quit: Left). 16:41:36 Error: In environment 16:41:36 e : bool = unit 16:41:36 The term "e" has type "bool = unit" while it is expected to have type "bool = unit". 16:42:00 Got DS working on Linux 16:42:34 No sound though :( 16:42:37 I guess in the current context DS doesn't mean "demon spawn". 16:42:48 It means Docking Station 16:43:07 Also, the context of my statement is wholly disconnected from the context of surrounding chat. 16:43:50 so, even if a != b, and e is booleanly unitty, the context of a silent docking station is disjointed from Linux. 16:46:23 wtf is with this error 16:47:32 ahhhh 16:47:34 it was a Set/Type error 16:49:11 I assume this is not Haskell. 16:49:20 Set/Type sounds like a thing you'd see in a dependently typed language 16:51:04 coq 17:02:19 -!- KingOfKarlsruhe has joined. 17:06:23 -!- sebbu has quit (Ping timeout: 245 seconds). 17:12:04 elliott: I think you may have been right, and Anarchy's type system is probably undecidable after all 17:13:00 thought so :P 17:13:05 though I forget why I thought so!! 17:13:08 but I'm sure it was a good reason 17:17:06 -!- FreeFull has joined. 17:24:18 ais523: I assume this won't stop you, though 17:24:32 yeah 17:24:47 I'll just have to work out if being undecidable is actually a problem, and if it is, what restrictions I should put on it to make it decidable 17:28:50 wow, agda gives even worse error messages than coq 17:34:49 -!- sebbu has joined. 17:35:04 -!- sebbu has quit (Changing host). 17:35:05 -!- sebbu has joined. 17:46:41 -!- nooga has quit (Ping timeout: 245 seconds). 17:52:04 -!- epicmonkey has quit (Ping timeout: 245 seconds). 17:53:30 -!- sebbu has quit (Ping timeout: 272 seconds). 18:00:51 Help I think I've just volunteered to cosplay Emperor Hirohito of Japan 18:02:06 Taneb: Easy solution: Start talking about the costume you want to make based on some insane Weeaboo notion of Japan, and they'll kick you out. 18:02:16 Won't work. 18:02:24 We've already got a Hitler, Stalin, and Mao 18:04:30 And no, I'm not going to tell them that Mao only seized power 4 years after Hitler's death 18:04:50 Is that REALLY relevant to that sort of cosplay X-D 18:05:30 -!- sebbu has joined. 18:28:39 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 18:31:18 -!- Phantom_Hoover has joined. 18:43:58 -!- Bike has joined. 18:48:45 -!- augur has quit (Remote host closed the connection). 18:49:32 `? cosplay 18:49:34 cosplay? ¯\(°_o)/¯ 18:50:12 `pastewisdom 18:50:13 http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/wisdom/ 18:50:37 `learn Cosplay is the art of dressing up as people to show off to other people dressed up as people. 18:50:41 I knew that. 18:50:45 -!- Taneb has quit (Quit: Leaving). 18:54:40 `? colour 18:54:42 ​Colour is a phenomenon from outer space designed to drive humanity insane and bring forth the new age of Cthulhu. 18:59:08 `? color 18:59:10 ​Color is a phenomenon from outer space designed to drive humanity insane and bring forth the new age of Cthulhu. 19:02:57 Color is a phenomenon from oter space 19:02:57 `learn Coulor is the correct spelling. 19:03:01 I knew that. 19:03:15 -!- nooga has joined. 19:03:30 -!- monqy has joined. 19:03:57 shachaf: Colour is a phenoumenoun froum ooter space. 19:07:06 -!- AnotherTest has quit (Ping timeout: 245 seconds). 19:07:51 * shachaf is in MDW 19:08:20 My appendages are beginning to tingle from lack of sleep. 19:08:30 nice 19:08:57 Although I did sleep a bit on the aæeiroplane. 19:10:33 -!- epicmonkey has joined. 19:12:20 aæei is one of the better vowels I've seen recently 19:13:10 -!- KingOfKarlsruhe has quit (Remote host closed the connection). 19:13:48 shachaf: appendages 19:14:55 appendages are so easy 19:18:46 -!- augur has joined. 19:21:31 -!- Arc_Koen has quit (Quit: Arc_Koen). 19:23:02 -!- TodPunk has quit (Read error: Connection reset by peer). 19:24:12 -!- nooga has quit (Ping timeout: 276 seconds). 19:24:15 shachaf: does that mean appendages have an identity element? if so, what is it? 19:25:34 empty appendage 19:28:40 -!- Taneb has joined. 19:48:44 hm. 19:52:21 -!- sebbu3 has joined. 19:52:38 -!- sebbu3 has quit (Changing host). 19:52:38 -!- sebbu3 has joined. 19:53:27 -!- sebbu has quit (Ping timeout: 276 seconds). 19:53:52 -!- nooga has joined. 20:00:14 -!- oerjan has joined. 20:01:03 wtf. 20:01:25 mroman_: hmm? 20:02:54 -!- sebbu3 has changed nick to sebbu. 20:04:15 empty appendages are just that weird!!! 20:06:50 I suspected that a^b = b^a (with a !=b) is true only for 4 and 2 20:07:08 pretty sure i recall that's true for integers 20:07:42 @tell AnotherTest I suspected that a^b = b^a (with a !=b) is true only for 4 and 2 <-- pretty sure i recall that's true for integers 20:07:43 Consider it noted. 20:09:10 @tell AnotherTest Hint: it's equivalent to a^(1/a) = b^(1/b), which is much easier since you are looking at a single function 20:09:10 Consider it noted. 20:09:28 -!- carado has quit (Ping timeout: 256 seconds). 20:10:51 hey, anyone know how offhand to close a Metro program with the touchpad in Windows 8? 20:10:55 we just tried and failed for 10 minutes 20:11:14 (although "click on it then press alt-F4" works, it's not a touchpad-based solution) 20:11:33 oh and I said "touchpad" because Windows 8 acts differently depending on whether its pointer input is a touchpad, touchscreen, or mouse 20:13:04 @tell AnotherTest basically you can graph that function from 0 and up, note it has a single maximum and that means only a finite number of cases that could possibly be the smaller natural number. 20:13:04 Consider it noted. 20:18:59 ais523, I've heard that that's completely non-obvious 20:19:38 -!- myname has joined. 20:20:03 aæei is one of the better vowels I've seen recently <-- æhæ. 20:20:19 Taneb: I know 20:20:32 but I tried some non-obvious things too 20:20:48 Have you tried closing hand? 20:21:03 ? 20:21:30 All fingers spread out -> all fingers together 20:21:34 anybody here any idea on how to have some esoteric fun on android besides brainfuck? 20:22:49 oerjan: i just had to fish through some 2009 logs for some code i wanted and i'd like to apologise for being the worst person in the universe then 20:23:31 Taneb: typical touchpads can handle that many contact points? 20:23:39 I have no idea! 20:23:42 Worth a shot! 20:23:54 elliott: APOLOGY ACCEPTED 20:23:54 myname: hmm… a client to something like EgoBot would be easy enough to do 20:24:15 basically, an online lots-of-esolangs interpreter is a god way to have fun 20:24:35 or sites like anarchy golf ; that supports lots of esolangs 20:24:36 *good 20:25:03 `welcome myname 20:25:05 myname: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.) 20:25:52 i was a bit disapointed by the lack of befunge interpreters for android 20:26:22 2D languages could be kinda fun with a touchscreen :) 20:27:06 I imagine a command "palette" and a zoomable, interactive program space. 20:29:50 -!- carado has joined. 20:40:08 -!- DHeadshot has quit (Ping timeout: 245 seconds). 20:44:18 -!- TodPunk has joined. 20:48:00 -!- augur has quit (Remote host closed the connection). 20:51:11 -!- Murtaugh has joined. 20:55:41 -!- monqy has quit (Quit: hello). 20:58:16 Hey 20:58:35 `welcome Murtaugh 20:58:37 Murtaugh: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.) 21:00:16 Murtaugh, what brings you to the crazy land of #esoteric 21:00:17 ? 21:00:46 I'm looking for a Conway's game of life channel =P 21:01:08 is this phantom hoover's fault 21:01:40 Murtaugh: we don't discuss that much, although this is indeed probably the appropriate channel 21:01:57 every now and then I notice Hashlife exists and try to get the channel interested in it 21:02:07 what are your thoughts on faster than light travel 21:02:15 i should implement hashlife. 21:03:11 perhaps I found a new rule, a very interesting one. 21:03:25 due to a coding error, of course 21:04:01 most of the cellular automaton rules that are uninteresting are obviously uninteresting 21:05:18 Б2/S234 21:05:26 *B 21:05:47 Murtaugh: I assumed it was just gratuitous Cyrillic :) 21:06:03 Life is B3/S23, isn't it? 21:06:13 I forgot to cycle between keymaps =p 21:06:16 Yes 21:06:34 the world needs more gratuitous cyrillic, really 21:06:43 have you discovered a spaceship pattern in it yet? 21:06:50 nope 21:07:10 that's normally the first interesting thing to aim for in a 2D cellular automaton 21:07:15 wikipedia mentions B34/S34 but not just B3 21:07:31 (also in a 1D automaton, but there you care about the spaceships going at different speeds so that they can collide) 21:08:00 I looked everywhere for B2/S234, but there is no info anywhere 21:08:34 probably too similar to life 21:08:38 the problem is that there are so many interesting automata 21:08:47 and so few people to study them 21:09:19 It creates sillicon circuitry-like patterns 21:10:20 and no money backing it up? 21:10:21 lifewiki has b/s234 21:10:36 Isn't there someone here who specializes in CAs? 21:11:01 Oh hey ais523 and I proved something about GoL once 21:11:27 geez, b235678/s378 21:11:30 there are some weird ones 21:11:37 Sgeo: we did? 21:11:40 oh no 21:11:43 wasn't it that really boring result 21:12:51 tell me more 21:13:54 I can't remember what the result was 21:13:57 except it wasn't intersting 21:14:06 =\ 21:14:07 Sgeo cared more about it, so he can probably fill you in 21:15:09 I _think_ it was that on a finitely bounded (e.g. toroidal) game of life, any pattern with a sufficiently large hole has at least one ancestor that is a Garden of Eden. 21:16:41 Hole? 21:16:48 area with no live cells 21:17:30 is post-calculus turing-complete? 21:17:45 there is such a thing as post-calculus? 21:17:50 post machines are 21:17:55 mroman_: if it's even vaguely academic enough for Post to name it 21:18:03 then yes, unless it was intentionally designed as sub-TC 21:18:06 also that 21:18:29 also also whenever Post comes up i feel the need to mention he only had one arm 21:18:50 L-systems are Turing-complete, and they were designed to simulate the growth of algae 21:18:57 you could write a bot to do it for you and save the trouble 21:19:32 I remember more recently trying to think about the proof and worrying that I might have made a mistake 21:19:33 don't you think it would be kind of hard to reliably search for mentions of "Post" referring to the person 21:19:34 Taneb: well algae are probably Turing-complete, if given sufficient (= infinite) space, time, and nutrients 21:19:36 instead of like mail 21:20:11 an individual alga could be turing complete depending what you're testing 21:20:36 e.g. classical conditioning is subturing but you could probably find something in intracellular signaling 21:20:49 Turing-complete algae? 21:21:31 even a box of rotten apples on a string is Turing-complete 21:21:41 but basically, pretty much everything is TC unless there's an obvious reason why it isn't 21:21:48 as such, it's quite hard to construct things on the borderline 21:22:08 you can't classically condition algae anyway :'( 21:22:20 I tried to make a language that is turing complete if and only if the Collatz conjecture is false. 21:22:24 I didn't get very far 21:22:48 I'm sure there are trivial ways to do that 21:22:48 we need a system that autodetects its own turing completeness, then alter itself to stop being TC. 21:23:00 #define __ALLOW_UNBOUNDED_LOOPS falsehood_of(collatz) 21:23:10 Murtaugh: http://arxiv.org/abs/1204.1749 good computer 21:23:32 Bike: it's only interesting if you can implement the compiler without knowing the truth value of the collatz conjecture 21:23:36 (or interpreter) 21:23:40 even 7401 is Turing-complete 21:23:40 "This language is equivalent to Brainfuck if the Collatz conjecture is false, and equivalent to HQ9+ if it is true" 21:23:53 a system proving that it's turing complete seems like you'd run into godel something 21:23:58 ais523, wow, wasn't expecting a nice way to get rid of the trivialities 21:24:01 ...maybe 21:24:21 Hmmmmm. Is it possible, in a Turing complete system, to determine whether another system is Turing complete? (Note that the answer for ourself would probably be false, since the /environment/ is TC but we've created a particular system which is possibly not maybe) 21:24:37 you know i think i still don't have a non-shitty version of that paper showing that generalized collatz is unsolveable 21:24:44 i.e., if I feed the description of a Turing machine into a (preprogrammed) Turing machine, can it tell me that that's a TC system? 21:24:53 mmmm interesting crab computer 21:25:09 Gregor, my first instinct is "no", but my instincts suck 21:25:19 It feels very Halting-problem-y X-D 21:25:31 Gregor: it's clearly possible to have a computable system that's capable of proving that some system is equivalent to a Turing machine 21:25:48 Gregor: i'm vaguely thinking there might be a curry-howard thing making that equivalent to proving a system consistent but i dunno 21:25:49 sure, but that's different 21:25:55 ais523: Oh? 21:26:02 although one of Gödel's theorems shows that any system that can prove /itself/ equivalent to a Turing machine can also prove at least one incorrect statement 21:26:15 Gregor: imagine a system that's almost, but not quite, the same as a Turing machine 21:26:18 right that one 21:26:53 meh. my idea's been gödelled. 21:26:56 although one of Gödel's theorems shows that any system that can prove /itself/ equivalent to a Turing machine can also prove at least one incorrect statement // the system may very well NOT be equivalent to a Turing machine, unless you can feed it machines in such a way that it calculates. 21:27:28 -!- AnotherTest has joined. 21:27:41 -!- AnotherTest has left. 21:27:50 ais523: What am I supposed to do while imagining this system X-D 21:28:01 well 21:28:01 Gregor: well, it's very easy to prove equivalent to a Turing machine 21:28:10 you don't need very much power to do the proving at all 21:28:21 the extreme example is "mirror-reflections of Turing machines" 21:28:36 and a proof language that can only see that descriptions are the same under reflection 21:28:45 with brainfuck bolted on to make it TC 21:28:57 But that's an infinite set, and you're trying to prove that something is in the set. What if it's not? 21:29:15 Gregor: you're trying to prove two infinite sets equivalent 21:29:20 which you can do simply by showing a bijection 21:30:18 What if one is equivalent to the reals 21:30:39 what does that matter 21:30:43 Wouldn't be surprised if there was a machine that either spits out the correct answer or no answer 21:30:57 Yeah, I'm modestly lost in the analogy because as far as I can determine that's not what you're trying to do... 21:31:17 perhaps we're thinking of different questions entirely 21:31:22 shit i have a textbook that almost certainly went over whether the set of turing machines is recursive or r.e. what is wrong with me 21:31:25 Actually, it would be surprising if there _WASN'T_ a machine that either spits out the correct answer or no answer 21:31:40 Sgeo: Here's one: while (true); 21:32:03 not if there is a machine that doesn't, if there is no machine that does, gregor 21:32:23 Bike, ..huh? 21:32:35 what is that in relation to 21:32:35 I agree with Sgeo on this matter. 21:33:15 Bike: I presented an example of a machine that “either spits out the correct answer or no answer”. It happens to choose “no answer” with 100% probability. 21:33:36 oh 21:33:42 -!- cookienugget has joined. 21:33:54 hey everyone 21:34:02 what was the lang with the arrows ? 21:34:17 ais523: Ohohoh, yeah, you were answering the later part when you were saying it might come down to Gödel's theorem X-D 21:34:17 erlang 21:34:38 There are a lot of languages with arrows, but you may be thinking of Befunge? 21:34:54 Do those count as arrows? 21:35:08 nah 21:35:13 there's a newish BF derivative made entirely out of Unicode arrows 21:35:21 Whatever the Brainfuck-equivalent-of-the-day is that replaces the BF commands with arrows in the 8 — lol, I was just kidding. 21:35:23 yeah 21:35:24 Or I hoped I was. 21:35:24 I forget the name, because it's a BF derivative and therefore probably uninteresting 21:35:28 vit or what was ? 21:35:33 Gregor: it's not quite that simple 21:35:38 not sure if that makes it better or worse 21:36:05 ais523, is my BF derivative uninteresting? :( 21:36:26 Is looking at Idris a good idea? 21:36:37 Elba? 21:36:58 oh, that other thing. 21:37:00 ~duck elba 21:37:10 oh. right. bot first, duck second. 21:37:16 idris elba is an actor. 21:37:23 -!- metasepia has joined. 21:37:26 Sgeo: are you sure you want to know the answer to that question? 21:37:28 ~duck idris elba 21:37:29 Idrissa Akuna "Idris" Elba is an English television, theatre, and film actor who has starred in both British and American productions. 21:37:49 ais523, yes 21:37:58 bleh, now I have to look it up 21:38:10 ~duck interest 21:38:11 -!- DHeadshot has joined. 21:38:11 interest definition: right, title, or legal share in something. 21:38:17 Oh, I was afraid that asking that question was an answer in and of itself 21:38:27 oh, trustfuck 21:38:30 that's more interesting than average 21:38:38 fungot: what's up 21:38:44 fungot's not in ? 21:38:45 it's an esolang along the lines of "take a language people already know so we can concentrate on the weirdnesses" 21:38:48 How 'bout compared to ShaFuck X-D 21:39:23 I think Brainfuck had some issues being a basis for it 21:39:26 fizzie: please summon fungot from its deep torpor. 21:39:28 Some creative possibilities denied 21:39:37 (or is it torpour? that's the problem with being canadian.) 21:40:23 tourpour 21:41:15 tourpour sounds like a random unpalatable veggie. 21:42:07 taeiourpaeioureaux 21:42:46 wtf what a stupid error: i assigned the same address to two different "variables" 21:43:25 Gregor: wasn't it forbidden by the UN? 21:43:40 this is the most random channel I've ever been 21:43:59 Murtaugh: hmm… small IRC communities normally get this way 21:44:00 Must... not... name... that... channel 21:44:03 I prefer them to talk more on topic 21:44:16 Sgeo: I don't know which channel you're talking about, but I agree you shouldn't name it 21:44:18 Murtaugh: It'd be hard to beat in that dimension. 21:44:25 ais523, one of the Freenode kline channels 21:44:30 boily: Yup. Horsemeat. 21:44:35 I just want to do some programming with dependent types 21:44:40 And Idris was the first thing that came up 21:44:46 And it has Haskell-like syntax 21:44:59 Sgeo: if it's a kline channel, it can't possibly be random, can it? it's empty by definition 21:45:03 -!- nooga has quit (Ping timeout: 260 seconds). 21:45:11 ais523, true 21:45:14 isn't agda the sexy thing 21:45:22 it's like saying "that room over there is random, because it's empty, because it kills anyone who enters it" 21:45:25 I thought a kline channel was a channel with no inside or outside 21:45:28 it's both kin of scary, and a non sequitur 21:45:31 *kind of scary 21:46:13 We're outside a kline channel? That means... we're IN one, man. woah 21:47:25 Oh hey, the hello world compiled 21:47:39 Generally a good sign 21:48:02 FreeFull: oh no, you're reminding me of a past exam question I was talking my students through today 21:48:10 and it took me like 5 minutes to get the answer 21:48:30 because it was a trick question, and I recognised it was a trick question, but failed to recognise what the trick was 21:48:41 even though I knew what the trick was, I was wrong about how it was being applied 21:51:28 this paper is anti-monoidal. i'm sorry shachaf 21:52:08 @hoogle [a] -> [([a],[a])] 21:52:08 Network.CGI.Protocol formDecode :: String -> [(String, String)] 21:52:08 Network.CGI formDecode :: String -> [(String, String)] 21:52:08 Network.CGI.Cookie readCookies :: String -> [(String, String)] 21:52:13 yay 21:52:49 @hoogle [a] -> [([b],[c])] 21:52:49 Control.Monad mapAndUnzipM :: Monad m => (a -> m (b, c)) -> [a] -> m ([b], [c]) 21:52:49 Prelude readList :: Read a => ReadS [a] 21:52:49 Text.Read readList :: Read a => ReadS [a] 21:55:12 -!- TeruFSX has joined. 21:55:42 :t \xs -> takeWhile (not.null.snd) $ map (`splitAt` xs) [0..] 21:55:44 [a] -> [([a], [a])] 21:55:50 > (\xs -> takeWhile (not.null.snd) $ map (`splitAt` xs) [0..]) "hello" 21:55:52 [("","hello"),("h","ello"),("he","llo"),("hel","lo"),("hell","o")] 21:56:54 I thought a kline channel was a channel with no inside or outside <-- you are clearly confusing with "klein channel", hth 21:57:31 lolwut 21:58:34 > zip<$>inits<*>tails$"hello" 21:58:36 [("","hello"),("h","ello"),("he","llo"),("hel","lo"),("hell","o"),("hello",... 21:58:46 ais523: What was the question? 21:58:56 Murtaugh, here we make jokes based on somewhat obscure subjects 21:59:01 For instance, Kleine bottles 21:59:07 oerjan, I get how that works, but do people generally consider that readable? 21:59:15 I did understand the joke 21:59:39 Applicative is cooler than monads 21:59:55 Wonder if applicatives should get syntax sugar 22:00:12 Sgeo: well the (->) monad/applicative is always a little dubious 22:00:16 If I say something about klein bottles irl people will just go "WTF?" at me 22:00:18 :t tails 22:00:20 [a] -> [[a]] 22:00:21 FreeFull: "here is some Java code that compiles but does not do what it's intended to, make three corrections to the code and two to the documentation" 22:00:22 Also wonder if a monad could be made to act as syntax sugar for applicatives. I think it would have to error at runtime if you tried something illegal though 22:00:29 > tails "hello" 22:00:31 ["hello","ello","llo","lo","o",""] 22:00:34 -!- Taneb has quit (Quit: Leaving). 22:00:46 yeah that seems sensible enough 22:01:17 oerjan, too bad, I like that monad/applicative 22:01:29 Reminds me of J 22:02:15 :t inits 22:02:15 hah i was thinking "that's a verb train!" too 22:02:16 [a] -> [[a]] 22:02:18 well NOW it doesn't seem sensible 22:02:23 :t tails 22:02:25 [a] -> [[a]] 22:02:27 :t <*> 22:02:29 parse error on input `<*>' 22:02:32 :t (<*>) 22:02:34 Applicative f => f (a -> b) -> f a -> f b 22:02:35 Ok, that is actually very straightforward 22:02:37 right 22:02:58 > (+) <$> id <*> id $ 5 22:03:00 10 22:03:10 > (+) <$> id <*> (+1) $ 5 22:03:11 11 22:03:21 Bike, do those make sense? 22:03:24 Those should be clearer 22:03:25 yes 22:03:27 > (/) <$> sum <*> length $ [1,2,3,4,5] 22:03:28 No instance for (GHC.Real.Fractional GHC.Types.Int) 22:03:29 arising from a use o... 22:03:34 it's "so easy" 22:03:36 wait. why doesn't this work 22:03:44 > zip <$> inits <*> inits <*> inits $ "fuck" 22:03:46 Couldn't match expected type `a0 -> b0' 22:03:46 with actual type `[(a1... 22:03:49 nooodl: length is an int 22:03:49 cool 22:03:55 Or rather returns an Int 22:04:03 You'll want fromIntegral somewhere 22:04:11 > (/) <$> sum <*> fromIntegral.length $ [1,2,3,4,5] 22:04:14 3.0 22:04:17 -!- boily has quit (Quit: Poulet!). 22:04:18 -!- metasepia has quit (Remote host closed the connection). 22:04:22 > 15 / 5 22:04:24 3.0 22:04:27 ^ this works fine, though 22:04:29 so does this do average in parallel 22:04:44 (like J??) 22:04:45 nooodl: All valid Num instances have a fromInteger 22:04:51 ) (+/%#) 1 2 3 4 5 22:04:51 Sgeo: 3 22:05:01 3 is actually fromInteger 3 underneath 22:05:07 i was rewriting (+/%#) which is a j "idiom" for average 22:05:26 FreeFull: oh 22:05:32 i mean, accumulating the length in the same reduction that it accumulates the sum 22:05:33 nooodl: If you have an Integer though, it won't automatically get converted to whatever Num instance you want 22:05:44 > (3 :: Integer) / 4 22:05:46 No instance for (GHC.Real.Fractional GHC.Integer.Type.Integer) 22:05:47 arising f... 22:06:22 i see 22:06:52 which i assume J does because J is god 22:06:55 so does this do average in parallel <-- i don't think so, ghc isn't very good at deforesting two lists concurrently 22:07:21 J doesn't do that :( 22:07:27 dammit J you had one job 22:07:42 (e.g. the documentation for zipWith mentions you only get one of them fused) 22:07:52 -!- nooga has joined. 22:07:55 I gotta go 22:08:02 bye 22:08:08 bye Murtaugh 22:08:45 -!- Murtaugh has quit (Quit: Ping timeout: 10^100*(65536^65536)+(e^(pi*i)) seconds). 22:08:52 Bike: You could write an efficient average using pipes I think 22:09:20 hmm. a recent haskell idea thingy i had, inspired by J: some datatype that's a pair of inverse functions 22:09:41 @tell murtaugh Ping timeout: TREE(3) seconds 22:09:42 Consider it noted. 22:09:43 * Sgeo wonders if this would end up being lense 22:09:44 lenses 22:09:51 can you do it with lenses 22:09:54 was my real question 22:17:05 -!- sebbu has quit (Ping timeout: 248 seconds). 22:27:43 -!- sebbu has joined. 22:27:44 -!- sebbu has quit (Changing host). 22:27:44 -!- sebbu has joined. 22:30:13 http://codepad.org/q0Zc9nnT mmmh 22:31:41 > (:[]) . head [4,5] 22:31:43 No instance for (GHC.Num.Num (f0 a0)) 22:31:43 arising from a use of `e_145' 22:31:43 Pos... 22:32:01 > (:[]) $ head [4,5] 22:32:04 [4] 22:32:41 > (:[]) . head $ [4,5] 22:32:44 [4] 22:32:51 fuckin operator precedence 22:33:44 yeah maybe there should be a law for the thingy going the other way too 22:37:54 -!- DHeadshot has quit (Read error: Connection reset by peer). 22:38:08 -!- DHeadshot has joined. 22:39:36 -!- sebbu has quit (Ping timeout: 245 seconds). 22:42:08 -!- cookienugget has quit (Ping timeout: 245 seconds). 22:45:08 -!- sebbu has joined. 22:45:08 -!- sebbu has quit (Changing host). 22:45:08 -!- sebbu has joined. 22:45:46 Hey, Idris actually has a proper unary - 22:46:56 nooodl: Class Foo a b where { foo :: a -> b; defoo :: b -> a } Something like this? 22:48:06 -!- nooga has quit (Ping timeout: 264 seconds). 22:49:14 that's what's in the paste 22:50:29 except with infixity for some reason. 22:57:01 spoiler: 22:57:09 they're infix operators because i couldn't think of a name for them 22:57:21 i like the way i defined them, though. 22:59:18 alice, bob 23:00:47 phobos and deimos 23:02:10 -!- augur has joined. 23:03:49 pain and confusion right? perfect for programming 23:04:11 fear and dread. oh well 23:04:44 -!- TeruFSX2 has joined. 23:05:21 "reg" and "inv" maybe 23:10:51 -!- epicmonkey has quit (Ping timeout: 245 seconds). 23:11:32 -!- TeruFSX2 has quit (Quit: Leaving). 23:15:01 -!- Arc_Koen has joined. 23:16:26 i thought there was already a package for isomorphisms 23:16:28 i thought generally that f⁻¹ . f = id = f . f⁻¹, or am i confusing things with left inverse or wetfuck 23:19:20 you're right 23:21:19 -!- Phantom__Hoover has joined. 23:21:52 kmc: lens!!!!! 23:22:58 hey elliott can lens do average as one fold or what 23:23:57 um maybe 23:24:04 you can do that with ```fold zipping''' 23:24:08 it forms an applicative functor 23:24:14 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 23:24:41 that's a lot of quotes is this a python docsting 23:25:14 -!- ais523 has quit. 23:25:20 data Fold a b = Fold b (a -> Fold a b) 23:25:41 sumF = sumF' 0 where sumF' !n = Fold n (\_ -> sumF' (n+1)) 23:25:48 ,,quotes,, 23:25:49 er 23:25:54 sumF = sumF' 0 where sumF' !n = Fold n (\m -> sumF' (n+m)) 23:26:09 lengthF = lengthF' 0 where lengthF' !n = Fold n (\_ -> lengthF' (n+1)) 23:26:11 then you can do 23:26:17 runFold ((/) <$> sumF <*> lengthF) [1,2,3] 23:26:38 -!- nooodl has quit (Ping timeout: 272 seconds). 23:26:53 btw this is at least 47% profound 23:27:03 that's p. profound 23:27:17 oh it's a comonad too iirc 23:27:42 wait is it a cofree comonad 23:27:52 it is 23:27:58 it's Cofree ((->) a) 23:28:14 wow 23:28:20 upping the profundity to 72% 23:28:33 oh cool it's basically dual to Supply too. 23:28:54 yo does anybody in here have the slightest clue what im talking about 23:29:05 nope 23:29:36 what about kmc 23:32:07 -!- Frooxius_ has joined. 23:34:12 that's neat 23:34:30 i feel only slightly reassured 23:34:35 -!- Arc_Koen has quit (Quit: The struct held his beloved integer in his strong, protecting arms, his eyes like sapphire orbs staring into her own. "W-will you... Will you union me?"). 23:34:46 What's Supply? 23:34:52 > (,) <$> (+3) <*> (*3) $ ZipList [1,2,3,4,5] 23:34:54 No instance for (GHC.Num.Num (Control.Applicative.ZipList a0)) 23:34:54 arising f... 23:34:58 Supply = Free ((->) r) 23:35:06 what are pure and <*> for Fold 23:35:07 Fold = Cofree ((->) r) 23:35:09 > (,) <$> (tails) <*> (heads) $ ZipList [1,2,3,4,5] 23:35:10 actually fold is more like supply 23:35:12 Not in scope: `heads' 23:35:12 Perhaps you meant one of these: 23:35:12 `reads' (imported... 23:35:20 kmc: pure a = Fold a (const (pure a)) 23:35:30 i.e. just like foldr (\_ b -> b) a 23:35:37 (<*>) is a bit trickier iirc 23:35:39 Err, so, a free monad based on reader, so... can take a potentially infinite number of arguments and pass them in, or what? 23:35:40 ok 23:35:41 FreeFull: inits 23:36:13 kmc: oh maybe it's just Fold f q <*> Fold x r = Fold (f x) (\v -> q v <*> r v)??? 23:36:30 Sgeo: eg you can feed Free ((->) Int) from stdin 23:36:30 > (,) <$> (tails) <*> (inits) $ ZipList [1,2,3,4,5] 23:36:32 Couldn't match expected type `[a0]' 23:36:32 with actual type `Control.... 23:36:33 or from a predefined stream of Ints 23:36:35 or from an RNG 23:36:44 Of course doesn't work on ZipLists 23:36:58 ALSO is there like a formal model of code serialization somewhere because i'm blanking 23:37:01 back later 23:37:02 elliott, is there a way to supply it with a finite source? 23:37:21 -!- Frooxius has quit (Read error: No route to host). 23:38:05 yes but your result will have to be eg in maybe 23:38:09 Free ((->) r) a -> [r] -> Maybe a 23:38:17 because it might ask for an "r" when you don't have any left 23:40:17 -!- sebbu has quit (Ping timeout: 248 seconds). 23:51:15 -!- azaq23 has quit (Quit: Leaving.). 23:54:16 so that's a no 23:55:39 imo you're a no 23:55:44 (its actually a yes) 23:55:49 :( 23:55:56 for instance you couldn't do that with (Stream r -> a) 23:56:31 -!- sebbu has joined. 23:56:31 -!- sebbu has quit (Changing host). 23:56:31 -!- sebbu has joined.