00:00:18 what oerjan said 00:01:05 Braber01: it's working with the different name. our wiki itself is fine, but the name server provider for one of the names is closing down. 00:01:21 so you need to use the other address. 00:01:42 do you think my IP will get banned if I convert a 99 bottles bf program to what I like to call forkfork? 00:02:03 baned from 99-bottles-of-beer.net 00:02:14 -!- sebbu2 has changed nick to sebbu. 00:02:24 Sgeo: the concept of dimension as "number of variables you need to describe a shape" is not the same as topological dimension. 00:02:37 Oh 00:02:41 Braber01: i dunno 00:03:33 neither do I but at least I'll have a fun project to do over the weekend. 00:04:30 Braber01: no one will mind if you put it on our wiki, at least. (well not for the swearing, anyhow. there are some who have a burning hate against brainfuck derivatives.) 00:05:13 but thats only for the reason that there are so many brainfuck derivatives that even a smee hee like me knows about them 00:06:06 I think I kind of liked i-hate-your-bf-deritive-i-really-do I thought that article was pretty funny. 00:06:21 there are at least two reasons to hate brainfuck derivatives 00:06:21 Sgeo: but i think if you _really_ want to understand the concept of this as it relates to hyperplane stuff, then algebraic geometry is probably the field for it. 00:06:25 1) there are so many it's getting old 00:06:45 monqy, do you hate me. 00:06:49 2) they're typically really uncreative, just renaming the commands or adding a new command or something like that 00:06:53 Sgeo: what did you do 00:07:02 monqy, made a brainfuck derivative. 00:07:05 :'( 00:07:10 some brainfuck derivatives are good 00:07:14 but 00:07:15 it's rare 00:07:19 By appending an exclamation mark ('!') a command can be repeated, without the need to write the word again. <-- that right there is very clever indeed 00:07:45 itidus20: yeah +!!!!! is _so_ much better than ++++++ :P 00:07:47 I think zzo38 using my BF derivative is not necessarily an indicator of goodness 00:08:12 oh wait this is fuckfuck 00:08:24 so i guess it is a slight improvement 00:08:38 oerjan: but the idea is genius 00:08:43 no it's Trourettes. LOL 00:08:51 ok 00:09:23 fucking tourettes, bitches 00:11:03 itidus20: wait are you actually making a euphemism for "smeg head" :P 00:11:50 oh it's canonical 00:12:04 i don't follow red dwarf much but i saw a youtube of it the other day with that euphemism 00:13:18 i haven't exactly seen every episode either. 00:14:06 i'm no lister.. even though i consider myself quite possibly the least nerdiest in here 00:14:14 that is not saying much 00:15:10 no. no it isn't. 00:15:10 i don't think this room really attracts lister types 00:15:32 oerjan: or you can use a binary encoding so +!?! is really + followed by five copies of it 00:15:42 lifthrasiir: ooh, fancy! 00:15:58 (boob!?! in fuckfuck, of course) 00:16:09 wow..... 00:16:14 ha ha hahahaha 00:16:27 I like tits. 00:16:27 i might never look at !?!?! the same 00:16:47 . . . 00:16:50 that .. is even more genius 00:17:21 now to translate hello world into binary encoded fuck fuck 00:18:18 hello 00:19:00 hi 00:19:02 eek, an elliott 00:19:08 whats 00:19:09 goin on 00:19:14 bad thigns.... 00:19:20 what 00:19:30 elliott: fuckfuck 00:19:35 oh 00:19:36 why 00:19:38 and how do i stop it 00:19:44 $ gcc 00:19:44 gcc: fatal error: no input files 00:19:44 compilation terminated. 00:19:46 -!- kwertii has quit (Quit: bye). 00:19:51 When did they change this error message??? 00:20:00 It's been "gcc: no input files" for DECADES. 00:20:08 Still is on this old version 00:20:32 Gregor: maybe they discovered it had actually killed someone. 00:20:35 $ gcc 00:20:35 gcc: fatal error: no input files 00:20:36 compilation terminated. 00:20:37 weeping 00:22:00 boob!???!!! cock boob!!!?? cock boob!!? cock! boob!? cock tits!????!? cock tits!?!! cock boob!?!?!!? cock tits!!! cock boob!? cock tits!?! cock tits!!! cock tits!????!? cock tits!?!!? cock 00:22:04 great. 00:22:14 so beautiful. 00:22:20 wow. 00:22:33 so fast 00:22:53 * Braber01 is ashamed that I startted something... 00:23:29 is Uniquode still being updated? 00:23:35 ask taneb :P 00:24:50 i recall one from the list of ideas that recommends the use of chinese characters for golfing 00:25:59 Scumbag Taneb makes Uniquode; never gets beyond 256 commands. 00:26:19 17:22:58: "Apple decided to use an archaic object file format for Mac OS X, a variant of the old aout format. This format predates dynamic linking. Apparently without proper staffing, they have to reinvent lots of stuff for their obsolete object format. Had they chosen a current object formats, they could have taken more benefit of the the quality work already done within the GNU project." 00:26:19 17:22:59: -- http://gmplib.org/macos.html 00:26:19 17:23:01: :P 00:26:19 GNUUUUUUUUUUUUU 00:26:33 oerjan: no, he can still combine Uniquode with Unispace 00:27:07 eek 00:27:16 elliott: I love how unbiased that is :P 00:27:49 Gregor: You see, Apple failed to create GNU/Hurd. 00:27:54 SO THEY HAVE FAILED TERRIBLY 00:27:55 BASTARDS 00:28:19 Well, to be fair, they got close, in that they used a microkernel infrastructure, but missed pretty terribly as they put a monolithic kernel on the microkernel. 00:28:38 -!- cheater has quit (Ping timeout: 246 seconds). 00:29:09 19:48:38: Huh 00:29:10 19:48:44: Seems to be special-cased for @messags. 00:29:12 Gregor: It just spell-corrects. 00:29:17 ?pul \f x -> f x 00:29:18 id 00:29:18 We resolved that. 00:29:21 Gregor: That's been the standard means of using Mach. 00:29:28 I resolved it sooner, relativity-wise. 00:29:33 Sadly. 00:29:34 pikhq_: IT'S NOT THE HURD WAY 00:29:39 20:17:25: 4) ... GNU lightning? 00:29:39 20:17:37: There aren't really any good JIT libraries, are there :P 00:29:45 HURD IS A HIRD OF UNIX-REPLACING DAEMONS 00:29:45 Gregor: GNU lightning is pretty good, so is LLVM :P 00:29:52 GNU lightning is good??? 00:29:54 LLVM is better but probably harder to use. 00:29:54 The Hurd way involves not hitting 1.0 for decades. 00:29:56 Gregor: Well, it works? 00:30:19 Racket, GNU Smalltalk and CLISP use it apparently, so it can't be so terrible. 00:30:26 Huh ... 00:30:28 It's probably not very fast though. 00:30:35 That's probably almost fifteen end users. 00:30:36 "It does not provide register allocation, data-flow, and control-flow analysis, or optimization." 00:30:41 Har har har 00:30:43 :P 00:30:55 Racket and CLISP are pretty big :P 00:31:05 Also. I'm pretty sure all the work on Mach-O was done before Apple bought NeXT. 00:31:10 elliott: Yeah, I'm bein' a durp. 00:31:38 pikhq_: I was laughing at how stupid that whole paragraph was, not agreeing with it. Although it is a silly format. 00:31:54 I like the implication that writing a binutils is the HARDEST THING EVR. 00:31:55 EVER. 00:32:04 Presumably because GNU aren't very good at it. 00:32:08 X-D 00:32:08 elliott: Not writing a binutils. 00:32:11 Porting one. 00:32:28 Which *seems* to be one of the few things that's easy with GNU binutils. 00:32:48 The whole thing is based around an object format abstraction library, after all. 00:33:04 20:42:14: I wonder if there's a crazy mix of options that would cause GCC to compile a single function and output the machine code for it, not in any object file format. 00:33:12 elliott: We found one. 00:33:14 Gregor: with -S , filtering and gas options, I suspect so 00:33:23 Gregor: But it'll be SO SLOW :P 00:33:25 No, I'm not going to implement gcc as a JIT, though I desperately want to. 00:33:40 (GNU lightning) "The available backends cover the x86, SPARC and PowerPC architectures." I hope this at least includes x86_64 ... 00:33:57 Bit silly if it didn't. 00:34:08 Gregor: Your template JIT is probably the best you'll get for Fythe without writing something better yourself, I think. 00:34:15 Noooooooooooooose 00:34:16 x86_64 is easy to target from x86-land if you're not retarded. 00:34:19 I mean, LLVM ain't exactly designed for compiling things tiny bits at a time 00:34:28 Which Fythe practically mandates :P 00:34:43 Piffle. 00:34:55 im not sure if i made a mistake converting this in notepad but: fuck boob!??? arse shag boob!!! tits butt shag cock fuck boob!!? arse shag boob!! tits butt shag boob cock boob!!? cock! boob!? cock fuck!? boob!!! arse shag boob!! tits butt shag cock fuck!? boob!??! arse shag boob!??? tits butt shag tits!? cock shag!! cock boob!? cock tits!?! cock tits!!! cock fuck! boob cock 00:34:58 Any optimisation pretty much kills that. 00:35:22 Aside from trivial ones. 00:35:28 My goal was to have fastjit be the baseline, and use something else as the optimizing JIT for oft-called functions. 00:35:32 fastjit itself ain't goin' nowhere. 00:35:38 Right. 00:35:44 I'd just write my own :P 00:35:53 But Idonwanna :P 00:35:58 Sucks to depend on two totally different JITs 00:36:02 Especially interoperability 00:36:21 SpiderMonkey has two JITs and an interpreter :P 00:36:53 Yeah, but I mean "you have to ensure LLVM works on your machine and links in and also that fastjit works on your machine" vs. "you have to check our two related JITs work on your machine" 00:37:13 -!- javawizard has quit (Read error: Operation timed out). 00:37:32 Mmmmm, fair enough, although the slow JIT ought to be optional. 00:37:40 21:53:08: there is no reliable way to have a > bottom always return True, if it looks at the second argument at all 00:37:40 21:53:24: _some_ bottoms can be catched, but not all 00:37:40 21:53:35: and that is not pure code 00:37:46 oerjan: you can do a lot with unamb, mind you 00:38:07 Gregor: Shrug, it's more like one JIT that has two compilers :P 00:38:09 -!- jcp|other has joined. 00:38:46 elliott: Are you referring to SpiderMonkey? 00:39:09 Gregor: No, I'm talking about writing your own slow-JIT 00:39:17 Oh 00:39:35 Bleh :P 00:40:03 OK, time to implement my fork-to-GCC-JIT! 00:40:06 -!- jcp has quit (Ping timeout: 252 seconds). 00:40:32 AKA JWGCCGATI (Just-When-GCC-Gets-Around-To-It compilation) 00:41:02 God, don't :P 00:41:06 -!- cheater has joined. 00:41:14 Does gcc really not have a library after all these years 00:41:20 I know! 00:41:24 It's shocking! 00:41:47 Though either way it's still a traditional compiler in the sense that it writes assembly. So even with a library, it's be a slow piece of shit :P 00:41:49 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .). 00:41:51 *it'd be 00:42:04 I can't wait until gcc stops being a thing that anyone takes seriously. 00:42:09 ^ 00:42:20 Also clang and every other piece of UNIX software. 00:42:27 Wait, that arrow didn't point in both directions. 00:42:31 Darn, I can't put wordsi nto your mouth. 00:46:43 -!- jcp has joined. 00:48:22 >v<^ make sense of that LOL. 00:48:53 oerjan: you can do a lot with unamb, mind you <-- i don't think that will help make a > bottom work 00:49:01 probably not :P 00:49:12 depends how screwy your ordering is :) 00:50:30 do I really want to plug my laptop in? 00:51:11 assuming > is still antisymmetric, a > a and a > bottom need to be different for such an a 00:51:27 Also I was wondering if you including bottom in an Ord instance, or would that require solving the halting problem? 00:51:30 a >= bottom might work only for a the unique top element 00:51:32 *could include 00:51:38 CakeProphet: that 00:51:50 's what i was saying you couldn't 00:52:10 yeah, (inf >= bottom) is perfectly doable 00:52:15 oh we're talking about something I asked a while ago? 00:52:18 okay. 00:52:20 elliott: sup, not inf 00:52:28 or wait 00:52:34 you mean infinity 00:52:35 infinite :P 00:52:37 y 00:52:39 yeah 00:52:42 im alzy 00:52:54 elliott: inf has a rather different meaning once partial orders are involved 00:53:17 although it then does need an argument 00:53:27 i know :P 00:53:30 but im alzy 00:53:47 *lazy 00:54:12 CakeProphet: i logread you, then elliott logread my response to you 00:54:57 Damnit I want a cake but I'm on weight watchers >:( 00:55:19 Braber01: some people here have lately taken to misspell things a lot on purpose 00:55:41 *reverts tO lolcats 00:55:49 *alot 00:55:56 * oerjan hugs alot 00:56:04 I has a bukkit 00:56:07 hi 00:56:30 CAN I HAS STDIO? 00:56:34 no Braber01 no 00:56:34 no 00:56:38 lolcode is banned 00:56:39 help too many #esoteric memes. 00:56:43 im agre with elliott 00:56:44 which is strange because we also frequently correct our own spelling, and sometimes other's 00:56:55 im so aggry with monqy 00:56:56 is aggry a word 00:56:59 i thought it was 00:57:07 CakeProphet: alot is not an #esoteric meme. 00:57:40 I see. 00:57:53 -!- Braber01 has quit (Quit: ZIRC 0.3 - 100% zsh, woot.). 00:57:58 ah 00:58:04 elliott: aggry beads 00:58:08 im uh 00:58:11 so upset at our loss 00:58:24 there are three words in the english language: angry, hungry and aggry. 00:58:30 me too 00:58:43 wellknownfact 00:59:11 im an oldknown fact 00:59:27 i think the misspellings were too much for Braber01 00:59:52 or the lolcode fascism 00:59:58 yes. 01:00:01 its ok we're just too brilliant 01:00:07 debugging Python is so fun 01:00:11 eventually we'll become so brilliant that _nobody_ will be able to stand being in this channel 01:00:15 not even me 01:00:24 last elliott standing 01:00:36 btw is elliott alot? it's suspiciously close 01:00:57 bitching alot 01:01:19 waht 01:01:26 hepl 01:01:46 heelp 01:01:55 heelq 01:02:10 monqy: quantum 01:02:11 funny, it's like someone is shouting, but it's being stopped by my spelling filter 01:02:22 quantum is good 01:02:23 elliott: hi 01:02:42 hi;m 01:03:23 today, i write more shiro code for good mycology adventure aftershave cocaine racketeer 01:04:11 monqy is phantom 01:04:16 hi 01:04:31 HI 01:04:39 hows my cology 01:04:50 can shiro run fungot 01:04:51 monqy: deleting the lines " italy openly propagates irredentistic ideas even in the southern german leagues, which directs, fnord, 01:05:01 monqy: no but soon 01:05:05 i implement everything it wants just bugs??? 01:05:13 bugs... 01:06:21 ugbs 01:10:17 fungot needs a Homespring style 01:10:18 Sgeo: ' ' he or she' is widespread. universal male is widespread ( though becoming less so). --user:cybbecybbe 21:10, apr 28, 2005 ( utc 01:10:28 no 01:11:47 what exactly would the data set be? 01:11:57 are there large corpii of homespring programs? 01:13:53 corpora 01:14:16 01:17:12 I don't think a Roman would understand what that means. 01:17:21 01:17:24 s/Roman/ancient Roman/ 01:17:34 * copumpkin is a modern roman 01:17:53 lies no such thing. If you go to Rome today it is a ghost town. 01:18:16 are the friendly ghoss 01:18:59 friend ghsot, ghost firend, friendhsip ghost, friendship town 01:22:59 the place they call rome today is just an amusement park built around the vatican city and based on asterix comics 01:23:16 CakeProphet: :O 01:23:30 oerjan: it's a pretty grungy amusement park :P 01:24:00 copumpkin: well how do you explain why they made a clown into "prime minister"? 01:24:38 it's just a bit of dark grey humor 01:24:40 http://www.reddit.com/r/worldnews/comments/k1ndd/berlusconi_vows_to_leave_shitty_italy_in/c2gyesv 01:37:38 god bless haskell america 01:39:25 -!- elliott has set topic: It is the 90s and there is time for the requirements of supervision and control of transmissible spongiform encephalopathies, also an Esolang event @ Hel/Finland on 3.10.2011: https://wiki.helsinki.fi/display/lambda/esoteeriset+ohjelmointikielet | god bless haskell america | 12345678 | http://codu.org/logs/_esoteric/. 01:41:26 god bless haskell america 01:45:59 God bless curry. 01:46:28 god bless haskell america 01:46:32 God bless 01:46:48 map (God bless) [haskell america, curry] 01:47:26 -!- GuestIceKovu has quit. 01:48:45 help xpath is dumb 01:49:15 TANK LOSER 01:49:24 tank loser friend ending 01:50:13 friends everyone 01:51:56 pork 01:52:59 oerjan: brtia odsf ks 01:53:10 wow how do people get so bad at programming 01:53:13 I don't understand at all. 01:53:15 practice 01:53:19 learning from you 01:53:50 hey at least I know when to use for loops instead of while loops. 01:56:16 whats a loop 01:56:16 hlep 01:56:45 a low-level concept used before people figured out abstraction 01:57:04 and then still used after people figured out abstraction. 01:57:53 only by irresponsible people 01:58:28 heh 02:02:51 Has anyone used Perl's XS to evaluate Perl code from C? 02:05:24 nope 02:06:43 http://search.cpan.org/dist/perl/pod/perlxstut.pod 02:06:49 http://search.cpan.org/dist/perl/pod/perlxstut.pod 02:06:53 er.... 02:07:00 http://search.cpan.org/dist/perl/pod/perlxs.pod 02:07:21 have fun. 02:07:23 It's not helpful; that's showing it the other way around. 02:07:25 what do you expect from the pod people 02:07:27 IIRC The Camel book has something but I don't want to read it 02:07:40 I'm not entirely sure it would work the other way around. 02:07:44 It does. 02:07:50 You can initialise the perl interpreter from C and feed it code. 02:07:54 I just don't remember how. 02:07:56 I mean you would just want to invoke the interpreter in C right? 02:08:14 instead of using the XS stuff directly. 02:08:30 you can always read the perl source code. 02:08:36 Perl's C API is always called XS, to my knowledge. 02:08:42 Whatever the controlling process is. 02:09:33 oh wait I know how to do it. 02:09:39 system("perl ...") :P 02:09:58 Helpful 02:11:43 #perl 02:11:57 No thanks 02:12:28 Section 21.4. Embedding Perl (Using Perl from C) 02:12:33 Now to get a hold of this 02:12:53 is that the camel book? 02:13:01 Yes. 02:13:13 OReilly - Programming Perl.pdf 4 Mb 02:13:13 Seems a bit small... 02:13:28 trap 02:13:28 trap 02:13:30 trap 02:13:39 Dude, I run a secure-ish operating system. 02:13:46 trap 02:13:54 Are you trying to be annoying? 02:14:23 Aha, here's some info. 02:16:57 He's not using Adobe reader. 02:17:20 http://search.cpan.org/~jesse/perl-5.14.1/pod/perlembed.pod oh this is useful 02:17:44 oh, heh, this has more information than the camel book sample 02:17:47 PERL_SYS_INIT3(&argc,&argv,&env); 02:17:47 lol 02:19:08 http://perldoc.perl.org/perlembed.html same thing I believe 02:19:17 /usr/lib/perl/5.10/CORE/perl.h oh dear god 02:19:22 ...yep 02:19:22 look at that shit 02:19:25 I've seen it. 02:19:39 oh my god it handles plan9 02:19:50 you should look at Configure 02:19:55 jesus christ guys i just want to know the return type of perl_construct 02:20:09 If it makes you feel better, Configure is autogenerated by something that inspired autoconf. 02:20:20 yes but it's still ridiculous 02:20:23 ./proto.h:PERL_CALLCONV voidperl_construct(PerlInterpreter *my_perl) 02:20:23 ok good 02:20:41 "Inspired autoconf". 02:21:04 perl_construct has an inconstructible return type 02:22:01 elliott: are you being irresponsible and using loops right now? 02:22:23 no 02:22:33 Perl_sys_init3(&argc, &argv, &env); 02:22:34 Perl_sys_term(); 02:22:34 ok good they're functions here 02:24:41 it looks pretty easy to call perl subroutines actually. 02:24:47 based on perlembed 02:26:03 but the example doesn't show you how to pass arguments to the subroutine. 02:26:08 just does the no argument case. 02:27:36 also http://perldoc.perl.org/perlguts.html may be of use here. 02:27:46 depending on what you're doing exactly. 02:28:01 Evaluating Perl expressions as scalars and getting the result back. 02:28:24 then yeah perlguts will show you how to convert to-from C-Perl types. 02:28:24 Preferably without maintaining any state between evaluations but it's understandable if that happens. 02:28:51 ...I would think the only way to do that would be to invoke a fresh interpreter each time. 02:28:58 probably 02:29:01 its ok 02:29:05 if state gets maintained 02:36:30 -!- derrik has joined. 02:47:21 -!- sebbu2 has joined. 02:47:21 -!- sebbu2 has quit (Changing host). 02:47:21 -!- sebbu2 has joined. 02:49:49 -!- sebbu has quit (Ping timeout: 245 seconds). 02:51:35 I don't care what the pythonistas say 02:51:46 I'm going to use map when I just need to apply a single function to a list. 02:52:45 They don't speak, they hiss 02:52:59 -!- augur has quit (Remote host closed the connection). 02:53:17 Jafet: oh ho 02:54:07 But functional programming is unPythonic! 02:54:23 apparently. 02:54:30 since there's such shitty support for it. 02:54:31 (just like closures, garbage collection, and everything but C! :P) 02:55:12 man, why do people like Python again? 02:55:16 You can do functional programming in Python! See? See? I mean, it's ugly, and not recommended, but why would you curse Python for something it can do? 02:55:17 /s 02:55:18 is it just because it's easy to code? 02:55:26 That's precisely why. 02:55:30 what's easy 02:55:31 help 02:55:35 It's a bit like Perl but less awful. 02:55:40 * Sgeo might be becoming an ex-Pythonista 02:55:42 snicker 02:55:54 * CakeProphet is an ex-pythonista 02:56:01 Although not sure that Ruby is much better... 02:56:03 I was never a python fanatic 02:56:11 Ruby is like Python but more awful. 02:56:16 yep 02:56:26 more? 02:56:27 Perl is the best of the three. :) 02:56:48 though not perfect by any means. 02:56:58 The implementation actually does hacks to prevent GCC from optimising their undefined behavior in undesirable ways. 02:57:07 Definitely more awful. 02:58:02 It's undefined behavior, why would it matter if it were optimized in some way? Or do you mean C's undefined behavior? 02:58:36 linux does it too; they're in good company 02:58:40 wtf? /usr/lib/libperl.so.5.10 exists, but -lperl doesn't get it? 02:59:16 Sgeo: C's. 02:59:22 Oh 02:59:27 elliott: -l only looks for .so 02:59:33 Well, aren't there other implementations? 02:59:37 pikhq_: what am I meant to do then 02:59:39 -!- derrik_ has joined. 02:59:47 ln -s? 02:59:50 hhehehe 02:59:52 -!- derrik_ has left. 02:59:59 elliott: you could rename the file. :P 03:00:04 or copy it. 03:00:09 copy is probably a better idea. 03:00:12 Also, because Perl is *blithering stupid*, you're not supposed to link it with -lperl at all. 03:00:32 personal insult to cake prohpet 03:00:49 IIRC you're supposed to query the interpreter for the path to the libperl file, and make sure to set the rpath to include the path to the libperl file. 03:00:58 "Haskell is the only language I know of where you can't tell what wheel you just reinvented..." - alpha123 03:01:08 what 03:01:11 Also, because Perl is *blithering stupid*, you're not supposed to link it with -lperl at all. 03:01:15 -!- derrik has quit (Ping timeout: 264 seconds). 03:01:15 elliott@katia:~/Code/shiro$ perl -MExtUtils::Embed -e ldopts 03:01:16 -Wl,-E -fstack-protector -L/usr/local/lib -L/usr/lib/perl/5.10/CORE -lperl -ldl -lm -lpthread -lc -lcrypt 03:01:17 *By default libperl.so.foo does not go in the library search path*. 03:01:23 (first comment on http://stackoverflow.com/questions/7223901/haskell-what-monad-did-i-just-reinvent) 03:01:39 Sgeo: http://timetobleed.com/the-broken-promises-of-mrireeyarv/ has information on Ruby's undefined behaviour 03:01:44 *Perl. Fucking. Hates. You.* 03:01:55 pikhq_: dude, stfu 03:02:00 the above is the documented way to do it 03:02:05 so clearly -lperl is meant to work 03:02:38 elliott: Strange, that actually cannot work on out-of-the-box Perl. 03:02:50 libperl does not install in the library search path at all. 03:03:16 ok but seriously, i'm working with ghc here, what do i need to pass to ld to link with libperl in some VAGUELY portable awy 03:03:17 way 03:03:41 Cry. 03:03:46 not helpful thx 03:04:09 ld-options: /usr/lib/libperl.so.5.10 03:04:09 this works 03:04:32 ghc + perl now that sounds like a match 03:04:40 I agree. 03:04:44 oerjan: implementing the PERL fingerprint 03:04:48 in a not sarcastic way. 03:05:53 elliott: i sincerely hope that is not required for running fungot. 03:05:53 oerjan: as i have, and it began in 57, as bryant still had his glory days ahead of him at that time. 03:06:21 hmm, eval_pv 03:06:24 man JS regex is so bad. 03:06:24 oerjan: nope 03:08:56 elliott: assuming eval_pv is how the eval operator is implemented, then you can maintain state between evals. 03:09:53 perlapi seems to seems to suggest that eval_pv is basically like eval. 03:10:05 no shit 03:10:05 ...vaguely, granted. 03:11:32 also maybe perl_construct is not very expensive so that could be used to reset state. 03:13:05 nevermind that's a bad idea. :P 03:14:05 well, maybe not: http://perldoc.perl.org/perlembed.html#Maintaining-multiple-interpreter-instances 03:14:34 perl_destruct resets everything. 03:16:27 ...Python makes me hate exceptions. 03:17:51 Python makes me hate lots of things. Usually myself, for forgetting how much I hate it in between uses 03:18:19 I think I'm using some stupid Ruby IDE just for the editor 03:18:33 Erm, editor component 03:18:57 I should probably get an IDE for Python as python-mode in emacs is especially not so great with indents. 03:19:29 :/ how difficult could it be to do the right thing with indentation in Python? 03:19:46 well it's just dedenting takes more keystrokes than I would like, basically. 03:21:07 spamming tab a bunch basically cycles through all of the possible indent levels, starting with the highest level 03:21:32 don't you just write some elisp to fix that? 03:21:47 ...well, if I had the time to learn how, sure. 03:21:54 not at the moment though. 03:21:56 like in vim we might use a macro or a :noremap 03:22:15 usually a backspace does the right thing, but not always. 03:22:21 see, as a vim user I long for the cleanliness of elisp 03:22:48 Gah 03:23:02 maybe Zimbu deserves a place in the esolang hall of fame 03:23:05 I was hoping to just pass a bunch of numbers to some google API in a URL to get a nice pretty chart 03:24:01 Do you have to free SVs after using them? 03:24:38 I would think so. 03:24:42 Or will destroying a Perl interpreter do that? 03:24:49 The example doesn't free the result of eval_pv. 03:25:02 hmmm... freeing the interpreter would probably do that, yes. 03:25:10 ....I base this on... nothing. 03:25:16 other than it makes sense. 03:25:46 cur_value = rand 03:25:56 I can't help but thinking how... nonsensical that looks 03:26:03 what is that? 03:26:17 Giving cur_value a random value between 0 and 1 03:26:20 in Ruby 03:26:23 no I mean what lang-- oh okay 03:26:43 well, that makes sense to me, but only because that's exactly what perl does. :P 03:27:08 except 1 is not included. 03:27:26 if you want 0 or 1 in Perl you'd write int(rand(2)) 03:27:30 Erm, didn't mean to imply it's included in Ruby 03:27:49 Just that... my Python instincts are yelling at me that I'm just storing the rand function in cur_value 03:27:54 heh 03:28:16 higher-order functions? that's nonsense. 03:28:31 use references, or, uh, Ruby uses symbols or someting right? 03:28:34 or just blocks 03:30:28 method(:rand) works, and I think there's syntax sugar for that 03:31:02 I think in most "higher-order functions" you'd pass a block that does the calling. 03:31:50 in Perl it would be \rand 03:32:45 gah, eval_pv is too limited 03:32:54 or hmm 03:33:00 you want arbitrary statements? 03:33:15 I need to specify that I want a scalar result 03:33:20 oh hmm 03:33:22 that's default 03:33:22 ok then 03:33:31 eval_sv maybe? 03:33:37 nah, eval_pv is ok 03:35:26 so it always forces scalar? What if you wanted an AV or HV? 03:36:16 (((x)->sv_flags & (0x00000400)) == 0x00000400 ? ((x)->sv_u.svu_pv) : Perl_sv_2pv_flags(my_perl, x,0,2)) 03:36:17 my god 03:36:22 CakeProphet: then you need eval_sv i guess 03:36:53 hmm, SvPVX is ((x)->sv_u.svu_pv) 03:36:54 er.... is there no constant for 0x00000400? 03:37:23 that's cpp output dude 03:37:32 oh nevermind... 03:37:39 sv_pvbyten_force 03:37:39 The backend for the SvPVbytex_force macro. Always use the macro instead. 03:37:41 I thought that was your actual code. :P 03:37:41 what if i didn't ;) ;) ;) 03:37:53 (I should really write C glue for this but I DO WHAT I WANT) 03:38:06 how naughty. 03:39:47 http://perldoc.perl.org/perlcall.html 03:39:50 is this useful perhaps? 03:40:39 oh no. 03:40:40 -!- MDude has changed nick to MSleep. 03:40:51 that's the opposite of what you're doing. 03:41:49 dist/build/shiro/shiro-tmp/Shiro/Fingerprints/PERL.o: In function `s2Lr_info': 03:41:49 (.text+0xac): undefined reference to `eval_pv' 03:41:50 dist/build/shiro/shiro-tmp/Shiro/Fingerprints/PERL.o: In function `s2MP_info': 03:41:50 (.text+0x224): undefined reference to `sv_pv' 03:41:50 ugh 03:42:26 oh, it's Perl_eval_pv 03:42:27 fucking macros 03:43:02 the api docs mention that perl_eval_pv is deperecated, btw. 03:43:06 #define SvPV_nolen(sv) \ 03:43:06 ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ 03:43:06 ? SvPVX(sv) : sv_2pv_flags(sv, 0, SV_GMAGIC)) 03:43:08 s i g h 03:43:10 spelled correctly. 03:43:10 CakeProphet: capital letter 03:43:17 Perl vs perl 03:43:27 ah okay. 03:43:44 sv_nv 03:43:44 A private implementation of the SvNVx macro for compilers which can't cope with complex macro expressions. Always use the macro instead. 03:43:45 hmmm 03:44:17 so what are you doing with these fingerprints exactly? 03:44:33 implementing them 03:44:49 right but for what purpose do they serve? 03:44:58 to be implemented 03:45:00 they are specifications 03:45:25 o_O? okay. not following. oh well 03:46:33 http://catseye.tc/projects/funge98/library/PERL.html 03:46:40 (might need to view source to read) 03:46:54 it exists, CCBI implements it, cfunge implements it, Mycology tests it. so I implement it. 03:48:04 CakeProphet: does this answer your question? 03:48:04 oh okay 03:48:07 yep. 03:48:15 UNDEF: S claims that Perl is already loaded 03:48:15 Segmentation fault 03:48:16 oh good. 03:49:12 gdb? 03:50:08 on a Haskell program? lol 03:50:15 ....oh 03:50:23 right. 03:51:12 this perl.hmtl isn't quite workinge... 03:51:16 how does one debug FFI functions then? 03:51:23 yeah view source to see the whole thing. 03:52:11 CakeProphet: badly 03:52:24 oh good. 03:52:27 why does f98 have perl ffi 03:52:35 monqy: because someone wrote it 03:53:08 like.. is it not possible to set a breakpoint in your C? 03:53:18 or see a stack trace? 03:53:21 CakeProphet: I have no C. 03:53:38 >_>? 03:53:47 That is not a question. 03:53:51 At least, not a coherent one. 03:54:15 I thought you were using C to interface the perl interpreter to GHC/Haskell. 03:54:27 No, I'm using the FFI. 03:54:33 > let (n!) = product [1..n] in (10!) 03:54:34 : Parse error in pattern 03:54:44 :( 03:54:48 oerjan: that's obviously bunk syntax... 03:54:49 elliott: oh, so that doesn't involve writing actual C code? 03:54:52 > let (!) n = product [1..n] in (10!) 03:54:54 3628800 03:54:54 > let (!) n = product [1..n] in (10!) 03:54:55 3628800 03:54:57 :D 03:55:00 CakeProphet: no 03:55:07 foreign import ccall "perl.h perl_alloc" c_perl_alloc :: IO (Ptr CPerlInterpreter) 03:55:07 foreign import ccall "perl.h perl_construct" c_perl_construct :: Ptr CPerlInterpreter -> IO () 03:55:07 foreign import ccall "perl.h &perl_destruct" p_perl_destruct :: FunPtr (Ptr CPerlInterpreter -> IO CInt) 03:55:07 foreign import ccall "perl.h &perl_free" p_perl_free :: FunPtr (Ptr CPerlInterpreter -> IO ()) 03:55:07 ec. 03:55:08 etc. 03:55:24 oh that's uh... fun looking. 03:55:24 elliott: i was checking if ghc supported it, though, i saw a question on stackoverflow 03:55:38 oerjan: neat. 03:56:05 i knew about the _using_ it like (10!) but i was not sure if the extension allowed defining it that way too 03:56:12 (apparently not) 03:56:23 I did not know that GHC supported postfix 03:56:34 it's a flag 03:56:39 unary postfix, that is. 03:56:58 or is it n-ary because that would be sweet... 03:57:04 using it like that is obviously standard haskell. 03:57:06 it's a minor adjustment to section syntax 03:57:15 elliott: obviously 03:57:38 elliott: not quite, standard haskell wants (10!) to have a function type 03:57:50 oerjan: huh, it does? 03:57:51 because it desugars to (\x -> 10 ! x) 03:57:56 well that's just an overly draconian standard :P 03:58:11 well, so ghc relaxes it. 03:58:16 right 03:58:21 Binary Searches should not be going that far off the rails! 03:58:36 wat 03:59:09 MY GOAL WITH THIS BINARY SEARCH IS NOT TO FIND THE AVERAGE BETWEEN MY INITIAL BOUNDARIES FOR THIS SEARCH 03:59:13 * Sgeo decides to bug hunt 03:59:23 I SEE. 03:59:44 You should re-evaluate your goals 03:59:52 (his goal is to find a life partner) 04:00:11 (it could be you jafet) 04:00:16 hm (!10) desugars to (\x -> x ! 10) which is the same as flip (!) 10 04:00:19 :t flip 04:00:20 forall (f :: * -> *) a b. (Functor f) => f (a -> b) -> a -> f b 04:00:36 so what if it used caleskell flip... 04:01:04 this is not necessarily that much of an improvement. 04:01:07 for some reason my parser enters an infinite loop, but I am not sure what is causing it. 04:01:16 I thought it was binary operators but apparently not. 04:01:18 CakeProphet: left recursion 04:01:21 The distribution looks skewed, as I expect 04:01:24 (always a good guess) 04:01:37 Then again, I can't tell whether a distribution is skewed 04:02:22 oerjan: thats where the first alternative is recursive and descends infinitely before the simpler terms are ever checks, right? 04:02:25 yeah, it's not that. 04:02:29 *checked 04:03:16 well, it could be, since I didn't actually implement the binary operator code. 04:03:38 !@#$ 04:03:38 just calling a helper function, similar to the one Parsec has. 04:03:44 Stupid auto-return 04:03:53 cakyep 04:03:55 I auto-returned the result of resetting the simulation 04:03:57 er 04:04:03 CakeProphet: yep 04:04:04 lol 04:04:10 cakyep 04:04:12 NO TAB COMPLETE FOR YOU 04:04:40 D: 04:04:52 Sgeo: what's wrong with that exactly? 04:05:11 I wasn't getting the results of the simulation 04:05:24 Instead getting the "result" of a freshly reset simulation 04:05:50 I don't really understand, if you anted the simulation you could just explicitly return... 04:05:52 Maybe I shouldn't be resetting it in the same method that returns the result 04:05:54 +w 04:06:08 Yes, but I didn't see that I messed it up 04:06:22 @hoogle expressionParser 04:06:23 Text.Parsec.Expr buildExpressionParser :: Stream s m t => OperatorTable s u m a -> ParsecT s u m a -> ParsecT s u m a 04:06:23 Text.ParserCombinators.Parsec.Expr buildExpressionParser :: OperatorTable tok st a -> GenParser tok st a -> GenParser tok st a 04:06:41 Sgeo: oh you're still thinking in Python where assignment doesn't result in anything or whatever, maybe? 04:06:57 I don't... think so 04:07:28 CakeProphet: you're not doing the equivalent of expression = buildExpressionParser table expression, are you? because that i think would infinitely recurse iirc what that means 04:07:49 yes that's pretty much what I'm doing. 04:08:11 though it may be implemented differently. 04:08:38 well, no. 04:08:40 not quite 04:08:49 I am not recursively evaluating expression 04:08:53 I'll show you. 04:09:17 ok :P 04:09:34 because that would have been an error 04:17:00 dear perl api an ultimatum 04:17:03 work or i will an kills you 04:17:05 oh hm 04:17:11 maybe i fail to keep the reference around 04:20:05 why ;m this no work 04:21:32 -!- Jafet has quit (Quit: Leaving.). 04:22:38 oh well/ me scraps it for now 04:22:41 oops i cant type :( 04:29:20 oops 04:34:07 oops 04:42:11 ...wat. operator.__and__ apparently cannot and Nones 04:42:17 but None and None works fine. 04:42:59 oh wait I think __and__ is bitwise. 04:43:09 except it's not doing bitwise and... 04:43:29 oh nevermind it is. 04:43:49 > Nothing .&. Nothing 04:43:50 No instance for (Data.Bits.Bits (Data.Maybe.Maybe a)) 04:43:50 arising from a use... 04:44:27 boolean and is operator.and_ 04:44:34 you sure are confusing operator lib. 04:46:50 dammit theatress,f 04:47:34 {0.0...0.1=>5, 0.1...0.2=>72, 0.2...0.3=>76, 0.3...0.4=>158, 0.4...0.5=>194, 0.5 04:47:34 ...0.6=>187, 0.6...0.7=>148, 0.7...0.8=>89, 0.8...0.9=>64, 0.9...1.0=>7} 04:47:37 -!- augur has joined. 04:47:50 There's no way to just paste those results into some Google thingy and see what it looks like, is there? 04:48:23 maybe i should implement MODE, the most painful fingerprint EVR 04:48:24 EVER 04:48:27 Although I guess it looks very bell curve-y 04:48:43 CakeProphet: view-source:http://catseye.tc/projects/funge98/library/MODE.html look at this shit 04:48:53 The Q "Toggle Queuemode" instruction toggles an internal flag called 04:48:53 queuemode. When queuemode is active, cells are popped off the 04:48:53 stack from the bottom instead of the top.

04:49:02 YES GREAT I LOVE FINGERPRINTS THAT JUST CHANGE THE ENTIRE SEMANTICS OF THE LANGUAGE 04:49:11 lolwat 04:49:29 ALMOST AS GREAT AS TRDS 04:50:00 use feature 'say switch'; 04:50:11 except now befunge and more obfuscated! 04:50:18 or... whatever funge-98 is 04:50:28 a family of languages 04:51:09 -!- Jafet has joined. 04:51:20 do you currently have a system that allows you to make huge changes to language semantics like that? 04:51:24 nope 04:51:31 i just need to abstract out push/pop but sodjfsdjfoi 04:51:32 I know in Haskell this requires a bit of forethought. 04:51:40 nah, I can easily do it 04:51:44 TRDS will be way harder 04:51:48 MVRS probably even moreso 04:51:56 FNGR will be annoying too 04:51:56 !wacro 04:51:59 SAR 04:52:02 what about SAR? 04:52:04 TRDS is time travel 04:52:06 http://www.rcfunge98.com/rcsfingers.html#TRDS 04:52:21 MVRS is multiverse, basically a bunch of fungespaces that shit runs in, http://www.rcfunge98.com/rcsfingers.html#MVRS 04:52:33 and FNGR is just a "switch around loaded fingerprint instructions and shit" fingerprint 04:52:33 BUT 04:52:39 it assumes the wrong semantics for fingerprints 04:52:44 fingerprints push each instruction, not the fingerprint as a whole 04:52:57 so basically you have to change the entire fingerprint push/pop system when FNGR is loaded 04:52:57 maybe you just like 04:52:59 not implement those. 04:52:59 and fix it on unload 04:53:11 CakeProphet: there are programs using them, Mycology tests most of them 04:54:05 oh I see. 04:54:10 what do you see 04:54:24 I see that you want your implementation to be complete, basically. 04:54:41 it could be worse, I need to implement WIND portably 04:54:49 hmm, actually that's not so hard 04:54:52 ....portably? 04:54:57 that sounds like an oxymoron. 04:55:00 what will be harder to implement portably 04:55:01 is 04:55:04 Why is what I thought would be a weird distribution normal? 04:55:08 "portable windows extensions" 04:55:11 Or at least, it looks normal at a glance 04:55:15 "MSGQ"0x44d534751SysV IPC Message Queues(RCS) 04:55:15 "SMEM"0x534d454dSysV IPC Shared Memory(RCS) 04:55:15 "SMPH"0x534d5048SysV IPC Semaphores(RCS) 04:55:21 those will be hard to do portably. 04:55:25 "UNIX"0x554e4958Some Unix access functions(RCS) 04:55:26 as will this. 04:55:29 but i shall. 04:55:43 I'm sure there's /some/ Windows API to switch user 04:56:16 you should use your perl interpreter for REXP 04:56:29 nah, it's obviously meant to be posix regexps I think 04:56:32 instead of PCRE which is lame. 04:56:37 or posix regexps which is even more lame. 04:56:44 but okay. 04:56:49 STANDARDS COMPLIANCE IS GOOD 04:56:51 rcfunge fingerprints may suck but I'm not going to misimplement them just to be better 04:57:06 "FORK" 0x4464F524B 04:57:06 T( -- pid flg)Fork new process 04:57:06 can't wait to do this portably mmm 04:57:18 it's not that bad since i can just like serialise state and spawn but still 04:57:24 well doesn't Haskell do forks portably? 04:57:32 *GHC 04:57:32 not _that_ kind of fork. 04:57:39 doing fork() on Windows is basically impossible 04:57:45 but spawning a process works 04:59:13 do you already have SUBR? 04:59:35 ....ew FOBJ 04:59:44 -!- augur has quit (Remote host closed the connection). 04:59:47 I don't have SUBR yet, no. 05:00:17 http://www.rcfunge98.com/rcsfingers.html#MACR 05:00:18 fuck my life 05:31:05 Hey, people of #esoteric, here's a language for you: http://timmaxwell.org/pages/monad-embed/index.html 05:31:28 People of #esoteric who are not elliott, feel free to give the author feedback. 05:31:36 Gosh! I have never seen that page before in my life! 05:32:57 a new way of using monads, eh? 05:38:46 shachaf: I see you don't want right-by-definition feedback. 05:38:50 :P 05:39:03 pikhq_: ? 05:39:21 shachaf: All of elliott's opinions are right, by definition. 05:39:29 Oh. 05:39:53 pikhq_: I didn't say elliott shouldn't give feedback. 05:40:03 In fact, I already told him to do so, in another channel. 05:40:14 I am the Keeper of the Right. 05:40:15 Asking twice seemed silly. 05:40:19 Nobody else may have the Right. 05:40:47 > Right now 05:40:49 Right now 05:41:03 :t now 05:41:04 Not in scope: `now' 05:41:09 > now 05:41:10 -!- ive has quit (Quit: leaving). 05:41:10 Not in scope: `now' 05:41:17 :( 05:41:27 "When C++ is your hammer, every problem looks like your thumb. 05:41:27 " 05:41:44 > now 05:41:45 Not in scope: `now' 05:41:48 > now 05:41:50 Not in scope: `now' 05:41:54 shachaf ruined everything 05:41:54 monqy: shachaf is a shameless cheater 05:42:22 oerjan: Excuse me? 05:42:25 I am now cheater. 05:42:29 ...Not. 05:42:32 I'm *not* cheater. 05:42:38 PROVE IT 05:42:38 Ugh, he's going to get highlighted now. 05:42:59 shachaf: that is... a problem? 05:43:06 sha​chef 05:43:17 Sounds like a problem to me. 05:43:46 This channel is actually for esoteric people, not esoteri languages, right? 05:43:51 That would explain the assortment you've got in ehre. 05:43:55 shachaf: fouwf avkugefreølevf abekh 05:44:07 shachaf: That's an unfortunate result of the latter. 05:44:13 Well, sometimes unfortunate. 05:44:37 can someone enlighten me as to the difference between /usr/lib and /usr/local/lib? 05:44:46 CakeProphet: Former is OS, latter is system. 05:44:48 yes, there is a local in there 05:44:55 OS manages former, system administrator latter. 05:45:05 ah okay. 05:45:05 also an extra /, although its position is ambiguous. 05:45:10 so then apt-get installs to /usr/lib? 05:45:16 or? 05:45:18 not? 05:45:18 Yes. 05:45:21 okay. 05:45:31 hm strictly speaking it could be an extra ocal/l 05:45:35 The latter is for diet versions of libraries. (lo-cal, yo see.) 05:45:51 ..... 05:45:58 these jokes are so bad. 05:46:18 CakeProphet: They're like the Power Glove. 05:46:26 (It is SO BAD.) 05:47:57 or perhaps the _second_ l is the original, making it an extra loca and /l 05:48:48 but there is no doubt as to who the original pedant-for-hire of #esoteric is 05:49:01 quintopia: wait, who? 05:49:25 and also, why haven't i been paid 05:49:41 oerjan: you, of course. you would never miss an opportunity to state the obvious for humor value, and then discourse about it for ten more minutes 05:49:50 and you are paid 05:49:52 in silent yuks 05:50:01 (and occasional real ones from gregor) 05:50:07 puns =/= pedantry 05:50:21 stating the obvious =/= puns 05:50:32 don't like it, leave 05:50:39 that's a really weird smiley you guys use 05:50:44 yeah 05:50:49 we're frowning in both directions 05:50:50 simultaneously 05:50:55 it's due to our hyper-dimensional nature 05:50:59 thats no frown 05:51:05 thats how i smile 05:51:08 ever since the stroke 05:52:07 i did not know strokes could do that 05:53:05 oerjan: Maybe it was a... keystroke? 05:53:21 a key event, ok 05:53:52 no, i mean, ever since that awful billy squier song came out, i've been unable to truly smile 05:54:11 fizzie: How's jitfunge :P 05:54:13 oh. good like i have no idea what song you are referring too, then. 05:54:25 ew, grammr 05:54:29 and spling 05:54:36 grandma and spelunking 05:54:41 a novel 05:54:53 that sounds like it could be readable 05:55:00 I am now cheater. < NOOOOOOOOOOOOOoooooooooooooooooooooooooooooooooooooooooooooooo 05:55:01 cheater: You have 1 new message. '/msg lambdabot @messages' to read it. 05:55:17 shachaf would make a nicer cheater than the one we have now. 05:55:21 Can we apply for a transfer? 05:55:33 surely someone here remembers that song...it was on the small soldiers soundtrack...surely someone remembers that movie...it was probably worse than the son 05:55:34 Oh, there's a spider here. Hi spider. 05:55:36 g 05:55:37 but brain transfers are so complicated 05:55:50 quintopia: wow i think i remember small soldiers........ 05:55:51 you cannot. 05:55:53 yes i do 05:55:56 elliott: Sorry, I'm deeply embedded in #haskell-blah as my off-topic channel of choice. 05:55:59 Sadly cheater is in there too. 05:56:12 "sadly" 05:56:18 shachaf: He's quieter in here. Just sayin', we have benefits. 05:56:25 And a great retirement plan, too. 05:56:36 elliott: On the other hand you talk about esoteric languages all the time. 05:56:40 elliott: you remember it existing or you remember the movie itself? if the latter, my many condolences. 05:56:45 elliott: In #haskell-blah, C++ is considered an esolang. 05:56:45 shachaf: That... 05:56:52 shachaf: Where on earth did you get the perception that we tend to be on-topic? 05:56:58 Apart from my Shiro babbling which is more about the Haskell. 05:57:10 quintopia: A little bit of both. 05:58:24 is haskell-blah good 05:58:50 It lacks the Holder of the Rightness. 05:59:04 worst chanel 06:02:04 * shachaf wonders if #esoteric-blah etnds to talk about esoteric languages. 06:02:18 #esoteric-blah is usually used for botspam. 06:02:21 Or at least it was, years ago. 06:02:37 -ChanServ- 1 freenode-staff +voOtsriRfAF [modified 2 years, 12 weeks, 4 days, 20:53:47 ago] 06:02:40 Also freenode stole it off me? 06:02:43 Jerks. 06:03:20 Your nick has only been registered for shachaf: Yes, because I only got it back then. 06:03:58 elliott: i think #esoteric was changed to freenode-staff too 06:04:00 shachaf: he has been named "elliott" for like 16 some-odd years though. fun fact. 06:04:09 shachaf: Previously I had it for ages, then someone managed to steal it off me (with some kind of bot, said the freenode staffer; I'm not sure I buy that). 06:04:22 But now it is back to its rightful owner, me. 06:04:29 All other elliotts can just suffer. 06:04:35 cable 06:04:36 i miss alise 06:04:39 elliottt 06:04:39 Not elliottt! 06:04:44 Elliotttttttttttttttttttttttttttttttttttttttt. 06:04:47 That's me. 06:04:50 elliottt is the best of all the elliots. 06:04:52 elliotttcable 06:05:05 I wonder whether I should try and sell this to elliotttcable again. 06:05:08 are there any other elliottts 06:05:09 He seemed quite willing to buy. 06:05:19 He didn't seem to like the sound of five hundred dollars though. 06:05:48 Ask for bitcoins. 06:05:54 It's the way of the future. 06:06:08 I'm not sure his political leanings are aligned with that. 06:06:09 65 btc 06:06:32 (Though I certainly don't claim to understand the American right-wing.) 06:08:06 I wonder who the richest bitcoiner is, in terms of bitcoins. 06:08:15 That should be calculable from the public data, I think. 06:10:04 Also: Does nobody care about any actually interesting alternative currencies now that Bitcoin is so big? I haven't seen anyone mention Ripple in years. 06:11:44 #haskell-blah is working on implementing one 06:12:06 I'm sure it'll do wonderfully. 06:12:11 Ŧ 06:13:28 so bitcoin is not actually interesting? i think "catching on enough to work" is damn interesting. 06:14:22 FSVO work. Anyway, it's essentially a digital gold standard, which is incredibly boring. 06:14:55 "Everyone agrees that this scarce but useless resource is incredibly valuable, feels smugly superior over fiat currencies for all eternity" is a yawn-inducing story. 06:17:15 the only reason i yawned is because you used the word yawn and seeing yawn in a sentence when you are in a yawny mood is automagically yawn-inducing despite the story actually being pretty cool and not boring at all yawn. 06:18:26 So how do bitcoins fit into your post-apocalyptic libertarian paradise? 06:19:29 i'm going to collect a whole bunch of them and bury them on a private island where i will become benevolent dictator of Zombie-Free Land 06:19:55 so called because it will the be the only place free of zombies 06:26:55 -!- sllide has joined. 06:33:45 ?hoogle [a] -> ([a], a) 06:33:46 Numeric floatToDigits :: RealFloat a => Integer -> a -> ([Int], Int) 06:33:50 hmph :P 06:33:57 oerjan: what's a nice way of (init xs, last xs) 06:34:00 (nice = fast) 06:34:32 i'm not convinced there is a faster one 06:34:42 oerjan: um not scanning the list twice? 06:35:13 hm 06:35:17 foo [x] = ([], x); foo (x:xs) = let (xs',y) = foo xs in (x:xs',y) 06:35:18 that's ugly though 06:36:06 actually it's (reverse (init xs), last xs) but I doubt that can be optimised more 06:36:19 foo [x] = ([], x); foo (x:xs) = let (xs',y) = foo xs in (xs'++[x],y) 06:36:56 elliott: um of course that can duh 06:37:09 how? 06:37:11 (reverse (init xs), last xs) is tail recursive 06:37:23 um hmm 06:37:25 it is? 06:37:32 hmm 06:37:44 oh right 06:37:46 -!- Patashu has joined. 06:38:11 foo l = foo' l []; foo' [x] r = (r, x); foo' (x:xs) r = foo' xs (x:r) 06:38:20 right 06:38:58 there we go 06:42:08 oerjan: now design me a more efficient stack structure :) 06:42:11 s/:)/>:)/ 06:42:15 typo :D 06:43:38 oerjan: now design me a more efficient stack structure :) <-- there is an oxymoron in that sentence somewhere 06:44:25 wat, howso 06:44:42 implementing funge98 sounds painful, a thing i do not want to do 06:44:48 oerjan and design maybe 06:45:05 olsner: also, efficient 06:45:08 maybe i would be fine with implement an old befunge,,, one without pain,, 06:45:35 oerjan: but my current one is so lame :( 06:45:44 data StackElems = (:-) {-# UNPACK #-} !Value StackElems deriving (Show) 06:45:44 it's literally just a micro-optimised stream type 06:45:53 well plus a length field 06:46:01 so i can know how many real values are present 06:46:06 elliott: NOT MY FIELD OF EXPERTISE 06:46:09 oerjan: :'( 06:46:10 :'( 06:46:17 I should probably try Data.Sequence 06:46:23 but I dunno 06:46:30 it doesn't seem like it'd be a massive benefit 06:46:56 > let f = span (not . null . tail) . filter (not . null) . tails; g x = let (a,b) = f x in (head <$> a, head . head $ b) in g [1,2,3,4,5] 06:46:58 ([1,2,3,4],5) 06:47:05 I'm sure that's the efficientest. 06:47:35 fizzie's writing completely point-free functions; is he off the: deep end? Experts disagree. 06:47:45 But the prevailing opinion is that he has no: hope now. 06:47:56 And that his indoctrination is: complete. 06:47:59 Am I doing the colont hing right? 06:48:02 Colont hing. 06:48:07 my name 06:52:31 -!- GreaseMonkey has joined. 06:59:36 -!- Patashu has quit (Ping timeout: 252 seconds). 07:07:13 Actually now that I look at it, maybe it could be a bit more pointless. 07:07:15 > let f = ((head <$>) *** head . head) . break (null . tail) . tails; in f [1,2,3,4,5] 07:07:17 ([1,2,3,4],5) 07:07:36 fizzie: Nnh, but, arrows. 07:14:45 @hoogle (a -> b) -> (c -> d) -> (a,c) -> (b,d) 07:14:46 Data.Graph.Inductive.Query.Monad (><) :: (a -> b) -> (c -> d) -> (a, c) -> (b, d) 07:14:56 What an obvious place for it. 07:15:08 Also that's one angry-looking operator. 07:15:13 :t (***) 07:15:14 forall (a :: * -> * -> *) b c b' c'. (Arrow a) => a b c -> a b' c' -> a (b, b') (c, c') 07:15:26 I mean, it's an okay operator, for functions. 07:16:46 are (|||) or (+++) ever useful 07:16:51 duno 07:17:01 :t (|||) 07:17:02 forall (a :: * -> * -> *) b d c. (ArrowChoice a) => a b d -> a c d -> a (Either b c) d 07:17:08 :t (+++) 07:17:09 forall (a :: * -> * -> *) b c b' c'. (ArrowChoice a) => a b c -> a b' c' -> a (Either b b') (Either c c') 07:17:57 -!- sllide has quit (Read error: Connection reset by peer). 07:18:05 I can sort of imagine them being useful 07:18:11 for functions of course 07:18:57 :t either 07:18:59 forall a c b. (a -> c) -> (b -> c) -> Either a b -> c 07:19:19 for functions, ||| is either it seems 07:20:15 oh right 07:20:24 either is useful 07:20:37 back to only imagining about +++ 07:25:01 hmm, this could surely be expressed more nicely... 07:25:38 now im couriuos 07:25:43 monqy: ? 07:25:48 curiosyu 07:25:52 about what is it 07:26:02 oh 07:26:23 I'm just trying to express a really simple game in FRP, and I have this really unsatisfying expression of gravity that depends on a game tick event 07:26:48 player :: Vec -> Behavior Player 07:26:49 player pos = accumB (Player pos (0,0)) (gravity <$ tick) 07:26:49 where gravity (Test p v) = Test (p .+. v) (v .+. (0,1)) 07:26:56 and i'm just thinking......can this be done.......more elgelgantly..... 07:27:05 s/Test/Player/ 07:27:37 * oerjan learns something surprising about the andromeda galaxy http://spluch.blogspot.com/2007/01/size-comparison-of-andromeda-galaxy-and.html 07:28:12 monqy: +++ is sort of dual to *** 07:28:21 yeah 07:28:38 but I'v enever had to do anything like that to eithers 07:28:46 so it is all up to imagineation 07:29:40 oerjan: wow, that's cool 07:29:51 i wish it was easily visible 07:30:01 now i want to see it :( 07:31:36 almost as cool as frogs 07:32:30 i want frogs in my night sky 07:37:09 frp is am hards 07:38:10 i wish i knew frp ;_; i a,m try frp soonbut finishing other thigns first 07:40:48 wow, operator has no logical and. 07:40:54 both __and__ and and_ are bitwise. 07:41:19 player :: Vec -> Discrete Player 07:41:19 player initialPos = Player <$> pos <*> vel 07:41:20 where pos = accumD initialPos ((.+.) <$> changes vel) 07:41:20 vel = accumD (0,0) (collision $> (.+. (0,1))) 07:41:20 collision = (/= (9,9)) <$> changes pos 07:41:20 ok this is starting to get better... 07:41:29 I guess it needs to take a list of things it can collide with... 07:42:37 CakeProphet: hi what 07:42:51 monqy: just me trying to write functional code in Python. 07:42:57 :t none 07:42:58 and finding that it is not well supported 07:42:58 Not in scope: `none' 07:42:59 :t any 07:43:01 forall a. (a -> Bool) -> [a] -> Bool 07:43:13 ?pl all . map not 07:43:14 all . map not 07:43:16 oh hm 07:46:35 :t all . (not .) 07:46:36 would none be something like (fmap (fmap not) any) 07:46:36 forall a. (a -> Bool) -> [a] -> Bool 07:47:27 player :: Vec -> Discrete Vec -> Discrete Entity 07:47:27 player initialPos collider = Entity <$> pos <*> vel 07:47:27 where pos = accumD initialPos ((.+.) <$> changes vel) 07:47:27 vel = accumD (0,0) (changes falling $> (.+. (0,1))) 07:47:28 falling = 07:47:30 (\p q -> p .-. (0,1) /= q) 07:47:32 <$> pos 07:47:34 <*> collider 07:47:36 this looks right but is wrong :( 07:48:10 what is this code for? 07:48:20 game 07:48:27 "a really simple game" - elipt 07:48:41 - a few minutes ago 07:48:43 similar to the one we were discussing before? 07:48:43 - monqy 07:48:49 no 07:48:57 oh okay. 07:49:09 THERE ARE ENTITIES SO I WAS SUSPICIOUS. 07:49:19 whats entity 07:49:21 I am suspicious of things so vaguely named. 07:50:00 eek, an entity in the channel 07:50:06 oh no 07:51:56 madnir 07:58:09 -!- oerjan has quit (Quit: Bye!). 07:58:26 rip oerjan 07:58:28 died as he lived 07:58:30 fighting crime 08:14:03 -!- nooga has joined. 08:23:46 you know a library has bad code when I can rewrite it to be faster. 08:30:30 uh, is there even such a thing as a left-associative prefix unary operator? 08:30:55 !!x as right associative = !(!(x)) 08:30:59 !!x as left associative = ??? 08:31:16 (!(!x)) same thing. 08:31:41 !!x isn't necessarily equal to x. 08:31:47 C is intuitionistic! 08:31:56 ..I make no mention of what ! is 08:32:04 but yes, that's true. 08:32:13 No, just referring to a #haskell discussion. 08:32:24 oh yes of course. 08:32:38 It's like a #haskell away from #haskell in here. 08:32:43 God bless haskell america. 08:33:12 @localtime elliott 08:33:13 Local time for elliott is Thu Sep 8 09:34:00 08:33:19 What a silly command. 08:33:21 Is that your localtime? 08:33:30 The class method [...] mentions none of the type variables of the class [...] When checking the class method: [...] In the class declaration for [...] ;________; 08:33:36 I'm... not sure how much I trust this computer's clock. 08:33:41 @localtime 08:33:45 Local time for monqy is Thu Sep 8 01:35:07 2011 08:33:46 @localtime lambdabot 08:33:47 I live on the internet, do you expect me to have a local time? 08:33:53 How rude. 08:34:18 @localtime EgoBot 08:36:17 Car Crush II is a thrilling high speed 2-D driving 08:36:17 game. This game has got new concepts and ideas. Again made in QBASIC and DirectQB. You have to drive through an extremely challenging track and play well enough to achieve a high score. Enemy cars in the game are extremely dangerous. They will try to slam into your car and inflict serious damages, so be a bit careful. 08:36:31 sounds extreme 08:36:38 and u 08:36:38 "be a bit careful" is definitely the best part. 08:36:38 h 08:36:40 thrilling 08:36:46 Not too careful. Just a bit. 08:37:37 so i'm considering using not using a typeclass for this thing but I'm afraid it would get messier 08:37:42 what is the thing 08:37:55 typeclasses are never the answer don't do it n;o 08:38:02 (Typeclasses are sometimes the ansewr.) 08:38:22 it would probably be better to use a normal record but...mess... 08:38:30 what is it 08:39:14 i want multiple ui ends for a thing and the signature is right now a typeclass 08:39:41 today on esoteric: monqy attempts to be as vague as possible so that nobody can help him 08:39:48 exactly 08:40:05 would you have to create a new dummy type just so you can make an instance 08:40:06 like 08:40:08 data Gtk 08:40:10 instance UI Gtk where ... 08:40:14 yes that's what i'm doing right now 08:40:17 yeah no 08:40:19 make it a record 08:40:25 is there any way to clean it up 08:40:29 make it a record 08:40:32 i mean 08:40:34 clean record 08:40:39 how is it not clean 08:42:08 hard to describe :( 08:43:06 monqy: show class 08:43:44 its incomplete :( I'm just worried about having to pass the record around everywhere in the cases where the type system would do it if it's a class?? 08:43:54 like theres 08:43:59 the first three lines 08:44:00 class UI a where type Key a :: * getKey :: IO (Key a) 08:44:04 oh no it got condensed 08:44:07 into one line 08:44:10 when i pasted it 08:44:26 monqy: since you have to do 08:44:28 data Gtk 08:44:33 instance UI Gtk where ... 08:44:39 monqy: you would have to pass around the dummy Gtk value _anyway_ 08:45:01 what's with the Key thing though, sounds like you could eliminate that 08:45:32 the next line might explain it 08:45:33 a bit 08:45:36 keyToCommand :: Key a -> Command 08:46:02 e.g. hscurses represents keys differently than gtk?? 08:46:09 * elliott diagnoses you with overcomplicating it syndrome 08:46:12 :( 08:46:16 what should i do help 08:46:20 since you can't examine values of (Key a) except via the other methods 08:46:23 you don't need it at all 08:46:27 for instance that class is equivalent to 08:46:33 class UI a where getKey :: IO Command 08:46:38 (note lack of "a" occurring because it's dummy) 08:46:39 so 08:46:43 data UI = UI { getKey :: IO Command } 08:46:47 obviously a key can do somewhat more maybe 08:46:58 but that's fine, just define an abstract key type that would be all the class methods taking (Key a) 08:47:05 data Key = Key { keyName :: String, keyCommand :: Command } 08:47:09 data UI = UI { getKey :: IO Key } 08:47:16 suddenly clean 08:47:51 the reason i had it that way was becuase i was afraid of the pattern (keyToCommand <$> getKey) because i am irrational fears 08:48:19 how does that help you avoid that pattern? 08:48:23 that gives you that pattern exactly 08:48:26 that's the only way to use yours 08:48:52 but yeah seriously, the point is that your library can never examine the (Key a) values, so it's identical, from your point of view, to a record that contains the results of every function you could apply to it, from the class 08:48:58 i think i was thinking defining it generally for UI a?? i'll simplify it anyway 08:49:05 and if you create that record, you'll realise that you never actually use the a in UI 08:49:09 and it can be a trivial data type 08:50:05 well there are other parts too...and i'm afraid if i simplify all of them i'll lose valauble things...or have to duplicate more code than with that example 08:50:35 ending up making the sad empty type anyway and type families 08:50:50 monqy: http://sprunge.us/gDXW 08:51:01 monqy: "lose valuable things" <-- how can you? the translation is literally an isomorphism 08:51:19 it is impossible to lose anything because everything you could do with the overcomplicated, awkward design is possible with the data type design 08:51:45 * elliott transformed a typeclass over a dummy empty type with type families into a two-element data type with no existentials in Shiro and it helped things massively 08:54:38 monqy: basically if you use the version which requires: a dummy empty data type being passed around everywhere; pointless type families; more compliacted error messages; longer code to implement a UI 08:54:41 this debug output is getting pretty furious. 08:54:57 monqy: over the identical-in-the-literally-identical-sense, simple record types that cannot possibly longer your code 08:54:58 then the bear 08:55:00 of hope 08:55:01 will be sad 08:55:03 :( 08:55:12 i;m going to use the records one don;t worry 08:55:32 right now i am just being sad about not thinking of useing more records than one; _; 08:55:33 IM WORRYING 08:55:37 THE WORRYING WILL NEVER STOP 08:55:41 typeclasses are still useful if you want other data types to interface with your code easily. 08:55:46 monqy: IT IS OK I HAD TO UNLEARN IT TOO 08:55:57 CakeProphet: That's... well, it's a sentence. 08:56:34 monqy: I think the hardest part of Haskell is forcing yourself to not try anything fancy at all ever until you try functions and data types. 08:57:15 for example, Ord is nice to have because you can just pass your types into any Ord-accepting function, instead of wrapping it in some ord structure. 08:57:44 typeclasses are not completely useless? WOW REALLY :P 08:57:57 is cakeprohpet aware of the context i suspect not..... 08:57:58 ...yes I'm just discussing HOW they are useful. :P 08:58:20 not the specific problem no. Just that you guys are talking about typeclasses and data types being isomorphic. 08:58:41 please...you have no idea what the context is at all stop... taking things we say out of context and trying to disprove them 08:58:56 .......I am not trying to disprove anything? 08:59:12 there's nothing to disprove. 08:59:29 then why are you saying 08:59:29 things 08:59:48 to like, I dunno, talk about it in detail? 09:00:01 I wasn't aware this was #esoteric-debate 09:00:03 it's funny because that wasn't what we were talking about 09:00:22 also: since when wasn't it??? 09:01:33 since always? 09:02:26 * CakeProphet does not say things on this channel with the intent of always refuting or proving someone else wrong. 09:05:09 in any case, elliott mentioned that typeclasses can be translated to ADT and that in many cases it simplifies the design. I was providing an example of where the opposite is true. That's... pretty much all. 09:05:16 i never mentioned that sorry 09:05:20 i was talking about one specific case 09:05:26 exists =/= forall 09:05:38 "in many cases" =/= forall 09:05:48 never said that 09:06:56 okay fine. 09:07:29 I guess I shouldn't bother. 09:11:57 -!- CakeProphet has set topic: intelectrical property | It is the 90s and there is time for the requirements of supervision and control of transmissible spongiform encephalopathies, also an Esolang event @ Hel/Finland on 3.10.2011: https://wiki.helsinki.fi/display/lambda/esoteeriset+ohjelmointikielet | god bless haskell america | 12345678 | http://codu.org/logs/_esoteric/. 09:12:05 why is 9 and 0 excluded from the number list? 09:12:18 unnecessary 09:12:48 who needs them 09:13:05 I assume the reason they're up there is because elliott's number keys are broken. 09:13:25 but maybe 9 and 0 work fine. 09:13:35 they do 09:13:43 why doesn't 0 on the left of 1 anyway 09:13:46 this has bugged me forever 09:14:11 -!- ais523 has joined. 09:14:14 -!- ais523 has quit (Changing host). 09:14:14 -!- ais523 has joined. 09:14:19 * CakeProphet never uses the numpad 09:14:22 what 09:14:25 neither do I 09:14:27 how is it relevant 09:14:33 maybe if I were like an accountant or something 09:14:37 and punched in numbers all day. 09:14:39 to a spreadsheet 09:14:41 then I might adopt it. 09:15:08 that sounds like hell 09:15:40 -!- Patashu has joined. 09:15:42 it's not too different from what programmers do... 09:15:54 it's not too different from what programmers like you do, maybe 09:16:01 except we have to think about what we're typing. 09:16:22 thinking a smaller difference than typing is a similarity 09:16:27 the wonderful world of hell 09:17:42 elliott: I'm not really sure that makes any sense, but I don't really appreciate it either. 09:18:30 Well, if you think programming is like that, you can't be doing very interesting programming. 09:18:51 it's similar in that you are confined to one place typing for hours 09:18:55 is basically what I was saying. 09:19:28 but that's not the hellish part 09:19:30 programming is interesting. why else would I be here? 09:20:02 programming is usually fairly awful, things not doing what I want them to do 09:20:12 monqy: programming can be its own special hell. :) 09:20:30 that's when people make me do things I don't want to do 09:20:38 right. 09:20:59 people intentionally vague, _perhaps not vague enough_ 09:21:05 but if you have a degree of pain tolerance, then even that sort of programming can be enjoyable. 09:21:13 ahahahah no 09:21:47 have fun making money then... 09:21:58 I'm scared of that 09:22:11 it's really not so bad, you just can't be so stingy. :P 09:22:24 I guess there might be a sort of joy in some cases, but it is a very bad joy 09:22:50 there's always academia I suppose. 09:23:11 if you have the money or the welfare state for that. 09:23:22 academia scares me too 09:23:39 why's that? 09:23:43 reasons 09:23:48 ah. 09:24:26 monqy: well, then there's always doing something amazing that makes you rich or at least somewhat well-off. 09:24:33 better start now. 09:24:44 whats amazing 09:24:54 ...if I knew I would be working on it. :P 09:27:24 monqy: well if you go into academia you could always design a language or something. 09:27:35 instant money 09:27:42 well, sure. 09:27:47 enough money to live off of. 09:27:50 would it be a good language 09:27:58 I dunno, would it? 09:28:03 would it be new and exciting and fresh 09:28:13 presumably 09:28:23 would it solve problems 09:28:23 the idea with academia is that you produce original research. 09:28:35 I'm afraid of not being cool enough for that 09:28:53 I'm also afraid of parts of academia that aren't that 09:29:00 if you know of something that makes you think 'surely there's a better way!' 09:29:01 DON'T YOU SEE? YOUR FEAR IS WHAT SHACKLES YOU, SIR. 09:29:05 and you feel strongly about it 09:29:06 go into academia 09:29:16 now i have to go into academia 09:29:40 well it's that develop practical software of some kind. 09:29:43 +or 09:29:58 or find a different source of income and program as a hobby. 09:30:24 everything is terrible 09:30:30 nah 09:30:36 maybe i will make a living off of being dead 09:30:48 ..... 09:31:14 maybe this guy will allow me to use him as a reference, so that I can get a better paying job. 09:31:23 instead of my current zero work experience state. 09:31:41 work experience terrifies me 09:32:01 you can use open source experience on a resume, if you're worried about how to get started. 09:32:17 or freelance work, which is the route I'm going. 09:38:37 Yo elliawtt, I heard u mad, so I put all the things in your things, so u can mad while u mad? 09:40:01 shachaf: It's ok; now _you_ hate yourself. 09:40:23 elliott: No, as a matter of fact, I'm rather pleased with myself. 09:40:37 For now, maybe. 09:40:45 ...I suppose that's not strictly disjoin from self-hatred. 09:40:51 But eventually, you will feel the virus inside you. You will realise the horror you have caused. 09:40:52 Endohatred. 09:41:01 And it will evaporate your sense of self-worth. 09:41:07 u mad? 09:41:11 Or at least this is what _should_ happen to people who say u mad. 09:41:23 u mad! 09:41:29 Wow, you're right. It's happening already. 09:41:33 'u mad' is possibly the worst internet meme 09:42:03 unless someone knows of a meme more engineered towards debate ending 09:42:07 /poisoning 09:42:21 u mad? 09:42:38 a little 09:42:39 * shachaf realizes he's brought himself down to cheater's level. 09:42:41 * shachaf mad 09:42:48 shachaf, u mad? 09:43:19 shachaf: Enjoy your self-destruction. 09:43:25 u mad? 09:43:31 AARGH IT'S SPREAD 09:43:34 * shachaf will take elliott down with him. 09:43:42 * cheater burns corpses 09:43:45 WE ALL MAD 09:43:47 WE ALL MAD!!! 09:43:49 * shachaf mad, I tell you, mad! 09:43:50 no u 09:43:55 NO U 09:44:18 < totally not mad. you sai i'm mad? u mad? aargghhgh 09:44:25 elliott: What's your localtime? 09:44:33 shachaf: mad:mad 09:44:41 Mad mad mad mad, u, mad u, mad mad. 09:44:41 +MAD,)) 09:44:45 +MAD,00. 09:45:26 Well, we're reaching new heights of discourse here. 09:45:35 If height is measured by seeing how low something's sunk. 09:45:40 thank you shachaf for this interesting experience. 09:46:07 Universal mutually assured destruction. 09:46:18 u mad? 09:46:34 * cheater fights the urge. 09:46:47 hi 09:46:49 i'm back from 09:46:51 I wonder if there's a meme so bad that it literally does cause complete mental breakdown in anyone who uses it, but spreads so rapidly that they use it anyway. 09:46:52 not paying attention 09:46:57 @trollcoins shachaf +50 09:46:58 Unknown command, try @list 09:46:59 (Oblig. joke answer: religion) 09:47:08 hyuk 09:47:19 -!- Jafet has quit (Ping timeout: 245 seconds). 09:47:24 elliott: That depends on what you call "mental breakdown". 09:47:26 elliott, iphone 09:47:38 Religion is in many ways beneficial to its host. 09:47:49 Note the "joke" part of "oblig. joke answer" :P 09:48:01 -!- Jafet has joined. 09:48:02 religion does wonders in activating the placebo effect 09:48:20 Hello ais523, u mad this fine day? 09:48:23 elliott: hey I disagree with your very serious answer. 09:48:23 Oh god it's unstoppable. 09:48:32 It's like a rash. I must rip off all my skin. 09:48:33 as well as in unifying the masses by limiting their potential severely 09:48:37 incidentally, there was an experiment recently in which people with irritable bowel syndrome were given placebos, and told they were placebos but would work anyway 09:48:40 and they did indeed work anyway 09:48:49 haha 09:48:54 elliott: maybe this...is your answer... 09:48:57 I love the placebo effect 09:49:12 the scientists running the experiment were pretty surprised 09:49:18 ais523, irritable bowel has a strong psychological element though 09:49:19 perhaps the participants just didn't know what a placebo was 09:49:20 ais523: Did they test this by using a control group and giving them placebos? 09:49:21 I wish the placebo effect worked for really useful things. 09:49:25 shachaf: Hahaha 09:49:28 cheater: it does, that's why they were testing on that 09:49:31 it's not like it would cure a bacterial infection i think 09:49:35 Like, curing cancer by placebo. 09:49:38 That would be really useful. 09:49:40 shachaf: tests /of/ the placebo effect typically are compared to not using anything at all 09:49:41 elliott: perhaps one could treat air as a placebo 09:49:53 CakeProphet: One could do that, if one were trying to make no sense at all. 09:49:55 elliott: and then breathing automatically invokes a placebo effect of whatever desired. 09:50:02 ais523: Note the "joke" part of elliott's "oblig. joke answer" above. 09:50:05 i'm sure you've you seen children in africa with stomachs full of air 09:50:14 shachaf: Does that enable joke mode for the rest of eternity? 09:50:21 elliott: Just for this channel. 09:50:25 So no harm done. 09:50:25 shachaf: I'm not discussing elliott's answer 09:50:28 Well, that's been on since the start. 09:50:31 ais523: Nor am I. 09:50:43 Hey, you're ais523 from #nethack. 09:50:50 No, really? 09:50:51 i have a leftover slicehost VPS. can i use it to run DF? 09:50:53 so the fact that elliott made a joke doesn't cause everything said after that in the channel to be humour value only 09:50:56 There's so many ais523s going around. 09:51:02 elliott: it makes just as much sense as a sugar pill creating a placebo effect... 09:51:07 I saw an ais523 over there too 09:51:09 that way 09:51:14 Do you know toft? 09:51:16 * shachaf knows toft. 09:51:20 shachaf: luckily both channels are on Freenode, so it's kind-of easy to verify I'm the same ais523 in each case 09:51:22 german author 09:51:23 -!- derdon has joined. 09:51:27 and I know of toft, but haven't interacted with him/her much 09:51:36 Oh. 09:52:25 At any rate, I, too, was making a joke. 09:52:33 preflex isn't in this channel. :-( 09:52:39 * shachaf mad 09:52:52 Nor is mauke. Get him back. 09:52:53 They used to be. 09:52:55 elliott: hey, I think shachaf may be someone who can be placed in a channel with both you and Vorpal and all three of you won't get each other's jokes 09:52:57 Does preflex follow mauke around everywhere? 09:52:59 Like a pet. 09:53:06 An IRC pet bot. That's adorable. 09:53:17 * ais523 pats fungot on the head 09:53:17 ais523: 6. as seen above, any attempt to insert them. user:thatsothatso 01:29, 18 september 2006 ( utc 09:53:31 I used to have a pet bot, but then it died, because i killed it 09:53:32 hmm, looks like it's in wikipedia mode 09:53:33 fungot's chained to a stick because of its volatile nature. 09:53:33 elliott: it has come under criticism for it. --user:ghcoolghcool 06:15, 28 november 2007 ( utc))) 09:53:40 That stick is #esoteric. 09:53:48 isn't fungot in other channels too 09:53:49 monqy: there seems to be about wilson, but there are many points worth mentioning that eisenhower was facing fnord that november and wanted everything looking smooth and fnord. i have created the universe. though buddhas are skillful in helping all fnord beings, their power is limited by the fnord and the fnord. 09:53:59 monqy: if only there were some way to check. 09:54:03 haha, the sigs don't get fnorded? 09:54:11 presumably because they're repeated so much 09:54:21 ^style europarl 09:54:21 Selected style: europarl (European Parliament speeches during approx. 1996-2006) 09:54:25 I think fungot is in #scheme? I remember I visited there and fungot was therE?? 09:54:25 monqy: unfair practice occurs when an airline that has made the european parliament around two years ago, the sequence of responses is correct. 09:54:26 ais523: Who's Vorpal? 09:54:37 channels : #esoteric 09:54:42 shachaf: A monster... of boringness... and despair. 09:54:43 monqy: not currently 09:54:44 whois doesn't work like that 09:54:44 someone who typically idles in this channel 09:54:47 although he isn't here atm 09:54:48 Or that, yes. 09:54:56 CakeProphet: whois doesn't work like that here 09:55:09 oh, hmmm... 09:55:11 indeed not. 09:55:12 elliott and Vorpal are known for not understanding the other's brand of humour 09:55:21 I _understand_ Vorpal's, it just isn't funny. 09:55:23 monqy: I recall previous times whois would show me all channels. 09:55:25 Vorpal is the one who goes eh a lot. :p 09:55:28 elliott: Example? 09:55:35 do I go eh a lot 09:55:40 eh. 09:55:47 shachaf: I, um, do you know AnMaster? I am really having trouble explaining Vorpal, I mean, a priori. 09:55:53 elliott: It sounds to me like u just mad 09:56:00 I just the maddest. 09:56:08 dead 09:56:09 * shachaf is not familiar with AnMaster 09:56:14 * CakeProphet has the best humor of all. 09:56:16 Darn, so you don't know him at all. 09:56:24 You will just have to... imagine. 09:56:30 i have the humour trohpy 09:56:32 ais523: Explain Vorpal to shachaf or he might mad. 09:56:40 elliott: I tried 09:56:42 elliott: You ought to go to sleep. 09:56:46 "good at jkoe" 09:57:02 "good at jkoe" is a good motto. 09:57:08 Is it a motto? I'm not sure what it is. 09:57:08 Good at jkoe and doesn't afraid of anything? 09:57:18 thats me 09:57:26 it says so on my the humour trohpy 09:57:40 I think Vorpal is a pretty cool guy. eh tells jokes and doesn't afraid of anything. 09:58:08 * shachaf hates jokes. 09:58:11 Is that a good start> 09:58:14 s/.$/?/ 09:58:33 shachaf: Sounds like u might be a tad mad. 09:58:47 This is really quite liberating, just being a horrible person. 09:58:53 elliott: Go to sleep. 09:59:01 * shachaf assumes elliott lives in EDT. 09:59:09 I'm horrible in my own special way, or maybe someone else's way too, I haven't bothered to check 09:59:16 Assumptions are great things. 09:59:27 * CakeProphet lives in EDT and NEEDS NO SLEEP 09:59:29 no such thing. 09:59:43 6 AM is afternoon for me. 09:59:54 What even _are_ timezones, anyway? 10:00:02 standards. 10:00:03 I ask the questions on everyone's minds. 10:00:08 You know that yellow blob in the sky? 10:00:19 * shachaf worries that he's using words unfamiliar to elliott. 10:00:26 You mean... eggs? 10:00:31 Right. Eggs. 10:00:38 Okay, eggs. 10:00:57 how do ehggs in the sky 10:01:03 is that how where you live works 10:01:08 Just the yolks, yo. 10:01:30 So egg yolks float around in the sky, and sometimes they disappear. 10:01:37 When they disappear, we call that "breakfast" or "morning". 10:01:44 Yes. I have, at times, been sufficiently sleep-deprived to imagine such things. 10:01:46 Then we're awake until they come back. 10:01:53 Thank god for the great frying pan in the sky. 10:01:55 And that's what a time zone is. 10:01:58 I tend not to hallucinate 10:02:11 * shachaf hallucinates lovely classical music when he's tired. 10:02:21 maybe I just haven't deprived myself enough 10:02:37 yop\\\ 10:02:39 I suggest fasting. 10:02:43 Also, slowing. 10:02:44 good idea 10:03:10 !wacro 3 5 10:03:12 MCW 10:03:15 wacro 10:03:27 miserable crummy wacro 10:03:45 MCW is a perfectly believable acronym. 10:03:45 Now that I know how to use Perl's C API, maybe I'll make mcmap use it as its embedded language. 10:03:46 Note: I won't. 10:04:04 elliott: you definitely should. 10:04:27 And because you won't what you should, you are unethical. 10:04:36 I won't what I should 10:04:43 correct. 10:05:19 elliott: You should come to #haskell-blah, yo. 10:05:26 We make fun of people who aren't us. 10:05:37 sounds like a cool place 10:05:45 Hmm, the last time I did that cheater got banned. 10:05:48 Sure, I'll give it a shot. 10:05:48 the only moral tribalism is my tribalism 10:06:03 banned????? 10:06:13 :o 10:06:17 were you naughty 10:06:22 :'( 10:06:33 monqy: Yes, I was so naughty that they banned someone who isn't me. 10:06:42 Whereby they I mean oerjan. 10:06:52 oh I misread 10:06:57 maybe you can ban cheater again 10:07:05 elliott has been established to be naughty from his lack of regard for Perl's C API suggestions to use macros in place of direct function calls. 10:07:12 shameful and tasteless, honestly. 10:07:20 @quote monochrom 10:07:21 monochrom says: The Three Laws of Types. (1) Must protect programmer. (2) Must obey programmer, when not in conflict with (1). (3) Must protect computer, when not in conflict with (1) or (2). 10:07:32 @quote monochrom 10:07:33 monochrom says: "Monad is about computation." "Our company is about synergy." "iPod is about coolness." Godawful postmodernism nothingness. 10:07:56 elliott: Next step is to /part #esoteric. 10:07:58 @quote monochrom 10:07:59 monochrom says: Don't wrap your head around haskell. Immerse! Wrap haskell around your head. 10:08:02 @quote monochrom 10:08:02 wow my company is about synergy too 10:08:02 monochrom says: premature generality is the root of OOP 10:08:08 @quote monochrom 10:08:08 monochrom says: just add #! /usr/bin/runghc to your haskell file. then type errors occur at runtime only. 10:08:17 Hah. 10:08:21 shachaf: But that's a bad step. 10:08:27 @quote elliott 10:08:28 elliott says: Top universities now employ people to watch infomercials all day to find the latest mysteries. 10:08:31 @quote elliott 10:08:32 * shachaf guarantees less mad 10:08:32 elliott says: i'm here to prove theorems and compile code and I'm all out of code 10:08:35 @quote elliott 10:08:36 elliott says: Only two things in the universe are certain: Death, and two of the libraries you've decided to use taking different types of ByteString. 10:08:37 @quote elliott 10:08:38 elliott says: Only two things in the universe are certain: Death, and two of the libraries you've decided to use taking different types of ByteString. 10:08:39 Ahhh, ego. 10:08:50 @quote monqy 10:08:51 No quotes match. My pet ferret can type better than you! 10:08:53 * shachaf regularly @forgets his quotes from lambdabot. 10:09:04 @quote shachaf 10:09:05 shachaf says: boost::lambda: The ultimate error message. 10:09:10 `quote 10:09:14 555) fizzie: i, myself, will bring an end to all. 10:09:15 ?remember shachaf * shachaf regularly @forgets his quotes from lambdabot. 10:09:15 Okay. 10:09:26 @forget shachaf * shachaf regularly @forgets his quotes from lambdabot. 10:09:26 Done. 10:09:33 `quote gaping 10:09:35 Neat. Orderly. Very well. 10:09:36 617) Deewiant: How do you go through life without seeing at least one gaping anus, that's what I want to know 10:09:45 CakeProphet: Hey, it's a legitimate query. 10:10:17 is haskell-blah being a good place I'm tempted to join 10:10:37 elliott: of course it is. 10:10:46 monqy: Only if you like Haskell and simultaneously have no desire to talk about it. 10:11:02 wow that suits me perfectly. 10:11:13 me too 10:12:17 Wow, I can't believe I missed an opportunity there. 10:12:24 Yo elliawtt, I hird u mad, so I put all the things in your things, so u can mad while u mad? 10:12:30 :| 10:12:49 u not even mad serious jelly? 10:13:02 I see your conditions only continue to deteriorate. 10:13:09 Soon u will so mad that there will be nothing but the mad. 10:13:17 forever mad. 10:13:21 Aargh. 10:13:25 :) 10:13:43 -!- itidus20 has quit (Ping timeout: 260 seconds). 10:13:44 i'm furious 10:14:12 I am great sad that itidus20 as parted. 10:14:50 If 4chan never existed, would the internet be notably different? 10:15:13 there is no such thing as internet without 4chan. 10:15:20 if there were no 4chan then something else would have taken its place. 10:15:26 That's what I assumed 10:16:23 apparenty I can magically make things true by saying them. 10:16:24 You think this is a botiecall?? 10:16:33 ..... 10:16:33 When i get kinky, i have been known to engage in watersports... Does that turn you on as well? 10:16:50 Oh murr 10:16:51 i hate it when i get stuck with chatting with a bot! 10:17:06 i;m cant stop laughign 10:17:07 stop what? 10:17:34 Hey elliott, me and lambdabot need some alone time together... Eyebrow waggle, eyebrow waggle 10:17:45 Thank god for /query 10:18:07 @hoogle a -> a -> a -> a 10:18:08 Network.BufferType buf_append :: BufferOp a -> a -> a -> a 10:18:08 Language.Haskell.TH CondE :: Exp -> Exp -> Exp -> Exp 10:18:08 Language.Haskell.TH.Syntax CondE :: Exp -> Exp -> Exp -> Exp 10:18:22 @hoogle a -> a -> a -> a -> a 10:18:23 Text.Regex.Base.RegexLike MR :: a -> a -> a -> [a] -> Array Int a -> MatchResult a 10:18:23 Text.Parsec.Error showErrorMessages :: String -> String -> String -> String -> String -> [Message] -> String 10:18:23 Text.ParserCombinators.Parsec.Error showErrorMessages :: String -> String -> String -> String -> String -> [Message] -> String 10:18:41 never enough parameters! 10:20:43 @hoogle a -> a -> a -> a -> a -> a 10:20:44 Text.Parsec.Error showErrorMessages :: String -> String -> String -> String -> String -> [Message] -> String 10:20:44 Text.ParserCombinators.Parsec.Error showErrorMessages :: String -> String -> String -> String -> String -> [Message] -> String 10:20:44 Control.Monad liftM5 :: Monad m => (a1 -> a2 -> a3 -> a4 -> a5 -> r) -> m a1 -> m a2 -> m a3 -> m a4 -> m a5 -> m r 10:20:57 are you looking for something 10:21:05 I don't like these approximate types. 10:21:07 that hoogle gives. 10:21:22 :t undefined :: a -> a -> a -> a -> a -> a 10:21:23 forall a. a -> a -> a -> a -> a -> a 10:21:37 CakeProphet: those are the whole point of hoogle 10:22:09 elliott: to give you answers that don't match what you're looking for? 10:22:24 because you really wany a -> a -> a -> a -> a -> a 10:22:29 where wany means want 10:22:50 yes, if I didn't I'd type a -> b -> c -> d -> e -> f 10:23:12 no you don't 10:23:17 nobody wants a -> a -> a -> a -> a -> a 10:23:28 that's not even the point though. 10:23:44 who cares the point is bad 10:24:14 the most matchy appear at the top 10:24:40 there's really not much of a difference at all except now you can enter things that are like but not exactly the types you want? 10:24:48 where now is hoogle 10:24:51 I suppose. 10:25:26 ?hoogle (a -> b -> c) -> (a -> b) -> a -> c 10:25:27 Data.Function on :: (b -> b -> c) -> (a -> b) -> a -> a -> c 10:25:27 Data.Data gmapQl :: Data a => (r -> r' -> r) -> r -> (d -> r') -> a -> r 10:25:28 Control.Parallel.Strategies parZipWith :: Strategy c -> (a -> b -> c) -> [a] -> [b] -> [c] 10:25:34 Darn, it didn't find ap :P 10:26:13 I wouldn't expect it to. 10:26:52 Why not 10:27:07 because that's not the type of ap. 10:27:17 :t ap :: (a -> b -> c) -> (a -> b) -> a -> c 10:27:19 forall a b c. (a -> b -> c) -> (a -> b) -> a -> c 10:27:22 :t ap 10:27:23 forall (m :: * -> *) a b. (Monad m) => m (a -> b) -> m a -> m b 10:27:45 CakeProphet: ap meets that type very well, thank you very much. 10:27:52 :t ap (undefined :: a -> b -> c) 10:27:54 forall a a1 b. (a -> a1) -> a -> b 10:29:00 @hoogle m (a -> b) -> m a -> m b 10:29:00 Control.Applicative (<*>) :: Applicative f => f (a -> b) -> f a -> f b 10:29:00 Control.Monad ap :: Monad m => m (a -> b) -> m a -> m b 10:29:00 Control.Applicative (<**>) :: Applicative f => f a -> f (a -> b) -> f b 10:29:22 hmmm... 10:29:30 I suppose it /should/ show ap. 10:29:45 as you may not always know what you're looking for. 10:29:56 and be really specific when you want something general. 10:30:32 s/know/know the type of/ 10:30:42 obviously you don't know what you're looking for because you're searching for it. :P 10:34:01 fungot 10:34:03 CakeProphet: madam president, regarding the report by mr rosado fernandes, and in order to restore national control in europe of an industrial strategy for europe'. those who oppose it, when the system was greatly improved in 1999 when the revised system was adopted by the european commission' s proposal, a motion for resolution we now have between mr cox and mr david martin. it leaves parliament in a single market, the europea 10:35:07 the europea 10:35:33 -!- Jafet has quit (Quit: Leaving.). 10:51:32 -!- CakeProphet has changed nick to dons. 10:51:42 -!- dons has changed nick to CakeProphet. 10:53:35 -!- elliott has changed nick to totallyNotAScam. 10:53:40 -!- totallyNotAScam has changed nick to elliott. 10:54:41 -!- CakeProphet has changed nick to BritneySpears14. 10:55:40 -!- BritneySpears14 has changed nick to CakeProphet. 10:57:10 -!- brisingr has joined. 10:57:14 Nooooooo. 10:57:14 hi 10:57:16 Okay fine you can stay. 10:57:25 -!- itidus20 has joined. 10:57:28 hi 10:57:31 itidus20: weeeee 10:57:44 fungot: hi 10:57:45 CakeProphet: i voted against the lannoye report gives a generally favourable verdict on two commission communications, seeking to migrate from one country to another. in any event, we in this parliament is ensuring that work is taxed less and the more developed agricultural areas rather than face paralysis and stagnation at the hands of the council. 10:57:49 hi 10:58:55 ^ ff7 10:58:58 ^style ff7 10:58:58 Not found. 10:59:00 ^style ff7 10:59:00 Selected style: ff7 (Full script of the game Final Fantasy VII) 10:59:01 I have a limited comprehension of the underlying context of the inception of this particular channel 10:59:13 fungot: that sword 10:59:13 CakeProphet: you the truth, i did work for cheap! i've had a way to get tattoos. is that all? 10:59:30 brisingr: http://esolangs.org/wiki/ 10:59:34 uggh wait 10:59:37 http://esoteric.voxelperfect.net/wiki/Main_Page 10:59:41 stupid dns 10:59:46 is dns still happening 11:00:00 poor esolangs.org 11:00:19 oh so #esoteric is language esoteric not general esoterism 11:00:30 cool 11:00:45 brisingr: we get a lot of people looking for the latter 11:00:53 they tend to get quite upset somehow 11:01:00 except for some of them 11:02:13 anyone here played trainyard? it would make an awesome esoteric language 11:02:37 I know there are tons already with 2d movement 11:03:15 never heard of trainyard. what's special about it? 11:03:50 it's a game involving 2d movement of the trains with tracks and all 11:04:15 the fun part is where you have max 2 tracks per unit square and they automatically change every time a train passes 11:04:25 you can make counter loops and stuff, theoretically 11:04:28 mmm 11:04:48 :t Data.Map.lookupWithDefault 11:04:50 Not in scope: `Data.Map.lookupWithDefault' 11:04:56 ?hoogle lookupWithDefault 11:04:56 No results found 11:04:59 Oh pleae. 11:05:01 please. 11:05:03 elliott: I believe it's M? 11:05:07 or something like that. 11:05:10 :t M.lookupWithDefault 11:05:11 elliott: findWithDefault 11:05:12 Couldn't find qualified module. 11:05:16 :t Data.Map.findWithDefault 11:05:18 forall a k. (Ord k) => a -> k -> M.Map k a -> a 11:05:18 Deewiant: Thanks. 11:05:31 -!- GreaseMonkey has quit (Quit: The Other Game). 11:10:12 -!- derrik has joined. 11:10:25 -!- derrik has quit (Client Quit). 11:10:51 -!- derrik has joined. 11:14:37 shachaf: Go to sleep. 11:14:43 elliott: goto sleep; 11:14:47 COME FROM SLEEP 11:14:54 Digusting. 11:14:59 Digusting indeed. 11:15:06 Of all the places to go to after SLEEP, this channel is one of the worst. 11:15:19 Says the guy who hangs out in #haskell-blah of all places. 11:17:44 so #esoteric is like a secondary #haskell-blah 11:18:23 from my perspective it's the other way around 11:18:38 These statements are true as of approximately half an hour ago when we all invaded there. 11:18:50 Also we keep getting people from #haskell. 11:19:04 But #haskell doesn't have, uh, ais523. And oerjan. And oerjan wrote most of the Haskell report by himself! 11:19:12 In fact, most refer to him as the TRUE father of Haskell. 11:19:24 For small values of "most". 11:19:39 Those typo fixes were crucial, Deewiant. 11:19:40 Crucial. 11:19:42 monqy: #haskell is like a secondary #esoteric-blah? 11:19:50 ais523: sure 11:20:01 I haven't actually been in #esoteric-blah for a while 11:20:05 what's it like there nowadays? 11:20:12 The best. 11:20:17 it became mostly useless when pastebins were invented and bsmnt_bot disappeared 11:20:28 "pastebins were invented" XD 11:20:37 although I love the concept of a channel whose main purpose is for thousand-line pastes 11:20:50 what was bsmnt bot 11:21:07 a bot that ran arbitrary Python 11:21:12 with some sort of complex sandboxing 11:22:08 what happened to bsmntbombdood anyway? 11:22:31 -NickServ- Last seen : Aug 06 23:37:08 2011 (4 weeks, 4 days, 11:45:55 ago) 11:22:41 he comes here occasionally 11:22:46 last time as subleq for a second or two 11:23:15 ah, aha, different nick, I was wondering about that 11:23:30 also, Slashdot just published a headline saying that Linux games run faster via an emulation layer on BSD 11:23:43 I don't know, or really care, if it's true or not 11:23:45 Slashdot published articles? 11:23:49 Has Netcraft confirmed it? 11:23:51 but it seems like such a beautifully pointless thing to measure 11:23:56 elliott: nope, Phoronix 11:24:02 Not good enough. 11:24:19 In Soviet Russia, ... 11:24:20 oh, the project gutenberg founder died 11:24:22 * shachaf can't go on. 11:24:26 * shachaf too mad 11:24:30 shachaf: Netcraft confirms u mad? 11:24:38 04:25:41 < elliott> oh, the project gutenberg founder died 11:24:38 04:25:42 * shachaf can't go on. 11:24:40 :'( 11:34:13 -!- monqy has quit (Quit: hello). 11:35:07 -!- brisingr has quit (Quit: haskell is asking me on a date). 11:42:51 https://github.com/ivmai/bdwgc/commit/5abff1068fcfb3234295021a635ea5167404a10b 11:42:59 Gregor: How long has Boehm GC been developed without -Wall... 11:45:00 -!- sebbu2 has changed nick to sebbu. 11:46:52 "Developed without -Wall" is not the same as "Having -Wall in configure.ac", which is just a bad option altogether. 11:47:18 (Rather, "developed without -Wall" is not the same as "NOT having -Wall in configure.ac") 11:48:37 Yeah OK :P 11:48:41 What's just a bad option altogether? 11:49:57 -!- derrik has quit (Ping timeout: 264 seconds). 11:50:55 Having -Wall in your configure.ac 11:51:16 Considering that they add new and usually-stupid warnings to every version of GCC, that's just a recipe for pointless bug reports. 11:51:22 Right 11:57:49 -!- sllide has joined. 12:05:27 Warning: Code insufficiently discombobulated. Consult with your physician before compiling. Thank you. 12:08:03 -!- derrik has joined. 12:08:15 -!- derrik has left. 12:12:32 -!- nooga has quit (Ping timeout: 264 seconds). 12:16:20 -!- DH____ has joined. 12:19:16 damn these noisy farmers! 12:19:38 hi DH____, you sound new 12:19:55 Hi 12:21:08 I've been here quite a bit before, but I've just set up my phone to access this channel, so in this form I am new... 12:22:54 oh, ok :) 12:23:06 what nick did you use? 12:23:08 why is your phone using Virgin Media's cable service? 12:23:08 or is it a landline phone? 12:23:16 ais523: wifi, man 12:23:39 Yes, WiFi 12:23:41 phones use wifi nowadays? 12:23:59 HTC Desire S 12:24:03 Where "nowadays" = "for several years" 12:24:04 Android 12:24:05 ais523, you're so ais523 12:24:20 Anyway... 12:24:38 elliott: the iPad was pretty much Apple realising "hey, our phones don't actually need to be phones to still do their job properly" 12:25:27 I usually use a nick of some variation upon DH or DHeadshot... 12:27:11 DH____ is the first nick you've been under from that exact hostname in here 12:27:14 The iPad is Apple taking inspiration from The Onion's parody of their products... 12:27:19 at least, while I've been in here simultaneously 12:27:52 From my phone, yes.. 12:28:11 aha: 12:28:15 logs/freenode_#esoteric.log:[Thursday, September 08, 2011] [01:17:04 pm] JoinDH____ has joined this channel (~DH____@cpc2-woki2-0-0-cust667.6-2.cable.virginmedia.com). 12:28:16 logs/freenode_#irp.log:[Sunday, July 18, 2010] [02:58:08 pm] JoinDH____ has joined this channel (~DHeadshot@cpc2-woki2-0-0-cust667.glfd.cable.ntl.com). 12:28:51 the first of those is you just joining 12:28:56 and the second is you joining #irp last year 12:29:07 amusingly, the only thing that's changed in the hostname is ntl.com to virginmedia.com 12:29:18 it seems that hostnaming structure survived the company buyout 12:29:34 Virgin bought Ntl 12:29:38 indeed 12:30:07 Sorry, ninjad 12:31:00 why are you apologising for being ninja'd? 12:31:03 most people rage instead 12:32:18 Probably my Britishness kicking in... ;) 12:32:27 heh, there are quite a few Brits here 12:32:34 (as if being with virginmedia didn't give it away in your case) 12:32:50 in fact, I suspect the channel is more than half Europeans, although I'm not certain in that 12:32:58 there are certainly an unexpectedly high number of Scandinavians here 12:33:04 I should really find a.way to mask that... 12:33:40 The virginmedia I mean... 12:33:51 go to #freenode, /nick to DHeadshot (or whatever your primary nick is) and identify, ask for an unaffilated cloak, wait half an hour to an hour for a staffer to notice 12:34:28 -!- FireFly has joined. 12:34:38 That works? 12:34:55 yep 12:35:03 Thanks! 12:35:03 that's what unaffilated cloaks are for, hiding your hostname 12:35:25 they only work if you identify and take a few seconds to kick in, though (so if you're really paranoid, don't join any channels for a few seconds after logging on) 12:37:24 -!- DH____ has quit (Changing host). 12:37:24 -!- DH____ has joined. 12:38:34 Any way to check if it worked? 12:38:51 2011-09-08 15:38:08 --> DH____ (~DH____@unaffiliated/dh----/x-6288474) has joined #esoteric 12:39:09 :D 12:40:03 that's quite the cloak 12:40:04 I like it 12:40:19 Heh 12:40:27 presumably it's some encoding scheme for the underscores 12:40:41 it reminds me a bit of utf-5, although it isn't exactly that 12:41:25 DH____: /whoising yourself is a more direct way to make sure it worked 12:42:21 Well, given the channel theme, it shouldn't be hard for someone here to reverse engineer it... 12:42:27 Thanks 12:43:13 well, translating 6288474 to hex would seem to be a good start 12:43:21 !c printf("%x",6288474) 12:43:25 5ff45a 12:43:33 hmm, that doesn't seem to help much 12:43:42 (also, interesting that EgoBot doesn't seem to need a semicolon there) 12:44:02 perhaps it's not an encoding scheme but just a random number there for uniquifying purposes 12:44:12 Possibly 12:44:42 probably 12:45:09 Maybe I'm the nth person to have underscores in their nick... 12:45:43 the 523 in my nick's a random number for uniquifying purposes too 12:47:21 hmm, I still want to get round to that language some time where the source code is just a number 12:47:44 and the interp looks on anagolf for the problem with that number, then takes majority opinion of the programs not marked as cheats 12:48:11 giving extra weight to ones specifically marked as not-cheating, I suppose 12:48:35 what about endless problems that don't reveal src? 12:48:40 like most popular ones 12:48:44 Doesn't unary only use a number? 12:48:53 elliott: I, umm, don't know 12:48:54 -!- azaq23 has joined. 12:48:58 DH____: yes, but it's a pretty /big/ number 12:49:17 the idea here would be to have astonishingly small programs for a range of popular programs 12:49:30 I suppose for the endless ones, we just hire elliott or someone to do reference impls 12:50:15 heh 12:50:27 you'd be good at them! 12:51:03 You could use DMM's WebPEG encoding on the source... 12:52:09 Leaving a 20 byte source file or so... 12:55:11 that's a /different/ creative way to cheat 12:57:20 ais523: we need sg soon; git is driving me insane 12:58:02 what are you using to version sg itself while it's being written, incidentally? 12:58:32 nothing? :) or darcs I guess 12:58:36 presumably it's not yet complete enough to version itself 12:58:47 darcs seems to be the least-bad VCS that isn't vaporware 12:58:57 Write the sg repository by hand as you go until it can do it by itself 12:58:58 or, /maybe/ git, in case we think we might want other people to interact with the repo via github, although you'd be a major stopper to that 12:59:25 meh, I'd just maintain a mirror on gitorious and refuse to acknowledge the github repo existed except when I pulled from it 12:59:27 the main problem with darcs is that the only decent places to put the repository involve hosting it yourself, and darcsweb is rather... uninspiring 12:59:27 that's what I normally do 12:59:40 elliott: I would mention patch-tag, but you said decent 12:59:49 it's, umm, passable 12:59:51 sometimes 12:59:55 ais523: You could do that gitorious thing, but I would be far too lazy to pull your changes 13:00:12 pulling isn't that hard... 13:00:19 Harder than having someone else push for you 13:00:48 you can't push into a repo with working changes anyway 13:00:55 which is the usual state of a repo someone's directly working on 13:00:59 so in practice, you have to pull anyway 13:01:32 This is the thing where you're deliberately stupid to maintain your worldview and I ignore you, right? 13:01:47 not this time 13:02:00 You realise that the repositories you push to are not usually repositories with working directories? 13:02:01 I can't think of any reasonable git workflow that doesn't involve pulling at all 13:02:08 elliott: well, if you're too lazy to pull 13:02:14 Well, sure, the person pushing has to pull 13:02:20 then you wouldn't be pulling from any /other/ repo I push to 13:02:21 Pull changes, merge in, push them off 13:02:27 ais523: Har har 13:02:41 so what you mean is, you're too lazy to pull from two repos at once 13:02:46 despite the existence of git remote update 13:03:06 What I really mean is, being awkward wrt the existence of a GitHub repository will cause me to try and be as awkward as possible in turn 13:04:08 oh right, I didn't pick that up 13:04:39 I'll probably end up versioning it in nothing for the longest time, anyway 13:05:02 VCSes are too workflow-hostile for me to bother for a project still in its solo stage 13:05:17 I find that what I do with a VCS is to use it more and more properly as time goes on 13:05:29 starting off by just using it as a backup system rather than version control 13:05:40 and gradually making the commits more and more the correct size 13:05:49 I'm trying to do that for mcmap too, but mostly just because Deewiant complained 13:05:50 (so the commits tend to get smaller and more numerous as time goes on) 13:06:01 Being a good git citizen is really hard, because you have to do terrible things like modifying history 13:06:11 nice global notice 13:06:35 indeed 13:06:45 I don't think it's possible to use git correctly 13:06:47 ais523: Anyway, I honestly find cp -R src src.descriptivetag before embarking on a task more usable for solo, "linear" (as in generally one feature at a time) projects than any VCS 13:06:49 even using it as intended causes problems 13:07:03 elliott: heh, I've done that too, except I more usually use tarballs 13:07:17 I have about ten of those for Shiro right now 13:07:23 Holy crap, I somehow submitted a pull request... to my own repository. 13:07:24 From itself. 13:07:35 GitHub, I... 13:07:47 accept it! 13:07:52 "This pull request cannot be automatically merged." 13:07:54 :'( 13:08:03 I, umm, can't even delete it, I'll just have to close it 13:08:07 -!- yorick has quit (*.net *.split). 13:08:07 -!- mycroftiv has quit (*.net *.split). 13:08:07 -!- Zetro has quit (*.net *.split). 13:08:07 -!- twice11 has quit (*.net *.split). 13:08:08 -!- sebbu has quit (*.net *.split). 13:08:08 -!- CakeProphet has quit (*.net *.split). 13:08:08 -!- MSleep has quit (*.net *.split). 13:08:08 -!- myndzi has quit (*.net *.split). 13:08:08 -!- lambdabot has quit (*.net *.split). 13:08:08 -!- aloril has quit (*.net *.split). 13:08:09 darcs would have noticed the option wasn't semantically correct! 13:08:12 -!- mycroftiv has joined. 13:08:13 *the request 13:08:16 ais523: it is semantically correct 13:08:18 it's just insane 13:08:23 It's a request from an older revision 13:08:25 "ehird wants someone to merge 5 commits into 848d2b9 from master" 13:08:26 -!- CakeProphet has joined. 13:08:28 -!- CakeProphet has quit (Changing host). 13:08:28 -!- CakeProphet has joined. 13:08:31 -!- MDude has joined. 13:08:37 -!- aloril has joined. 13:08:41 -!- sebbu has joined. 13:08:41 well, darcs would notice that the commits you were merging in were already in the repo, at least 13:08:43 -!- myndzi has joined. 13:08:54 so? that's a nop 13:08:57 -!- yorick has joined. 13:09:38 indeed 13:10:04 I suppose you can say that a no-op pull request is technically semantically correct... 13:10:40 The thing with VCSes is, I think, that almost everything they consider an error, I think should succeed 13:11:06 Pushing when you don't have changes that have happened since? Sure, go ahead 13:11:21 Basically errors are bad and make me sad. This is the way of elliott. 13:11:47 indeed, I think pushing then should give a friendly reminder rather than an error 13:11:55 But I like to think it's the VCS' job to sort out the tangle of noodles that is the development into something useful for me, not to force me into making sure they don't get into a tangle. 13:11:57 (it's not an error in darcs, but has a tendency to cause exponential performance) 13:12:19 actually, "friendly reminder" is pretty much exactly what darcs does 13:12:23 ais523: in sg, I think it just creates a new, unnamed branch 13:12:28 unless you did a lot of commits since 13:12:31 in which case it'd probably become the new tip 13:12:34 if you push before pulling, you get a "(By the way, the remote repository has 2 patches to pull.)", or whatever 13:12:53 as in, either {it creates a new branch, tip stays the same} or {it becomes the tip, tip becomes a new branch} happens 13:12:54 -!- Zetro_ has joined. 13:12:58 depending on which trail is longer 13:13:15 well, that's assuming they conflict 13:13:28 if they can be merged automatically, then they merge and become the new tip, just one with a split in the middle 13:13:32 and that's the correct situation 13:13:35 yep, and assuming that people haven't nicknamed a particular whitelist set as their own personal concept of the tip 13:13:50 there's no personal concept of a tip; tip is an objective thing 13:13:53 well, yes 13:13:54 they can call something my-tip, though, I'm sure 13:14:00 personal thing used instead of a tip? 13:14:03 heh 13:14:06 personal-thing-used-instead-of-a-tip 13:14:11 good branch name 13:14:17 ballpoint, perhaps 13:14:29 I think the tip is literally just the longest self-consistent branch 13:14:47 although, actually, that's not right 13:15:00 because if you dump all the sg repos possible together into one massively infinite repository, it should have no tip 13:15:28 what was your definition, again? 13:15:55 I think it does have a tip, and it consists of the tips of each of the individual projects being worked on in the repos (identified by commits linking them to a common directory structure), in separate directory structures 13:16:10 umm, commit is the wrong word there 13:16:14 but you probably know what I mean 13:16:17 ais523: a tip has to point to one directory structure, though 13:16:22 the only way you can have multiple is by explicit nesting 13:16:37 to me, you've pretty much described the situation of having no tip 13:16:40 you have multiple viable tips 13:16:42 so there is no tip 13:16:47 you have to select one to work 13:17:00 (and probably designate one quickly, likely moving them all into subdirectories of a new root) 13:17:01 oh, you mean actually on your own personal filesystem? 13:17:05 s/likely/likely by/ 13:17:07 that makes sense 13:17:10 ais523: no, I'm talking about sg concepts 13:17:22 well, a tip is just a set of patches 13:17:31 and it's the maximal set of patches that combine without conflicts 13:17:36 yep, but a set of patches can't result in having two directories without explicitly doing that 13:17:42 why not? 13:17:49 because there's no mechanism for that? 13:18:10 I don't see why there's any mathematical reason that "two unrelated directories" is a concept that sg shouldn't be able to model, even if it's a little hard to place onto a filesystem 13:18:32 because it doesn't fit into the existing model? 13:18:54 and the mechanism is just having multiple new-directory «insert appropriate word that isn't turtle here»s that don't refer to each other and haven't been placed into a common directory structure by any other «same word» 13:19:03 give me a patch that isn't self-conflicting and results in two directory trees, neither containing the other 13:19:19 combination of {new directory} and {new directory} 13:19:36 ais523: by combination of, you mean patchset, right? 13:19:39 yep 13:19:52 sorry, that should have been set of [{new directory}; {new directory}] 13:19:52 ais523: there is no "new directory", there's "new directory in [HASH]" 13:19:59 aha, that's possibly why I was confused 13:20:00 (and a special root directory change) 13:20:03 how do repos get started, then? 13:20:16 ais523: repos initially contain one commit by the Ghost of Scapegoat 13:20:26 that can be referred to to start off 13:20:27 that commit is just the root directory change 13:20:35 it has a single global hash worldwide 13:20:59 ah, so if I combine {new directory in Ghost of Scapegoat} and {new directory in Ghost of Scapegoat} I get two parallel directories 13:21:08 And that hash is 0xDEFACED 13:21:09 you need to specify a name for the directory :) 13:21:10 that conflict if they have the same name, as you can't have multiple directories with the same name in one directory 13:21:20 elliott: yes, I'm not writing out all the metadata 13:21:24 changeset {new directory "foo" in root, new directory "bar" in root} 13:21:29 yep 13:21:31 that doesn't produce two unrelated filesystems 13:21:33 that's just 13:21:38 no, it produces two parallel filesystems 13:21:40 no 13:21:42 it's a directory 13:21:45 with two empty directories in 13:21:48 that's what you'd get if you cloned it 13:21:49 well, right 13:21:52 agreed 13:21:54 s/cloned it/checked it out/ 13:22:10 ais523: the most you'd get is the directories of all the projects mushed together 13:22:14 yep, I think so 13:22:17 not in neatly separated unnamed hierarchies, that's not possible 13:22:34 ais523: but really, the Infinite Repo should have no tip, not least because its commit changes go on literally forever 13:22:36 hmm, it'd happen if we had a convention not to make sgbombs 13:22:48 ais523: sgbombs are valuable 13:23:06 hmm, wait, let me think 13:23:09 in what way? I notice most existing VCSes don't allow them, but I'm prepared to be convinced that sg should 13:23:11 -!- twice11 has joined. 13:23:20 all existing VCSes allow them 13:23:23 they just clone into directories 13:23:29 well, right 13:23:56 ais523: I'm trying to think how you re-root a repository; as in, the old story of "two repositories, merge into one by copying objects, then move the root of one into a subdirectory of the other" 13:23:58 so I suppose the question should be "can you commit files directly into the Ghost of Scapegoat" 13:24:09 elliott: some sort of directory move patch, I guess 13:24:16 reparent HASH from HASH to HASH 13:24:16 it's a move change, but it's a move change on... the ghost of scapegoat? 13:24:18 wait, no 13:24:22 it's a move change on the.. hmm 13:24:25 no, it's a move change on the ghost of scapegoat 13:24:27 _that_ can't work 13:24:33 because it's the root of the target repository, too 13:24:40 oh, if you're trying to rotate the root under a new directory? 13:24:47 yep, that's a good enough reason for it to have a unique hash 13:24:51 ais523: basically, say you have repos foo and bar checked out 13:24:57 you want to achieve the sg equivalent of 13:24:59 mv foo bar/quux 13:25:02 where bar/quux doesn't exist 13:25:23 I, umm, don't think we can do that, right now, unless every new repo starts by creating a _new_ root directory 13:25:25 You cannot truly understand someone until you've walked a mile in their shoes. Since cats don't wear shoes, it is impossible to understand them. 13:25:30 which just seems wrong for some reason 13:25:34 pivot_root moves the root file system of the current process to the directory put_old and makes new_root the new root file system. Since pivot_root(8) simply calls pivot_root(2), we refer to the man page of the latter for further details. 13:25:37 a repo shouldn't depend on when you create it 13:25:51 ais523: I know what pivot_root is 13:25:53 elliott: I assumed that repos would start by creating a new root directory, because it's the most obvious way to understand what a repo is 13:25:59 elliott: I know, I just felt like quoting it 13:26:06 ais523: I assumed they'd start by creating a file 13:26:10 or, well, a related set of projects 13:26:19 you can just move every file into a new subdirectory to pivot the root, but that makes merging hard 13:26:24 because future files will end up in the root 13:26:25 you can tell that two repos are working on the same project because they share an initial root dir commit 13:26:27 rather than the pivoted root 13:26:40 yep, I agree that that's semantically wrong 13:26:41 I suppose the first commit you make can make a new directory called / 13:26:51 but then what is the name of the directory made by the Ghost of Scapegoat? 13:27:00 /../, obviously 13:27:02 other pressing questions: does the Ghost of Scapegoat have a PGP key? 13:27:27 ais523: I think it's actually just called the null string 13:27:35 Clearly the commit message associated with this root should be "Boo" 13:27:37 obviously you can't create a file at foo.c (absolute path) 13:27:38 but /../ is a much better name for the root dir's parent 13:27:39 only /foo.c 13:27:41 so you have to make / first 13:27:47 the null string is behind it 13:27:50 ais523: ugly 13:27:53 well, OK 13:28:07 I'm not entirely convinced it needs a name, maybe null-stringing it is the best option 13:28:08 ais523: in fact, ideally the genesis commit (THIS IS THE WORST RELIGIOUS METAPHOR) should have no author field 13:28:13 or date 13:28:24 actually, it doesn't need any attributes at all 13:28:27 (random fact: I once tried to get Wikipedia's Main Page renamed to the null string, but the developers refused to implement that even though it was getting some support) 13:28:34 -!- sebbu has quit (Ping timeout: 245 seconds). 13:28:40 it's literally just the defined-by-construction object root-directory 13:28:41 -!- sebbu has joined. 13:28:45 ais523: haha 13:29:17 more commonly I tried to get it moved to the Portal namespace, and the opposition was mostly "it'll cause problems" without specifying how 13:29:40 I suppose I'm one of the few people in the world who actually knows /how/ to rename Wikipedia's Main Page; it's not commonly-known knowledge 13:29:43 ais523: Clearly the main page should have "This is the main page of Wikipedia. For the notion of main pages in general, see Main Page (disambiguation)" 13:30:14 (I know how to delete it too, but that requires overcoming well over ten separate safeguards, and the idea is that someone would likely notice you trying in time to stop you) 13:30:21 I really want a famous band/author/whatever to release a work called Main Page 13:30:27 Really, really, really 13:30:42 Gregor: have you seen http://en.wikipedia.org/wiki/Talk:%25s 13:30:48 (i.e. [[Talk:%s]]) 13:30:58 you might want to look at the history of [[%s]] itself, too 13:31:08 hmm, bleh, they stopped arguing about it in 2009 13:31:24 ais523: ... WOW 13:31:44 ais523: I can't believe people actually wanted to make it not redirect 13:31:45 I knew it would blow your mind :) 13:31:49 because %s is /such/ a popular topic to look up 13:31:55 MUST PUNISH USERS OF OBSOLETE SHORTCUTS 13:32:19 elliott: well, I wanted to make it not redirect on the basis that it was absurd that you'd /expect/ [[%s]] to redirect to the Main Page 13:32:40 ais523: it's a page nobody will ever look up on their own, modulo rounding error 13:32:43 and that it was only that way due to a bug in old versions of Firefox 13:33:09 Yet "According to statistics, %s is the 993rd most visited page this month" 13:33:21 It seems pretty clear-cut to me, the logic doesn't matter, usability does 13:33:40 hmm, Firefox bug 298697 is still open 13:33:47 https://bugzilla.mozilla.org/show_bug.cgi?id=298697 13:33:52 despite being over 6 years old 13:34:24 do any other popular search engines special-case searches for %s, I wonder? 13:34:26 Is it just me, or do bugzilla bugs never get fixed, ever? 13:34:26 say, Google? 13:34:31 elliott: they do sometimes 13:34:37 https://encrypted.google.com/search?hl=en&source=hp&biw=1058&bih=636&q=%25s&oq=%25s&aq=f&aqi=&aql=&gs_sm=e&gs_upl=485l485l0l599l1l0l0l0l0l0l0l0ll0l0 13:34:39 I used to subscribe to the entire bugzilla of MediaWiki 13:34:43 well, that worked, but it knows i came from the google.com page 13:34:49 so it's not a very useful result 13:34:59 and quite a lot of the bugs there got fixed 13:35:02 although not all of them 13:35:10 every now and then I get reports that one of the bugs I voted for got fixed 13:35:18 which amuses me, as I stopped voting on them years ago 13:35:36 ais523: Every time I've jumped over the insane hurdles required to get Bugzilla to accept a report, I've just received like three years of bugmail from it where tons of duplicates get marked forever and no progress ever happens 13:35:52 I don't know whether to blame bugzilla or the developers, I think it's both 13:36:01 random fact: Bugzilla is the only webform-login I've ever used that works without cookies 13:36:10 /however/, without cookies you have to relogin every page 13:36:15 Useful 13:36:17 but it does work eventually, after something like 5 relogins 13:36:24 Who even wrote Bugzilla? 13:36:27 And why? 13:36:29 And how can I make them hurt? 13:36:39 Terry Weissman, apparently 13:36:49 Stern glares in his direction, I tell you 13:37:07 "One of Bugzilla's major attractions to developers is its lightweight implementation and speed, so calls into the database are minimized whenever possible, data fetching is kept as light as possible, and generation of heavy HTML is avoided." 13:37:10 Why the hell's it so slow then 13:38:55 heh, one of my favourite bits on that [[Talk:%s]] page is someone moving the rfd template below the redirect, so that the redirect would still work 13:39:11 (and thus, so that nobody would see the rfd tag unless they thought of adding &redirect=no to the URL) 13:39:26 -!- nooga has joined. 13:40:14 Oh Wikipedia. 13:40:16 So screwy. 13:40:26 I think the biggest irony in that page is that Firefox visits [[%s]] when you type "wp" in the search bar precisely /because/ of %s's meaning in programming 13:41:24 Oh come on. %s clearly doesnt belong as a seperate article anyway. Are we going to list [[lparam]]? how about [[hwnd]]? 13:41:35 (lparam is currently a redlink; hwnd a redirect to handle (computing)) 13:42:14 -!- augur has joined. 13:44:06 if (is_stop) 13:44:07 { 13:44:07 world_running = 0; 13:44:07 g_thread_exit(0); 13:44:07 /* never reached */ 13:44:07 } 13:44:09 exit(1); 13:44:13 wtf? 13:44:23 anyone who knows pthreads: why would you exit the threadright before exiting? 13:44:25 or, um, hmm 13:44:57 wow, I just followed random interesting-looking links and ended up at http://en.wikipedia.org/wiki/Memory_leak which explained to me what the hell RAII actually /is/ 13:45:01 in terms I actually understood 13:45:11 I hate C++ sometimes 13:45:17 RAII is just equating scope with resources 13:45:17 (as opposed to everyone else, who hates it continuously) 13:45:36 it's like alloca, but objectorientized 13:45:48 and handling more than memory 13:46:14 yep 13:46:24 elliott: For is_stop it just quits the thread instead of exit(1)ing the whole process, so that the proxying bit is left alive. I guess the exit(1) could be in an else to make it more clear. 13:46:37 whereas when I see a close() in the finalizer for a File in Java, it looks like a mistake, or at least a very dangerous thing to rely on 13:48:06 fizzie: Right. 13:48:20 -!- Phantom_Hoover has joined. 13:48:43 fizzie: So, it's OK to start working on my Guile branch? Someone right now is working on getting Guile working Windows-native, and I'll make the build system offer to download/build a local copy of Guile if the system doesn't have a new enough version. 13:48:55 It's really the nicest language I could possibly bind to. 13:48:59 As far as binding quality goes. 13:49:16 (The download isn't big; just six megs or so, and the building only takes a few minutes.) 13:49:23 there were a bunch of articles recently about how Guile was still better than the alternatives at its intended purpose 13:49:43 GNU's NIH syndrome was mentioned as a positive for it ;) 13:50:02 probably gnu propaganda, but guile has a really nice c api, is a decent scheme, and is well-maintained 13:50:31 I suppose lua's the other language designed to bind nicely to things 13:50:34 hmm, how can I tell GNU that this bit of code is definitely unreachable? It's complaining that my noreturn function returns because scm_cancel_thread isn't marked noreturn 13:50:40 erm 13:50:42 s/gnu/gcc/ 13:50:45 I noticed that the Guile fans were mostly ignoring it 13:50:47 (void);? :P 13:50:49 elliott: assert(0) 13:50:52 ais523: Lua is an awful language, though 13:51:00 any way that doesn't involve including assert.h? 13:51:03 it has good points 13:51:17 actually, I'm not convinced that assert(0) definitely works 13:51:20 but it /ought/ to 13:51:35 Also, "Because Guile threads are isomorphic with POSIX threads, thread will not receive its cancellation signal until it reaches a cancellation point. See your operating system's POSIX threading documentation for more information on cancellation points; note that in Guile, unlike native POSIX threads, a thread can receive a cancellation notification while attempting to lock a mutex." 13:51:37 I don't even want to know. 13:51:39 if I ever write a Splint replacement, it'll be a warning if it can't prove that all asserts are always going to succeed 13:51:55 I've been meaning to learn List for years.. 13:52:00 ais523: ah, abort() makes it happy 13:52:04 Add an exit(0) or something actually marked as noreturn there. (What do you mean inelegant?) 13:52:16 elliott: thread cancellation is a bad idea anyway 13:52:26 ais523: it's cancelling the thread I'm in :P 13:52:35 it's one of the few things that's marked "wow, we realised this is a really bad idea, don't use this" in Java (except in more enterprisey language) 13:52:36 http://www.reddit.com/r/worldnews/comments/k8p8b/the_lifetime_ban_on_blood_donations_by_homosexual/ 13:53:01 I like the way it's framed as gays being banned from donation just because the blood donation people don't like them. 13:53:02 aha, I can just declare 13:53:02 SCM scm_cancel_thread(SCM thread) __attribute__((noreturn)); 13:53:04 at the top of the file 13:53:46 That's probably not any prettier. 13:53:59 fizzie: It avoids generating needless extra code to call abort() 13:54:06 fizzie: Anyway, give me official approval dammit :P 13:54:09 Since it's not really a noreturn function if you call it for some other thread. 13:54:20 Well, true. 13:54:28 why would a thread cancel itself, rather than just exit? 13:54:30 But the declaration will be local to that file. 13:54:30 Doesn't it have some sort of exit-this-thread function? 13:54:38 ais523: How can a thread "just exit"? 13:54:45 If pthreads has a function for that I can use it, but I couldn't find anything 13:54:47 elliott: there's typically an API call for that 13:54:52 What's the pthreads for it 13:54:56 I know Linux has a system call for exiting a thread 13:55:09 (it's called exit(2), not to be confused with exit_group(2) which is called by exit(3)) 13:55:12 man pthread_ doesn't show much interesting 13:55:21 pthread_exit. 13:55:27 Why don't I have a manpage for pthread_exit 13:55:41 "pthread_exit - terminate calling thread" 13:55:46 I have one. 13:55:49 o_O 13:55:50 What package? 13:55:51 I don't have a manpage for pthread_exit either 13:55:55 maybe it's missing on my system 13:55:58 And what arguments does it take? 13:56:13 A void * retval. 13:56:34 NULL ok? 13:56:48 http://linux.die.net/man/3/pthread_exit 13:56:57 Thanks 13:56:58 elliott: I can't believe /you/ didn't think of searching for "man pthread_exit" 13:57:03 I'm lazy 13:57:04 it seems we're in reversed roles today 13:57:22 (also, I should have just gone to linux.die.net anyway as that's the site I always check for manpages) 13:58:20 it seems that the return value is just a pointer that's returned literally to anything trying to join the thread 13:58:25 so NULL is OK 13:59:20 erm, hmm 13:59:26 how can I get a specific file out of a git stash from another branch? 14:00:30 never mind 14:00:39 gah, trying to edit Wikipedia, my connection to the server's getting reset while the page is loading 14:00:42 that hasn't happened for months 14:01:02 there, that's better 14:01:06 it started working again 14:01:25 my only conclusion is that something on this network randomly bombards me with RST packets when I try to submit a form via POST, for no obvious reason 14:01:31 I've had some problems with missing some pthread function manpages but not all, too. There seems to be something screwy about them. 14:01:34 $ dpkg-query -S `locate pthread_exit|grep usr/share/man` 14:01:37 manpages-dev: /usr/share/man/man3/pthread_exit.3.gz 14:01:42 That one is right there, though. 14:01:50 elliott@katia:~/Code/mcmap$ build/mcmap pyralspite.net 14:01:51 build/mcmap: error while loading shared libraries: libguile-2.0.so.22: cannot open shared object file: No such file or directory 14:01:51 umm, what 14:01:57 I thought pkgconfig was meant to take care of those sorts of things 14:02:26 fizzie: weird, I think I have manpages-dev installed 14:02:28 let me try again 14:02:31 Just for finding them for linking and so on; not for actually using them. 14:02:34 ais523: different os, version 14:02:43 fizzie: but I thought LD_LIBRARY_PATH was a massive hack :'( 14:02:45 yep, I'm wondering if it's missing from manpages-dev by mistake 14:02:54 ais523: This is the Ubuntu 11.04 thing. 14:02:58 the version I have, that is 14:03:07 it's bad enough having various syscalls not documented 14:03:14 like set_robust_list 14:03:25 GLib-ERROR **: The thread system is not yet initialized. 14:03:26 aborting... 14:03:26 Aborted 14:03:26 yay 14:03:37 oh, hmm 14:03:46 fizzie: do you need to initialise glib threads to use mutexes and the like? 14:03:55 Probably, yes. 14:04:55 There was something slightly strange about when the explicit initialization was necessary, and when not; and in which order the glib/SDL initializations went. 14:05:05 Indeed. 14:05:17 15:06:00 [DIED] select: Interrupted system call 14:05:19 fizzie: Oh deary me 14:05:37 fizzie: I'm pretty sure you're meant to handle those things 14:05:45 I seem to be getting it deterministically, though 14:06:11 Possibly, though I don't recall where I select()'d anything. 14:06:30 fizzie: I wrote that code. :p 14:06:35 The proxy. 14:06:45 Well, then s/you/I/ to you. 14:07:02 fizzie: Well, it's more that literally any syscall can do that and you have to handle it. 14:07:03 Yes, "I're". 14:07:17 No, *you* have to. 14:07:39 NO YOU HAVE TO 14:07:54 Okay, there might well be some reads/writes that don't do the right thing either. 14:08:17 * ais523 reads about mark-and-don't-sweep GCs 14:10:15 A don't-mark-and-don't-sweep-either-in-fact-just-lounge-around-and-be-lazy GC. 14:11:37 well, mark-and-don't-sweep GCs don't actually do any garbage collection at all until they're out of memory 14:12:01 at which point, they effectively do a sweep but with different terminology so that they can claim it isn't a sweep 14:12:15 -!- Jafet has joined. 14:12:27 do 14:12:27 ret = select(nfds, &rfds, NULL, NULL, NULL); 14:12:27 while (ret == EINTR); 14:12:32 do...while looks so weird 14:12:56 gah, EINTR doesn't do it, I need errno, duh 14:12:57 without the braces? 14:13:08 do 14:13:09 ret = select(nfds, &rfds, NULL, NULL, NULL); 14:13:09 while (ret == -1 && errno == EINTR); 14:13:09 BEAUTIFUL 14:13:18 ais523: We're retro coders at mcmap inc. 14:13:23 elliott: do you prefer the standard C API (return -1 and set errno) or Linux API (return -errno)? 14:13:34 ais523: Haskell 14:14:01 All C error-handling conventions are intolerable :P 14:14:03 well, I was asking which of two options you preferred, not if you thought either was good 14:14:23 Setting errno is kind of iffy, because of calling other things in the interim, and thread-local storage 14:14:26 So the latter, I guess 14:17:57 I think I prefer the latter too, it's less boilerplate than errno-style 14:21:58 "Erno" is a Finnish male name; I haven't really ever been able to read "errno" as "error number" instead of just a silly-sounding variant of that name. 14:22:49 anyway, anyone here have advice on a problem from work: I want to be able to benchmark a large number of OCaml programs, in as repeatable a set of circumstances as possible 14:23:03 and the Secret Project cannot be used for benchmarking (have a free clue about it while you're at it) 14:23:21 ideally, I'd like to count instructions rather than realtime 14:23:57 suggested solutions are allowed to rely on or ignore the fact that the programs are in OCaml as required, and absolute speed doesn't matter (within reason), just relative speed of the programs 14:26:02 valgrind, then 14:26:16 Jafet: hmm, interesting, explain more 14:26:32 presumably it wouldn't be used in a memory-checking mode but some other mode 14:27:17 There's cachegrind and lackey 14:27:47 ais523: gdb 14:27:52 used exclusively with step 14:27:52 Since valgrind adds a huge amount of indirection to the code, the results should be repeatable 14:27:55 cachegrind checks cache hits/misses, right? 14:27:57 counting step until program termination 14:28:23 elliott: I thought of that, and could implement it myself (it's a trivial modification to Secret Project to make it single-step), but it's monstrously slow 14:28:37 ais523: I think you can do "step N" for some large N 14:28:42 Yes, but with a simulated cache. 14:28:58 elliott: the API only allows one step at a time 14:29:07 !sanetemp 66.9 14:29:08 292.5 14:29:14 Wha 14:29:17 !sanetemp 66 14:29:18 292.0 14:29:27 !show sanetemp 14:29:28 sh dc -e "1k?459.67+5*9/p" 14:29:41 is that converting farenheit to kelvin? 14:29:52 OK, who was it? 14:29:57 !sanetemp 32 14:29:57 273.1 14:30:03 !sanetemp 212 14:30:03 373.1 14:30:05 looks like it 14:30:27 !delinterp 14:30:27 ​ is not a user interpreter. 14:30:29 Phantom_Hoover: what did it used to do? 14:30:31 !delinterp sanetemp 14:30:31 ​Interpreter sanetemp deleted. 14:30:38 ais523, Celsius. 14:30:42 deamericanize 14:30:47 from farenheit? 14:30:54 ah, and someone changed it to kelvin as a joke 14:30:55 !addinterp sanetemp sh dc -e "1k?32-5*9/p" 14:30:55 ​Interpreter sanetemp installed. 14:30:58 Well, Kelvin's eminently sane. 14:31:37 !sanetemp 66.9 14:31:37 19.3 14:32:21 !insanetemp 19.3 14:32:22 66.7 14:32:37 Heh, that was just a guess. 14:34:13 Nice rounding there: 14:34:17 17:34 !sanetemp 66.7 14:34:17 17:34 19.2 14:34:17 17:34 !insanetemp 19.2 14:34:17 17:34 66.5 14:34:17 17:34 !sanetemp 66.5 14:34:19 17:34 19.1 14:34:22 17:34 !insanetemp 19.1 14:34:24 17:34 66.3 14:35:18 fizzie, it's dc; can you blame me? 14:37:51 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 14:45:37 -!- FireFly has quit (Quit: FireFly). 14:52:55 > 9 + 55 + 43 14:53:16 -!- Patashu has quit (Ping timeout: 260 seconds). 14:55:22 -!- ive has joined. 14:59:44 -!- pikhq has joined. 14:59:51 -!- pikhq_ has quit (Ping timeout: 258 seconds). 15:01:20 Is there a more impolite way of killing a thread than cancelling it? 15:01:43 Like, that doesn't wait for a cancellation point? 15:02:54 pthread_kill with SIGKILL? 15:03:35 -!- jcp|other has quit (Excess Flood). 15:03:37 -!- yorick has quit (Excess Flood). 15:03:54 -!- jcp|other has joined. 15:04:09 -!- yorick has joined. 15:04:55 ais523? :p 15:05:35 elliott: I imagine pthread_kill with SIGKILL might work, but might just screw up the threading model generally 15:05:43 why would you want to do that anyway¿ 15:05:44 hmm, but pthread_kill with SIGTERM? 15:05:45 *? 15:05:51 ais523: because pthread_cancel does nothing 15:05:55 the thread never hits a cancellation point 15:05:58 -!- yorick has quit (Excess Flood). 15:06:03 why is the thread not hitting a cancellation point 15:06:13 library code, don't tell me to change it, I can't 15:06:29 -!- yorick has joined. 15:06:36 -!- jcp|other has quit (Excess Flood). 15:06:53 why is the library code in an infinite loop? 15:07:06 because the user typed //eval (...infinite loop...) 15:07:13 or, possibly, just //eval (computation they did not realise would blow up) 15:07:27 stop trying to avoid answering the question, it's like #python :) 15:07:55 ah, OK, I was trying to work out what you were doing so I could better formulate an answer 15:08:01 -!- jcp|other has joined. 15:08:11 perhaps spinning off a process would make more sense than a thread in that situation 15:08:12 I can control the thread enough to set up appropriate signal handlers 15:08:16 Not an option, sorry 15:08:18 you can kill those as impolitely as you like 15:08:22 It must be a thread 15:08:28 hmm, OK 15:08:42 (it has to be able to call the shared-state-using functions I provide to the environment) 15:08:43 I have a hunch that threads aren't really designed for that sort of thing 15:08:59 What you're trying to say is, you don't know the answer, right? 15:09:14 if arbitrary code can go in that eval, it may well be something that interferes with the threading model 15:09:19 elliott: well, I'm not entirely sure I know the question 15:09:21 Arbitrary Scheme code 15:09:25 but I fear that if I did, I wouldn't know the answer 15:09:46 Hmm, it seems that scm_cancel_thread'ing a thread currently doing scm_c_eval_string("(while #t '())") doesn't ever kill it; is there a supported way to kill a thread evaluating Guile code less politely, or should I do my evaluation timeout in another manner? 15:09:48 Oh well, worth a shot 15:10:28 hmm, I wonder what happens if you use SIGALRM, and then put a cancellation point in your SIGALRM handler 15:10:36 (/me believes in using semantically correct signals for this sort of thing) 15:11:12 or better, a pthread_exit in your SIGALRM handler 15:11:25 -!- copumpkin has joined. 15:11:37 the question is exiting the evaluation loop safely and putting all the interpreter state back as it should be, euurgh 15:12:09 wait what? you're trying to do multiple evals on the same interp? 15:12:17 can you set handlers from within Scheme? 15:12:25 Multiple whats on the same what what? 15:12:34 if you could put an exit in a SIGALRM handler /in the Scheme program/, I think it would work 15:12:37 I'm saying that just killing a thread while it's modifying interpreter state might not be smart. 15:13:18 I mean, I assumed you'd have one interpreter for each eval 15:13:29 -!- Gregor` has joined. 15:13:32 no, that's absurd for my usecase 15:13:40 this isn't just a toy //eval, it's an integrated language :P 15:14:47 -!- Gregor has quit (Disconnected by services). 15:14:56 -!- Gregor` has changed nick to Gregor. 15:15:06 elliott: I'm not entirely convinced that what you're asking is possible 15:15:30 you're asking to shut down an interpreter with all relevant cleanup, while simultaneously not modifying the code of the interpreter or letting it know it should shut down in any way 15:15:40 I'm fine with letting it know 15:15:40 the problem's not fundamentally about threading, but about the interpreter's API 15:15:44 I just don't know how to let it know :) 15:15:48 that's why I'm asking people who might know 15:17:29 -!- Phantom_Hoover has quit (*.net *.split). 15:17:30 -!- fizzie has quit (*.net *.split). 15:17:30 -!- EgoBot has quit (*.net *.split). 15:17:47 rip fiz 15:18:07 -!- jcp|other has quit (Excess Flood). 15:18:08 -!- yorick has quit (Excess Flood). 15:18:08 -!- EgoBot has joined. 15:18:17 -!- fizzie has joined. 15:18:21 -!- jcp|other has joined. 15:18:36 elliott: I'm seeing increased use of ~ to end a sentence (that is, ending with ~ rather than .~ which pretty universally means sarcasm), in a context where sarcasm wouldn't really seem to make sense 15:18:43 do you know if it signifies anything else? 15:18:56 -!- yorick has joined. 15:19:04 it signifies trying to be Lymia, also possibly succeeding 15:19:08 (say, by being Lymia) 15:19:29 I guess it's meant to denote a kind of light tone of voice or something but w/e I don't care 15:19:40 -!- yorick has quit (Client Quit). 15:19:42 Unless it's a third use of the tilde 15:19:44 In which case I have no idea 15:20:16 -!- jcp|other has quit (Excess Flood). 15:21:00 -!- pumpkin has joined. 15:21:16 -!- copumpkin has quit (Ping timeout: 260 seconds). 15:21:29 -!- pumpkin has changed nick to copumpkin. 15:21:30 -!- jcp|other has joined. 15:21:50 light tone of voice but w/e would seem to fit 15:21:58 "Immediately after receiving this notification, thread will call its cleanup handler (if one has been set) and then terminate, aborting any evaluation that is in progress." 15:22:08 ais523: aha, I can do scm_thread_cleanup(thread), and then pthread_kill it 15:22:15 sounds right 15:22:21 it's an interp API problem, not a threading problem 15:22:28 I'll be annoyed if you don't use SIGALRM, though 15:22:44 -!- Phantom_Hoover has joined. 15:22:51 ais523: Does SIGALRM quit the thread by default? 15:23:14 -!- Zetro_ has changed nick to Zetro. 15:23:19 elliott: yes 15:23:33 OK 15:23:36 SIGALRM 14 Term Timer signal from alarm(2) 15:23:41 yeah, I know 15:23:48 the nice thing about semantically correct signals is that they do the right thing by default 15:24:31 ugh, minecraft.net, get back up, I'm testing mission-critical software here 15:24:58 elliott: strangely, I had a dream about Minecraft a couple of nights ago 15:25:17 Do I want to know 15:25:45 probably not 15:25:53 I can't remember many details anyway 15:25:54 Go on then 15:26:23 it looked rather more like Final Fantasy Tactics Advance (with a higher resolution), though, probably because I have played that game and I haven't played Minecraft and my brain needed something to attach to 15:26:44 all I remember is flooding the area with lava and standing on high ground to avoid it, then it mostly cooled, and there were some map spots that were permanently water 15:26:51 hmm, just scm_thread_cleanup(thread); does nothing 15:26:54 then night came and I was killed by an infinite number of monsters, game over 15:26:57 the CPU keeps getting used forever 15:27:03 that makes me worry that the thread won't be in a safe staet to kill 15:27:10 ais523: haha 15:27:15 (dreams tend not to distinguish between character and player, although it was pretty clear that the death was just a game-death and not anything permanent) 15:27:18 lava doesn't cool in minecraft, though 15:27:28 it just lavas 15:27:28 forever 15:27:29 I was thinking that next time, I should probably build a wall or something 15:27:52 -!- jcp|other has quit (Read error: Connection reset by peer). 15:28:01 yeah ok thread cleanup thing doesn't work 15:28:05 (the permanently water map spots were yellow, and shown as permanently water when I cursor-hovered them, which is apparently an operation I can do mentally while inside a game world and have no cursor) 15:28:35 And I can't use pthread_kill because the API doesn't expose it 15:28:40 the pthread_t, that is 15:29:56 aha, hmm, scm_sigaction_for_thread 15:31:52 bleh, I want to go home but it's rush rather-more-than-an-hour 15:32:57 hmm, RAII is misnamed, I think; it's not really about allocation or initialization at all, but about deallocation and finalization 15:33:37 grr, the exact function I want is offered 15:33:41 but only through scheme 15:33:46 so I have to go through hoops to get at it through c 15:36:27 scm_call_1(scm_c_public_variable("(srfi srfi-18)", "thread-terminate!"), thread); 15:36:29 hopefully that works 15:36:43 what's the exclamation mark doing there? quoting? 15:37:55 ERROR: In procedure catch-closure: 15:37:55 ERROR: In procedure public-lookup: Module named (#{\x28;srfi}# #{srfi-18\x29;}#) does not exist 15:37:55 hmph 15:37:58 ais523: no, scheme 15:38:13 elliott: I mean, it's part of the name 15:38:19 naming convention 15:38:29 albeit a vaguely inconsistent one 15:38:30 I was wondering why the name contained an exclamation mark; although you can do that in Scheme, you'd need a reason to do it 15:38:35 I was wondering what the naming convention signified 15:38:48 "destructive", it originally just applied to mutating versions of procedures 15:38:53 but then it got applied tovariable assignment too 15:39:00 so now it means something like "called for side-effects" 15:39:13 ah, aha 15:39:17 or "impure" more generally, I suppose 15:39:31 nah 15:39:36 it's not applied enough for that 15:39:41 and it's not even really applied consistently 15:39:44 IMO the original convention was best 15:40:04 amusingly, in ICA you use ! to not assign to a variable 15:40:12 it's the get-contents operator (basically a dereference) 15:40:24 same idea as in ML, although not quite semanticaly identical IIRC 15:40:26 ERROR: In procedure catch-closure: 15:40:27 ERROR: Wrong type to apply: #> 15:40:27 huh 15:40:48 does it say what the right type is? 15:40:58 but it looks like you've passed it a variable holding a thread, rather than a thread 15:41:04 unless Scheme doesn't distinguish between those cases 15:42:40 yay, thread-terminate just doesn't work 15:43:01 Gregor: heh, I just noticed that I was on that page, denying a change that I personally agreed with 15:43:09 wat 15:43:19 because the person in question had used a tag designed for uncontroversial edits only 15:43:26 and anything done to that page has been controversial 15:43:27 oh, I noticed you on that page 15:43:28 Gracenotes, too 15:45:36 (well, I did accept a change to the CSS of the page to make it user-stylable, at least; I doubt anyone would disagree that that was an improvement) 15:47:04 That's besides the point. I mean, if we REALLY wanted to, we could just fork the whole encyclopedia over this issue. Why not transclude? Because, as I stated above in my redirect vote, a transcluded Main Page is nonetheless not the main page. Simple as that. Oops, forgot to sign this. 15:47:26 wtf? not even setting an alarm signal works 15:48:06 are you sure it's not messing with signal handlers? 15:48:26 note that signals and threads interact weirdly, if you use a non-thread-aware function like alarm it'll go SIGALRM a random thread 15:48:40 rather than, say, the thread it was given on 15:48:55 wait, alarm isn't signal-aware? 15:49:02 hmm, surely scm_aarm is 15:49:04 alarm 15:49:24 This is the same as a search for "s" - the "%" is ignored when searching (this is the case for both mediawiki search and google searches). 15:49:33 elliott: it's signal-aware (obviously) but not thread-aware, IIRC 15:50:02 return scm_from_uint (alarm (scm_to_uint (i))); 15:50:04 gah 15:50:05 yep, the man page just mentions that the alarm's delivered to the calling process 15:50:30 hmmm 15:50:30 if you block SIGLARM in all threads but one, it'll be bound to be delivered to the thread that doesn't have it blocked, though 15:50:45 I'm trying to figure out how to set an alarm for the current thread 15:50:51 is that even possible? 15:51:07 ooh, ooh, or how about this: can you get the current thread from pthread? 15:51:09 s 15:52:01 elliott: pthread_self(3) 15:52:10 no manual entry, wooo, /me googles 15:52:12 which I don't have a manpage for, but it's mentioned in man pthreads 15:52:23 right, returns the thread 15:52:49 ok, so at the start of the thread, I spawn another one, passing the thread id; that thread then sleeps ten seconds, and sends SIGALRM 15:52:58 heh, clever 15:53:18 I hope that the sleep isn't implemented in terms of alarm (which is allowed), or the universe will explode 15:53:36 you might want to explicitly sleep using select in order to avoid that (select is guaranteed to be independent of alarm) 15:53:53 heh 15:54:12 hmm, there's a function called ftw(3) 15:54:19 it'll go nicely with Android's wtf() 15:55:13 apparently it's for traversing directory structures 15:55:33 mcmap has the wonderful (die|stop|wtf)f? family of functions. 15:55:41 DIEF! 15:55:55 I wouldn't normally bother with a formatted error message for a wtf 15:56:03 unless it was happening a lot and I wanted to give debug info at the same time 15:57:27 well, completeness :P 15:57:36 it's good to know "invalid zlib id blah" 15:57:40 as opposed to just "invalid zlib id" 15:58:43 heh, I'm still amused I called a template {{REMOVE THIS TEMPLATE WHEN CLOSING THIS AfD}} 15:58:54 it seems that the lowercase f is intrinsically part of the spelling of AfD to me 16:02:06 AHA 16:02:12 if I send SIGTERM rather than SIGALRM, everything quits 16:02:14 so SOMETHING works :P 16:04:47 fuck this, I'm committing a non-timeouting //eval and doing more important things 16:08:19 -!- pumpkin has joined. 16:09:44 oh right, I invented http://en.wikipedia.org/wiki/CAT:AFD/I 16:09:48 best category ever 16:09:52 elliott: at some stage, my lessons on FSMs led me to write: (wo|hu|)man 16:09:53 * ais523 nostalgias 16:09:59 -!- copumpkin has quit (Ping timeout: 260 seconds). 16:11:10 elliott: I think that category would be a good place to look for language inspiration, especially as it gets completely replaced every 14 days 16:11:15 (barring relists) 16:11:20 every 7, actually, I think 16:11:35 haha 16:11:40 "UML fever" 16:11:41 wow 16:11:55 A potentially deadly illness, clinically referred to as UML (Unified Modeling Language) fever, is plaguing many software-engineering efforts today. 16:11:55 damn 16:12:00 i was hoping it was an unrelated UML 16:12:04 that could be turned into a diagram hell language 16:12:06 so was I 16:12:24 CAT:AFD/? is a little larger, but a little lower-quality on average, because some people file everything in ? as a protest against the system 16:12:37 haha 16:13:09 and still more people file everything in U for the same reason (although for a while U was typically empty due to AFD categorizing gnomes) 16:14:09 grrr, someone reverted my addition of a {{prod}} using Twinkle 16:14:19 anon edit? BETTER REVERT IT! 16:14:47 -!- jcp|other has joined. 16:15:08 this is what's wrong with Wikipedia, ofc 16:15:17 you can follow up with an actual AfD, except you'd probably have to log in for taht 16:15:29 I just reverted their reversion 16:15:35 why don't you talk-message them and ask why they deprodded? if every anon did that, they'd stop doing it after a while, because talk edits stop twinkle 16:15:44 I might 16:15:44 you're not supposed to revert prod removals ever, though, that's what prods are for 16:15:54 ais523: hmm, true 16:15:55 too late, though 16:16:10 but come on, it said "identified as vandalism" right there in the commit, there's clearly no cogent objection gone into that :P 16:16:14 -!- augur has quit (Remote host closed the connection). 16:16:15 too late now, anyway 16:16:34 -!- Zuu has quit (Ping timeout: 260 seconds). 16:16:44 hmm, seems that 'crats can remove admin rights nowadays, I wonder why that change was made? 16:17:48 I should see if the WT:RFA discussion on adminship reform is still going, sometime 16:17:54 it had been going for years with no sign of stopping back in 2007 16:18:20 ais523, have you checked? 16:18:27 not yet 16:18:31 I almost certainly will at some point, though 16:19:07 -!- pumpkin has changed nick to copumpkin. 16:29:04 -!- augur has joined. 16:30:54 yep, I'm reading WT:RFA, the same argument's still going 16:31:48 and someone's created WP:RFA2001 in order to have /yet another/ attempt at changing the system 16:32:18 I've closed the below thread. With respect to Mr. Keeper, who is only the latest person to start one of these (I may have started one myself a while back), the monthly compliant threads generate a lot of heat, rehash the same arguments, and generally serve no purpose but to create tension and sour relations. That's not the intent, of course, but it's what happens every single time, and it's what has happened this time. 16:34:41 now, I'm wondering whether WP:GRFA has a) become massively insane, or b) is exactly the same as it used to be 16:34:46 I'm not sure which is the more predictable option 16:36:55 hmm. looks like content is basically the same but was rewritten in managementspeak 16:37:02 or maybe it's always been like that, and I just didn't notice 16:39:37 aha, /now/ I've found the list of insane requirements I was looking for: http://en.wikipedia.org/wiki/Wikipedia:RfA_reform_2011/Sysop_on_request 16:41:48 -!- Taneb has joined. 16:42:04 Hello 16:42:04 -!- kmaker has joined. 16:44:02 hi 16:44:15 k...eymaker? 16:44:24 hi 16:44:24 yeah 16:44:37 yeah=that's me 16:44:45 So how is everyone today? 16:45:06 i came to ask what's going with esowiki but i see it's still online, it's just esolangs.org that isn't working 16:45:19 kmaker: Yeah, whoever owns esolangs.org effed up. 16:45:49 kmaker: the DNS service hosting esolangs.org got bought out 16:46:02 and are asking for more money in order to keep hosting the DNS 16:47:51 too bad... 16:48:26 the esoteric.voxelperfect.net address should probably be considered the canonical one from now on, because it still works 16:51:50 so ais523, what's this feather language all about? it's mentioned here and there but i still don't know anything about it 16:51:59 ais523 why can't you transfer esolangs.org 16:52:10 oh ok 16:52:13 cheater: because I don't own it 16:52:16 just reading scrollback now 16:52:29 kmaker: it's a combination of two things: an esolang idea that hurts my head when I think about it, and an inside joke 16:52:41 basically, because whenever I work on it I end up having to quit due to getting to confused 16:52:50 and its vaporwareness has become a #esoteric meme 16:53:12 -!- Zuu has joined. 16:53:13 the general concept is a prototype-based OO language that uses time travel rather than delegation 16:54:11 where all variables are immutable once created (as in SSA), but you can retroactively change the values that they had when they were created 16:55:00 SSA? 16:55:17 single static assignment 16:55:30 a programming technique in which variables can't have their values changed once they're assigned for the first time 16:55:46 So basically the way variables work in Haskell? 16:55:54 very common in functional languages, and many imperative language compilers compile via an intermediate SSA form 16:55:56 yep 16:56:30 And what's delegation? 16:56:37 The WP page is kind of unhelpful. 16:56:56 it sounds interesting. can't imagine how programming is done heh 16:57:04 kmaker: neither can I, that's part of the problem 16:57:08 :D 16:57:08 or at least, I can, but only slightly 16:57:15 Phantom_Hoover, elliott, Taneb, CakeProphet, Jailbreak update 16:57:40 Phantom_Hoover: "inheriting" methods via asking the superclass to handle them when they aren't present in the class itself 16:57:46 Ah. 16:57:56 doing things Feather-style is one way to eliminate the distinction between classes and objects, which I like 16:57:59 Wait, how does time travel replace it? 16:58:24 with delegation: change superclass, subclass delegates to superclass and gets the new changed method 16:58:39 with time travel: change superclass, subclass got a copy of the new version of the superclass when it was created 16:58:41 ais523: I'm designing a makefile with user input and network connectivity; help 16:58:45 ive gone bad 16:58:46 mad 16:58:58 that should have been "hlep", surely? 16:59:04 wow, that word is hard to intentionally typo 16:59:17 is this a makefile as in program run via make(1)/ 16:59:24 if so, I think it counts as alternative programming 16:59:34 (that said, IIRC buildroot has user input and network connectivity) 16:59:43 This most recent system upgrade seems to have improved Terminal.app from being /almost/ completely unusable to being completely unusable. 16:59:44 (it is also beautifully insane, and even actually works sometimes) 16:59:44 Sgeo: Jailbreak!? 16:59:53 Gregor: what was the change? 17:00:02 is this a makefile as in program run via make(1)/ 17:00:02 yep 17:00:11 ais523: Before, Terminal was occasionally slow and horrible. Now, it's always slow and horrible. 17:00:27 is this a subjective "horrible", or some specific horriblizer? 17:01:12 You type something, it goes through data buffer purgatory for a while, then shows up later. It's like they have a TCP connection to whatthefuckistan through which all data sent to/from the PTTY is routed. 17:01:16 ais523: to clarify, it's for a completely non-esoteric purpose 17:01:20 Sgeo: LIES 17:01:49 Gregor: ah, so it's just very laggy for no sane reason at all 17:01:54 Yup 17:01:54 hmm, does anyone know how to trap sh so that it outputs the status code it's going to execute with to a file? 17:02:01 elliott: * exit with? 17:02:43 Vorpal almost certainly knows; I don't but think I know where in the man page to look it up, so I'm looking there now 17:02:45 ais523: yes 17:03:58 it's trap EXIT (something), I'm trying to work out what the something is atm 17:04:53 thanks :P 17:05:15 I think it's probably just trap EXIT (echo $? > filename.txt) 17:05:21 but I'm not sure; it shouldn't be too hard to test 17:05:46 sounds good :P 17:05:52 oh, and if you want to keep the same exit status, you'd need to store $? in a temporary variable and exit with it afterwards 17:05:53 it's '' though i think 17:05:53 not () 17:05:59 ah, hmm 17:06:16 it didn't say what format the args were meant to be in, so I assumed you put a command there rather than the string representation of a command there 17:06:19 perhaps I'm wrong 17:07:11 elliott: what should my reaction be to [[Talk:Binary lambda calculus]]? 17:07:31 perhaps to mention that is a nonstandard extension to MediaWiki, and just because it's used on Wikipedia doesn't mean every wiki in existence has it? 17:07:48 BTW: until this problem is fixed, the way to read this article is to edit the page, copy all the text, paste it into the [http://en.wikipedia.org/wiki/Wikipedia:Sandbox wikipedia sandbox], and then preview. 17:07:53 meh, it's a reaonable mistake to make; I thought was standard fo rthe longest time 17:07:54 but uh 17:08:03 direct em to http://en.wikipedia.org/wiki/Binary_lambda_calculus 17:08:09 which is the same article inexplicably not deleted for notability after years 17:08:19 elliott: is that the article you just prodded? 17:08:37 no :) 17:08:43 apparently not 17:08:44 aw, the guy apologised to me and now i feel bad 17:09:07 it does have references, at least 17:09:34 heh, I'll have no idea which article you prodded unless I can guess your IP 17:09:41 or check for recent prods, I guess, but that's nontrivial to do 17:09:48 MWAHAHAHAHHA 17:11:38 by the way, has anyone made any brainfuck programs lately? 17:12:01 we were playing a bit of BF Joust recently, but I don't think so apart from that 17:12:25 ok 17:15:50 i have a few ideas but it remains to be seen if i actually get anything done this year 17:15:59 or the next 17:17:11 trap: cd `dirname $0`; rm -rf support; echo $? >guile.built: bad trap 17:17:12 :( 17:17:20 elliott: FOSD Program Cubes 17:17:29 might be difficult to find, but not completely impossible 17:18:00 haha 17:18:05 NOOO NOW YOU KNOW MY CONSTANTLY-CHANGING IP FOREVER 17:18:22 * elliott wonders if there's any contributions not by him logged on that ip 17:18:27 that took a while, including a bunch of API searches 17:18:36 yep, someone seven days ago 17:18:51 ais523: what a waste of effort :P 17:19:07 it was fun, and I wanted to see if I could still remember how to do it 17:24:04 I just looked for a page in the prod category whose most recent recategorization was around the time of your revert 17:26:26 and the problem is that there's no way to specify that in the interface, so I had to use the API 17:35:03 -!- kmaker has quit (Quit: Page closed). 17:37:04 -!- Braber01 has joined. 17:37:33 I'm having trouble trying to install BeQuinge on Ubuntu could somebody help me? 17:38:30 BeQuinge? 17:39:03 yes apperently the ubuntu pacakge that's provided on the site, is looking or an older version of a package that doesn't exist anymore, 17:39:08 It doesn't seem to exist. 17:39:26 *BeQunge 17:39:30 -!- ais523 has quit (Read error: Connection reset by peer). 17:40:11 i can't spell... 17:40:32 Build it yourself :P 17:40:50 -!- ais523 has joined. 17:41:11 i'm trying to figure out how to download the binary however the howto link seemms dead, i get a 404 error, when I click on the howto link 17:41:44 https://github.com/hatstand/Bequnge 17:44:00 :t atomicModifyIORef 17:44:04 ?hoogle atomicModifyIORef 17:44:31 -!- Braber01 has quit (Remote host closed the connection). 17:44:36 Braber01: BeQunge is incredibly non-standards-compliant and ... 17:44:43 -!- augur has quit (Remote host closed the connection). 17:52:41 elliott: what's the second-most-... Befunge interp? 17:53:02 hey, my compose key has … on it 17:53:02 ais523: Definitely GLfunge. 17:53:08 that's a fun discovery 17:54:21 -!- augur has joined. 17:57:20 elliott, what's the least-... Befunge interpreter that is in a reasonably complete state? 17:57:47 Shiro. Definitely Shiro. 17:58:38 *Reasonably complete*. 17:59:19 Phantom_Hoover: Shiro is reasonably complete. 17:59:26 elliott, it is? 17:59:33 OK, other than Shiro. 17:59:35 It passes Mycology with one BAD and implements enough fingerprints for fungot, although there's a bug in probably the socket one that stops it running. 17:59:35 elliott: i said i don't care about who they like or don't like this ain't gonna show up. 17:59:42 It's just a churn of implementing more fingerprints now. 17:59:45 ^style 17:59:45 Available: agora alice c64 ct darwin discworld europarl ff7* fisher homestuck ic irc jargon lovecraft nethack pa sms speeches ss wp youtube 17:59:51 Phantom_Hoover: Definitely BeQunge, then. 18:00:04 I thought it was the most .... 18:01:29 -!- ais523 has quit (Read error: Connection reset by peer). 18:02:40 -!- ais523 has joined. 18:03:26 Phantom_Hoover: I never said it was coherent. 18:08:03 -!- CakeProphet has quit (Ping timeout: 252 seconds). 18:14:01 Hello! 18:14:50 -!- cheater has quit (Ping timeout: 245 seconds). 18:16:35 elliott: May I ask, what is the BAD bit of Shiro>? 18:17:15 -!- jcp|other has quit (Read error: Connection reset by peer). 18:18:49 -!- jcp|other has joined. 18:19:08 back 18:19:12 Taneb: BAD bit? 18:19:26 It passes Mycology with one BAD and implements enough fingerprints for fungot, although there's a bug in probably the socket one that stops it running. 18:19:26 Taneb: it looks like the sky? 18:19:40 Thanks, fungie 18:19:42 Oh. fungot got it, it fails because it looks like the sky. 18:19:42 elliott: even employees can't walk around above the 60th floor. but, then it's easy to get our materia! 18:19:52 Actually it's a bug with reading or writing in text mode I'm not sure which 18:20:13 I may learn Funge-98 18:20:20 AND DEVELOPE IN IT 18:20:48 Would I get a swat for a Monty Python quote? 18:21:04 oerjan isn't here, so no 18:21:08 Okay 18:21:13 WITH THIS HERRING! 18:21:58 elliott: look at the file it generates and see if it's correct? 18:22:07 Taneb: wait, you're using /that/ quote? 18:22:09 out of context? 18:22:13 perhaps you'll get swatted anyway 18:22:46 I was going to say it directly after "AND DEVELOPE WITH IT" but I thought it would be risky so I asked for approval 18:23:04 But yeah, it's not the best quote 18:23:11 Not even the best from Holy Grail 18:23:27 developee with it 18:23:50 -!- jcp|other has quit (Read error: Connection reset by peer). 18:24:19 Question: 18:24:26 Answer: 18:24:46 In Befunge, if a line feed character is p'd into the program, does that reshape the program? 18:24:55 no 18:25:03 would be fun if it did but no 18:25:22 -!- jcp|other has joined. 18:27:38 I'm going to sign off with "TTFN" now 18:27:55 -!- Taneb has quit (Quit: TTFN). 18:28:19 -!- jcp|other has quit (Read error: Connection reset by peer). 18:30:47 -!- cheater has joined. 18:31:36 -!- jcp|other has joined. 18:33:34 -!- jcp|other has quit (Remote host closed the connection). 18:55:15 -!- ais523 has quit (Remote host closed the connection). 18:57:06 -!- pumpkin has joined. 18:59:09 -!- copumpkin has quit (Ping timeout: 260 seconds). 18:59:32 -!- Taneb has joined. 18:59:40 Hello! 19:00:11 hi 19:00:17 hi 19:04:22 Would Befunge-93 be Turing Complete if it used a queue rather than a stack 19:10:26 - (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)theApplication 19:10:37 OH THANK YOU MIGHTY COCA 19:10:41 COCOA* 19:10:53 CACA 19:10:58 aSTALWC 19:14:47 -!- ive has quit (Ping timeout: 252 seconds). 19:29:08 -!- pumpkin has changed nick to copumpkin. 19:37:49 -!- ais523 has joined. 19:41:21 http://en.wikipedia.org/wiki/Hilbert_R-tree 19:41:34 this + esolang 20:09:52 Once I've finished my Travelling Salesman problem esolang 20:16:17 -!- pumpkin has joined. 20:16:58 -!- pumpkin has changed nick to copumpkin_. 20:17:36 -!- copumpkin has quit (Ping timeout: 276 seconds). 20:22:06 Uniquode is a long term project; lingua abstrusa and Salesman are on hold, Binary Variety Pack is dead 20:23:35 Next project: NonE Minimilastic One inSTRuction sET computEr 20:23:43 Or NEMO-STRETE 20:23:53 "Minimilastic"? 20:24:00 Yes 20:24:00 please tell me that's not a typo 20:24:03 because it's a great word 20:24:31 It's e combination of minimalistic and elastic 20:24:37 *a 20:24:50 It is neither Minimalistc nor Elastic 20:25:38 I'm going to try and make it as useful as possible while still fundamentally not Turing Complete and also hard to program in 20:25:55 The instruction will have FOURTEEN operands 20:27:01 Or possibly loads of registers 20:27:11 -!- copumpkin_ has changed nick to copumpkin. 20:28:30 -!- ive has joined. 20:31:57 Actually, more fun idea 20:32:12 An Iota interpreter... IN XSLT 20:32:57 -!- elliott has quit (Ping timeout: 240 seconds). 20:33:36 Wait a minute, wait a goddamn minute 20:34:00 Combinatory logic can be expressed as tree rearranging from within the tree, right? 20:34:08 I think so 20:34:25 And trees can be expressed as XML, right? 20:34:39 Are you thinking what I'm thinking? 20:39:28 becomes 20:42:46 I saw a Microsoft advert that really sums the company up. 20:42:56 "I'm a PC and I'm finally up-to-date!" 20:43:28 the whole "I'm a PC" campaign was ridiculous IMO 20:43:41 also, I hate the conflation of "PC" and "Windows" 20:43:46 although I'm pretty sure it's deliberate 20:44:08 It is delibrate on the part of Microsoft and IBM before it 20:49:01 Can someone who understands XPath better than me tell me what //s/*[3]/.. would match? 20:57:34 XPath? 20:58:02 Taneb: I'm trying to read it as a regex 20:58:04 and failing 20:58:04 W3C reccomendation used to navigate an XML document with XSLT or XQuery 20:58:14 It just might match any elements with at least three or four children of any type. If [n] was the index-thing, and depending on whether it was 0- or 1-indexed. 20:58:29 I'm hoping 1-indexed 20:58:43 And I'm hoping fizzie is right 20:59:53 It could be a shorthand for something like //s/*[position()=3]/.. 21:00:26 Right, looked it up 21:00:48 IE is 0-indexed, everything else with XPath (including the reccomendation) is 1-indexed 21:10:45 -!- zzo38 has joined. 21:11:23 -!- Wamanuz has quit (Remote host closed the connection). 21:11:50 I have read about Curry-Howard stuff, and how it can be related to Haskell (they are even named after the same people, I think) 21:11:59 -!- Wamanuz has joined. 21:14:00 -!- GreaseMonkey has joined. 21:14:05 -!- GreaseMonkey has quit (Changing host). 21:14:05 -!- GreaseMonkey has joined. 21:14:33 < > < > < > 21:14:37 peg leg 21:15:21 -!- nooga has quit (Quit: Lost terminal). 21:16:23 -!- kmc has quit (Quit: Leaving). 21:17:50 -!- nooga has joined. 21:17:54 Does anyone know how to create a copy of an element with a copy of a different element as an additional child node in XSLT? 21:22:15 Why are type families not allowed in instance declarations in Haskell? 21:23:12 Actually I think I see there are overlapping instances with what I am doing 21:23:57 (There seems to be overlapping instances even though there is only a single instance declaration.) 21:24:30 -!- KingOfKarlsruhe has joined. 21:26:56 preprocessing C to get decent OOP syntax 21:30:15 I leave you with http://esoteric.voxelperfect.net/wiki/User:Taneb/XSLT_S_and_K 21:30:19 -!- Taneb has quit (Quit: TTFN). 21:31:36 -!- derdon has quit (Remote host closed the connection). 21:48:43 Type families does not seem to do everything. 21:49:39 It seems to accept type families in a constraint although they seem to don't work even though it is acceptable. 21:52:07 -!- CakeProphet has joined. 21:53:45 -!- CakeProphet has quit (Client Quit). 21:53:59 -!- CakeProphet has joined. 21:54:05 -!- CakeProphet has quit (Changing host). 21:54:05 -!- CakeProphet has joined. 21:58:00 -!- augur has quit (Remote host closed the connection). 21:58:00 -!- sllide has quit (Read error: Connection reset by peer). 22:00:31 no elliott, huh 22:02:44 is it bad that some of my dreams involve conversing in #esoteric? 22:02:57 am I dreaming right now? hello? 22:03:10 CakeProphet: if I said no, would you believe me? 22:03:29 ais523: if I believe you, will that make it any more true? 22:03:57 if I mandate conditionals, will they be upheld rigorously? 22:03:59 well, if you /are/ dreaming, and I convince you that you are 22:04:03 then you'll probably wake up 22:04:06 it's the most common result 22:04:10 ais523: oh I know I'm not dreaming. 22:04:15 :P 22:04:26 if you're dreaming, then probably I am too 22:04:28 -!- monqy has joined. 22:04:38 I find it is much easier to realize you are not dreaming than it is to realize you are. 22:05:16 even the most vivd dreams aren't like being fully awake. 22:05:32 and you have the cognitive faculty while awake to determine such things. 22:05:39 so how many of those times you've realized you were "not" dreaming were you actually wrong? can you even know? 22:05:46 so fucking you philosophy and your dream shit. 22:05:53 olsner: that's only ever happened to me with recursive dreams 22:05:53 I've been wrong about realizing I'm not dreaming 22:06:02 where I assumed I wasn't dreaming because I just work up 22:06:07 ais523: recursive dreams are awesome! 22:06:09 which turns out not to be an entirely reliable check 22:06:12 olsner: no they aren't 22:06:17 you go through your boring morning routine 22:06:18 I've just had one, it was hilarious 22:06:21 then have to do it all /again/ 22:06:25 olsner: sure can't 22:06:29 well, it's funny the first time 22:06:32 but gets old quickly 22:06:40 my recursive dreams don't involve morning routines, interestingly enough 22:06:44 but I am /not/ dreaming now, for sure. it may be hard to determine these things when you're dreaming, but not when you're actually awake. 22:07:01 unless my entire life has been a dream, I guess. 22:07:02 I usually wake up in a strange place but know what's going on 22:07:20 monqy: do you realise it's a recursive dream that time? 22:07:24 or only when you wake up a second time? 22:07:25 no 22:07:46 I think "nested" is a better term. 22:08:01 I don't think I'm not dreaming when I wake up 22:08:15 maybe it just doesn't occur to dream me 22:08:20 * CakeProphet is very bad at dreaming, truthfully. 22:08:21 the worst case would be some kind of fixpoint dream where you wake up in the dream you were waking up from 22:08:47 ... and you keep doing it the rest of your life 22:08:59 tonight I had a dream in which I had a series of dreams within that dream and I was describing them 22:09:00 most of my dreams are not very vivid. Sometimes they are. Sometimes they nest as well. 22:09:05 but most are very vaguely recalled. 22:09:25 olsner: you just need each dream to go twice as quickly, in realtime, as the previous one 22:09:40 ...Inception anyone? 22:09:42 once you go past the convergence point, you are now capable of thinking an infinite amount in finite time 22:10:02 I don't think the ratio was 2 though in Inception. 22:10:10 this strikes me as probably better than a singularity, because you can't trust a random AI, but you can probably trust olsner 22:10:16 CakeProphet: inception did not go deep enough ... into the subject of nested and recursive dreams 22:10:35 olsner: I was referring to the time stuff, as ais523 mentioned it. 22:10:41 * Phantom_Hoover → sleep 22:10:54 -!- Phantom_Hoover has quit (Quit: Leaving). 22:11:08 never seen inception. probably shjould. 22:11:18 monqy: it is not bad. 22:11:30 it's one of the few movies that made my brain hurt a little bit. 22:12:28 didn't make my brain hurt, but maybe I wasn't watching it thinkingly enough 22:13:06 occasionally I'd lost track of some detail and be slightly confused as to what was going on 22:13:16 until it returned to a previous dream. "oh right..." 22:14:02 what was going on was always moving into, out of or around inside a dream 22:15:59 -!- GreaseMonkey has quit (Quit: The Other Game). 22:17:08 olsner: uh true statement 22:20:15 Entertainment Weekly gave the film a B+ rating and Lisa Schwarzbaum wrote, "It's a rolling explosion of images as hypnotizing and sharply angled as any in a drawing by M.C. Escher or a state-of-the-biz videogame; the backwards splicing of Nolan's own Memento looks rudimentary by comparison."[ 22:20:30 I don't trust anyone from Entertainment Weekly to have actually followed what was going on in that moive. 22:20:39 thus the "rolling explosion of images" 22:21:24 Now, it cannot make type level programming in Haskell. Because, I try thing it failed 22:21:43 wat 22:22:19 CakeProphet: it cannot make type level 22:22:31 I see. 22:22:40 I recall walking out of the theater feeling as though I were in a dream 22:22:44 after watching that movie. 22:23:02 I have watched Inception movie. And then I said they have read Godel, Escher, Bach. My brother said no they did not do so. But, I wanted to make sure I checked, in Wikipedia, in fact one of the people did read that book. 22:23:58 oh good. 22:24:20 Did you read the book Godel, Escher, Bach? 22:24:49 I haven't. 22:26:22 According to Hollywood Reporter, both Brad Pitt and Will Smith were offered the role. 22:26:36 I don't think Will Smith would have been as good in that role. 22:26:56 he would do his Will-Smith-sad-face thing and it would ruin everything. :P 22:27:27 How do you make it in Haskell, that if instance GreaterThan t u => DoesNotDivide (Succ t) (Succ u); doesn't work, then it will try instance DoesNotDivide t (Subt u t) => DoesNotDivide t u; instead? 22:28:04 you.... don't 22:28:09 you don't don't do that. 22:29:35 Is there any way to make an extension in Haskell to make it to work? 22:29:49 you have typeclasses, and instances of such. if the type matches the instance declaration then it has an implementation of the methods. 22:30:03 there isn't any sort of re-routing or conditional logic involved. 22:30:15 zzo38: feel free. 22:31:38 GHC does allow overlapping instances and incoherent instances and so on. Sometimes it does it by specificness. But sometimes it should instead assume they are equivalent if defined?? 22:32:44 how would it go about resolving that? 22:41:40 zzo38: basically you can't make typeclass implications when the instance doesn't match. 22:41:50 it has to be true. 22:47:59 ...what, why did my date and time disappear 22:48:10 and why is there a large inaccessible hole on the panel where I cannot add things. 22:48:25 @localtime CakeProphet 22:48:34 lambdabot....... 22:48:42 rip :'( 22:48:44 monqy: NO I MUST FIX MY PANEL 22:49:16 01:49:43 22:49:19 when i checked 22:49:25 a few minutes ago 22:49:26 er 22:49:27 seconds 22:49:33 maybe a minute ago in a few more seconds 22:49:33 6:50 PM here 22:49:37 oh 22:49:39 but I CAN'T GET IT TO GO IN THE SAME PLACE 22:49:41 NOTHING WILL GO 22:49:44 THERE IS JUST A BIG UGLY HOLE 22:49:46 i checked your time it must be broken 22:49:54 my time is 1551 22:49:55 uh, no. 22:50:11 it is 6:50 PM aka 18:50 22:50:26 yeah but when i checked it it said 01:49:43 22:50:32 I have 3 time sources that agree with me. 22:50:36 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 22:50:36 oh wait no that must have been the server 22:50:51 oh I didn't use the right command 22:50:52 haha 22:50:52 :( 22:51:18 15:52:58 [freenode] CTCP TIME reply from CakeProphet: Thu Sep 8 18:51:57 2011 22:51:20 that's better 22:51:20 bah 22:51:22 this is bad. 22:51:31 just ctcp time yourself whenever you need it 22:51:40 you are missing the point completely. 22:51:45 that's the joke 22:51:54 I have a clock on my panel now 22:52:00 BUT IT IS. IN. THE. WRONG. PLACE. 22:52:05 how does that even happen 22:52:19 I don't know 22:52:28 my computer does this shit for some reason after restarts sometimes. 22:52:39 first my shutdown button disappeared... though I don't really need that one. 22:53:26 where is panel configuration stuff at? 22:54:08 it's not in gconf is it? 22:55:30 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.87 [Firefox 6.0.1/20110830092941]). 23:00:44 bam fixed. 23:01:05 something weird happened to the original clock app so I just manually removed it in gconf. 23:07:33 random youtube comment: "and I thought Finland was bad for making the moomins..........  :P" 23:09:04 The instance for DoesNotDivide doesn't work. OK, I have been told why it doesn't work. Does it mean there is some things missing from Haskell type system? Or, does it mean other thing instead? 23:09:28 -!- kmc has joined. 23:14:01 if by "missing" you mean "doesn't do what you want it to do" then yes. 23:14:25 though there are probably things that are actually missing... ask elliott I bet he knows. 23:16:51 -!- copumpkin has joined. 23:16:52 As far as I know there could be a lot of improvement that could be made in Haskell, including new kinds and new pragmas and new macros and other stuff 23:20:40 my stance is that nothing could ever be improved about Haskell it is perfect in every way. 23:20:55 CakeProphet: Without more-notation? 23:21:44 nothing. 23:22:25 man this code is going to be a pain in the ass to debug 23:22:33 maybe if I just stare at it long enough I'll find all of the bugs. 23:22:40 is this for your thing 23:22:46 no never. 23:22:57 I have no things. 23:23:00 no such thing 23:23:07 Is there some things in category theory that cannot be made in Haskell?