00:00:06 btw, it seems then didn't clean up the options properly 00:00:36 the "Enable DirectWrite for improved font smoothing and kerning" option is still there 00:00:47 and I'm pretty sure that makes no sense on Linux 00:00:58 elliott: You should go to London! 00:01:04 why 00:01:05 also who thought that rendering was improved on Windows? It was terrible 00:01:20 elliott: i dunno, it's kind of a refreshing change from "whatever british guy killed everyone there first" 00:01:43 btw, another advantage of linux: PS3 controller working out of box 00:01:44 we could ask the native antarcticans what they call it. 00:02:28 "Skwaaaaaark Lake" 00:02:46 Is the size of the subset of Hexamians in this channel only two? 00:02:55 elliott: Can you write me a Core parser? 00:02:58 Thanks. 00:03:10 FireFly, yeah, but we're loud 00:03:13 Taneb: i don't think penguins have been within a hundred miles of that place 00:03:42 Bike, who said I was talking about penguins 00:03:49 I was talking about native Antarcticans 00:04:02 what is making that sound 00:04:03 Also known as Antarctic Indians 00:04:10 describe their physiological characteristics 00:04:19 antarctic antarcticans 00:04:23 I dunno, they've got noses? 00:04:35 whoa. me too. 00:04:37 -!- WeThePeople has quit (Quit: Leaving). 00:05:18 Gregor doesn't tho 00:05:25 must not be from antarctica 00:05:29 But he has hats 00:05:41 Valve is probably envious 00:05:50 I got compared to Colonel Gadaffi today 00:06:04 In a favourable way? 00:06:11 in that nobody knows how to transliterate your name? 00:06:32 Quadafvyx 00:06:44 Taneb <=> Gadaffi 00:07:07 damn, I just read about the gunfires today :S 00:07:17 In that I'm brotherly leader and guide of the revolution, presumably 00:07:50 -!- Nisstyre has quit (Ping timeout: 244 seconds). 00:08:26 elliott: http://upload.wikimedia.org/math/3/c/6/3c642f3123a34a2b7372d0ff0a9e57c4.png 00:08:48 * elliott has seen it 00:08:49 I love it 00:08:54 apparently not all paths are valid though :( 00:09:04 And my name is annoyingly easy to transliterate, annoyingly hard to capitalise correctly 00:09:06 so no Khdhdhaffy 00:09:14 Or Qzzafi 00:09:18 :( 00:09:20 i really like that diagram 00:09:46 i don't understand what would possess someone to think "dhdh" is informative 00:10:17 El Qadhdhaffy 00:10:59 monqy: you can't skip the first name if you include the el........ 00:11:03 -!- Nisstyre has joined. 00:11:07 «The Latin transcription of his surname on the passport read "Al-Gathafi"» oh come on 00:11:15 elliott: no, he was using it as part of the surname 00:11:20 Mou'mmar ElQzzafy 00:12:33 Momar Kadafy 00:12:37 http://stackoverflow.com/questions/5365283/regular-expression-to-search-for-gadaffi 00:13:14 "\b[KGQ]h?add?h?af?fi\b" wow, managed to make it even less readable! 00:13:46 ha, i like the second answer. 00:14:04 I think you're over complicating things here. The correct regex is as simple as: 00:14:07 \u0627\u0644\u0642\u0630\u0627\u0641\u064a 00:14:10 It matches the concatenation of the seven Arabic Unicode code points that forms the word القذافي (i.e. Gadaffi). 00:14:50 oh wow this guy is suggesting using a phonetics engine 00:15:08 send it thru text to speech, compare file for similarity against premade recording 00:15:08 "A few tweaks, and lets say some cyrillic transliteration, and you'll have a fairly robust solution." 00:15:35 thank's 00:15:47 "(?-xism:(?:G(?:a(?:d(?:d(?:af[iy]|hafi)|af(?:f?i|y)|hafi)|thafi)|h(?:ad(?:daf[iy]|af?fi)|eddafi))|K(?:a(?:d(?:['dh]a|af?)|zza)fi|had(?:af?fy|dafi))|Q(?:a(?:d(?:(?:(?:hd)?|t)h|d)?|th)|u(?:at|d)h)afi))" this is gold kmc 00:16:48 but will it match g'dafey. i'm sure someone's used that. 00:17:41 It could get Aussies greeting people called Fiona 00:18:44 haha 00:18:57 so no Khdhdhaffy <- isn't the a after Q|K|G|H described as mandatotry by that diagram? 00:19:34 Goodnight 00:19:35 -!- Taneb has quit (Quit: Leaving). 00:20:26 which would make it a bad example t demonstrate that not all paths are valid) 00:20:52 well I was cheating 00:21:01 but the omission of the a was a mistake 00:21:02 ok 00:21:18 I humbly submit that Khadhdhaffy is still ridiculous 00:21:44 whoa i just realized. that comic with gaddafi and daffy had daffy because the author pronounced their names the same 00:22:32 thank you #esoteric 00:22:39 np Bike 00:22:50 khadhdhaffy duck 00:33:44 night 00:44:26 Bike: i wanna see a FSM of that 00:44:34 ok i guess it would be pretty boring because no repetition 00:44:41 it would look like the curly braces image basically 00:45:32 ugh now i have to hex edit two versions of this kernel module 00:46:23 what are you even doing 00:46:50 i thought you meant flying spaghetti monster for a second and wondered what that had to do with ol' g'dafey 00:48:16 also the pcre syntax for noncapturing groups is a bit annoying, why haven't i seen this before... 00:55:37 Bike, the whole (?: thing? 00:55:54 yes. 00:56:10 "The name is misleading, because PCRE and Perl each have capabilities not shared by the other." fuck, why do i ever learn everything? it always sucks. 00:56:18 ever learn anything* 00:57:14 Bike: see axiom #1 00:57:23 sorta-p sorta-c in-the-spirit-of-re 00:57:27 Bike: btw use RE2 or something 00:57:31 it's C++ but what can you do 00:57:57 oh shit re2 actually uses the non-stupid dfa implementation, does it 00:57:58 radical 00:58:13 yes it's Rob Pike Ideology: The Regexp Implementation 00:58:23 is there a stupid dfa implementation 00:58:25 same guy who wrote the famous paper about it 00:58:28 why the fuck do most regex implementations use backtracking, anyway 00:58:39 monqy: there's a stupid backtracking implementation 00:58:40 monqy: "the non-stupid (dfa) implementation" 00:58:58 mmmm 00:59:25 so what class of languages can you express 00:59:27 Bike: note that RE2's non-capturing group syntax is the same 00:59:29 python uses it too in fact 00:59:37 yeah i know 00:59:48 it's just a bit annoying to look at 00:59:51 monqy: just regular languages afaik 00:59:53 I mean it's a DFA 00:59:58 yeah 01:00:05 i was just about to say: dfa screams regular but you never know with "regexp"!!!! 01:00:07 just has a non-stupid syntax 01:00:10 unlike e.g. unix regexps 01:00:32 does it not have backslashes everywhere? 01:00:34 maybe it uses dfas for some things and other things for other things????? a mystery 01:01:06 Bike: are you saying there's something wrong with \(\[1-2\]\{2\}\)???? 01:01:18 yeah that's what i really don't get, you could use the dfa for regular expressions and then fall back to the backtracking if you're trying to parse cfgs with line noise for some damned reason, but nope 01:01:28 ffinland 01:01:31 i had a friend whose server crashed because his http regex hit a bad case :| 01:01:38 :') 01:02:09 Bike: a good reason not to write your own http server 01:02:13 elliott: the usb-ethernet adapter that came with my laptop is too new for wheezy's kernel 01:02:14 well not http 01:02:21 specifically the kernel on this livecd 01:02:23 it was just to look for text that looked like a web link 01:02:26 kmc: nixos time 01:02:34 and... somehow this resulted in destroying his vm 01:02:35 but it has the same chip and everything as some other known devices 01:02:43 mmmm i should switch esolangs.org over to a haskell webserver 01:02:46 so i can feel smug as hell 01:02:54 so you can just hexedit the .ko file and it works :D 01:02:57 though I don't think any support fastcgi 01:02:57 apache, the haskell port 01:03:08 *thankfully* it's already not on apache 01:03:14 esowiki to haskell wiki softwares 01:03:16 couldn't pay me to administrate apache 01:03:23 (currently it uses nginx) 01:03:34 elliott: THIS IS HOW WE FIX THINGS ON RUSSIAN WEBSERVER 01:04:35 has anyone made web servers or wiki softwares in agda yet or has it just been fooling around with javascripts................. 01:04:53 oh my, wikipedia has "Comparison of regular expression engines". I should check out the APL implementation 01:05:23 monqy: someone made a web framework in agda iirc 01:05:28 ok, this entry says it doesn't have a + quantifier... but does have backreferences. 01:05:40 elliott: good 01:05:44 elliott: (is it good) 01:06:13 Bike: does it say per-engine what class of languages it can express.....since i doubt all of them are actually regular 01:06:14 agda on... i can't think of a transport obscure enough. 01:06:37 monqy: no, but re2 is the only one listed that explicitly doesn't support backreferences. 01:06:49 mmm 01:07:01 why the hell does Qt have its own... agh 01:07:32 good question 01:08:04 "embedded code" am i wrong to think you need something more than a regex at the point you want this in your regex? 01:08:11 Bike: well i can think of some strange kinds of trains at least 01:08:22 trains are good 01:08:23 Bike: http://en.wikipedia.org/wiki/Schienenzeppelin and http://en.wikipedia.org/wiki/Meigs_Elevated_Railway 01:08:26 do any of them start with "a" 01:08:38 also http://en.wikipedia.org/wiki/Hovertrain 01:08:38 this comparison article is really bad 01:08:39 "agda on armored trains" sounds like it should be Super Secure 01:08:53 agda on atomic trains 01:09:10 monqy: the re2 article has "PCRE can use a HUGE recursive stack and have exponential runtime on certain patterns", with the caps just like that. maybe wikipedia isn't good at regexes 01:10:17 gosh 01:10:53 I wonder why so few of these support unicode properties. i woulda thought they'd be pretty useful and not that hard. 01:11:19 Bike: there is one cute of embedded perl in regexps 01:11:22 unicode is a great unsolved problem 01:11:33 elliott: what's a cute 01:12:57 Bike: unit of cuteness 01:13:01 monqy: like finding corridors? 01:13:39 yes 01:13:46 i didn't know anything perl-related could be "cute". 01:13:53 perl is cute 01:14:10 * Fiora cuteness? 01:14:24 7 antiperls, fiora 01:15:08 antiperls? 01:16:34 i belive that something they use to enhance laundry detergent 01:18:40 Bike: monqy: http://perl.plover.com/Rx/paper/ 01:18:44 that's the cute I was thinking of 01:19:13 regex... debugger 01:19:22 um... adorable, I guess? 01:20:34 yes 01:21:05 "The regex engine was run in one process, and invoked the instruments. The Tk interface was in a child process, connected to the parent by a pair of pipes." I don't like where this is going. 01:21:18 it's going to circa 2000 01:21:46 I don't like 2000, then. 01:22:49 «It should be clear that the technique I used for automatically instrumenting regexes did not work correctly in all cases. For example, [xy] would have been transformed to [x(?{pause})y(?{pause})] which is clearly a disaster.» 01:23:49 bike are you french 01:24:34 are you luxombourgish? 01:25:07 «The print_bytecode function would ignore its actual argument, which was useless. Instead, it would grovel recursively over the Perl op tree until it found the place from which it had been called. Then it would hunt up the match node, extract the B-regex from it, and dump that.» elliott...... 01:25:30 it's beautiful 01:25:39 you're from luxembourgh? 01:25:57 yeah sure but come on phantom_hoover look at this shit 01:26:01 luxembourgh isn't even a place Phantom_Hoover 01:26:05 «This was amusing and educational. » 01:26:12 luxemburgh 01:26:29 apparently Bike is from the UK 01:26:35 unless geoip is lying to me 01:26:51 that's probably the most amusing geoip for me i've seen yet 01:26:55 maybe he moved 01:27:08 in fact it seems to be looking up my geoip 01:27:11 and ignoring Bike's 01:27:15 genius 01:27:18 we all know nobody actually lives in luxembourg except for tax reasons 01:27:45 isn't qwest.net canadian 01:27:47 maybe it's us instead 01:28:19 i thought we agreed that we "weren't" "stalking me" 01:28:28 it's not my fault you didn't set up a cloak!!! 01:28:33 elliott, monqy Phantom_Hoover Fiora 01:28:36 hi 01:28:44 «Other kinds of nodes have other information associated with them. For example, the {m,n} operator is represented by a CURLY node, and with m and n stored in the following four bytes as two-byte signed integers. (I don't know why they're signed, but the result is that arguments larger than 32767 cannot be represented, and that a{3,} is actually identical with a{3,32767}.)» 01:28:45 oh no! 01:28:55 monqy, what did Fiora ever do to you to deserve Phantom_Hoovering 01:29:47 wizardy herbert! 01:30:07 «Character classes (node type ANYOF) are followed by a 256-bit bit mask; bits are set if the corresponding character is in the class.» 01:35:30 http://www.guardian.co.uk/law/2012/dec/13/cia-tortured-sodomised-terror-suspect 01:37:19 ion we have talked about just posting a link and not saying anything 01:37:21 it's sort of weird 01:37:54 obviously ion meant it as something worse even than all this garbage i've been pasting. 01:38:04 -!- nooga has quit (Ping timeout: 252 seconds). 01:38:11 -!- pikhq has quit (*.net *.split). 01:38:11 -!- zzo38 has quit (*.net *.split). 01:38:11 -!- HackEgo has quit (*.net *.split). 01:38:11 -!- fungot has quit (*.net *.split). 01:38:11 -!- lightquake has quit (*.net *.split). 01:38:11 -!- FreeFull has quit (*.net *.split). 01:38:11 -!- Frooxius has quit (*.net *.split). 01:38:11 -!- sivoais has quit (*.net *.split). 01:38:12 -!- rodgort` has quit (*.net *.split). 01:38:12 -!- hogeyui has quit (*.net *.split). 01:38:12 -!- shachaf has quit (*.net *.split). 01:38:12 -!- kmc has quit (*.net *.split). 01:38:12 -!- c00kiemon5ter has quit (*.net *.split). 01:38:12 -!- boily has quit (*.net *.split). 01:38:12 -!- kallisti has quit (*.net *.split). 01:38:12 -!- TodPunk has quit (*.net *.split). 01:38:12 -!- sirdancealot7 has quit (*.net *.split). 01:38:13 -!- jix has quit (*.net *.split). 01:38:13 -!- comex has quit (*.net *.split). 01:38:13 -!- olsner has quit (*.net *.split). 01:38:13 -!- SimonRC has quit (*.net *.split). 01:38:14 -!- lifthrasiir has quit (*.net *.split). 01:38:14 -!- aloril has quit (*.net *.split). 01:38:14 -!- mtve has quit (*.net *.split). 01:38:14 -!- ion has quit (*.net *.split). 01:38:14 -!- Vorpal has quit (*.net *.split). 01:38:14 -!- constant has quit (*.net *.split). 01:38:14 -!- jdiez has quit (*.net *.split). 01:38:14 -!- clog has quit (*.net *.split). 01:38:14 -!- lahwran has quit (*.net *.split). 01:38:15 -!- sebbu has quit (*.net *.split). 01:38:15 -!- asiekierka has quit (*.net *.split). 01:38:15 -!- Lumpio- has quit (*.net *.split). 01:38:15 -!- keb has quit (*.net *.split). 01:38:15 -!- MDude has quit (*.net *.split). 01:38:15 -!- hagb4rd has quit (*.net *.split). 01:38:17 -!- carado has quit (*.net *.split). 01:38:17 -!- myndzi has quit (*.net *.split). 01:38:17 -!- heroux has quit (*.net *.split). 01:38:17 -!- ineiros_ has quit (*.net *.split). 01:38:17 -!- fizzie has quit (*.net *.split). 01:38:17 -!- lambdabot has quit (*.net *.split). 01:38:17 -!- FireFly has quit (*.net *.split). 01:38:17 -!- oklopol has quit (*.net *.split). 01:38:17 -!- mroman has quit (*.net *.split). 01:38:18 -!- Sanky has quit (*.net *.split). 01:38:18 -!- Fiora has quit (*.net *.split). 01:38:18 -!- Bike has quit (*.net *.split). 01:38:18 -!- monqy has quit (*.net *.split). 01:38:18 -!- oklofok has quit (*.net *.split). 01:38:20 -!- copumpkin has quit (*.net *.split). 01:38:20 -!- augur has quit (*.net *.split). 01:38:20 -!- glogbackup has quit (*.net *.split). 01:38:20 -!- quintopia has quit (*.net *.split). 01:38:20 -!- EgoBot has quit (*.net *.split). 01:38:20 -!- nortti has quit (*.net *.split). 01:38:20 -!- Phantom_Hoover has quit (*.net *.split). 01:38:20 -!- Deewiant has quit (*.net *.split). 01:38:22 -!- yiyus has quit (*.net *.split). 01:38:22 -!- Nisstyre has quit (*.net *.split). 01:38:22 -!- Sgeo has quit (*.net *.split). 01:38:22 -!- Gregor has quit (*.net *.split). 01:38:22 -!- coppro has quit (*.net *.split). 01:38:22 -!- atehwa has quit (*.net *.split). 01:38:22 -!- chickenzilla has quit (*.net *.split). 01:38:22 -!- Yonkie has quit (*.net *.split). 01:38:22 -!- iamcal_ has quit (*.net *.split). 01:38:23 -!- elliott has quit (*.net *.split). 01:38:23 -!- ssue has quit (*.net *.split). 01:38:24 -!- Jafet has quit (*.net *.split). 01:38:24 -!- Cryovat has quit (*.net *.split). 01:38:26 -!- Gracenotes has quit (*.net *.split). 01:38:26 -!- ChanServ has quit (*.net *.split). 01:55:01 -!- Cryovat has joined. 01:55:01 -!- yiyus has joined. 01:55:01 -!- chickenzilla has joined. 01:55:01 -!- Gracenotes has joined. 01:55:01 -!- Deewiant has joined. 01:55:01 -!- atehwa has joined. 01:55:01 -!- Sanky has joined. 01:55:01 -!- Fiora has joined. 01:55:01 -!- EgoBot has joined. 01:55:01 -!- quintopia has joined. 01:55:01 -!- Yonkie has joined. 01:55:01 -!- elliott has joined. 01:55:01 -!- mroman has joined. 01:55:01 -!- Jafet has joined. 01:55:01 -!- myndzi has joined. 01:55:01 -!- iamcal_ has joined. 01:55:01 -!- oklopol has joined. 01:55:01 -!- coppro has joined. 01:55:01 -!- Gregor has joined. 01:55:01 -!- FireFly has joined. 01:55:01 -!- lambdabot has joined. 01:55:01 -!- glogbackup has joined. 01:55:01 -!- fizzie has joined. 01:55:01 -!- ineiros_ has joined. 01:55:01 -!- oklofok has joined. 01:55:01 -!- heroux has joined. 01:55:01 -!- ssue has joined. 01:55:01 -!- monqy has joined. 01:55:01 -!- hagb4rd has joined. 01:55:01 -!- Phantom_Hoover has joined. 01:55:01 -!- nortti has joined. 01:55:01 -!- carado has joined. 01:55:01 -!- Bike has joined. 01:55:01 -!- Sgeo has joined. 01:55:01 -!- MDude has joined. 01:55:01 -!- augur has joined. 01:55:01 -!- copumpkin has joined. 01:55:01 -!- keb has joined. 01:55:01 -!- Nisstyre has joined. 01:55:01 -!- sebbu has joined. 01:55:01 -!- asiekierka has joined. 01:55:01 -!- Lumpio- has joined. 01:59:49 -!- sebbu has quit (*.net *.split). 01:59:49 -!- asiekierka has quit (*.net *.split). 01:59:49 -!- Lumpio- has quit (*.net *.split). 01:59:49 -!- Vorpal has quit (*.net *.split). 01:59:49 -!- keb has quit (*.net *.split). 01:59:49 -!- MDude has quit (*.net *.split). 01:59:49 -!- hagb4rd has quit (*.net *.split). 01:59:51 -!- carado has quit (*.net *.split). 01:59:51 -!- myndzi has quit (*.net *.split). 01:59:51 -!- heroux has quit (*.net *.split). 01:59:51 -!- ineiros_ has quit (*.net *.split). 01:59:51 -!- fizzie has quit (*.net *.split). 01:59:51 -!- lambdabot has quit (*.net *.split). 01:59:51 -!- FireFly has quit (*.net *.split). 01:59:51 -!- oklopol has quit (*.net *.split). 01:59:51 -!- mroman has quit (*.net *.split). 01:59:52 -!- Sanky has quit (*.net *.split). 01:59:52 -!- Fiora has quit (*.net *.split). 01:59:52 -!- Bike has quit (*.net *.split). 01:59:52 -!- monqy has quit (*.net *.split). 01:59:52 -!- oklofok has quit (*.net *.split). 01:59:52 -!- copumpkin has quit (*.net *.split). 01:59:52 -!- augur has quit (*.net *.split). 01:59:52 -!- glogbackup has quit (*.net *.split). 01:59:52 -!- quintopia has quit (*.net *.split). 01:59:54 -!- EgoBot has quit (*.net *.split). 01:59:54 -!- nortti has quit (*.net *.split). 01:59:54 -!- Phantom_Hoover has quit (*.net *.split). 01:59:54 -!- Deewiant has quit (*.net *.split). 01:59:54 -!- yiyus has quit (*.net *.split). 01:59:54 -!- Nisstyre has quit (*.net *.split). 01:59:54 -!- Sgeo has quit (*.net *.split). 01:59:54 -!- Gregor has quit (*.net *.split). 01:59:54 -!- coppro has quit (*.net *.split). 01:59:54 -!- atehwa has quit (*.net *.split). 01:59:54 -!- chickenzilla has quit (*.net *.split). 01:59:55 -!- Yonkie has quit (*.net *.split). 01:59:55 -!- iamcal_ has quit (*.net *.split). 01:59:55 -!- elliott has quit (*.net *.split). 01:59:56 -!- ssue has quit (*.net *.split). 01:59:58 -!- Jafet has quit (*.net *.split). 01:59:58 -!- Cryovat has quit (*.net *.split). 01:59:58 -!- Gracenotes has quit (*.net *.split). 02:00:47 -!- SimonRC has joined. 02:00:47 -!- olsner has joined. 02:00:47 -!- comex has joined. 02:00:47 -!- jix has joined. 02:00:47 -!- sirdancealot7 has joined. 02:00:47 -!- TodPunk has joined. 02:00:47 -!- kallisti has joined. 02:00:47 -!- boily has joined. 02:00:47 -!- HackEgo has joined. 02:00:47 -!- zzo38 has joined. 02:00:47 -!- ion has joined. 02:00:47 -!- mtve has joined. 02:00:47 -!- aloril has joined. 02:00:47 -!- lifthrasiir has joined. 02:00:47 -!- Cryovat has joined. 02:00:47 -!- yiyus has joined. 02:00:47 -!- chickenzilla has joined. 02:00:47 -!- Gracenotes has joined. 02:00:47 -!- Deewiant has joined. 02:00:47 -!- atehwa has joined. 02:00:47 -!- Sanky has joined. 02:00:47 -!- Fiora has joined. 02:00:47 -!- EgoBot has joined. 02:00:47 -!- quintopia has joined. 02:00:47 -!- Yonkie has joined. 02:00:47 -!- elliott has joined. 02:00:47 -!- mroman has joined. 02:00:47 -!- Jafet has joined. 02:00:47 -!- myndzi has joined. 02:00:47 -!- iamcal_ has joined. 02:00:47 -!- oklopol has joined. 02:00:47 -!- coppro has joined. 02:00:47 -!- Gregor has joined. 02:00:47 -!- FireFly has joined. 02:00:47 -!- lambdabot has joined. 02:00:47 -!- glogbackup has joined. 02:00:47 -!- fizzie has joined. 02:00:47 -!- ineiros_ has joined. 02:00:47 -!- oklofok has joined. 02:00:47 -!- heroux has joined. 02:00:47 -!- ssue has joined. 02:00:47 -!- monqy has joined. 02:00:47 -!- hagb4rd has joined. 02:00:47 -!- Phantom_Hoover has joined. 02:00:47 -!- nortti has joined. 02:00:47 -!- carado has joined. 02:00:47 -!- Bike has joined. 02:00:47 -!- Sgeo has joined. 02:00:47 -!- augur has joined. 02:00:47 -!- copumpkin has joined. 02:00:47 -!- keb has joined. 02:00:47 -!- Nisstyre has joined. 02:01:05 -!- glogbackup has left. 02:02:41 -!- fungot has joined. 02:02:41 -!- 1JTAAT864 has joined. 02:03:21 -!- Vorpal has joined. 02:03:21 -!- constant has joined. 02:03:21 -!- jdiez has joined. 02:03:21 -!- clog has joined. 02:03:21 -!- lahwran has joined. 02:03:59 -!- boily has quit (Quit: Poulet!). 02:04:24 -!- pikhq has joined. 02:04:53 -!- sebbu has joined. 02:04:53 -!- asiekierka has joined. 02:04:53 -!- Lumpio- has joined. 02:05:08 -!- FreeFull has joined. 02:05:08 -!- Frooxius has joined. 02:05:08 -!- rodgort` has joined. 02:05:08 -!- hogeyui has joined. 02:05:08 -!- shachaf has joined. 02:05:08 -!- kmc has joined. 02:05:08 -!- c00kiemon5ter has joined. 02:05:30 i still find it hard to believe that keegan is a real name 02:05:50 it's like finbar 02:06:24 -!- sivoais has joined. 02:06:44 oh jeez roxy is talking drunk to calliope 02:07:12 haha 02:07:48 Phantom_Hoover: http://en.wikipedia.org/wiki/Keegan 02:07:50 is it really calliope though 02:07:59 there are totally several of us 02:08:08 that's almost as stupid as my name 02:08:12 what's your name 02:09:11 keegan is a pretty good name imo 02:09:17 classified, but a name that's about as stupid as adamhnan 02:09:47 isn't it "adhamhnáin" 02:09:52 mr. mcgoogle 02:09:53 no 02:09:55 sorry 02:09:58 i lied 02:10:04 i distinctly recall you confirmed it was once 02:10:08 my middle name is michael, though 02:10:09 possibly even privately 02:10:12 ok what is your real name 02:10:17 iirc fizzie narrowed it down to two 02:10:19 so it must be the other one! 02:10:43 yes but fortunately you etymologied yourself in the foot and i thought it was too funny to correct 02:12:37 (it's domhnall, to save you the logreading) 02:13:08 kmc, hey wow a keegan once played q's son 02:13:12 Phantom_Hoover: are you serious 02:13:24 domhnall is at least 10x more stupid than adhamhnáin 02:13:30 yeah, he has a credit for it and everything 02:13:32 how do you even fucking pronounce that 02:13:39 do-nal 02:13:55 ... 02:14:06 i basically have to say it five times to people before they get it right 02:14:12 scottish people are the stupidest people on earth 02:14:36 yes, they keep hearing 'donald' 02:14:43 -!- sebbu has quit (Ping timeout: 245 seconds). 02:14:43 elliott: http://www.theage.com.au/articles/2004/02/25/1077676832301.html 02:15:22 ""I'm not asking for something unreasonable," Mr C0ckburn wrote to the Mercury News." 02:15:44 I thought it was pronounce like "domhnall" 02:39:24 -!- sebbu has joined. 03:07:36 working 802.11n in linux?!?!?!? truly the apocalypse is nigh 03:20:48 Probably an enterprise datacenter somewhere needed it 03:23:58 heh 03:24:21 did you see that dell is selling a linux laptop targetted at developers? 03:24:23 http://arstechnica.com/gadgets/2012/11/dell-releases-powerful-well-supported-linux-ultrabook/ 03:24:27 it comes with a bunch of cloud shit 03:36:20 Then delete whatever you don't need, perhaps 03:36:32 Is that possible, or is that difficult? 03:36:33 -!- inxtoEugene has joined. 03:36:50 -!- inxtoEugene has left. 03:37:43 kmc: Interesting 03:38:46 The extra stuff seem it might be just ordinary packages, so you should be able to remove whatever things you don't need with apt-get or whatever, I guess. 03:38:51 About thrice the money i’d put into a laptop i’d buy for myself. :-) 03:39:28 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 03:42:05 also even if you are reinstalling from scratch, you have more assurance that hardware works with linux 03:42:10 but these days that isn't such a big deal 03:53:10 i actually thought the price on that dell thing is pretty good 03:53:37 considering it has an i7 with 8GB of RAM, it compares favorably to the thinkpad ultrabook i just got 03:53:42 sure 03:53:52 but yes, ultrabooks are pretty pricy 03:54:17 My budget is smaller; i won’t expect to get as powerful hardware either. 04:06:57 apparently Ivy Bridge CPUs have this feature where a plain old REP MOVSB gives you a really fast memcpy()... if a variety of strange conditions are met 04:07:22 conditions such as? 04:08:16 in particular the source and destination buffers need to overlap... but the CPU checks this against the bottom 12 bits of the address only 04:08:20 need to not overlap* 04:09:11 because if you looked at the full virtual address, you might conclude that the buffers don't overlap when really they do overlap in physical memory 04:09:22 so in these cases it falls back to a slow sequential byte-at-a-time copy 04:09:30 in order to preserve REP MOVSB semantics 04:12:41 and i guess checking the physical address is too hard / introduces an annoying data dependency with the MMU 04:12:57 and maybe even then it would not be correct 04:13:27 is this new to ivybridge? I know there's been a ton of really weird things with hardware "rep movX" support 04:13:30 because you need to produce the same sequence of page faults 04:13:53 i think this particular feature is new yeah http://lkml.indiana.edu/hypermail/linux/kernel/1205.3/00551.html 04:14:55 I need to go reread that, I don't think I've read the ivy bridge version 04:15:14 of the optimization manual? 04:15:27 Yeah 04:15:38 an 800 page bedtime story 04:15:52 slash murder weapon 04:15:55 http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-optimization-manual.html "updated april 2012" no ivy bridge sjdflksd 04:16:09 it uh, probably takes a while to write 04:16:21 oh nevermind, it's hiding there 04:16:25 under the sandy bridge section 04:16:51 .... okay it has half a page on the ivy bridge <_<; 04:17:28 ahhh, ivy bridge stuff seems to be mixed around 04:18:06 ooh. mov reg32, reg32 and mov reg64, reg64 are now eliminated by the front end 04:18:09 and not executed as uops 04:18:19 along with xmm,xmm/ymm,ymm moves 04:18:35 AMD already did the latter but it's really cool to see Intel going after gpr moves too 04:18:57 ! and it eliminates movzx reg32/64, reg8 too, wow 04:19:19 note to self: movzx is now free 04:20:14 "Processors that provide enhanced MOVSB/STOSB operations are enumerated by the CPUID feature flag: CPUID:(EAX=7H, 04:20:17 ECX=0H):EBX.ERMSB[bit 9] = 1." 04:20:20 wow, they actually made a feature flag for that o_O 04:20:41 well if you don't have it, the sequential byte-at-a-time move will perform terribly 04:20:51 you'll want to use an unrolled SSE move or something 04:21:11 makes sense, yeah, I'm just surprised they made a feature flag for a performance thing 04:21:21 usually when I have to deal with issues where "X is slow on cpu Y" I have to just detect the cpu 04:21:49 instead of like having a cpuid "pshufb is atrociously slow on this cpu" flag or a "bsr/bsf are microcoded and take 15 cycles on this cpu" flag XD 04:21:57 heh, fair enough 04:22:09 but it's nice I guess 04:23:24 i should try out SMEP now that I have an Ivy Bridge CPU 04:23:26 3.7.7 in the optimization manul describes it, it's pretty cool 04:24:22 -!- NihilistDandy has joined. 04:24:25 ooh cool. they added a prefetcher that can prefetch the next page 04:24:34 I think previously the hardware prefetcher only prefetched within the same page 04:24:46 which could get icky when your stride was like, 2000, and your page size was 4096 04:25:18 nice 04:27:11 * Fiora has way too much fun reading these things <_<; 04:28:50 I like thinking about the hardware design reasons for certain odd constraints they end up with 04:28:57 like how macro-op fusion doesn't work if the first instruction ends on byte 63 of a cache line 04:29:27 -!- david_werecat has joined. 04:30:49 huh, and xor/sub to zero a register is now not just detected, but optimized out (I guess aliased to some internal zero register) 04:30:57 it's like it's converting it to mips internally <_<;; 04:31:01 hehe yes 04:31:37 cmpeq xmm,xmm (to generate all 1s) is detected, but not optimized out 04:31:44 so I guess they have a 0 register but not a 1s register 04:32:41 haven't x86 cpus been risc under the hood for ages now 04:33:03 kinda I guess. though it depends on the definition of risc I guess 04:33:32 not always though, even if risc means load/store, I think. because like, the atom doesn't split up instructions into uops (since it's not out of order) and it can do a load every cycle as part of the instruction 04:33:40 so like, on atom 04:33:49 mov eax, [ecx] add ebx, eax 04:33:50 is slower than 04:33:53 add ebx, [ecx] 04:34:05 but atom is weiiird 04:35:02 well i have no idea what i am talking about 04:35:10 i am the itidus21 of cpu architectures 04:35:40 hey i just realised #esoteric is actually good again 04:35:46 Fiora: Pretty sure Atom is still uops. 04:35:59 um, let me check the manual... 04:36:00 Though I can't remember why... 04:36:03 i was not anticipating it to get out of the being #itidus/being #clojure cheater ban evasion fun slump 04:36:12 apparently i am too cynical 04:36:19 *#clojure/cheater 04:36:29 oh wow intel has an entirely separate section for the atom 04:36:32 it's not in the main sectino 04:36:36 maybe that means it isn't a real cpu <_<; 04:37:52 ah, I see 04:38:02 so every instruction uses either port 0, port 1, or both ports (dual-issue) and it's in-order 04:38:36 loads use port 0, but if you pair a load with a port-0 instruction, it's free 04:38:51 loads actually have latency 1 because of where they are in the pipeline I think? 04:39:10 ... it's really weird because it feels more like an old RISC pipeline than a giant complicated OOE blob =_= 04:39:24 okay and I'm rambling here 04:39:48 -!- copumpkin has quit (Ping timeout: 264 seconds). 04:40:02 yay, the atom is fun. 64-bit IDIV is 197 cycle latency 04:40:21 -!- copumpkin has joined. 04:41:25 that is a lot of cycles 04:41:39 in the compilers class my team won the optimization competition, and we won it largely with the simplest optimization 04:41:49 which is to convert multiply / divide by a power of 2 into shifts 04:41:57 wait, and nobody else did that? XD 04:42:00 this helped a lot because the test program was a mandlebrot set renderer in fixed point arithmetic >_< 04:42:04 eeep 04:42:16 Fiora: yeah... we didn't have a lot of time to even get the damn thing working 04:42:31 i think fewer than half of the teams submitted compilers that would produce correct code 04:42:50 ahhh 04:43:06 we had a compilers class where we did some basic optimizations and stuff but we had a pretty long time to work on it, it was like a multi-stage thing 04:43:11 like first get a parser, then lexer, then... 04:43:19 yeah 04:43:22 it was a thing with yacc and lex and haskell and jvm bytecode 04:43:26 we did that, but the entire class was only 10 weeks 04:43:27 oh cool 04:43:50 this one was a one-semester class on programming languages 04:44:05 i guess the compilers class at MIT judges heavily on performance on science-style array manipulating code 04:44:20 so people put a lot of effort into vectorization and stuff like that 04:44:27 wow, they were able to /do/ that? 04:44:32 isn't vectorization incredibly hard 04:44:54 well, good vectorization is hard i'm sure 04:45:22 like I didn't notice gcc do anything remotely useful until like... 4.7? and geez the people working on gcc must be ridiculously good 04:46:15 it doesn't seem that hard to detect and vectorize simple cases like a[i] = b[i] + c[i] 04:46:27 i don't know when gcc developed that ability 04:46:46 if you are already unrolling then maybe you can just kind of coalesce the unrolled instructions 04:46:51 i don't know; haven't done that kind of thing myself 04:46:52 it can be tricky though because of alignment and data types and stuff I think 04:46:56 sure 04:47:07 that is probably easier in a compilers class than in a real multi-target compiler 04:47:15 true 04:49:28 Fiora: haskell and jvm bytecode sounds like an unpleasant combo 04:50:20 haskell is pretty good at manipulating code of all sorts 04:50:35 i assume you are not compiling haskell itself to jvm 04:51:14 we were compiling a toy language to jvm bytecode 04:51:23 yeah but jvm bytecode is kind of nontrivial and i don't know that there are any nice libraries representing it in haskell, and imo you suffer a lot more when working with a quick-hack data representation (like the equivalent of just using a dict of tuples in python or w/e) in haskell 04:51:29 the toy language was kinda C-like but minus some complexity to make it easier to parse for a small project 04:51:32 so i personally wouldn't want to do it :p 04:51:33 elliott: yeah that's true 04:51:36 we didn't write bytecode, we just wrote asm 04:51:45 and used an assembler to assemble it to actual bytecode 04:51:59 since that's a pointless reinvention of the wheel XD 04:52:21 I mean just like printing "push x" and "add 2" and so on to the asm file 04:52:28 well it would be nice to have a representation in your compiler of instructions 04:52:35 besides "strings: the worst data structure" 04:52:40 but not necessary for a small project 04:52:41 we did 04:52:48 that gets converted to strings to print it out 04:52:52 basically if i had a ton of time then i would enjoy mangling jvm bytecode in haskell over most languages 04:53:10 a struct to represent x86 instructions sounds like it would be a complicated struct 04:53:10 the best thing about doing it haskell I think was that omg the type checking 04:53:13 but that includes the time to develop a proper full representation which is work :P 04:53:16 just /so many bugs found/ 04:53:26 yeah 04:53:32 the haskell static typing along with the type system we had set up in it was just like magic working pixie dust 04:53:47 we wrote our compiler in ocaml which was also pretty good 04:53:57 i would prefer haskell as i know it well, now 04:54:16 i would prefer haskell to ocaml because it's better 04:54:16 but expecting people to learn Haskell *and* write a compiler in 10 weeks is a little unrealistic 04:54:17 pattern matching was also really cool for doing optimizations 04:54:36 like we could match against patterns we wanted to optimize 04:54:40 ep 04:54:41 yep 04:54:56 Fiora: it's no coincidence that haskell excels at compilery tasks 04:55:01 ? 04:55:11 Fiora: well functional programming languages have a strong connection to it 04:55:11 ML was written for writing compilers, wasn't it 04:55:17 like ML is pretty similar to Haskell in many ways 04:55:18 "meta language" and all 04:55:24 and it's called metalanguage because it was made to write compilers :P 04:55:30 (Haskell isn't derived from ML though) 04:55:43 isn't it a strong influence? or am i just being misled by the syntax 04:55:46 it's loosely derived 04:55:51 -!- copumpkin has quit (Ping timeout: 265 seconds). 04:55:57 Bike: it's sideways related 04:56:00 pattern matching and HM typing and all that shit 04:56:02 Haskell was an effort to unify research in a bunch of lazy functional languages 04:56:07 Haskell is basically -- yeah 04:56:07 including Lazy ML 04:56:14 and others which were all reminiscent of ML 04:56:20 Common ML :P 04:56:21 there were a kajillion lazy languages being used and everyone got together and said let's compromise 04:56:25 -!- copumpkin has joined. 04:56:25 ah, I see 04:56:27 the core ideas of ML are all there in Haskell, plus a lot more 04:56:27 the nearest ancestor of the result is Miranda 04:56:31 no wonder our prof loved it 04:56:32 i have a book on compilers in standard ml that i still haven't read because i'm a dumbass 04:56:40 which now looks like a weirder minimalist version of Haskell 04:56:47 also because i don't know standard ml and all the resources apparently kind of suck 04:56:51 (and was proprietary) 04:57:06 i should probably just do it in haskell, really 04:57:07 funnily enough the most popular dialect of ML, O'Caml, was also invented to write a compiler! 04:57:11 in this case, Coq 04:57:30 i thought coq was a theorem prover, or more to the point interactive and shit 04:57:40 sort of interesting that an entire language and toolchain were developed to develop a quite significantly more advanced language but the former has dwarfed the latter to some degree 04:57:45 Bike: theorem prover/programming language 04:57:56 well yeah 04:58:07 Coq has a reasonably nice pure functional language, for writing programs you want to prove things about 04:58:08 it is an intuitionistic theorem prover and a dependently-typed programming language 04:58:17 oh. herp. 04:58:18 and also a bizarre nasty imperative implicitly-scoped mess for writing proof tactics 04:58:23 the things people actually enter are programmery basically 04:58:28 but nobody uses it for actually writing programs really 04:58:28 also you can compile the former to ML or Haskell 04:58:29 yeah i've seen that much 04:58:31 except as a proof of concept 04:58:37 does it happen to be based on uh, what's that guy 04:58:38 Agda is where that stuff happens 04:58:43 if for some reason you wanted to actually use the thing you proved correct 04:58:46 Bike: martin-lof? 04:58:47 Martin-Loef? 04:58:49 yeah him. 04:58:50 yep 04:58:53 yes 04:58:54 well 04:58:59 i should read those pdfs i've got 04:58:59 Calculus of Constructions => CoC => Coq 04:59:02 it's actually -- yeah 04:59:06 420 read pdfs every day 04:59:06 it's kind of hard to get through all that "judgement" crap 04:59:18 is CoC actually derived from martin-lof 04:59:20 I have no idea 04:59:22 right now i have a pdf on neuroparasitism open. it is very distracting 04:59:23 i thought so 04:59:26 I suppose it must be 04:59:42 kmc: btw I think that second step is meant to be icoc or whatever 04:59:46 er coic i guess? 05:00:21 right 05:00:27 inductive and coinductive too 05:00:53 what's coinduction? 05:01:03 heheh 05:01:23 Bike: uh i have a very fuzzy understanding only 05:01:26 guess i should figure out codata first. fucking coeverything 05:01:28 Bike: roughly you can prove things about the naturals with induction. you can prove things about infinite streams with coinduction 05:01:34 data : induction :: codata : coinduction 05:01:39 but i'll do my best to say something that's subtly misleading and will confuse you for years 05:01:43 and also, recursion : induction :: corecursion : coinduction 05:01:54 wow does that even mean anything 05:01:54 note that a lot of the "recursion" you do in a lazy language like Haskell is actually corecursion 05:01:59 and a lot of the data you define is actually codata! 05:02:04 ok 05:02:05 are you confused yet 05:02:06 that sucks 05:02:15 yeah for recursive functions, you prove termination by showing that every recursive call is on a strictly smaller sub-term of the input data 05:02:21 mostly just kind of pissed that the words are defined this way 05:02:26 for corecursion you prove that the function is "productive" instead 05:02:29 i should go back to misunderstanding catamorphisms 05:02:33 meaning that every recursive call is buried under a data constructor 05:02:48 so you can always force the result to head-normal form with a finite amount of work 05:02:52 Bike: basically you know how the list type in haskell admits infinite lists 05:02:59 right 05:03:02 that's because it's actually codata 05:03:02 and you generalize that and bla bla 05:03:10 if it was data it would only represent finite lists 05:03:14 so e.g. you could prove shit about the infinite list of prime numbers, because you can prove that you can always get the next one in finite time 05:03:16 and suddenly you have infinite trees of chessobards 05:03:18 and something like map: 05:03:25 map f [] = []; map f (x:xs) = x : map f xs 05:03:27 is corecursive 05:03:30 because rearranging the syntax a little 05:03:35 map f [] = []; map f (x:xs) = (:) x (map f xs) 05:03:41 right 05:03:48 that self-call buried under a data constructor --> corecursion 05:04:16 with a language that actually cares about stuff being meaningful something like "bad [] = []; bad (x:xs) = bad xs" wouldn't work 05:04:22 and then something like factorial where you do both at once (1- to deconstruct, * to construct) is a fuckomorphism or w/e 05:04:27 because you're not productive -- you can't peel off a data constructor in finite time 05:04:56 (and this can be very important because non-termination is analogous to proving false) 05:05:15 wait, so what's the problem with bad? that it won't terminate on infinite x? 05:05:16 (hence why languages used for proofs have to be strict about this stuff and restrict what programs/recursions you can write) 05:05:22 infinite input lists, yes 05:05:33 mm 05:05:36 1 : 1 : 1 : ... is perfectly valid codata 05:05:43 but bad (1 : 1 : 1 : 1 : ...) is not a perfectly valid value 05:05:54 (since we have already rejected nontermination as logically unsound) 05:06:02 ok, so 05:06:06 basically haskell lets you do "general recursion" which is where nontermination comes in 05:06:09 in haskell can you define bad? knowing that it'll fail 05:06:10 you know about fix right? 05:06:11 :t fix 05:06:12 (a -> a) -> a 05:06:22 (equivalent to the Y combinator) 05:06:26 fix f = f (fix f) 05:06:41 that type signature does not look equivalent to a fixed point combinator (which you can't do in haskell typing anyway, can you?) 05:06:46 it is equivalent 05:07:00 what you can't do is implement the y combinator directly 05:07:04 ok, right 05:07:08 anyway if you look at that type like it's a logical statement it says 05:07:13 "forall a, (a implies a) implies a" 05:07:15 aka "forall a, true implies a" 05:07:18 aka "forall a, a" 05:07:21 aka contradiction 05:07:23 right, and therefore everything's true 05:07:27 which is the fundamental reason general recursion isn't logically sound 05:07:31 but yes you can define bad in Haskell 05:07:33 obviously i need to read tapl better >_> 05:07:44 only uptight dependently-typed languages nobody uses actually care about this stuff :) 05:07:46 Does agda let you define bad? 05:07:51 (I'm guessing no) 05:08:12 no 05:08:16 unless you turn off the termination checker 05:08:30 I looked at uh, what was it called, Charity I think. Something a bit like agda in terms of uptightness, and only admitting terminating programs 05:08:33 note that you don't necessarily lose turing completeness by doing this. do you know haskell's IO story? (it doesn't really matter if not) 05:08:45 "IO story"? I know a bit about how the monad works. 05:08:47 yes charity is total which is the technical term for rejecting nontermination like this 05:09:00 the story as in, Haskell is a pure language, but it has a type that represents, abstractly, "a program that does IO" 05:09:20 and though the values of this type are perfectly "pure" -- you can write a data type with GetChar constructors or whatever to model it the same if you want -- the runtime system executes it for you 05:09:21 which is impure. 05:09:26 no :) 05:09:31 no. great. ok. 05:09:34 well 05:09:42 IO is an /encoding/ of an impure language 05:10:01 data MyLanguage a = Return a | GetChar (Char -> a) | PutChar Char (MyLanguage a) 05:10:06 (continuation-passing style) 05:10:16 cat = GetChar (\c -> PutChar c cat) 05:10:17 From what I understand IO works by being in a sorta-CPS style, where the composition isn't associative, so that preserves ordering 05:10:27 the fact that you can define this data type does not mean Haskell is impure, right? 05:10:31 it is just a piece of data like any other 05:10:37 even though it /represents/ an impure, imperative program 05:10:37 I don't really have any idea what "pure" means anyway. 05:10:46 neither does anybody else :p 05:10:49 Especially after watching you guys faff about with unsafeCoerce. 05:10:51 but basically IO is just like MyLanguage 05:11:04 except that the runtime system will actually "interpret" this type for you 05:11:10 anyway this is just confusing you more than helping you 05:11:20 but I was going to say that you can represent partiality in a total language using codata 05:11:24 shrug, that's what i do anyway. 05:11:29 codata Partial a = Now a | Later (Partial a) 05:11:35 we can recast bad in this style: 05:11:40 bad [] = Now []; bad (x:xs) = Later (bad xs) 05:11:45 this is now corecursive! 05:12:00 because our self-call is buried under a constructor you can always peel one off in finite time 05:12:14 and you can imagine your total language's runtime system being able to "interpret" a (Partial a) 05:12:20 So this is the fancy type version of putting everything in lambdas to make streams. 05:12:26 by peeling off Laters until it finds a Now, a possibly non-terminating process that takes place *outside* the language 05:12:42 which is to say, you can have a total but Turing-complete language 05:12:46 just like Haskell is pure but can do IO 05:12:54 ok I'm done confusing things now 05:13:02 Thanks. 05:13:14 any time 05:13:22 always here to spread chaos and horror 05:13:25 now i can go back to misunderstanding how to optimize exponetiation, like a real man 05:13:50 what's exponetiation and also what are you doing 05:13:58 exponentiation. 05:14:01 spelling is hard 05:14:30 http://en.wikipedia.org/wiki/Addition-chain_exponentiation rather pedestrian compared to agda, i'm sure 05:14:45 well I meant what are you doing in a more general sense 05:14:52 dicking around 05:15:11 i don't know what general sense you mean though 05:15:12 L 05:15:12 A 05:15:13 T 05:15:13 E 05:15:14 R 05:15:16 S 05:15:22 [USER WAS BANNED FOR THIS POST] 05:15:24 hi kmc 05:15:44 (USER WAS BANNED FOR THIS POST) let's see if i can remember colors 05:15:46 yep 05:20:44 elliott: actually can i ask one last thing that may or may not erupt into another two pages of text? if the runtime interprets Partial in such a way that bad may not return a value, how is bad a total function? 05:21:03 well it's not that the runtime "interprets" it that way 05:21:09 if it helps 05:21:13 think of it this way 05:21:28 you have an interpreter that takes a file, and prints out a string representation of the "foo" value in it 05:21:40 so if you say foo = bad anInfiniteStreamOf1s 05:21:45 then ./interp myfile.totallang 05:21:47 will output 05:21:57 Later (Later (Later (Later (Later (Later (Later (Later (... 05:21:59 and so on forever 05:22:12 obviously the fact that you can print a value this way does not mean the language itself is not total 05:22:17 now pipe that to another program 05:22:23 ./interp myfile.totallang | ./findnow 05:22:36 which simply reads stdin, peels off every Later, and prints what it finds inside a Now if it finds one 05:22:43 this interp | findnow process is not total 05:22:48 but it happens outside the language's semantics 05:22:59 you can still reason about the language itself assuming total strict totality and all that reasoning will still apply 05:23:11 (similarly for Haskell and purity (assuming you don't use any functions with "unsafe" in the name)) 05:23:17 hm 05:24:39 well i mean, you can't say, tell me what type bad anInfiniteStreamOf1s is within the language, can you? (though i guess it might be bottom) 05:24:59 the whole point of codata is that we admit values like anInfiniteStreamOf1s... 05:25:15 codata Stream a = Empty | Cons a (Stream a) 05:25:36 codata Partial a = Done a | Later (Partial a) 05:25:45 bad :: Stream a -> Partial (); bad Empty = Done (); bad (Cons x xs) = Later (bad xs) 05:26:04 ones :: Stream Int; ones = Cons 1 ones -- this is valid corecursion because it's behind a constructor 05:26:12 foo :: Partial (); foo = bad ones 05:26:24 ("bad" is now a misnomer, it's a perfectly fine function now that it uses Partial) 05:27:18 sssss 05:27:36 looks like i have managed to thoroughly bamboozle Bike 05:27:41 go me 05:28:41 i can't tell if i'm misunderstanding something important or something trivial. codata i think i get, infinite stream of ones with lazy evaluation is super easy, but not "well it's total except sometimes functions don't terminate" if that's even what you're saying which i doubt 05:30:09 well the thing to realise is that *nothing* inside the language ever fails to terminate 05:30:24 you cannot point me to a single thing in that program that isn't a valid corecursion 05:30:40 i don't understand how foo = bad ones can terminate. 05:30:42 all I am saying is that this does not prevent you from writing programs that do not terminate in practice, because you can *model* them, and this model can be interpreted from *outside* the language semantics 05:30:53 Bike: well, try inlining it 05:30:59 bad (Cons x xs) = Later (bad xs) 05:31:02 ones = Cons 1 ones 05:31:08 bad ones = bad (Cons 1 ones) = Later (bad ones) 05:31:33 if you think an infinite stream "terminates" (the question doesn't really make sense, but you can assuredly represent such a stream), then bad ones = Later (bad ones) is perfectly fine too 05:31:45 in fact the Stream and Partial types are almost identical 05:33:07 oh ok, but we can't write something, within the language, that's like the earlier bad, where it "forces evaluation" of the infinite Laters? 05:33:25 right 05:33:28 but we can have something outside the language that tries. 05:33:32 ok. i think i get that. thanks. 05:33:33 just like you cannot write fireZeMissiles :: IO a -> a in Haskell 05:34:05 but you can write void fire_ze_missiles(My_Weird_Internal_IO_Representation *) in the C code to your implementation 05:34:51 I know something like data MyLanguage a = Return a | GetChar (Char -> a) | PutChar Char (MyLanguage a) is possible, and have thought of such things in whatever functional programming language 05:35:25 However it seem maybe not right? 05:35:48 Maybe you need GetChar (Char -> MyLanguage a) ? 05:35:57 erm, yes 05:36:01 was a typo 05:36:44 But there are other ways, such as a (Free (CoYoneda x)) monad 05:37:23 i felt such a representation would not help Bike so much :P 05:37:50 whatever, i'm the inbred yokel here 05:37:58 It might not, although, there are many ways. 05:38:29 Bike: it may be consoling to know that the majority of #haskell wouldn't be able tog et this straight either 05:38:38 *to get 05:39:07 issat so 05:39:16 well, that's not too surprising 05:39:45 same way you can use C without giving a damn about pointer aliasing i suppose 05:40:27 unsafePerformIO is sometimes used for global variables too but there are other ways. 05:40:33 well for a start this totality stuff is not really directly relevant to Haskell at all 05:40:50 for an end the secret is that most people who use Haskell don't actually really know what they're doing :P 05:40:59 this applies to basically every language 05:41:01 that's what i was getting at yes 05:41:14 well you can probably write good C code without caring about pointer aliasing 05:41:23 since it is a bit pathological 05:41:34 i suppose y'all have it harder with people trying to write monad burrito tutorials every which way 05:41:42 until you do something really horrific like I did earlier and gcc miscompiles it <_<; 05:41:49 is there a pointer tutorial cottage industry 05:42:04 you know i think there may have been at some point 05:42:13 i know i've seen a bunch of metaphors about PO boxes 05:43:25 i remember watching "pointer fun with binky" 05:43:30 «In pure functional languages, function arguments may usually alias each other, but all pointers are read-only. Thus, no alias analysis needs to be done.» ok sure 05:43:48 Such as (StateT (ExtProd GlobalVariables) IO) (implementation of ExtProd uses unsafeCoerce internally, but only to convert something to the same type which it already is) 05:43:52 it's called "sharing" in functional languages 05:44:01 Fiora: What example? 05:44:19 i think she means her float p-associativity thing 05:44:30 nonconforming (horrors) 05:44:34 http://privatepaste.com/59a8109713 that thing 05:45:04 also the whole 'pointer aliasing' tree on wikipedia makes it out to be the main reason fortran is Faster than C, rad 05:45:36 yeah, aliasing optimization-wise can be really annoying and frustrating 05:45:52 Intel's C compiler actually does something totally crazy that I've seen in disassembly a few times 05:46:03 where it thinks aliasing is an issue it'll template the code based on whether or not two pointers alias 05:46:06 and branch on runtime 05:46:25 goddamn 05:46:25 aliasing of mutable pointers is the saddest thing 05:46:35 yet another reason we can blame C for all ills in the world 05:46:41 and also a billion other languages 05:46:44 but C is a nice scapegoat 05:46:44 fortran 4 lyfe 05:46:48 "uint8_t* can alias everything" is kind of dumb <_> 05:46:56 Bike: well. rather drop the mutable part than the aliasing part 05:47:06 wow suspend to RAM is incredibly fast on this machine 05:47:24 under 2 seconds to suspend, 1 second flat to resume all the way 05:47:42 elliott: you would, you, you...! i can't think of a remotely nonterrible insult for agda users sorry 05:47:49 what does "agda" even mean, is it some old celtic god 05:47:54 Fiora: Yes, I know, and LLVM does this; they really should allow void* instead 05:48:01 haha like I actually use Agda 05:48:09 well you know it exists 05:48:14 so do you 05:48:17 Bike: there is a sweedish dirty song titled "Hönan Agda" 05:48:26 about a hen who really loves the cock, if you will 05:48:31 do i /really/ 05:48:34 I have no idea where Agda's game originates 05:48:36 kmc: that'd better be the actual etymology 05:48:37 so it's a play on coq 05:48:44 kmc: please tell me that's actually true 05:48:52 also s/game/name/ 05:49:01 listen here: http://www.youtube.com/watch?v=oKUscEWPVAM 05:49:14 that is not an answer!! 05:49:19 cock is the answer 05:49:34 i read this somewhere semi authoritative 05:49:36 jesus swedish sounds weird 05:50:00 Yes, Jesus Swedish is a strange language. 05:50:23 swedish as spoken by jesus himself 05:50:31 i should try to introduce that as a term to refer to the old language in newly christianized monks' scrolls or something 05:50:35 in 0 ad sweden 05:50:43 except i don't know any swedish paleolinguists... shit...... 05:51:02 that ruins all my plans too 05:51:29 now i have to go check if "paleolinguist" is a term anyone actually uses. 05:51:49 anyway i bet #agda would know if i made this up 05:51:49 oh, they do. proto-human crapola, awesome. 05:51:54 Bike: paleography is, for sure 05:52:03 Fiora: btw is it really miscompilation if your program invokes UB... 05:52:11 i had to look up a soviet era paleography text book on russian rapidshare in my quest to track down Multiocular O 05:52:41 «Multiocular O (ꙮ) is the most rare and exotic glyph variant of Cyrillic letter O. This glyph variant can be found in certain manuscripts in the phrase «серафими многоꙮчитїи» ("many-eyed seraphim")» what the fuck? 05:52:47 i will point out that agda is from .se 05:52:53 that sounds straight out of a dan brown novel 05:53:54 yeah, basically some bored monk put a doodle in a copy of Psalms 05:54:10 and then almost 600 years later a bunch of linguists and computer scientists had a very serious meeting about what to do about it 05:54:18 anyway i imagine paleography is a bit easier than paleolinguistics, given that we don't even know how sumerian was pronounced 05:54:36 and recommended it for inclusion in the International Standard Organization's Universal Character Set 05:54:44 awesome 05:54:55 elliott: technically no, but... XD 05:54:57 there's a link to a scan of the manuscript on that page 05:55:13 it's not actually in the cyrillic block, is it 05:55:30 what bugs me is that the Unicode reference glyph has 7 eyes but the only (?) extant source for the character has 10 eyes 05:55:55 also now i'm tryig to remember if all those dumb scripts like klingon and deseret are actually in unicode or just use one of the "do whatever" blocks 05:55:56 unicode meetings must be interesting 05:56:05 klingon is still private use yeah 05:56:20 i think it kind of makes sense to put klingon in unicode 05:56:28 deseret was actually used by non-dorks for a few minutes, is the thing that makes me wonder 05:56:28 Though the reason Klingon was turned down for inclusion wasn't that it was a joke script. 05:56:28 Bike: it's in some "old / weird cyrillc shit" block, but still in the BMP 05:56:35 christ 05:56:37 Wikipedia also seven eyes 05:56:41 pikhq: what was the actual reason? I don't know it 05:56:43 ... It was that no Klingon speakers actually used Klingon script. 05:56:49 pff 05:57:03 pikhq: is this a vacuous property or are there actually klingon speakers who don't know the script 05:57:24 i think there are more klingon speakers than there are esperanto speakers... 05:57:32 really? 05:57:34 elliott: In general Klingon text is in a Romanization. 05:57:36 esperanto has like a million speakers 05:57:41 and esperanto has its dumbass orthography in there 05:57:45 If you write in the text using Unicode then how are you supposed to know if you mean seraphim have seven eyes or do they have ten? 05:57:49 well, ok 05:57:54 "10,000 to 2,000,000" 05:57:58 pfff 05:57:58 And I think there is Conscripts for if you want Klingon scripts? I am unsure 05:57:58 pikhq: how can people who go to the lengths of learning klingon not go the extra mile and learn the script 05:57:58 Esperanto uses glyphs that other languages also make use. 05:58:01 like what is with that 05:58:04 ok, maybe i'm exaggerating. 05:58:05 Erm, also make use of. 05:58:07 what's 2 orders of magnitude between friends 05:58:09 elliott: I dunno. 05:58:12 whats the difference between tolkien dwarves and klingons 05:58:18 pikhq: yeah, i know, i just suddenly remembered that i hate esperanto and its orthography. 05:58:20 other than the height and language 05:58:24 the name 05:58:24 because i dont see it 05:58:29 also one of them is in star trek 05:58:41 the other is in lotr (the klingons) 05:58:42 klingons don't dig mines do they 05:59:00 `addquote If you write in the text using Unicode then how are you supposed to know if you mean seraphim have seven eyes or do they have ten? 05:59:10 871) If you write in the text using Unicode then how are you supposed to know if you mean seraphim have seven eyes or do they have ten? 05:59:11 and dwarves don't... do... whatever klingons do? yell at kirk or whatever 05:59:14 Bike: they mine outer space 05:59:18 Bike: Mi ŝat' l'ortografion. 05:59:28 (the explosive kind) 05:59:29 bite me 06:00:51 tèmo, sono nihonnkò no seisiȳohou kà saikou tà to omou 06:01:13 is that some japonic language 06:01:23 seems as good a time as any to link http://www.youtube.com/watch?v=uQ3c8_ZTNrg 06:01:25 Japanese, in specific. 06:01:37 In a silly orthography. 06:01:38 i don't think i've ever seen that romanization. what is it? 06:01:44 Mine. :P 06:01:48 or just something y- right 06:02:08 "nihhonko" is kind of a giveaway. also macron even if it's not on a vowel somehow 06:02:56 ` is the dakuten, ^ is the handakuten, ¯ indicates the glyph is small, ' is the sokuon, "nn" is the moraic "n". 06:02:57 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: : not found 06:03:06 i see. 06:03:12 And transcribe naively from there. 06:04:08 kmc: now i'm wondering what recordings they got "fuckin" and "goddamn" from 06:21:47 Something like [[1+2][3+4]+[5+6][7+8]] is allowed in a Csound score and results in 1132 06:28:35 -!- heroux has quit (Ping timeout: 250 seconds). 06:30:12 -!- heroux has joined. 06:34:31 #csoundfacts 06:52:44 -!- MDude has joined. 06:54:41 http://esolangs.org/wiki/Pahana Interesting. Also looks kind of like another idea I'm being beaten to because I'm too lazy to really work on it enough. 06:55:50 Though I was thinking more of starting at something like a network stack and changing it to work as a human language instead of the reverse. 06:56:10 I am really confused by that article 06:56:16 as in I'm not sure why it's on the esolang wiki 06:56:27 it's a joke on piraha i guess? 06:56:29 It's esoteric, and a language? 06:56:53 MDude: that's 2/3 06:56:54 conlangers have their own hangouts, i think 06:57:01 the 1/3rd is "programming" 06:57:04 If it's the idea I should have already been working on, it's a way of making something usable as a speaking language and computer language. 06:57:12 hmmmm 06:57:13 isn't that lojban 06:57:18 probably I should just put something on the talk page 06:57:28 They just apparently haven't gotten to the comptuer part yet. 06:57:44 Or maybe they are in the wrong spot. 06:57:49 turns out to just be a pronounceable brainfuck derivative. 06:58:36 Ook is alredy plenty pronouncable. 06:58:44 And by multiple species. 07:00:52 ah, but is your ook program also a poem? 07:03:21 I can see Pahana is really something different and not a esolang, nor does it seem really related, but perhaps move it to a subpage of your user page for now; there might be enough relation for it to go there, at least temporarily. 07:04:49 I willas soon as I'm ClaytonB or Aristippus. 07:04:54 *will as 07:05:03 I'm just guessing at what it might be. 07:05:25 Also I don't see either of them in chat. 07:05:57 I could leave a message on the talk page of that article, too. 07:07:07 -!- monqy has quit (Quit: hello). 07:07:54 I will now go to bed and consider having a pahana for breakfast in the morning. 07:08:05 -!- MDude has changed nick to MDream. 07:08:24 I wrote a message on their talk page. 07:09:13 http://esolangs.org/wiki/Talk:Pahana 07:10:10 And why was one change made by a different user account? 07:11:22 And all they did was switch X and Y to make sure X came first in the sentence. 07:11:25 oh boy, my first appearance on the wiki proper. 07:12:48 What is your account on the wiki properly? 07:13:34 don't have one. 07:13:44 MDream: Yes, I am a bit confused about this too. 07:22:33 -!- pikhq_ has joined. 07:29:27 -!- pikhq has quit (*.net *.split). 07:42:22 -!- nooga has joined. 07:53:20 -!- epicmonkey has joined. 07:59:13 Bike: you should get a wiki account so I can log your password and impersonate you on other websites 07:59:18 [DISCLAIMER: I DO NOT ACTUALLY DO THIS] 07:59:54 i actually usually make up new passwords which i then forget later 08:00:05 your plans are foiled, fictional elliott 08:00:17 Fictional elliott is way better than real elliott. 08:00:29 what I do is use the same, not-terribly-secure password everywhere and rely on the fact that nobody likes me or wants to be me 08:00:32 :'( 08:00:48 i'm pretty sure that's how security generally works 08:00:52 you're in good company, real elliott 08:01:08 fictional elliott probably just uses the wiki account databae as password idea fodder. 08:01:14 good company with people I don't like by definition of said company 08:02:13 that's mean! 08:02:26 but they're a group of people relying on the fact that nobody likes them! 08:02:40 wow way to make security sound really depressing 08:03:27 bank account security: make sure you're always broke so nobody can steal any money from you 08:06:06 -!- david_werecat has quit (Ping timeout: 264 seconds). 08:13:20 -!- copumpkin has quit (Ping timeout: 252 seconds). 08:13:53 -!- copumpkin has joined. 08:17:26 -!- augur has quit (Remote host closed the connection). 08:19:22 -!- augur has joined. 08:19:33 -!- Bike has quit (Quit: not not not not not not not). 08:22:11 -!- oerjan has joined. 08:44:56 `? phantom_hoover 08:45:00 Phantom_Hoover is a true Scotsman and hatheist. 08:45:20 `? hantom_phoover 08:45:21 hantom_phoover? ¯\(°_o)/¯ 08:45:39 `run echo 'Phantom "Michael" Hoover is a true Scotsman and hatheist.' >wisdom/phantom_hoover 08:45:43 No output. 08:45:47 `? phantom_hoover 08:45:49 Phantom "Michael" Hoover is a true Scotsman and hatheist. 08:45:58 `? phantom__hoover 08:46:00 Phantom__Hoover can't decide what an appropriate number of underscores is. 08:46:04 `? phantom___hoover 08:46:05 Phantom___Hoover sucks at ghosting himself. 08:46:09 `? phantom____hoover 08:46:10 phantom____hoover? ¯\(°_o)/¯ 08:46:25 `? phantom_____hoover 08:46:26 phantom_____hoover? ¯\(°_o)/¯ 08:46:31 (You never know.) 08:47:01 It's like those game easter eggs when you do something repeatedly and it stops giving new results and then after enough repetitions there's still one more. 08:47:12 OKAY 08:47:48 Like uh that one game's installer where you set your soundcard settings and press test, and it says in a British accent "your soundcard works perfectly", and if you keep mashing it it'll say "it doesn't get any better than this". 08:47:57 And I think one more thing if you keep doing it. 08:48:11 `run echo 'Phantom Michael Hoover is a true Scotsman and hatheist.' >wisdom/phantom_hoover 08:48:12 (The British accent is a relevant and key detail.) 08:48:15 No output. 08:48:44 `run echo "It doesn't get any better than this." >wisdom/phantom_______hoover 08:48:48 No output. 08:49:45 `run echo "OK you got me there." >wisdom/phantom__________hoover 08:49:49 No output. 08:51:33 `run echo 'Your soundcard works perfectly.' >wisdom/phantom____________________hoover 08:51:37 No output. 08:51:44 Okay, maybe that was a bit frivolous. 08:52:13 you think? 08:53:19 A frivolous use of unrenewable bot resources. 08:53:28 shocking 08:54:34 http://www.youtube.com/watch?v=q_A1GNx0M9M everything is in the internets nowadays. 08:55:28 (He sounds so angry.) 08:56:26 -!- keb_ has joined. 08:57:24 -!- keb has quit (Ping timeout: 248 seconds). 09:00:12 Did I do the elliott Fiora thing? I don't think so 09:00:17 -!- Arc_Koen has joined. 09:01:09 http://sprunge.us/SMRN perhaps I should turn that off. 09:02:38 hey i just realised #esoteric is actually good again <-- THE END TIMES I SAY 09:03:53 * oerjan suddenly realizes he's channeling the zombie (great )*grandfather from girl genius 09:04:10 wait, not zombie, mummy 09:06:49 Once I found a CAPTCHA it asked "Do you shop at Canadian Tire?" (it wouldn't let me type in the question) 09:07:38 did it accept "Yes" or "No"? 09:07:42 zzo38: Well? Do you? 09:08:18 shachaf: No; I don't own a car so I don't need to. 09:09:59 oerjan: I didn't try to answer it 09:10:43 -!- Taneb has joined. 09:12:23 But I did try to type in the question and it won't work 09:12:56 Only "Yes" or "No" will fit but I did not try to submit the form so I didn't know 09:17:43 I've got "your soundcard works perfectly" looping in my head. :/ 09:19:06 i guess the soundcard in your head works perfectly, then 09:23:39 Hmm, the Factor server might be working again 09:31:43 I've got the housemate's talking on the phone looping in my head. :/ 09:32:51 hi oerjan 09:32:54 Any new adventures? 09:32:55 hi shachaf 09:33:16 when did i ever have an adventure? 09:33:38 ,4answer the question 09:33:49 no. no new adventures. 09:34:38 What a shame. 09:34:58 it's ok i'm hoping the world will end next week 09:35:19 (not believing, mind you.) 09:37:08 -!- augur has quit (Remote host closed the connection). 09:42:11 -!- augur has joined. 09:42:52 -!- evitable has joined. 09:43:06 fizzie: "that one game" was Warcraft II, maybe others as well. 10:02:17 -!- ogrom has joined. 10:02:20 ...Tcl just got a bit crazy 10:07:13 -!- sebbu has quit (Ping timeout: 245 seconds). 10:13:40 kmc: please tell me that's actually true <-- i've pointed it out before. it seems too much of a coincidence not to be true 10:13:57 i hope kmc didn't get it from me though... 10:16:33 Help there's either a crazy person or a troll in #tcl 10:16:50 As in, talking about brains being forcefed, begging me to contact the CIA 10:17:22 ban him for being off topic, and tell him to report for termination. 10:17:25 hth. 10:18:37 you are part of a cult 10:18:38 your mother is trying to work the system 10:18:38 she is probably going to prison 10:19:13 * oerjan swats Sgeo for bringing this here -----### 10:19:56 More like a phyg, right? 10:20:05 wat 10:20:41 ^rot13 phyg 10:20:41 cult 10:20:42 "Phygs are flying pigs. Their spawning patterns are very similar to those of flying cows." 10:21:00 lesswrong.com people say "phyg" instead of "cult" now so the latter word doesn't get associated with them. 10:21:16 ...nice try. 10:21:50 Hm? 10:22:53 sorry, i'm grumpy. shouldn't argue in this state. 10:23:04 oklopol 10:23:08 ... 10:23:14 oerjan 10:23:18 k why don't you go ahead and ignore that 10:41:17 -!- sebbu has joined. 10:47:54 My quest to play on my PS2 is further hampered by having no way to save my game 10:52:41 maybe this is what will push someone to invent time travel 10:55:08 Taneb: you don't have memory cards? 11:00:18 nortti, no 11:00:21 Just ordered one 11:04:42 -!- oerjan has quit (Quit: leaving). 11:05:39 Any suggestions for CsoundMML? 11:05:55 Anyone writing music? If so, you can know 11:06:37 zzo38, your time has come 11:07:08 shachaf: My time has come? To do what? Jump in the lake? 11:08:01 zzo38: Yes. 11:08:57 -!- zzo38 has quit (Quit: To jump in the lake... in the dark... and somehow to get back out again and get dry again.). 11:09:15 -!- sebbu has quit (Read error: Connection reset by peer). 11:09:45 -!- sebbu has joined. 11:11:40 -!- nortti has changed nick to nortti_. 11:12:39 -!- nortti_ has changed nick to nortti. 11:18:28 -!- nortti_ has joined. 11:18:35 -!- comex has quit (Remote host closed the connection). 11:19:45 -!- nortti has quit (Quit: Lhdss). 11:19:54 -!- nooga has quit (Ping timeout: 264 seconds). 11:19:58 -!- nortti_ has changed nick to nortti. 11:56:10 -!- Phantom_Hoover has joined. 11:58:53 -!- nooga has joined. 12:02:35 -!- evitable has quit (Ping timeout: 255 seconds). 12:18:16 -!- ais523 has joined. 12:20:09 lambdabot: messages? 12:20:27 (I asked Rodney and tried to ask heptagram, but it wasn't here; I thought you didn't want to be left out) 12:22:08 ais523: @messages 12:22:12 Or @messages? 12:22:27 Come on, at least learn the bot's language! 12:22:54 shachaf: well it replies on the first thing you say when you enter a chanel 12:22:56 *channel 12:22:59 regardless of what it is 12:23:08 so I thought I'd use the same format I did with the other bots, which follow the same rule 12:24:06 Fair enough. 12:24:15 @ask ais523 thanks for being considerate 12:24:15 Consider it noted. 12:29:48 @ask Sgeo hello? 12:29:49 You can tell yourself! 12:29:59 But that wasn't a statement, it was a question? 12:31:25 that, meanwhile, was a statement with a question mark at the end 12:32:33 Would it be funny to ask a question with a period at the end. 12:33:33 no 12:53:26 -!- epicmonkey has quit (Remote host closed the connection). 12:55:21 -!- epicmonkey has joined. 12:55:34 -!- epicmonkey has quit (Remote host closed the connection). 12:55:51 -!- epicmonkey has joined. 12:59:42 Whoah, Feynman diagrams are categories? 13:04:38 Phantom_Hoover: basically everything's a category 13:04:39 ais523: You have 1 new message. '/msg lambdabot @messages' to read it. 13:04:46 @messages 13:04:46 shachaf asked 40m 31s ago: thanks for being considerate 13:05:07 Phantom_Hoover: we caused some consternation a while back when we discovered that our representations of asynchronous programming languages /weren't/ categories 13:30:13 in any way at all? 13:33:51 "dup pprint write " dup.... dammit 13:33:55 Stupid spaces 13:35:32 " dup pprint write " dup pprint write 13:35:41 That's almost too easy 13:36:30 " [ pprint ] [ write ] bi " [ pprint ] [ write ] bi 13:43:27 http://ideone.com/RLZkoq 13:43:35 Wasn't quite expecting removing the space like that to work 14:21:20 -!- david_werecat has joined. 14:24:15 -!- sebbu has quit (Read error: Connection reset by peer). 14:24:45 -!- sebbu has joined. 14:24:47 -!- sebbu has quit (Changing host). 14:24:47 -!- sebbu has joined. 15:00:54 -!- Taneb has quit (Remote host closed the connection). 15:10:58 -!- MDream has changed nick to MDude. 15:26:19 http://www.cs.hut.fi/~travis/data-structures/matti.pdf my mushspace slides are apparently online now; they mostly concern R-trees so they might not be that interesting, but anyway. 15:30:18 in any way at all? ← they didn't compose correctly, so they didn't obey all the axioms 15:31:30 Looking mushspace, I find sich things as mosh space, musespace, and at least twice "how mush space". 15:31:54 It's not finished yet so it's not online anywhere. 15:32:04 ais523, surely you can coax one out somehow 15:32:46 well, yeah, but you have to add a bunch of junk just to make things fit 15:44:49 -!- monqy has joined. 15:53:38 -!- ogrom has quit (Ping timeout: 250 seconds). 15:56:20 -!- ogrom has joined. 16:03:36 -!- ogrom has quit (Ping timeout: 250 seconds). 16:19:13 -!- Nisstyre has quit (Quit: Leaving). 16:28:54 Deewiant: Yes, I learned it from the video link I posted too. 16:32:35 fizzie: Ah, I didn't realize that was related and/or missed it, sorry. 16:33:54 -!- david_werecat has quit (Ping timeout: 256 seconds). 16:35:02 I do have a vague feeling it might've been elsewhere too. At least there was a number of games with a SETUP.EXE or some-such to configure sound effect/music settings. 16:46:51 -!- Phantom_Hoover has quit (Remote host closed the connection). 16:48:31 -!- Phantom_Hoover has joined. 17:49:54 -!- Bike has joined. 18:16:20 -!- ogrom has joined. 18:16:41 -!- sebbu has quit (Read error: Connection reset by peer). 18:17:06 -!- sebbu has joined. 18:24:42 -!- oerjan has joined. 18:26:56 -!- NihilistDandy has quit (Quit: Computer has gone to sleep.). 18:29:26 -!- AnotherTest has joined. 18:29:33 Hello 18:29:47 hi 18:29:49 Olé 18:29:54 btw, has your test finished yet? 18:29:54 o/ 18:30:02 it must be one of the longest tests ever 18:30:38 bah he finished it a long time ago, this is _another_ test 18:30:39 Probably not 18:30:53 Perl developers tend to take a longer time 18:31:06 (5 years or something IIRC?) 18:31:28 The truth, however, is that I lack inspiration as to finding a good pseudonym 18:35:17 -!- carado has quit (Ping timeout: 246 seconds). 18:36:11 AnotherGoodPseudonym 18:36:30 -!- WeThePeople has joined. 18:37:12 or A]\[OTH3r1337pZ3ud0|\|ym 18:38:07 0r +h4t 18:43:52 I'll pick ais524, sounds like a nice name 18:44:40 hi 18:44:47 hello 18:45:54 AnotherTest: it's not taken, it'll be fine 18:45:58 might cause some tab-complete issues 18:46:15 but when I tab-complete my own name it's usually in #nethack and I keep pinging AimHere by mistake 18:46:41 Maybe, _ais523, that wouldn't cause any problems I think? 18:46:53 hmm, probably 18:47:03 there was an ehird` (elliott) and an ehird (not elliott) simultaneously for a while 18:47:07 AimHere, that name sounds very familiar 18:47:14 although nowadays, ehird without the ` is elliott 18:47:27 Or Ais523? 18:47:31 Oh, apparently that person is in #clojure 18:47:37 AnotherTest: that is a clash 18:47:41 :( 18:48:17 als523 18:48:44 523sigais 18:49:47 -!- AnotherTest has changed nick to _ais523. 18:50:19 _ais523: apparently doing that pings me 18:50:20 that's actually a clash in irssi 18:50:29 <_ais523> :( 18:50:37 in fact, everything you say pings me now 18:50:50 fais523ncy 18:50:53 <_ais523> Yay! Unlimited attention from ais523 18:51:05 <_ais523> Guess what? You just got pinged! 18:51:17 I could put you on ignore if it got annoying 18:51:33 <_ais523> I'll just go for ais524 I think 18:51:41 -!- _ais523 has changed nick to ais524. 18:51:59 * ais523 catches oerjan in a butterfly net -----\XXXXX/ 18:52:09 oerjan: I've been waiting for /years/ to do that when you weren't expecting it 18:52:26 i'll admit i wasn't expecting it 18:52:32 but most of the times I remembered, it was because the conversation was on a subject that might make you expect it (that's why I was reminded) 18:52:32 @ask zzo38 Is http://esolangs.org/w/index.php?title=Munching_Squares.pushem&curid=3424&diff=35104&oldid=21006 a correct change? 18:52:32 Consider it noted. 18:52:39 mostly because i haven't seen it for years 18:52:39 and the other couple of times you weren't here 18:53:10 ais523: It's not fair. You have a prime number and I don't 18:53:23 ooh, 523 is prime? 18:53:28 `factor 523 18:53:32 523: 523 18:53:46 is there any base in which 524 is prime? 18:54:08 what a question. 18:54:48 Base 7? 18:54:49 it'd have to be odd, and at least base 6 or it'd be missing the required digits, and so at least base 7 18:54:57 > [readInt b (const True) digitToInt "524" | b <- [6..]] 18:54:59 [[(196,"")],[(263,"")],[(340,"")],[(427,"")],[(524,"")],[(631,"")],[(748,""... 18:55:15 263 is prime. 18:55:24 631 too 18:55:39 fizzie: did you check, or did you have it memorized? 18:55:44 > [fst.head$readInt b (const True) digitToInt "524" | b <- [6..]] 18:55:46 ais523: I did check. 18:55:46 [196,263,340,427,524,631,748,875,1012,1159,1316,1483,1660,1847,2044,2251,24... 18:55:48 ais524: see, your nick is prime after all 18:57:11 hmm, 1847 and 2251 are also prime 18:57:17 -!- comex has joined. 18:57:29 is there a primality checker in lambdabot's standard library? 18:57:51 not to my knowledge... 18:57:55 :t isPrime 18:57:57 Not in scope: `isPrime' 18:57:57 Perhaps you meant `isPrint' (imported from Data.Char) 18:57:57 (which IIRC is a superset of Haskell's standard library?) 18:57:58 ais523: Yes, but it does it form a twin prime like yours? 18:58:04 it seems like the sort of thing that would be there 18:58:27 10:19:13 * oerjan swats Sgeo for bringing this here -----### 18:58:42 oerjan: well he already brings the rest of every programming channel here. 18:58:58 -!- ais523 has changed nick to this. 18:59:01 not registered! 18:59:16 -!- ais524 has changed nick to ais523. 18:59:18 now I can do Java implementations 18:59:37 -!- ais523 has changed nick to Guest65326. 18:59:37 -!- Guest65326 has quit (Killed (card.freenode.net (Nickname regained by services))). 18:59:37 -!- this has changed nick to ais523. 18:59:47 whoops, wrong command 18:59:50 ais523: clearly primes are not categorical enough for haskell 18:59:54 fizzie: Video link? 18:59:59 -!- AnotherTest has joined. 18:59:59 I was only trying to renick them 19:00:04 AnotherTest: sorry, wrong command 19:00:08 I was trying to force-change your nick 19:00:11 auch 19:00:15 rather than boot you off altogether 19:00:19 -!- AnotherTest has changed nick to ais524. 19:00:23 ais523: the latter is far more fun 19:00:25 oh wait 19:00:28 -!- ais524 has changed nick to ais521. 19:00:29 comex: hi 19:00:36 Now we form a prime twin? 19:00:49 actually Freenode changed that a while ago 19:00:54 it used to just force renick 19:01:13 evil mirror twins? i think this must be against the prime directive 19:01:57 OK, history question: has there ever actually in real life been a pair of identical twins, except one is good and one is evil? 19:02:09 Chances are rather high 19:02:16 -!- asiekierka has quit (Quit: ZNC - http://znc.sourceforge.net). 19:02:23 ais523: for what does ais stand anyway? 19:02:25 I think they're rather lower 19:02:28 evil people are rare 19:02:45 ais521: it doesn't really matter, does it? 19:02:53 i guess alfred göring wasn't a twin... 19:02:56 The real question is wether there was such a case, and the main visible difference is that only one of them has a beard. 19:03:12 ais523: It doesn't no, oh btw, 521 is a lucas prime and 523 is not (take that, ha!) 19:03:25 ais521: the 523 was randomly selected 19:03:28 by a computer 19:03:33 apparently, discordians find this hilarious 19:03:36 And it's in a primitive Pythagorean triple! 19:03:37 It's be less likely anyway. 19:03:50 ais521: do you have a beard? 19:04:11 ais523: sort of 19:04:12 * elliott wonders if ais521 is going to continue using a nick so confusing 19:04:19 elliott: it's not confusing for me 19:04:24 I know whether I've said a line or not 19:04:25 * ais521 has already registered it 19:04:38 hmm, maybe I can make my client force-rename nicks 19:04:56 -!- comex has quit (Remote host closed the connection). 19:05:02 Well at least if you stick with that, we won't have to worry about you shuffling around like you jsut did. 19:05:16 elliott: how? if you don't have admin-level access to the servers (don't think even opers can forcibly rename…) 19:05:26 ais523: just for me, I mean 19:05:31 i think he means making his client display a different name 19:05:43 I'm pretty sure you switched places at least one? 19:05:47 i'm pretty sure irssi is configurable enough to do that. 19:05:50 ais523: 2^251 - 1 is a Mersenne prime, aha! 19:06:05 *once 19:06:10 -!- Nisstyre-laptop has joined. 19:06:11 so (2^250)(2^251-1) is a perfect number 19:06:20 sorry, *albert 19:06:31 all even perfect numbers follow that pattern (that's actually quite easy to prove) 19:06:46 odd perfect numbers aren't known to exist, although nobody's yet managed to conclusively rule them out 19:07:49 they have to be pretty large, though 19:08:02 hypothesis: there is exactly one odd perfect number 19:08:08 -!- comex has joined. 19:08:16 and it's hideously gigantic 19:08:33 and it's uncomputable 19:08:47 Phantom_Hoover: that's not logically possible 19:08:52 Phantom_Hoover: that, um 19:08:54 all integers are computable 19:09:00 fine 19:09:09 oh geez, we don't even know if there are infinitely many mersenne primes. 19:09:16 it's whatever the busy beaver numbers are 19:09:26 busy beaver is a /function/ 19:09:30 Bike: there's 445892348932 exactly. 19:09:32 which is how it's uncomputable 19:09:35 elliott: !!! 19:09:41 * elliott 's fundamental mathematical principle: everything is as ugly, awkward, and imperfect as possible for no reason 19:09:45 but yeah this is the weirdest math ignorance i've seen since euler-mascheroni 19:09:46 this is what i meant 19:09:58 they went over 10^300 for finding perfect numbers 19:10:00 guys i think we are going to dent Phantom_Hoover's ego so hard it might break his spine maybe we should stop 19:10:06 well according to http://oddperfect.org/ 19:10:17 uh 19:10:46 ok i appear to have said some things without remembering them 19:11:00 "is it transcendent?" "dunno" "is it constructible?" "well, uh" "is it rational" "look i don't know okay" 19:11:17 Phantom_Hoover: I don't remember everything I've ever said 19:11:26 because that's the only way that response makes sense 19:11:28 * ais523 tries to remember something that they don't remember they said 19:11:34 nope! 19:11:41 -!- sebbu has quit (Read error: Connection reset by peer). 19:12:08 that site says (2801^79-1) is factored, but doesn't give the factors. assholes. 19:12:13 -!- sebbu has joined. 19:12:35 Bike: 2 and (2801^79-1)/2 19:12:44 truely a brakethrough............... 19:12:46 elliott: ghosts don't have spines hth 19:13:25 oerjan: have you ever seen one 19:13:27 how could you know 19:15:09 past life memories, obviously 19:15:21 (just for the purposes of clarification i think i meant that its existence was nonconstructively proven_ 19:15:28 maybe phantom is some other kind of phantom 19:17:20 hm... does he have a good singing voice? 19:17:24 the phantom probably has a spine 19:18:43 Phantom_Hoover: if you can nonconstructively prove an integer exists then you can constructively prove it exists... 19:18:52 unless I severely misunderstand something 19:19:08 which I may. oerjan? 19:19:55 i don't think that follows 19:20:21 -!- glogbackup has joined. 19:24:22 yeah the algorithm I had in mind didn't work :( 19:24:35 if the property is decidable it holds though, right? 19:25:42 not unless you have a constructive upper bound 19:27:02 hmm 19:27:24 my thought was that you could just loop through all the integers and eventually get to one that satisfies the property. but I suppose the problem is that the integer could very well just not actually exist 19:27:35 classic logic is weird 19:27:42 *al 19:27:51 look up omega inconsistency 19:28:28 yeah, I know there are weirdnesses like this in general 19:28:34 just hard to get an intuitive grasp for how fucked up it is :P 19:34:18 Deewiant: "Overlapping isn’t necessary but for the scope of this presentation it is" 19:34:24 very good 19:34:43 -!- c00kiemon5ter has changed nick to omnomnomnom. 19:34:47 -!- omnomnomnom has changed nick to c00kiemon5ter. 19:43:29 Gregor: Good episode this week. 19:46:57 of what 19:47:03 wait 19:47:12 this is going to be mlp, forget i asked 19:52:27 mammal linguistic programming 19:53:09 * oerjan suddenly realizes a new interpretation of "Phantom_Hoover" 19:53:20 ooh, what 19:53:33 "hooves" 19:53:57 clearly you're the ghost of a pony hth 19:54:15 * oerjan waits for the NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO 19:55:46 -!- ogrom has quit (Quit: Left). 19:58:43 I guess the shock hasn't subsided far enough for him to be able to type yet 20:02:30 presumably. 20:02:34 you can't type with hooves... 20:02:42 oh good point 20:03:19 "your hands are now hooves" 20:04:15 everypony knows they don't have computers in equestria anywyas 20:06:51 elliott: Basically I realized kinda late that I should be able to get rid of it and simplify lots of things :-P 20:07:51 Deewiant: I should write a benchmark to try and get pathological performance out of R-trees 20:07:55 So Shiro 2 can beat you on it. 20:10:29 Hmm... you need to make every single non-leaf node overlap with the coordinates you're looking up and then make sure that only the last leaf tried actually contains them, or something close enough to that to be called "pathological". 20:10:34 I'm not sure how possible that is. :-P 20:11:53 Hey, you got worst case O(n), I'll find it somewhere!! 20:12:33 If you come up with something I can switch to R+ trees which should have zero overlap if no leaves overlap... I think. 20:13:12 Well, they have zero overlap anyway, they just duplicate info. 20:13:31 Deewiant: That sounds interesting, so clearly I would be doing you a service by giving you a reason to write that stuff. 20:13:53 Well, it's on my agenda to try a bunch of different data structures for this anyway. 20:14:55 Getting rid of the "scope of this presentation" overlapping will get rid of T-ordering which will massively lower the difficulty of trying a new data structure, and it might improve performance greatly anyway so I need to do that first-ish. 20:15:42 1. R-trees 20:15:44 2. array-based HV/VH tree 20:15:46 3. MX-CIF quadtree 20:15:48 4. bucket PR-CIF k-d tree a.k.a ordinary HV/VH tree 20:15:50 5. balanced 4d k-d tree with representative points 20:16:32 That's my data structures todo. 20:17:28 Deewiant: I have a feeling nobody has figured out how to do this stuff efficiently and persistently :( 20:17:29 elliott: [10:54:33] http://www.youtube.com/watch?v=q_A1GNx0M9M everything is in the internets nowadays. 20:18:15 elliott: Nobody has figured out how to do my stuff efficiently in a dynamic context. :-P 20:19:22 elliott: Your stuff is basically just persistent key-value stores, unless you go the AABB route in which case your stuff is my stuff + persistence which is definitely not figured out, yes. 20:19:46 Deewiant: Right,I'd like some kind of properly-spatial structure. 20:19:51 s/,/, / 20:20:08 Deewiant: I don't think any kind of hash map will scale well to Funge-98. 20:20:38 Something like a hash map storing spatial regions with a quad tree for the regions themselves might be good, but I'd prefer something much fancier in the end. 20:21:25 fizzie: what a good video 20:24:17 elliott: It doesn't get any better than that. 20:24:37 elliott: You can always use the generic techniques to make an arbitrary data structure persistent. 20:25:06 Deewiant: I don't know of any generic way to make an arbitrary data structure persistent without hurting performance... 20:25:15 Isn't that actually known impossible? 20:25:25 elliott: Well, maybe it won't hurt persistence too much. :-P 20:25:27 Er, performance* 20:25:46 Well, it's more that I don't know of any non-totally-naive-and-useless way to do it at all ;P 20:25:49 s/;/:/ 20:25:53 And I can't remember, maybe there's a proven O(log n) lower bound. 20:26:00 (I'm sure there are ways, though.) 20:26:03 I think oerjan knows things about this. 20:26:08 elliott: Watch lecture 1 http://courses.csail.mit.edu/6.851/spring12/lectures/ 20:26:39 Deewiant: That sounds like work. (Okay, maybe later.) 20:26:57 And/or read the notes, and read Okasaki etc :-P 20:26:58 Clearly deriving persistent structures from mutable ones is the totally wrong way around, though. I have a pride-based type system that doesn't allow you to polish a turd. 20:27:08 I have a physical copy of Okasaki! It's just unread. 20:27:18 (Anyway I don't think Okasaki systematically derives persistent structures from mutable ones?) 20:27:56 I also have a physical copy, which is not unread. I'm leafing through it to see if he says anything on-topic. 20:29:25 He refers to path copying and then mentions some newer persistence methods which aren't purely functional. 20:29:39 iirc he does make persistent red-black (and other, splay?) trees where instead of log n mutable updates you just create log n new tree nodes 20:34:54 -!- MDude has quit (Ping timeout: 264 seconds). 20:36:39 -!- zzo38 has joined. 20:36:55 This time frigg was on again 20:36:55 zzo38: You have 1 new message. '/msg lambdabot @messages' to read it. 20:37:00 OK 20:37:02 ?messages 20:37:02 elliott asked 1h 44m 30s ago: Is http://esolangs.org/w/index.php?title=Munching_Squares.pushem&curid=3424&diff=35104&oldid=21006 a correct change? 20:37:07 i have a physical copy of Okasaki! he keeps trying to escape his cage though, may have to put him down. 20:37:48 i mean, i know nothing! 20:39:12 elliott: What was changed? 20:40:27 an extra space 20:40:28 zzo38: Compare http://esolangs.org/w/index.php?title=Munching_Squares.pushem&oldid=21006 and http://esolangs.org/w/index.php?title=Munching_Squares.pushem&oldid=35104 20:40:29 now the "Munching_Squares.pushem = 20:40:29 " 20:40:32 is in a code block 20:40:38 How do I give ghci type allocations anyway 20:40:54 annotations* 20:41:01 I have found code that it fails on without a type annotation, and it's annoying 20:41:38 elliott: I don't think it matters; it is OK either way 20:41:42 Probably 20:41:43 > let f :: Int; f = 3 in f 20:41:44 3 20:41:58 Ah, cheers 20:42:11 FreeFull: except without the "in f" part 20:42:18 > 3 :: Fractional 20:42:19 Expecting one more argument to `GHC.Real.Fractional' 20:42:59 * oerjan detects some type class confusion 20:43:13 > 3 :: Rational 20:43:14 3 % 1 20:43:18 oerjan: The code that fails without a type annotation is pop = state $ \(x:xs) -> (x,xs) 20:43:31 -!- asiekierka has joined. 20:43:35 @where dmr 20:43:35 http://www.haskell.org/haskellwiki/Monomorphism_restriction 20:43:37 FreeFull: :set -XNoMonomorphismRestriction 20:43:51 Funnily enough, similar code for push works without a type annotation for some reason 20:44:00 monqy: Good afternoon, human. 20:44:04 FreeFull: darn the others are fast 20:44:27 FreeFull: It's less funny once you read the link. 20:46:22 oerjan: Yes, they are 20:46:28 oh sweet, i haven't seen a wiki page in talk mode for a while 20:46:39 Also I trust #esoteric more with haskell than #haskell 20:46:42 shachaf: hi 20:47:26 -!- MDude has joined. 20:47:35 Bike: we have http://esolangs.org/wiki/List_of_ideas, which is in mess mode 20:48:00 yeah i've seen that, most of it is more boring than this haskell page though 20:48:08 "A language based on the idea of communism. There would be only one great editor (a wiki or similar) and all programmers would write only one big program that does everything" e.g. 20:48:52 yes it's not the best page 20:48:55 hm i think we discussed that a bit 20:49:41 Though I did learn about Chaitin's "let's compile to diophantines!" paper, so that makes up for it i suppose. 20:50:51 "Known laws of physics are expressable with equations, but what if there are yet unknown laws of physics that can be expressed only as programming languages?" and some of it's just pretty amusing 20:52:27 -!- ais521 has left. 20:54:10 All programming constructs can be expressed with mathematics 20:54:19 you don't say. 20:54:25 Except one 20:54:31 I won't say which one though 20:55:02 (it's actually intercal's mingle operator) 20:55:49 mingle's simpler than select 20:56:20 you can express it as writing the numbers in binary, interpreting them as base 4, multiplying the LHS by 2, adding, then converting the resulting base-4 number back to binary 21:03:45 select * from esoteric_languages 21:04:03 AAAAAAAAAAAAAAAAAAA!!!!!!!!!!!!!!!!!!! 21:04:05 or something 21:07:26 @ty ($ []) . appEndo . getConst . traverse (Const . Endo . (:)) 21:07:27 Traversable t => t a -> [a] 21:07:35 monqy: best function?! 21:08:18 :t appEndo 21:08:20 Endo a -> a -> a 21:08:27 :info Endo 21:08:41 -!- WeThePeople has quit (Changing host). 21:08:41 -!- WeThePeople has joined. 21:09:07 -!- WeThePeople has quit (Quit: Leaving). 21:09:26 :t toList 21:09:27 Not in scope: `toList' 21:09:28 Perhaps you meant one of these: 21:09:28 `Data.Foldable.toList' (imported from Data.Foldable), 21:09:36 :t Data.Foldable.toList 21:09:37 Foldable t => t a -> [a] 21:10:04 :t Data.Foldable 21:10:05 Couldn't find qualified module. 21:10:10 :t Data.Foldable.Foldable 21:10:12 Not in scope: data constructor `Data.Foldable.Foldable' 21:10:31 @src Foldable 21:10:31 Source not found. stty: unknown mode: doofus 21:10:36 grmbl 21:10:37 heh 21:11:18 @src Data.Foldable.Foldable 21:11:18 Source not found. Take a stress pill and think things over. 21:12:04 @src isn't very reliable 21:12:30 @src java.util.Arrays 21:12:31 Source not found. I am sorry. 21:12:36 hmph 21:12:42 @src @src 21:12:42 Source not found. BOB says: You seem to have forgotten your passwd, enter another! 21:12:56 Am I likely to understand implementations of exact real arithmetic in Haskell well enough to port them to Factor? 21:13:12 maybe 21:13:22 you mean computable reals or fixed point or rationals or continued fractions or pixies or what 21:13:27 Sgeo: they're not that bad 21:13:34 I translated one to Verity 21:13:35 Bike, computable reals 21:13:44 (that's the program that took a couple of days to calculate 4 binary digits of pi) 21:13:50 yeah they're not that bad 21:14:41 I reaaally like the state monad 21:14:58 @src lambdabot 21:14:59 Source not found. I can't hear you -- I'm using the scrambler. 21:15:05 Do you like it enough to call it by its true name? 21:15:17 Hint: Its true name doesn't involve the word "monad". 21:15:35 -!- epicmonkey has quit (Ping timeout: 260 seconds). 21:15:45 Actually its true name is "steve". 21:16:06 crikey! 21:16:11 I really like the state steve 21:16:29 Steve doesn't like the state. 21:16:33 Steve: Enemy of the State. 21:16:35 Deewiant: " a completely different implementation using 21:16:36 only a box for the source code and a hash table everywhere 21:16:38 else" 21:16:41 Deewiant: I think this is evil. 21:17:09 elliott: What part? I wasn't expecting it to become public so I didn't name it as cfunge 21:17:26 Deewiant: Oh, I thought it was an implementation you had written yourself for the purpose :D 21:17:38 elliott: No no, it was cfunge 21:17:51 When can we expect dfunge? 21:17:54 * Sgeo gets shot 21:18:06 its called ccbi Sgeo..... 21:18:22 after c is p, don't you know anything about language etymologies! 21:18:33 Pee-funge. 21:19:33 The programming language after C will be called also C; then B and I, respectively. They're named after CCBI, C's precursor. 21:20:17 blasphemy 21:20:23 clearly the /best/ implementation is just to use an array and, upon out-of-bound writes, retroactively change how large it was 21:20:32 (actually don't, that would be hilariously inefficient) 21:21:10 Deewiant: How big is a 32-bit Fungespace again? 21:21:19 elliott: 64 bits 21:21:26 elliott: 2^32 * 2^32 21:21:31 I... suppose that's obvious. 21:21:35 I forget what cells are though. 21:21:38 For two dimensions 21:21:44 32-bit values, right? 21:21:47 -!- zzo38 has quit (Remote host closed the connection). 21:22:05 So it's "only" 64 exabytes. 21:22:14 What's the biggest RAM a supercomputer has these days? 21:22:18 elliott: "A Funge-98 interpreter, ideally, has an addressing range equal to that of its cell size." 21:22:42 elliott: So you can change it up a bit if you want. 21:23:07 Deewiant: But the compatbiility(tm)! 21:23:35 You could do a 16-bit one, it fits in 8 gigabytes. 21:23:42 Or 16 if you want 32-bit cells. 21:24:20 Googling for Befunge TDRS is useless 21:24:29 Try spelling it right :P 21:24:37 Sgeo: TRDS* 21:24:40 Deewiant: Does Mycology depend on >=32-bit cells? 21:24:46 hm i just got my compiler to derive a range type where the integers take three lines to print. sweet 21:24:54 elliott: It shouldn't 21:25:01 No, Google, I did not mean to search for Befunge teds 21:25:08 elliott: It doesn't fit in less than 11 bits but otherwise it should be fine. 21:25:27 apparently there was a TED talk about mushroom superheroics. 21:25:31 rcfunge98? 21:25:49 rcfunge98 . 21:25:49 Titan's total RAM size is 710 terabytes (598 for CPUs, 112 for GPUs) but maybe that doesn't quite count. 21:25:52 s/ \././ 21:26:01 fizzie: Not quite big enough. 21:26:02 elliott: Of course it might do some computations with bigger numbers, not sure about that. 21:27:04 elliott: Note also that e.g. the underload interpreter ripped from fungot which is my Real-World Benchmark™ routinely writes arrays bigger than 64K. 21:27:05 Deewiant: the " who occasionally set the sky on fire" 8-o cries what.... :d 21:27:35 I want to see a Befunge-98 interpreter that passes Mycology but deliberately does not follow the spec completely 21:27:45 That's not difficult 21:27:48 Deewiant: If you're using the underload.b98 from me, it wasn't exactly "ripped from fungot" but more like "the same thing that was later stuffed into fungot". 21:27:48 -!- 1JTAAT864 has changed nick to lightquake. 21:27:49 fizzie: it is non-trivial to convert to tri-graphs right? got that? i'll tell you what went wrong. so to as a variable 21:27:53 That's easy, just fuck up one instruction for a specific constant Mycology doesn't test. 21:27:55 fizzie: Ah, okay. 21:28:14 Deewiant: Eventually Funge-98 interpreters will special-case Mycology and fungot. 21:28:15 elliott: hey! it's too slow for lots of things i hate more than program where i can get really confusing. i don' 21:28:17 (And parts of fungot.) 21:28:18 elliott: my thoughts exactly. there is probably some xmodmap magickery that can remap caps lock to ctrl 21:28:32 elliott: Then I need to write my own benchmarks. :-( 21:29:23 Deewiant: Will special case those, too. In fact they will use the cunning trick of special-casing every Funge-98 program. 21:29:26 Eventually Funge-98 interpreters will pop up a Clippy dialog saying "It looks like you're trying to run fungot! Would you like to run a functionally identical IRC bot written in C instead?" 21:29:27 fizzie: hmm that sounds like a good way to ask this in a more effective way 21:29:32 Deewiant: Does mushspace support n-dimensional stuff? 21:29:36 ISTR you saying no & me being disappointed. 21:29:43 elliott: In theory yes, in practice no. 21:29:57 ("In theory" for an implementation doesn't make much sense I guess.) 21:30:21 elliott: It does 1-3, since those are the ones actually specced in the standard. 21:30:25 fizzie: a program that tries to prove equivalence of C and Befunge programs suddenly seems interesting/hilariously pointless. 21:30:42 Deewiant: What's the theory? 21:31:43 Should I attempt to write an Underload interpreter in Factor? 21:31:59 No; the world would end 21:32:00 sure why not 21:32:05 elliott: It doesn't do anything that's somehow inherently dimension-limited. The worst is that in some cases I've written just the 2-3 nested loops required for up to 3 dimensions instead of the general recursive version. 21:32:49 Deewiant: All that means is "your data structure can theoretically be extended" :P 21:32:57 I'm thinking something that actually lets you pick the dimensions N at runtime. 21:33:16 elliott: You could do that too, by making everything dynamically allocated. 21:33:25 Sgeo: so how's your clojure monads library 21:33:41 Sgeo: that seems like it would be ridiculously easy? 21:33:42 Other than generalizing the mentioned nested loops and such, it shouldn't end up changing much of the code. 21:33:43 Deewiant: Well, it could do fancy stuff if you pick N in {1,2,3}. 21:33:53 Bike, probably 21:34:05 elliott: Right, and it could be done, but I can't be arsed. :-P 21:34:06 i mean factor already has quotation and probably eval 21:34:12 Deewiant: In Shiro 2 I'll probably write specialised implementations for those dimensions and a general, slower one for N-dimensional stuff, and have the code pick which one to use in a typeclassy disptah manner. 21:34:16 elliott: Just about nobody runs anything other than 2 dimensions anyway. 21:34:33 I'm just a bit worried about parsing 21:34:47 parsing... what 21:34:56 Deewiant: IMO publish an RFC on how dimensions >=3 (or was it >=4) should be represented in source files. 21:35:01 elliott: >=4 21:35:09 Bike, parentheses 21:35:09 -!- Gregor has quit (Excess Flood). 21:35:17 -!- Gregor has joined. 21:35:17 that's. really not hard? 21:35:41 elliott: And no. Hell, I don't want anybody to do that. My string loading code is complicated enough as-is. 21:36:23 -!- Gregor has quit (Excess Flood). 21:36:31 -!- Gregor has joined. 21:36:35 It needs a full rethink followed by a partial rewrite but it's annoyingly nontrivial. :-( Or then I'm just doing it stupidly. 21:36:40 Deewiant: You wouldn't have to change your loading code, since you don't support said dimensions. 21:36:57 elliott: I'd have more reason to support them if somebody did that. :-P 21:37:10 Deewiant: Tempting. 21:37:31 Well, maybe not enough. 21:37:55 Deewiant: Say I were to write a little 5-dimensional test program... 21:37:58 Er, 4-dimensional. 21:38:00 5: too many dimensions. 21:38:23 * elliott gets an idea for a delightfully feral fingerprint. 21:38:35 Changing dimensionality at runtime? :-P 21:38:36 DIMS 21:38:38 yep!!! 21:38:56 wouldn't be that hard to implement really 21:39:03 you could just build an entirely new fungespace 21:39:05 and throw away the old one 21:43:48 Can you specify a projection matrix from the old one to the new one? 21:44:26 That could make for some pretty nifty code. Plus you could flip the whole code upside-down or what have you by DIMSing from 2 to 2. 21:46:03 fizzie: I was thinking something like that, yes. 21:46:18 I... need to make sure Deewiant is reasonably likely to implement it first though. 21:46:45 fizzie: (Is there a matrix fingerprint already? Code reuse and all.) 21:46:49 I'm thinking, a funge program can be viewed as a long self-intersecting branching line 21:46:51 Two words: huge pain. :-P 21:47:29 Deewiant: It sounds e-z. The fingerprint would work even if you only support a finite number of dimensions anyway. 21:47:37 DIMSing from 2 to 1... 21:49:53 elliott: 3DSP (a RCS speciality) does some very limited linear algebra that's strictly specialized for R^3 and R^(3x3) and on FPSP values only, so I suppose that counts as a "no". 21:49:59 elliott: But I'd want to do it efficiently. Plus hali will be like ccbi2 in that it'll have completely separate code paths for the supported dimensions, so switching from one to the other would involve something like a longjmp plus converting all the auxiliary crap used in each dimensionality. 21:50:22 Deewiant: You prefer no implementation at all to an inefficient but simple implementation? 21:50:29 Just realized my "brilliant" plan might not work 21:50:40 Supposed to know stack effect at compile time usually 21:50:47 I ... think 21:50:47 elliott: I prefer this not being specced to having to implement it efficiently. :-P 21:50:48 what plan and how is it brilliant 21:51:13 "brilliant", excuse me 21:51:21 To just use the Factor equivalents and run them inside a with-datastack 21:51:43 elliott: Also this could be used to stack overflow the interpreter if I do the latter longjmpy bit simply, i.e. by just calling the main interpretation function again from the instruction. 21:51:51 So: pain. 21:51:54 Deewiant: But if I know the only thing stopping you from considering implementing it is the fact that you believe this will stop me writing a specification (because of my stated desire to have such a consideration before writing a specification), then I'll specify it anyway, which will be equivalent to negating the reason you had to object. 21:52:20 i.e. you think it's (YouIntendToImplement -> ISpecify), but actually it's more like ((ISpecify -> YouIntendToImplement) -> ISpecify). 21:53:22 Well, YouIntendToImplement depends on the spec and how much use it'll see. :-P 21:54:04 How many fingerprints get used beyond their test programs exactly? :P 21:54:18 Two-ish? 21:54:48 So a good test program must count as sufficient use? 21:55:28 Sgeo: you should think carefully about how you'll implement S 21:55:57 it's the main thing that will trip up a naive translation 21:56:35 STRN and FILE are ones I think see a lot of real-world use in the professional Funge-98 programming circuit. 21:56:43 Yeah, it means I need to store the actual code on the stack 21:56:47 Using FILE instead of i and o is so lame. 21:56:55 i and o are the lame ones. 21:57:07 Or, I guess technically there are alternatives 21:57:17 fizzie, professional? You are kidding me? 21:57:17 Hmm, 2^32 bits in 512 megabytes. 21:57:32 elliott: It's more like: if it's used in something that isn't a test/joke/whatever program, YouIntendToImplement gets a significant boost. Otherwise it's not much of a difference. :-P 21:57:33 I was hoping I could have a fingerprint instruction that just gives you a bitmask of the implementation's supported dimensions. 21:57:39 Vorpal: Well, you know, people who write Funge-98 for living. (Yes, I'm just joking.) 21:57:44 Since I don't like something like "either a fixed list or 'I support anything'". 21:57:48 (What if you only support even dimensions?) 21:57:49 Can someone please fix Vorpal's humor detection circuits? They seem to be fried. 21:58:06 Maybe I'll just mandate implementations support arbitrary dimensions! 21:58:11 That would be the Funge-Flexible thing to do. 21:58:29 Deewiant: Oh, and of course since it's the Internet age nowadays, SOCK (NSCK?) are certainly very mission-critical. 21:58:30 Sgeo: they've always been fried; we cannot find spare parts 21:58:33 elliott: For DIMS? Something wrong with reflecting on an unsupported argument? 21:58:51 fizzie: You should use i and o for those too, and run on Plan 9. 21:58:54 Sgeo, I never installed any 21:59:28 Deewiant: Well, DIMS should ideally be a fingerprint for dealing with fungespace dimensions in general. 21:59:37 Deewiant: Querying which dimensions an implementation supports seems like a reasonable operation. 22:00:29 elliott: What would it be useful for? At most I'd think you'd want to query if a particular dimensionality is supported. 22:00:44 Deewiant: You can't read only part of a file with i, and I can't have fungot load the whole babble models, it'd take far too much memory. 22:00:45 fizzie: does moshimoshi have revision control and rss?) and a single ' binary vector' type ( with their research, the latest gambit scheme? or some other implementation? 22:00:59 fizzie: How big are they? 22:01:27 Deewiant: e.g. SuperMycology++ Double Extra Mega Plus has a routine to generate a test program (just with some control flow and some odd movement deltas and testing out fingerprints that write to/read from fungespace and so on) of arbitrary dimensionality. 22:01:44 When an implementation only supports a small, fixed number of dimensions, it wants to test them exhaustively. 22:01:54 But if you support any old thing it'll just pick some random dimensionalities and try those. 22:01:57 Or something. 22:02:03 It seems like useful meta-info in the style of "y", anyway. 22:02:20 Even if it's useless you can still write a Funge Interpreter Diagnostics(tm) program that uses it to print stats. 22:02:27 Well, good luck with that in general. :-P 22:02:59 I think you have to mandate the same thing as y tries to mandate and fails: either an integer or arbitrary. 22:03:17 Or a pair of integers in this case, I think. 22:03:30 So a range [a,b] or [1,infinity). 22:03:38 I guess that works, yeah. 22:03:42 It's ugly, though. 22:03:52 Maybe I can make a "META" fingerprint for interpreter information and stuff it in there instead. 22:03:57 Then DIMS can be pure and perfect. 22:04:12 * elliott wonders what a MTRX will look like and whether it is worth speccing one to base DIMS off of. 22:04:20 *would look 22:04:55 Deewiant: were you hannging around irc.german-elite.net..years ago? can this be? 22:05:06 hagb4rd: Probably not? 22:05:27 Deewiant: Okay, I guess they just might fit, assuming an efficient implementation with very low per-cell fungespace overhead. The irc style would be 196702412 cells in binary mode, and that could be "compressed" at load-time by making the multibyte integers single cells. But swapping styles might be quite slow; and the total set is 655372751 bytes, that'd be a bit iffy on one gig of RAM. 22:05:35 ok.. so it was another deewiant 22:06:13 (Curiously enough, all of fungot-babble would fit on a regular data CD.) 22:06:13 fizzie: 1 ihope: daemon pager bf c compiler. :p like i heard last night. 22:06:20 fizzie: You could split the babblers into multiple files. 22:07:01 I could put each byte in a separate file and then I'd have i that can read an arbitrary byte. That sounds like an idea. 22:07:08 (But yes, I suppose I *could*.) 22:07:11 :-D 22:07:22 (I mean, do a more sensible thing, that is.) 22:07:46 I don't think fizzie is capable of doing something sensible. 22:07:55 There are only 600329 free inodes on the filesystem, I don't think I can make each byte a file. :/ 22:07:58 fizzie: If you can have 4 bytes in a cell instead of making each char a cell, it's pretty much that ~650 megabytes of RAM with my newer stuff, which doesn't seem like "far too much" to me. 22:08:21 (I don't suggest CCBI2 any more though, given some of the bugs I've found in mushspace which should apply to it as well.) 22:08:23 It's a reasonable fraction of the total, though. 22:08:29 (Awayish.) 22:08:44 Deewiant: Hmm, what bugs? 22:09:04 fizzie: (What interpreter does fungot currently use? cfunge still?) 22:09:04 elliott: unoptimized. i don't want the music industry, jazz barely registers on the processor and move it to a better language 22:09:14 elliott: Some old version of cfunge, IIRC. 22:09:16 jazz barely registers on the processor :D 22:09:25 elliott: And some bugs. I can't remember. 22:09:33 real helpful thanks 22:09:47 Well dammit 22:10:08 I did an almost-full rewrite of the string loading algorithm, I can't remember what exactly was wrong with the original 22:10:44 Same for get_next_in which finds the linewise next allocated cell in the given bounds, IIRC 22:10:57 And some smaller stuff somewhere, probably 22:11:31 mmm 22:11:36 I forget what bugs Shiro had 22:12:02 elliott: http://sprunge.us/dXfb 22:12:13 Current git diff in CCBI, I stopped updating it at some point 22:13:33 What does \n without "" even mean? 22:13:50 Same as "\n" 22:13:56 Deewiant: Also: Mangling LLVM bytecode to remove asserts? 22:13:57 You are disgusting. 22:14:08 (OK, not bytecode.) 22:14:10 But I think it stopped working at some point or was deprecated or whatever. 22:14:28 elliott: Not my fault the compiler's "generate no asserts" mode still generated asserts. 22:14:36 D toolchain, etc. 22:14:51 Same for adding alwaysinline with sed because the compiler can't. 22:16:18 I don't know if it's normal to feel a need to use tuples in Factor to maintain some semblance of sanity 22:19:46 -!- Lumpio- has quit (Quit: Updating a 5-month-old Arch installation, wish me luck). 22:21:11 I hope Lumpio- read the news on archlinux.org, or he'll be in a bit of trouble. 22:21:18 Anyway, bedtime --> 22:24:54 Deewiant: What's a sleep? 22:28:29 I think it's a thing you use to tell a thread to do nothing for a while 22:28:43 -!- oerjan has quit (Quit: slippery slope of sleep). 22:31:25 @ty threadDelay 22:31:27 Not in scope: `threadDelay' 22:31:32 @ty Control.Concurrent.threadDelay 22:31:33 Int -> IO () 22:31:39 That's a sleep? 22:31:43 Underwhelming. 22:33:53 -!- zzo38 has joined. 22:38:11 -!- ais523 has quit. 22:47:03 @google microsleep 22:47:04 http://en.wikipedia.org/wiki/Microsleep 22:47:05 Title: Microsleep - Wikipedia, the free encyclopedia 22:47:11 @google usleep 22:47:13 http://linux.die.net/man/3/usleep 22:47:13 Title: usleep(3) - Linux man page 22:50:50 @google isleep 22:50:54 http://www.isleep.com/ 22:50:54 Title: SleepAdjustment.com by iSleep 22:53:37 @google yoctosleep 22:53:39 My parentheses parsing code is turning out ugly 22:53:40 http://www.cnx-software.com/2012/02/page/11/ 22:54:13 @google zeptosleep 22:54:14 http://dis.4chan.org/read/lounge/1257876805 22:54:14 Title: 4chan BBS - Microsleep 22:54:21 Well, that's... better? 22:55:09 No femtosleep or attosleep, and all the picosleeps are real boring. 22:55:36 @google kilosleep 22:55:39 http://s100.photobucket.com/albums/m24/macwitcheeze/?action=view¤t=kilosleep.jpg&newest=1 23:02:19 hmm, the femto- and atto- prefixes mean 15 and 18 (from Danish), but the following prefixes zepto and yocto mean 7 and 8 23:02:45 otoh, I think the four prefixes before that are all synonyms for "small" 23:03:09 -!- asiekierka has quit (Excess Flood). 23:03:21 -!- asiekierka has joined. 23:03:54 And I learn the disadvantages of co-operative multithreading in an interactive environment where I'm likely to write buggy code the hard way :( 23:04:32 Sgeo, what OS are you using? 23:04:33 Had to kill -9 Factor 23:04:53 Vorpal, Kubuntu 10.10, but don't see how that's relevant 23:07:41 kubuntu users are 3x more likely to write buggy code in co-operatively multithreaded interactive environments 23:10:20 -!- zzo38 has left. 23:11:17 elliott, Phantom_Hoover monqy Fiora: Thing not related to Factor! 23:11:25 hi 23:11:34 i don't believe such things exist 23:11:35 hi 23:11:40 tbh i was hoping for a thing related to factor 23:12:24 -!- zzo38 has joined. 23:12:53 -!- Lumpio- has joined. 23:13:41 Sgeo: write a morse-code => english translator as your first underfactor program. 23:14:06 hi 23:14:17 ....Bike's a Homestuck? 23:14:35 Morse code? 23:14:46 hi 23:14:59 hi 23:15:12 hi 23:15:15 i guess ais doesnt want to know how to beat space_hotel 23:15:37 TG: (oh noes you mean hes here?) 23:15:38 TG: (already??) 23:15:51 bike is a homestuck yes 23:15:56 quintopia: is quintopia_a = quintopia_space_hotel 23:15:58 important qs 23:16:11 i dont think so 23:16:21 well you removed quintopia_a right as you added quintopia_space_hotel 23:16:33 there is a symbolic desc of it on the talk page and stuff 23:16:36 and they seem sort of similar??? but quintopia_a is small 23:16:46 yeah they are too similar to have both around on the hill 23:17:28 some day you'll give better feedback on the symbolic description code and i'll encode all the programs 23:17:39 http://esolangs.org/wiki/Talk:Thue_Symbol_Sorting_Theorem ugh, I am pretty sure this is a copyvio 23:18:00 :( 23:19:24 -!- zzo38 has quit (Remote host closed the connection). 23:33:00 Got my parens parser working 23:33:03 It's ugly, but it works 23:34:00 cool, cool 23:37:46 i've just realised that i haven't the faintest idea what homestuck is about any more 23:38:32 wikipedia's description of homestuck is actually amazingly succinct 23:38:42 http://en.wikipedia.org/wiki/Homestuck#Plot 23:38:52 it's the entirety of homestuck explained in 4 paragraphs, like, how is that possible 23:39:42 but yeah I get lost all the time, it doesn't help that hussie jumps all over like crazy so it can take 1000 pages to get back to where we were 23:46:54 I'm glad I read that so I never have to read all of homestuck (how long is it anyway?) 23:48:11 it's like ~5-6k pages so far ish? but most of the pages are just like single pictures 23:48:40 it took me like two weeks to catch up with it but I wasn't going very fast, I'm guessing it's like 30-50 hours to read through depending on your speed 23:49:37 it takes 15 hours if you're vorpal and read it on a computer without flash in one sitting!!!!!!!!! 23:49:51 geez, not playing all the game sections misses a lot of things <_<; 23:49:55 I'm still reeling at that. 23:50:01 and wow. one sitting @_@ 23:50:12 I stopped periodically just to like... get perspective and figure out what was going on 23:50:18 if it was all in one sitting I wouldn't remember a thing 23:50:35 dont worry vorpal doesnt remember a thing either 23:51:02 I used to follow it pretty well. 23:51:30 But I think now it's not really obvious where the plot is actually /going/, although not in a bad way. 23:52:15 (it stopped having a plot months before I stopped reading) 23:52:52 To be fair, I suspect it must've been similarly confusing around the start of the Scratch thread. 23:52:56 it still has a plot :< 23:53:09 We caught up right as the pieces were coming together. 23:55:03 (that's not what I mean but whatever) 23:56:25 dont worry vorpal doesnt remember a thing either <-- I do remember some stuff, and also it wasn't quite as long at that point