←2011-09-07 2011-09-08 2011-09-09→ ↑2011 ↑all
00:00:18 <monqy> what oerjan said
00:01:05 <oerjan> 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 <oerjan> so you need to use the other address.
00:01:42 <Braber01> 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 <Braber01> baned from 99-bottles-of-beer.net
00:02:14 -!- sebbu2 has changed nick to sebbu.
00:02:24 <oerjan> 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 <Sgeo> Oh
00:02:41 <oerjan> Braber01: i dunno
00:03:33 <Braber01> neither do I but at least I'll have a fun project to do over the weekend.
00:04:30 <oerjan> 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 <itidus20> 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 <Braber01> I think I kind of liked i-hate-your-bf-deritive-i-really-do I thought that article was pretty funny.
00:06:21 <monqy> there are at least two reasons to hate brainfuck derivatives
00:06:21 <oerjan> 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 <monqy> 1) there are so many it's getting old
00:06:45 <Sgeo> monqy, do you hate me.
00:06:49 <monqy> 2) they're typically really uncreative, just renaming the commands or adding a new command or something like that
00:06:53 <monqy> Sgeo: what did you do
00:07:02 <Sgeo> monqy, made a brainfuck derivative.
00:07:05 <monqy> :'(
00:07:10 <monqy> some brainfuck derivatives are good
00:07:14 <monqy> but
00:07:15 <monqy> it's rare
00:07:19 <itidus20> 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 <oerjan> itidus20: yeah +!!!!! is _so_ much better than ++++++ :P
00:07:47 <Sgeo> I think zzo38 using my BF derivative is not necessarily an indicator of goodness
00:08:12 <oerjan> oh wait this is fuckfuck
00:08:24 <oerjan> so i guess it is a slight improvement
00:08:38 <itidus20> oerjan: but the idea is genius
00:08:43 <Braber01> no it's Trourettes. LOL
00:08:51 <monqy> ok
00:09:23 <oerjan> fucking tourettes, bitches
00:11:03 <oerjan> itidus20: wait are you actually making a euphemism for "smeg head" :P
00:11:50 <oerjan> oh it's canonical
00:12:04 <itidus20> i don't follow red dwarf much but i saw a youtube of it the other day with that euphemism
00:13:18 <oerjan> i haven't exactly seen every episode either.
00:14:06 <itidus20> i'm no lister.. even though i consider myself quite possibly the least nerdiest in here
00:14:14 <itidus20> that is not saying much
00:15:10 <oerjan> no. no it isn't.
00:15:10 <itidus20> i don't think this room really attracts lister types
00:15:32 <lifthrasiir> oerjan: or you can use a binary encoding so +!?! is really + followed by five copies of it
00:15:42 <oerjan> lifthrasiir: ooh, fancy!
00:15:58 <lifthrasiir> (boob!?! in fuckfuck, of course)
00:16:09 <itidus20> wow.....
00:16:14 <itidus20> ha ha hahahaha
00:16:27 <Braber01> I like tits.
00:16:27 <itidus20> i might never look at !?!?! the same
00:16:47 <Braber01> . . .
00:16:50 <itidus20> that .. is even more genius
00:17:21 <itidus20> now to translate hello world into binary encoded fuck fuck
00:18:18 <elliott> hello
00:19:00 <monqy> hi
00:19:02 <oerjan> eek, an elliott
00:19:08 <elliott> whats
00:19:09 <elliott> goin on
00:19:14 <monqy> bad thigns....
00:19:20 <elliott> what
00:19:30 <oerjan> elliott: fuckfuck
00:19:35 <elliott> oh
00:19:36 <elliott> why
00:19:38 <elliott> and how do i stop it
00:19:44 <Gregor> $ gcc
00:19:44 <Gregor> gcc: fatal error: no input files
00:19:44 <Gregor> compilation terminated.
00:19:46 -!- kwertii has quit (Quit: bye).
00:19:51 <Gregor> When did they change this error message???
00:20:00 <Gregor> It's been "gcc: no input files" for DECADES.
00:20:08 <elliott> Still is on this old version
00:20:32 <oerjan> Gregor: maybe they discovered it had actually killed someone.
00:20:35 <monqy> $ gcc
00:20:35 <monqy> gcc: fatal error: no input files
00:20:36 <monqy> compilation terminated.
00:20:37 <monqy> weeping
00:22:00 <lifthrasiir> 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 <lifthrasiir> great.
00:22:14 <elliott> so beautiful.
00:22:20 <itidus20> wow.
00:22:33 <itidus20> so fast
00:22:53 * Braber01 is ashamed that I startted something...
00:23:29 <lifthrasiir> is Uniquode still being updated?
00:23:35 <elliott> ask taneb :P
00:24:50 <lifthrasiir> i recall one from the list of ideas that recommends the use of chinese characters for golfing
00:25:59 <oerjan> <meme>Scumbag Taneb makes Uniquode; never gets beyond 256 commands.</meme>
00:26:19 <elliott> 17:22:58: <Gregor> "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 <elliott> 17:22:59: <Gregor> -- http://gmplib.org/macos.html
00:26:19 <elliott> 17:23:01: <Gregor> :P
00:26:19 <elliott> GNUUUUUUUUUUUUU
00:26:33 <lifthrasiir> oerjan: no, he can still combine Uniquode with Unispace
00:27:07 <oerjan> eek
00:27:16 <Gregor> elliott: I love how unbiased that is :P
00:27:49 <elliott> Gregor: You see, Apple failed to create GNU/Hurd.
00:27:54 <elliott> SO THEY HAVE FAILED TERRIBLY
00:27:55 <Gregor> BASTARDS
00:28:19 <Gregor> 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 <elliott> 19:48:38: <Gregor> Huh
00:29:10 <elliott> 19:48:44: <Gregor> Seems to be special-cased for @messags.
00:29:12 <elliott> Gregor: It just spell-corrects.
00:29:17 <elliott> ?pul \f x -> f x
00:29:18 <lambdabot> id
00:29:18 <Gregor> We resolved that.
00:29:21 <pikhq_> Gregor: That's been the standard means of using Mach.
00:29:28 <elliott> I resolved it sooner, relativity-wise.
00:29:33 <pikhq_> Sadly.
00:29:34 <Gregor> pikhq_: IT'S NOT THE HURD WAY
00:29:39 <elliott> 20:17:25: <Gregor> 4) ... GNU lightning?
00:29:39 <elliott> 20:17:37: <Gregor> There aren't really any good JIT libraries, are there :P
00:29:45 <Gregor> HURD IS A HIRD OF UNIX-REPLACING DAEMONS
00:29:45 <elliott> Gregor: GNU lightning is pretty good, so is LLVM :P
00:29:52 <Gregor> GNU lightning is good???
00:29:54 <elliott> LLVM is better but probably harder to use.
00:29:54 <pikhq_> The Hurd way involves not hitting 1.0 for decades.
00:29:56 <elliott> Gregor: Well, it works?
00:30:19 <elliott> Racket, GNU Smalltalk and CLISP use it apparently, so it can't be so terrible.
00:30:26 <Gregor> Huh ...
00:30:28 <elliott> It's probably not very fast though.
00:30:35 <Gregor> That's probably almost fifteen end users.
00:30:36 <elliott> "It does not provide register allocation, data-flow, and control-flow analysis, or optimization."
00:30:41 <elliott> Har har har
00:30:43 <Gregor> :P
00:30:55 <elliott> Racket and CLISP are pretty big :P
00:31:05 <pikhq_> Also. I'm pretty sure all the work on Mach-O was done before Apple bought NeXT.
00:31:10 <Gregor> elliott: Yeah, I'm bein' a durp.
00:31:38 <Gregor> pikhq_: I was laughing at how stupid that whole paragraph was, not agreeing with it. Although it is a silly format.
00:31:54 <elliott> I like the implication that writing a binutils is the HARDEST THING EVR.
00:31:55 <elliott> EVER.
00:32:04 <elliott> Presumably because GNU aren't very good at it.
00:32:08 <Gregor> X-D
00:32:08 <pikhq_> elliott: Not writing a binutils.
00:32:11 <pikhq_> Porting one.
00:32:28 <pikhq_> Which *seems* to be one of the few things that's easy with GNU binutils.
00:32:48 <pikhq_> The whole thing is based around an object format abstraction library, after all.
00:33:04 <elliott> 20:42:14: <Gregor> 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 <Gregor> elliott: We found one.
00:33:14 <elliott> Gregor: with -S , filtering and gas options, I suspect so
00:33:23 <elliott> Gregor: But it'll be SO SLOW :P
00:33:25 <Gregor> No, I'm not going to implement gcc as a JIT, though I desperately want to.
00:33:40 <Gregor> (GNU lightning) "The available backends cover the x86, SPARC and PowerPC architectures." I hope this at least includes x86_64 ...
00:33:57 <pikhq_> Bit silly if it didn't.
00:34:08 <elliott> Gregor: Your template JIT is probably the best you'll get for Fythe without writing something better yourself, I think.
00:34:15 <Gregor> Noooooooooooooose
00:34:16 <pikhq_> x86_64 is easy to target from x86-land if you're not retarded.
00:34:19 <elliott> I mean, LLVM ain't exactly designed for compiling things tiny bits at a time
00:34:28 <elliott> Which Fythe practically mandates :P
00:34:43 <Gregor> Piffle.
00:34:55 <itidus20> 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 <elliott> Any optimisation pretty much kills that.
00:35:22 <pikhq_> Aside from trivial ones.
00:35:28 <Gregor> My goal was to have fastjit be the baseline, and use something else as the optimizing JIT for oft-called functions.
00:35:32 <Gregor> fastjit itself ain't goin' nowhere.
00:35:38 <elliott> Right.
00:35:44 <elliott> I'd just write my own :P
00:35:53 <Gregor> But Idonwanna :P
00:35:58 <elliott> Sucks to depend on two totally different JITs
00:36:02 <elliott> Especially interoperability
00:36:21 <Gregor> SpiderMonkey has two JITs and an interpreter :P
00:36:53 <elliott> 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 <Gregor> Mmmmm, fair enough, although the slow JIT ought to be optional.
00:37:40 <elliott> 21:53:08: <oerjan> there is no reliable way to have a > bottom always return True, if it looks at the second argument at all
00:37:40 <elliott> 21:53:24: <oerjan> _some_ bottoms can be catched, but not all
00:37:40 <elliott> 21:53:35: <oerjan> and that is not pure code
00:37:46 <elliott> oerjan: you can do a lot with unamb, mind you
00:38:07 <elliott> Gregor: Shrug, it's more like one JIT that has two compilers :P
00:38:09 -!- jcp|other has joined.
00:38:46 <Gregor> elliott: Are you referring to SpiderMonkey?
00:39:09 <elliott> Gregor: No, I'm talking about writing your own slow-JIT
00:39:17 <Gregor> Oh
00:39:35 <Gregor> Bleh :P
00:40:03 <Gregor> OK, time to implement my fork-to-GCC-JIT!
00:40:06 -!- jcp has quit (Ping timeout: 252 seconds).
00:40:32 <Gregor> AKA JWGCCGATI (Just-When-GCC-Gets-Around-To-It compilation)
00:41:02 <elliott> God, don't :P
00:41:06 -!- cheater has joined.
00:41:14 <elliott> Does gcc really not have a library after all these years
00:41:20 <Gregor> I know!
00:41:24 <Gregor> It's shocking!
00:41:47 <Gregor> 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 <Gregor> *it'd be
00:42:04 <elliott> I can't wait until gcc stops being a thing that anyone takes seriously.
00:42:09 <coppro> ^
00:42:20 <elliott> Also clang and every other piece of UNIX software.
00:42:27 <elliott> Wait, that arrow didn't point in both directions.
00:42:31 <elliott> Darn, I can't put wordsi nto your mouth.
00:46:43 -!- jcp has joined.
00:48:22 <Braber01> >v<^ make sense of that LOL.
00:48:53 <oerjan> <elliott> oerjan: you can do a lot with unamb, mind you <-- i don't think that will help make a > bottom work
00:49:01 <elliott> probably not :P
00:49:12 <elliott> depends how screwy your ordering is :)
00:50:30 <Braber01> do I really want to plug my laptop in?
00:51:11 <oerjan> assuming > is still antisymmetric, a > a and a > bottom need to be different for such an a
00:51:27 <CakeProphet> Also I was wondering if you including bottom in an Ord instance, or would that require solving the halting problem?
00:51:30 <oerjan> a >= bottom might work only for a the unique top element
00:51:32 <CakeProphet> *could include
00:51:38 <oerjan> CakeProphet: that
00:51:50 <oerjan> 's what i was saying you couldn't
00:52:10 <elliott> yeah, (inf >= bottom) is perfectly doable
00:52:15 <CakeProphet> oh we're talking about something I asked a while ago?
00:52:18 <CakeProphet> okay.
00:52:20 <oerjan> elliott: sup, not inf
00:52:28 <oerjan> or wait
00:52:34 <oerjan> you mean infinity
00:52:35 <elliott> infinite :P
00:52:37 <elliott> y
00:52:39 <elliott> yeah
00:52:42 <elliott> im alzy
00:52:54 <oerjan> elliott: inf has a rather different meaning once partial orders are involved
00:53:17 <oerjan> although it then does need an argument
00:53:27 <elliott> i know :P
00:53:30 <elliott> but im alzy
00:53:47 <Braber01> *lazy
00:54:12 <oerjan> CakeProphet: i logread you, then elliott logread my response to you
00:54:57 <Braber01> Damnit I want a cake but I'm on weight watchers >:(
00:55:19 <oerjan> Braber01: some people here have lately taken to misspell things a lot on purpose
00:55:41 <Braber01> *reverts tO lolcats
00:55:49 <Sgeo> *alot
00:55:56 * oerjan hugs alot
00:56:04 <Braber01> I has a bukkit
00:56:07 <monqy> hi
00:56:30 <Braber01> CAN I HAS STDIO?
00:56:34 <elliott> no Braber01 no
00:56:34 <monqy> no
00:56:38 <elliott> lolcode is banned
00:56:39 <CakeProphet> help too many #esoteric memes.
00:56:43 <monqy> im agre with elliott
00:56:44 <oerjan> which is strange because we also frequently correct our own spelling, and sometimes other's
00:56:55 <elliott> im so aggry with monqy
00:56:56 <elliott> is aggry a word
00:56:59 <elliott> i thought it was
00:57:07 <oerjan> CakeProphet: alot is not an #esoteric meme.
00:57:40 <CakeProphet> I see.
00:57:53 -!- Braber01 has quit (Quit: ZIRC 0.3 - 100% zsh, woot.).
00:57:58 <elliott> ah
00:58:04 <oerjan> elliott: aggry beads
00:58:08 <elliott> im uh
00:58:11 <elliott> so upset at our loss
00:58:24 <oerjan> there are three words in the english language: angry, hungry and aggry.
00:58:30 <elliott> me too
00:58:43 <oerjan> wellknownfact
00:59:11 <elliott> im an oldknown fact
00:59:27 <oerjan> i think the misspellings were too much for Braber01
00:59:52 <elliott> or the lolcode fascism
00:59:58 <oerjan> yes.
01:00:01 <elliott> its ok we're just too brilliant
01:00:07 <CakeProphet> debugging Python is so fun
01:00:11 <elliott> eventually we'll become so brilliant that _nobody_ will be able to stand being in this channel
01:00:15 <elliott> not even me
01:00:24 <oerjan> last elliott standing
01:00:36 <oerjan> btw is elliott alot? it's suspiciously close
01:00:57 <oerjan> bitching alot
01:01:19 <elliott> waht
01:01:26 <elliott> hepl
01:01:46 <elliott> heelp
01:01:55 <elliott> heelq
01:02:10 <elliott> monqy: quantum
01:02:11 <oerjan> funny, it's like someone is shouting, but it's being stopped by my spelling filter
01:02:22 <oerjan> quantum is good
01:02:23 <monqy> elliott: hi
01:02:42 <elliott> hi;m
01:03:23 <elliott> today, i write more shiro code for good mycology adventure aftershave cocaine racketeer
01:04:11 <elliott> monqy is phantom
01:04:16 <monqy> hi
01:04:31 <elliott> HI
01:04:39 <monqy> hows my cology
01:04:50 <monqy> can shiro run fungot
01:04:51 <fungot> monqy: deleting the lines " italy openly propagates irredentistic ideas even in the southern german leagues, which directs, fnord,
01:05:01 <elliott> monqy: no but soon
01:05:05 <elliott> i implement everything it wants just bugs???
01:05:13 <monqy> bugs...
01:06:21 <elliott> ugbs
01:10:17 <Sgeo> fungot needs a Homespring style
01:10:18 <fungot> 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 <elliott> no
01:11:47 <CakeProphet> what exactly would the data set be?
01:11:57 <CakeProphet> are there large corpii of homespring programs?
01:13:53 <copumpkin> corpora
01:14:16 <copumpkin> </latin nazi>
01:17:12 <CakeProphet> I don't think a Roman would understand what that means.
01:17:21 <CakeProphet> </historical accuracy nazi>
01:17:24 <CakeProphet> s/Roman/ancient Roman/
01:17:34 * copumpkin is a modern roman
01:17:53 <CakeProphet> lies no such thing. If you go to Rome today it is a ghost town.
01:18:16 <monqy> are the friendly ghoss
01:18:59 <monqy> friend ghsot, ghost firend, friendhsip ghost, friendship town
01:22:59 <oerjan> the place they call rome today is just an amusement park built around the vatican city and based on asterix comics
01:23:16 <copumpkin> CakeProphet: :O
01:23:30 <copumpkin> oerjan: it's a pretty grungy amusement park :P
01:24:00 <oerjan> copumpkin: well how do you explain why they made a clown into "prime minister"?
01:24:38 <oerjan> it's just a bit of dark grey humor
01:24:40 <copumpkin> http://www.reddit.com/r/worldnews/comments/k1ndd/berlusconi_vows_to_leave_shitty_italy_in/c2gyesv
01:37:38 <elliott> 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 <monqy> god bless haskell america
01:45:59 <Gregor> God bless curry.
01:46:28 <elliott> god bless haskell america
01:46:32 <CakeProphet> God bless
01:46:48 <CakeProphet> map (God bless) [haskell america, curry]
01:47:26 -!- GuestIceKovu has quit.
01:48:45 <CakeProphet> help xpath is dumb
01:49:15 <elliott> TANK LOSER
01:49:24 <elliott> tank loser friend ending
01:50:13 <elliott> friends everyone
01:51:56 <elliott> pork
01:52:59 <elliott> oerjan: brtia odsf ks
01:53:10 <CakeProphet> wow how do people get so bad at programming
01:53:13 <CakeProphet> I don't understand at all.
01:53:15 <elliott> practice
01:53:19 <elliott> learning from you
01:53:50 <CakeProphet> hey at least I know when to use for loops instead of while loops.
01:56:16 <monqy> whats a loop
01:56:16 <monqy> hlep
01:56:45 <elliott> a low-level concept used before people figured out abstraction
01:57:04 <CakeProphet> and then still used after people figured out abstraction.
01:57:53 <elliott> only by irresponsible people
01:58:28 <CakeProphet> heh
02:02:51 <elliott> Has anyone used Perl's XS to evaluate Perl code from C?
02:05:24 <CakeProphet> nope
02:06:43 <CakeProphet> http://search.cpan.org/dist/perl/pod/perlxstut.pod
02:06:49 <CakeProphet> http://search.cpan.org/dist/perl/pod/perlxstut.pod
02:06:53 <CakeProphet> er....
02:07:00 <CakeProphet> http://search.cpan.org/dist/perl/pod/perlxs.pod
02:07:21 <CakeProphet> have fun.
02:07:23 <elliott> It's not helpful; that's showing it the other way around.
02:07:25 <oerjan> what do you expect from the pod people
02:07:27 <elliott> IIRC The Camel book has something but I don't want to read it
02:07:40 <CakeProphet> I'm not entirely sure it would work the other way around.
02:07:44 <elliott> It does.
02:07:50 <elliott> You can initialise the perl interpreter from C and feed it code.
02:07:54 <elliott> I just don't remember how.
02:07:56 <CakeProphet> I mean you would just want to invoke the interpreter in C right?
02:08:14 <CakeProphet> instead of using the XS stuff directly.
02:08:30 <CakeProphet> you can always read the perl source code.
02:08:36 <elliott> Perl's C API is always called XS, to my knowledge.
02:08:42 <elliott> Whatever the controlling process is.
02:09:33 <CakeProphet> oh wait I know how to do it.
02:09:39 <CakeProphet> system("perl ...") :P
02:09:58 <elliott> Helpful
02:11:43 <CakeProphet> #perl
02:11:57 <elliott> No thanks
02:12:28 <elliott> Section 21.4. Embedding Perl (Using Perl from C)
02:12:33 <elliott> Now to get a hold of this
02:12:53 <CakeProphet> is that the camel book?
02:13:01 <elliott> Yes.
02:13:13 <elliott> OReilly - Programming Perl.pdf 4 Mb
02:13:13 <elliott> Seems a bit small...
02:13:28 <CakeProphet> trap
02:13:28 <CakeProphet> trap
02:13:30 <CakeProphet> trap
02:13:39 <elliott> Dude, I run a secure-ish operating system.
02:13:46 <CakeProphet> trap
02:13:54 <elliott> Are you trying to be annoying?
02:14:23 <elliott> Aha, here's some info.
02:16:57 <pikhq_> He's not using Adobe reader.
02:17:20 <elliott> http://search.cpan.org/~jesse/perl-5.14.1/pod/perlembed.pod oh this is useful
02:17:44 <elliott> oh, heh, this has more information than the camel book sample
02:17:47 <elliott> PERL_SYS_INIT3(&argc,&argv,&env);
02:17:47 <elliott> lol
02:19:08 <CakeProphet> http://perldoc.perl.org/perlembed.html same thing I believe
02:19:17 <elliott> /usr/lib/perl/5.10/CORE/perl.h oh dear god
02:19:22 <CakeProphet> ...yep
02:19:22 <elliott> look at that shit
02:19:25 <CakeProphet> I've seen it.
02:19:39 <elliott> oh my god it handles plan9
02:19:50 <CakeProphet> you should look at Configure
02:19:55 <elliott> jesus christ guys i just want to know the return type of perl_construct
02:20:09 <pikhq_> If it makes you feel better, Configure is autogenerated by something that inspired autoconf.
02:20:20 <CakeProphet> yes but it's still ridiculous
02:20:23 <elliott> ./proto.h:PERL_CALLCONV voidperl_construct(PerlInterpreter *my_perl)
02:20:23 <elliott> ok good
02:20:41 <pikhq_> "Inspired autoconf".
02:21:04 <oerjan> perl_construct has an inconstructible return type
02:22:01 <CakeProphet> elliott: are you being irresponsible and using loops right now?
02:22:23 <elliott> no
02:22:33 <elliott> Perl_sys_init3(&argc, &argv, &env);
02:22:34 <elliott> Perl_sys_term();
02:22:34 <elliott> ok good they're functions here
02:24:41 <CakeProphet> it looks pretty easy to call perl subroutines actually.
02:24:47 <CakeProphet> based on perlembed
02:26:03 <CakeProphet> but the example doesn't show you how to pass arguments to the subroutine.
02:26:08 <CakeProphet> just does the no argument case.
02:27:36 <CakeProphet> also http://perldoc.perl.org/perlguts.html may be of use here.
02:27:46 <CakeProphet> depending on what you're doing exactly.
02:28:01 <elliott> Evaluating Perl expressions as scalars and getting the result back.
02:28:24 <CakeProphet> then yeah perlguts will show you how to convert to-from C-Perl types.
02:28:24 <elliott> Preferably without maintaining any state between evaluations but it's understandable if that happens.
02:28:51 <CakeProphet> ...I would think the only way to do that would be to invoke a fresh interpreter each time.
02:28:58 <elliott> probably
02:29:01 <elliott> its ok
02:29:05 <elliott> 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 <CakeProphet> I don't care what the pythonistas say
02:51:46 <CakeProphet> I'm going to use map when I just need to apply a single function to a list.
02:52:45 <Jafet> They don't speak, they hiss
02:52:59 -!- augur has quit (Remote host closed the connection).
02:53:17 <CakeProphet> Jafet: oh ho
02:54:07 <pikhq_> But functional programming is unPythonic!
02:54:23 <CakeProphet> apparently.
02:54:30 <CakeProphet> since there's such shitty support for it.
02:54:31 <pikhq_> (just like closures, garbage collection, and everything but C! :P)
02:55:12 <CakeProphet> man, why do people like Python again?
02:55:16 <Sgeo> 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 <Sgeo> /s
02:55:18 <CakeProphet> is it just because it's easy to code?
02:55:26 <pikhq_> That's precisely why.
02:55:30 <monqy> what's easy
02:55:31 <monqy> help
02:55:35 <pikhq_> It's a bit like Perl but less awful.
02:55:40 * Sgeo might be becoming an ex-Pythonista
02:55:42 <monqy> snicker
02:55:54 * CakeProphet is an ex-pythonista
02:56:01 <Sgeo> Although not sure that Ruby is much better...
02:56:03 <monqy> I was never a python fanatic
02:56:11 <pikhq_> Ruby is like Python but more awful.
02:56:16 <monqy> yep
02:56:26 <Sgeo> more?
02:56:27 <CakeProphet> Perl is the best of the three. :)
02:56:48 <CakeProphet> though not perfect by any means.
02:56:58 <pikhq_> The implementation actually does hacks to prevent GCC from optimising their undefined behavior in undesirable ways.
02:57:07 <pikhq_> Definitely more awful.
02:58:02 <Sgeo> 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 <Jafet> linux does it too; they're in good company
02:58:40 <elliott> wtf? /usr/lib/libperl.so.5.10 exists, but -lperl doesn't get it?
02:59:16 <pikhq_> Sgeo: C's.
02:59:22 <Sgeo> Oh
02:59:27 <pikhq_> elliott: -l only looks for .so
02:59:33 <Sgeo> Well, aren't there other implementations?
02:59:37 <elliott> pikhq_: what am I meant to do then
02:59:39 -!- derrik_ has joined.
02:59:47 <monqy> ln -s?
02:59:50 <monqy> hhehehe
02:59:52 -!- derrik_ has left.
02:59:59 <CakeProphet> elliott: you could rename the file. :P
03:00:04 <CakeProphet> or copy it.
03:00:09 <CakeProphet> copy is probably a better idea.
03:00:12 <pikhq_> Also, because Perl is *blithering stupid*, you're not supposed to link it with -lperl at all.
03:00:32 <monqy> personal insult to cake prohpet
03:00:49 <pikhq_> 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 <oerjan> "Haskell is the only language I know of where you can't tell what wheel you just reinvented..." - alpha123
03:01:08 <monqy> what
03:01:11 <elliott> <pikhq_> 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> elliott@katia:~/Code/shiro$ perl -MExtUtils::Embed -e ldopts
03:01:16 <elliott> -Wl,-E -fstack-protector -L/usr/local/lib -L/usr/lib/perl/5.10/CORE -lperl -ldl -lm -lpthread -lc -lcrypt
03:01:17 <pikhq_> *By default libperl.so.foo does not go in the library search path*.
03:01:23 <oerjan> (first comment on http://stackoverflow.com/questions/7223901/haskell-what-monad-did-i-just-reinvent)
03:01:39 <elliott> Sgeo: http://timetobleed.com/the-broken-promises-of-mrireeyarv/ has information on Ruby's undefined behaviour
03:01:44 <pikhq_> *Perl. Fucking. Hates. You.*
03:01:55 <elliott> pikhq_: dude, stfu
03:02:00 <elliott> the above is the documented way to do it
03:02:05 <elliott> so clearly -lperl is meant to work
03:02:38 <pikhq_> elliott: Strange, that actually cannot work on out-of-the-box Perl.
03:02:50 <pikhq_> libperl does not install in the library search path at all.
03:03:16 <elliott> 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 <elliott> way
03:03:41 <pikhq_> Cry.
03:03:46 <elliott> not helpful thx
03:04:09 <elliott> ld-options: /usr/lib/libperl.so.5.10
03:04:09 <elliott> this works
03:04:32 <oerjan> ghc + perl now that sounds like a match
03:04:40 <CakeProphet> I agree.
03:04:44 <elliott> oerjan: implementing the PERL fingerprint
03:04:48 <CakeProphet> in a not sarcastic way.
03:05:53 <oerjan> elliott: i sincerely hope that is not required for running fungot.
03:05:53 <fungot> 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 <elliott> hmm, eval_pv
03:06:24 <CakeProphet> man JS regex is so bad.
03:06:24 <elliott> oerjan: nope
03:08:56 <CakeProphet> elliott: assuming eval_pv is how the eval operator is implemented, then you can maintain state between evals.
03:09:53 <CakeProphet> perlapi seems to seems to suggest that eval_pv is basically like eval.
03:10:05 <elliott> no shit
03:10:05 <CakeProphet> ...vaguely, granted.
03:11:32 <CakeProphet> also maybe perl_construct is not very expensive so that could be used to reset state.
03:13:05 <CakeProphet> nevermind that's a bad idea. :P
03:14:05 <CakeProphet> well, maybe not: http://perldoc.perl.org/perlembed.html#Maintaining-multiple-interpreter-instances
03:14:34 <CakeProphet> perl_destruct resets everything.
03:16:27 <CakeProphet> ...Python makes me hate exceptions.
03:17:51 <aspect> Python makes me hate lots of things. Usually myself, for forgetting how much I hate it in between uses
03:18:19 <Sgeo> I think I'm using some stupid Ruby IDE just for the editor
03:18:33 <Sgeo> Erm, editor component
03:18:57 <CakeProphet> I should probably get an IDE for Python as python-mode in emacs is especially not so great with indents.
03:19:29 <Sgeo> :/ how difficult could it be to do the right thing with indentation in Python?
03:19:46 <CakeProphet> well it's just dedenting takes more keystrokes than I would like, basically.
03:21:07 <CakeProphet> spamming tab a bunch basically cycles through all of the possible indent levels, starting with the highest level
03:21:32 <aspect> don't you just write some elisp to fix that?
03:21:47 <CakeProphet> ...well, if I had the time to learn how, sure.
03:21:54 <CakeProphet> not at the moment though.
03:21:56 <aspect> like in vim we might use a macro or a :noremap
03:22:15 <CakeProphet> usually a backspace does the right thing, but not always.
03:22:21 <aspect> see, as a vim user I long for the cleanliness of elisp
03:22:48 <Sgeo> Gah
03:23:02 <aspect> maybe Zimbu deserves a place in the esolang hall of fame
03:23:05 <Sgeo> 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 <elliott> Do you have to free SVs after using them?
03:24:38 <CakeProphet> I would think so.
03:24:42 <elliott> Or will destroying a Perl interpreter do that?
03:24:49 <elliott> The example doesn't free the result of eval_pv.
03:25:02 <CakeProphet> hmmm... freeing the interpreter would probably do that, yes.
03:25:10 <CakeProphet> ....I base this on... nothing.
03:25:16 <CakeProphet> other than it makes sense.
03:25:46 <Sgeo> cur_value = rand
03:25:56 <Sgeo> I can't help but thinking how... nonsensical that looks
03:26:03 <CakeProphet> what is that?
03:26:17 <Sgeo> Giving cur_value a random value between 0 and 1
03:26:20 <Sgeo> in Ruby
03:26:23 <CakeProphet> no I mean what lang-- oh okay
03:26:43 <CakeProphet> well, that makes sense to me, but only because that's exactly what perl does. :P
03:27:08 <CakeProphet> except 1 is not included.
03:27:26 <CakeProphet> if you want 0 or 1 in Perl you'd write int(rand(2))
03:27:30 <Sgeo> Erm, didn't mean to imply it's included in Ruby
03:27:49 <Sgeo> Just that... my Python instincts are yelling at me that I'm just storing the rand function in cur_value
03:27:54 <CakeProphet> heh
03:28:16 <CakeProphet> higher-order functions? that's nonsense.
03:28:31 <CakeProphet> use references, or, uh, Ruby uses symbols or someting right?
03:28:34 <CakeProphet> or just blocks
03:30:28 <Sgeo> method(:rand) works, and I think there's syntax sugar for that
03:31:02 <CakeProphet> I think in most "higher-order functions" you'd pass a block that does the calling.
03:31:50 <CakeProphet> in Perl it would be \rand
03:32:45 <elliott> gah, eval_pv is too limited
03:32:54 <elliott> or hmm
03:33:00 <CakeProphet> you want arbitrary statements?
03:33:15 <elliott> I need to specify that I want a scalar result
03:33:20 <elliott> oh hmm
03:33:22 <elliott> that's default
03:33:22 <elliott> ok then
03:33:31 <CakeProphet> eval_sv maybe?
03:33:37 <elliott> nah, eval_pv is ok
03:35:26 <CakeProphet> so it always forces scalar? What if you wanted an AV or HV?
03:36:16 <elliott> (((x)->sv_flags & (0x00000400)) == 0x00000400 ? ((x)->sv_u.svu_pv) : Perl_sv_2pv_flags(my_perl, x,0,2))
03:36:17 <elliott> my god
03:36:22 <elliott> CakeProphet: then you need eval_sv i guess
03:36:53 <elliott> hmm, SvPVX is ((x)->sv_u.svu_pv)
03:36:54 <CakeProphet> er.... is there no constant for 0x00000400?
03:37:23 <elliott> that's cpp output dude
03:37:32 <CakeProphet> oh nevermind...
03:37:39 <elliott> sv_pvbyten_force
03:37:39 <elliott> The backend for the SvPVbytex_force macro. Always use the macro instead.
03:37:41 <CakeProphet> I thought that was your actual code. :P
03:37:41 <elliott> what if i didn't ;) ;) ;)
03:37:53 <elliott> (I should really write C glue for this but I DO WHAT I WANT)
03:38:06 <CakeProphet> how naughty.
03:39:47 <CakeProphet> http://perldoc.perl.org/perlcall.html
03:39:50 <CakeProphet> is this useful perhaps?
03:40:39 <CakeProphet> oh no.
03:40:40 -!- MDude has changed nick to MSleep.
03:40:51 <CakeProphet> that's the opposite of what you're doing.
03:41:49 <elliott> dist/build/shiro/shiro-tmp/Shiro/Fingerprints/PERL.o: In function `s2Lr_info':
03:41:49 <elliott> (.text+0xac): undefined reference to `eval_pv'
03:41:50 <elliott> dist/build/shiro/shiro-tmp/Shiro/Fingerprints/PERL.o: In function `s2MP_info':
03:41:50 <elliott> (.text+0x224): undefined reference to `sv_pv'
03:41:50 <elliott> ugh
03:42:26 <elliott> oh, it's Perl_eval_pv
03:42:27 <elliott> fucking macros
03:43:02 <CakeProphet> the api docs mention that perl_eval_pv is deperecated, btw.
03:43:06 <elliott> #define SvPV_nolen(sv) \
03:43:06 <elliott> ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
03:43:06 <elliott> ? SvPVX(sv) : sv_2pv_flags(sv, 0, SV_GMAGIC))
03:43:08 <elliott> s i g h
03:43:10 <CakeProphet> spelled correctly.
03:43:10 <elliott> CakeProphet: capital letter
03:43:17 <elliott> Perl vs perl
03:43:27 <CakeProphet> ah okay.
03:43:44 <elliott> sv_nv
03:43:44 <elliott> 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 <elliott> hmmm
03:44:17 <CakeProphet> so what are you doing with these fingerprints exactly?
03:44:33 <elliott> implementing them
03:44:49 <CakeProphet> right but for what purpose do they serve?
03:44:58 <elliott> to be implemented
03:45:00 <elliott> they are specifications
03:45:25 <CakeProphet> o_O? okay. not following. oh well
03:46:33 <elliott> http://catseye.tc/projects/funge98/library/PERL.html
03:46:40 <elliott> (might need to view source to read)
03:46:54 <elliott> it exists, CCBI implements it, cfunge implements it, Mycology tests it. so I implement it.
03:48:04 <elliott> CakeProphet: does this answer your question?
03:48:04 <CakeProphet> oh okay
03:48:07 <CakeProphet> yep.
03:48:15 <elliott> UNDEF: S claims that Perl is already loaded
03:48:15 <elliott> Segmentation fault
03:48:16 <elliott> oh good.
03:49:12 <CakeProphet> gdb?
03:50:08 <elliott> on a Haskell program? lol
03:50:15 <CakeProphet> ....oh
03:50:23 <CakeProphet> right.
03:51:12 <monqy> this perl.hmtl isn't quite workinge...
03:51:16 <CakeProphet> how does one debug FFI functions then?
03:51:23 <CakeProphet> yeah view source to see the whole thing.
03:52:11 <elliott> CakeProphet: badly
03:52:24 <CakeProphet> oh good.
03:52:27 <monqy> why does f98 have perl ffi
03:52:35 <elliott> monqy: because someone wrote it
03:53:08 <CakeProphet> like.. is it not possible to set a breakpoint in your C?
03:53:18 <CakeProphet> or see a stack trace?
03:53:21 <elliott> CakeProphet: I have no C.
03:53:38 <CakeProphet> >_>?
03:53:47 <elliott> That is not a question.
03:53:51 <elliott> At least, not a coherent one.
03:54:15 <CakeProphet> I thought you were using C to interface the perl interpreter to GHC/Haskell.
03:54:27 <elliott> No, I'm using the FFI.
03:54:33 <oerjan> > let (n!) = product [1..n] in (10!)
03:54:34 <lambdabot> <no location info>: Parse error in pattern
03:54:44 <oerjan> :(
03:54:48 <elliott> oerjan: that's obviously bunk syntax...
03:54:49 <CakeProphet> elliott: oh, so that doesn't involve writing actual C code?
03:54:52 <elliott> > let (!) n = product [1..n] in (10!)
03:54:54 <lambdabot> 3628800
03:54:54 <oerjan> > let (!) n = product [1..n] in (10!)
03:54:55 <lambdabot> 3628800
03:54:57 <elliott> :D
03:55:00 <elliott> CakeProphet: no
03:55:07 <elliott> foreign import ccall "perl.h perl_alloc" c_perl_alloc :: IO (Ptr CPerlInterpreter)
03:55:07 <elliott> foreign import ccall "perl.h perl_construct" c_perl_construct :: Ptr CPerlInterpreter -> IO ()
03:55:07 <elliott> foreign import ccall "perl.h &perl_destruct" p_perl_destruct :: FunPtr (Ptr CPerlInterpreter -> IO CInt)
03:55:07 <elliott> foreign import ccall "perl.h &perl_free" p_perl_free :: FunPtr (Ptr CPerlInterpreter -> IO ())
03:55:07 <elliott> ec.
03:55:08 <elliott> etc.
03:55:24 <CakeProphet> oh that's uh... fun looking.
03:55:24 <oerjan> elliott: i was checking if ghc supported it, though, i saw a question on stackoverflow
03:55:38 <CakeProphet> oerjan: neat.
03:56:05 <oerjan> 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 <oerjan> (apparently not)
03:56:23 <CakeProphet> I did not know that GHC supported postfix
03:56:34 <oerjan> it's a flag
03:56:39 <CakeProphet> unary postfix, that is.
03:56:58 <CakeProphet> or is it n-ary because that would be sweet...
03:57:04 <elliott> using it like that is obviously standard haskell.
03:57:06 <oerjan> it's a minor adjustment to section syntax
03:57:15 <CakeProphet> elliott: obviously
03:57:38 <oerjan> elliott: not quite, standard haskell wants (10!) to have a function type
03:57:50 <elliott> oerjan: huh, it does?
03:57:51 <oerjan> because it desugars to (\x -> 10 ! x)
03:57:56 <elliott> well that's just an overly draconian standard :P
03:58:11 <oerjan> well, so ghc relaxes it.
03:58:16 <elliott> right
03:58:21 <Sgeo> Binary Searches should not be going that far off the rails!
03:58:36 <CakeProphet> wat
03:59:09 <Sgeo> 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 <CakeProphet> I SEE.
03:59:44 <Jafet> You should re-evaluate your goals
03:59:52 <quintopia> (his goal is to find a life partner)
04:00:11 <quintopia> (it could be you jafet)
04:00:16 <oerjan> hm (!10) desugars to (\x -> x ! 10) which is the same as flip (!) 10
04:00:19 <oerjan> :t flip
04:00:20 <lambdabot> forall (f :: * -> *) a b. (Functor f) => f (a -> b) -> a -> f b
04:00:36 <oerjan> so what if it used caleskell flip...
04:01:04 <oerjan> this is not necessarily that much of an improvement.
04:01:07 <CakeProphet> for some reason my parser enters an infinite loop, but I am not sure what is causing it.
04:01:16 <CakeProphet> I thought it was binary operators but apparently not.
04:01:18 <oerjan> CakeProphet: left recursion
04:01:21 <Sgeo> The distribution looks skewed, as I expect
04:01:24 <oerjan> (always a good guess)
04:01:37 <Sgeo> Then again, I can't tell whether a distribution is skewed
04:02:22 <CakeProphet> oerjan: thats where the first alternative is recursive and descends infinitely before the simpler terms are ever checks, right?
04:02:25 <CakeProphet> yeah, it's not that.
04:02:29 <CakeProphet> *checked
04:03:16 <CakeProphet> well, it could be, since I didn't actually implement the binary operator code.
04:03:38 <Sgeo> !@#$
04:03:38 <CakeProphet> just calling a helper function, similar to the one Parsec has.
04:03:44 <Sgeo> Stupid auto-return
04:03:53 <oerjan> cakyep
04:03:55 <Sgeo> I auto-returned the result of resetting the simulation
04:03:57 <oerjan> er
04:04:03 <oerjan> CakeProphet: yep
04:04:04 <CakeProphet> lol
04:04:10 <elliott> cakyep
04:04:12 <CakeProphet> NO TAB COMPLETE FOR YOU
04:04:40 <oerjan> D:
04:04:52 <CakeProphet> Sgeo: what's wrong with that exactly?
04:05:11 <Sgeo> I wasn't getting the results of the simulation
04:05:24 <Sgeo> Instead getting the "result" of a freshly reset simulation
04:05:50 <CakeProphet> I don't really understand, if you anted the simulation you could just explicitly return...
04:05:52 <Sgeo> Maybe I shouldn't be resetting it in the same method that returns the result
04:05:54 <CakeProphet> +w
04:06:08 <Sgeo> Yes, but I didn't see that I messed it up
04:06:22 <oerjan> @hoogle expressionParser
04:06:23 <lambdabot> 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 <lambdabot> Text.ParserCombinators.Parsec.Expr buildExpressionParser :: OperatorTable tok st a -> GenParser tok st a -> GenParser tok st a
04:06:41 <CakeProphet> Sgeo: oh you're still thinking in Python where assignment doesn't result in anything or whatever, maybe?
04:06:57 <Sgeo> I don't... think so
04:07:28 <oerjan> 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 <CakeProphet> yes that's pretty much what I'm doing.
04:08:11 <CakeProphet> though it may be implemented differently.
04:08:38 <CakeProphet> well, no.
04:08:40 <CakeProphet> not quite
04:08:49 <CakeProphet> I am not recursively evaluating expression
04:08:53 <CakeProphet> I'll show you.
04:09:17 <oerjan> ok :P
04:09:34 <oerjan> because that would have been an error
04:17:00 <elliott> dear perl api an ultimatum
04:17:03 <elliott> work or i will an kills you
04:17:05 <elliott> oh hm
04:17:11 <elliott> maybe i fail to keep the reference around
04:20:05 <elliott> why ;m this no work
04:21:32 -!- Jafet has quit (Quit: Leaving.).
04:22:38 <elliott> oh well/ me scraps it for now
04:22:41 <elliott> oops i cant type :(
04:29:20 <monqy> oops
04:34:07 <elliott> oops
04:42:11 <CakeProphet> ...wat. operator.__and__ apparently cannot and Nones
04:42:17 <CakeProphet> but None and None works fine.
04:42:59 <CakeProphet> oh wait I think __and__ is bitwise.
04:43:09 <CakeProphet> except it's not doing bitwise and...
04:43:29 <CakeProphet> oh nevermind it is.
04:43:49 <oerjan> > Nothing .&. Nothing
04:43:50 <lambdabot> No instance for (Data.Bits.Bits (Data.Maybe.Maybe a))
04:43:50 <lambdabot> arising from a use...
04:44:27 <CakeProphet> boolean and is operator.and_
04:44:34 <CakeProphet> you sure are confusing operator lib.
04:46:50 <elliott> dammit theatress,f
04:47:34 <Sgeo> {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 <Sgeo> ...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 <Sgeo> There's no way to just paste those results into some Google thingy and see what it looks like, is there?
04:48:23 <elliott> maybe i should implement MODE, the most painful fingerprint EVR
04:48:24 <elliott> EVER
04:48:27 <Sgeo> Although I guess it looks very bell curve-y
04:48:43 <elliott> CakeProphet: view-source:http://catseye.tc/projects/funge98/library/MODE.html look at this shit
04:48:53 <elliott> The <tt>Q</tt> "Toggle Queuemode" instruction toggles an internal flag called
04:48:53 <elliott> <i>queuemode</i>. When queuemode is active, cells are <b>popped</b> off the
04:48:53 <elliott> stack from the <b>bottom</b> instead of the top.<p>
04:49:02 <elliott> YES GREAT I LOVE FINGERPRINTS THAT JUST CHANGE THE ENTIRE SEMANTICS OF THE LANGUAGE
04:49:11 <CakeProphet> lolwat
04:49:29 <elliott> ALMOST AS GREAT AS TRDS
04:50:00 <CakeProphet> use feature 'say switch';
04:50:11 <CakeProphet> except now befunge and more obfuscated!
04:50:18 <CakeProphet> or... whatever funge-98 is
04:50:28 <elliott> a family of languages
04:51:09 -!- Jafet has joined.
04:51:20 <CakeProphet> do you currently have a system that allows you to make huge changes to language semantics like that?
04:51:24 <elliott> nope
04:51:31 <elliott> i just need to abstract out push/pop but sodjfsdjfoi
04:51:32 <CakeProphet> I know in Haskell this requires a bit of forethought.
04:51:40 <elliott> nah, I can easily do it
04:51:44 <elliott> TRDS will be way harder
04:51:48 <elliott> MVRS probably even moreso
04:51:56 <elliott> FNGR will be annoying too
04:51:56 <CakeProphet> !wacro
04:51:59 <EgoBot> SAR
04:52:02 <CakeProphet> what about SAR?
04:52:04 <elliott> TRDS is time travel
04:52:06 <elliott> http://www.rcfunge98.com/rcsfingers.html#TRDS
04:52:21 <elliott> MVRS is multiverse, basically a bunch of fungespaces that shit runs in, http://www.rcfunge98.com/rcsfingers.html#MVRS
04:52:33 <elliott> and FNGR is just a "switch around loaded fingerprint instructions and shit" fingerprint
04:52:33 <elliott> BUT
04:52:39 <elliott> it assumes the wrong semantics for fingerprints
04:52:44 <elliott> fingerprints push each instruction, not the fingerprint as a whole
04:52:57 <elliott> so basically you have to change the entire fingerprint push/pop system when FNGR is loaded
04:52:57 <CakeProphet> maybe you just like
04:52:59 <CakeProphet> not implement those.
04:52:59 <elliott> and fix it on unload
04:53:11 <elliott> CakeProphet: there are programs using them, Mycology tests most of them
04:54:05 <CakeProphet> oh I see.
04:54:10 <elliott> what do you see
04:54:24 <CakeProphet> I see that you want your implementation to be complete, basically.
04:54:41 <elliott> it could be worse, I need to implement WIND portably
04:54:49 <elliott> hmm, actually that's not so hard
04:54:52 <CakeProphet> ....portably?
04:54:57 <CakeProphet> that sounds like an oxymoron.
04:55:00 <elliott> what will be harder to implement portably
04:55:01 <elliott> is
04:55:04 <Sgeo> Why is what I thought would be a weird distribution normal?
04:55:08 <CakeProphet> "portable windows extensions"
04:55:11 <Sgeo> Or at least, it looks normal at a glance
04:55:15 <elliott> "MSGQ"0x44d534751SysV IPC Message Queues(RCS)
04:55:15 <elliott> "SMEM"0x534d454dSysV IPC Shared Memory(RCS)
04:55:15 <elliott> "SMPH"0x534d5048SysV IPC Semaphores(RCS)
04:55:21 <elliott> those will be hard to do portably.
04:55:25 <elliott> "UNIX"0x554e4958Some Unix access functions(RCS)
04:55:26 <elliott> as will this.
04:55:29 <elliott> but i shall.
04:55:43 <elliott> I'm sure there's /some/ Windows API to switch user
04:56:16 <CakeProphet> you should use your perl interpreter for REXP
04:56:29 <elliott> nah, it's obviously meant to be posix regexps I think
04:56:32 <CakeProphet> instead of PCRE which is lame.
04:56:37 <CakeProphet> or posix regexps which is even more lame.
04:56:44 <CakeProphet> but okay.
04:56:49 <CakeProphet> STANDARDS COMPLIANCE IS GOOD
04:56:51 <elliott> rcfunge fingerprints may suck but I'm not going to misimplement them just to be better
04:57:06 <elliott> "FORK" 0x4464F524B
04:57:06 <elliott> T( -- pid flg)Fork new process
04:57:06 <elliott> can't wait to do this portably mmm
04:57:18 <elliott> it's not that bad since i can just like serialise state and spawn but still
04:57:24 <CakeProphet> well doesn't Haskell do forks portably?
04:57:32 <CakeProphet> *GHC
04:57:32 <elliott> not _that_ kind of fork.
04:57:39 <elliott> doing fork() on Windows is basically impossible
04:57:45 <elliott> but spawning a process works
04:59:13 <CakeProphet> do you already have SUBR?
04:59:35 <CakeProphet> ....ew FOBJ
04:59:44 -!- augur has quit (Remote host closed the connection).
04:59:47 <elliott> I don't have SUBR yet, no.
05:00:17 <elliott> http://www.rcfunge98.com/rcsfingers.html#MACR
05:00:18 <elliott> fuck my life
05:31:05 <shachaf> Hey, people of #esoteric, here's a language for you: http://timmaxwell.org/pages/monad-embed/index.html
05:31:28 <shachaf> People of #esoteric who are not elliott, feel free to give the author feedback.
05:31:36 <elliott> Gosh! I have never seen that page before in my life!
05:32:57 <monqy> a new way of using monads, eh?
05:38:46 <pikhq_> shachaf: I see you don't want right-by-definition feedback.
05:38:50 <pikhq_> :P
05:39:03 <shachaf> pikhq_: ?
05:39:21 <pikhq_> shachaf: All of elliott's opinions are right, by definition.
05:39:29 <shachaf> Oh.
05:39:53 <shachaf> pikhq_: I didn't say elliott shouldn't give feedback.
05:40:03 <shachaf> In fact, I already told him to do so, in another channel.
05:40:14 <elliott> I am the Keeper of the Right.
05:40:15 <shachaf> Asking twice seemed silly.
05:40:19 <elliott> Nobody else may have the Right.
05:40:47 <shachaf> > Right now
05:40:49 <lambdabot> Right now
05:41:03 <monqy> :t now
05:41:04 <lambdabot> Not in scope: `now'
05:41:09 <monqy> > now
05:41:10 -!- ive has quit (Quit: leaving).
05:41:10 <lambdabot> Not in scope: `now'
05:41:17 <monqy> :(
05:41:27 <Sgeo> "When C++ is your hammer, every problem looks like your thumb.
05:41:27 <Sgeo> "
05:41:44 <elliott> > now
05:41:45 <lambdabot> Not in scope: `now'
05:41:48 <elliott> > now
05:41:50 <lambdabot> Not in scope: `now'
05:41:54 <elliott> shachaf ruined everything
05:41:54 <oerjan> monqy: shachaf is a shameless cheater
05:42:22 <shachaf> oerjan: Excuse me?
05:42:25 <shachaf> I am now cheater.
05:42:29 <shachaf> ...Not.
05:42:32 <shachaf> I'm *not* cheater.
05:42:38 <oerjan> PROVE IT
05:42:38 <shachaf> Ugh, he's going to get highlighted now.
05:42:59 <oerjan> shachaf: that is... a problem?
05:43:06 <Sgeo> sha​chef
05:43:17 <elliott> Sounds like a problem to me.
05:43:46 <shachaf> This channel is actually for esoteric people, not esoteri languages, right?
05:43:51 <shachaf> That would explain the assortment you've got in ehre.
05:43:55 <oerjan> shachaf: fouwf avkugefreølevf abekh
05:44:07 <elliott> shachaf: That's an unfortunate result of the latter.
05:44:13 <elliott> Well, sometimes unfortunate.
05:44:37 <CakeProphet> can someone enlighten me as to the difference between /usr/lib and /usr/local/lib?
05:44:46 <elliott> CakeProphet: Former is OS, latter is system.
05:44:48 <oerjan> yes, there is a local in there
05:44:55 <elliott> OS manages former, system administrator latter.
05:45:05 <CakeProphet> ah okay.
05:45:05 <oerjan> also an extra /, although its position is ambiguous.
05:45:10 <CakeProphet> so then apt-get installs to /usr/lib?
05:45:16 <CakeProphet> or?
05:45:18 <CakeProphet> not?
05:45:18 <elliott> Yes.
05:45:21 <CakeProphet> okay.
05:45:31 <oerjan> hm strictly speaking it could be an extra ocal/l
05:45:35 <fizzie> The latter is for diet versions of libraries. (lo-cal, yo see.)
05:45:51 <CakeProphet> .....
05:45:58 <CakeProphet> these jokes are so bad.
05:46:18 <fizzie> CakeProphet: They're like the Power Glove.
05:46:26 <fizzie> (It is SO BAD.)
05:47:57 <oerjan> or perhaps the _second_ l is the original, making it an extra loca and /l
05:48:48 <quintopia> but there is no doubt as to who the original pedant-for-hire of #esoteric is
05:49:01 <oerjan> quintopia: wait, who?
05:49:25 <oerjan> and also, why haven't i been paid
05:49:41 <quintopia> 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 <quintopia> and you are paid
05:49:52 <quintopia> in silent yuks
05:50:01 <quintopia> (and occasional real ones from gregor)
05:50:07 <elliott> puns =/= pedantry
05:50:21 <quintopia> stating the obvious =/= puns
05:50:32 <elliott> don't like it, leave
05:50:39 <aspect> that's a really weird smiley you guys use
05:50:44 <elliott> yeah
05:50:49 <elliott> we're frowning in both directions
05:50:50 <elliott> simultaneously
05:50:55 <elliott> it's due to our hyper-dimensional nature
05:50:59 <quintopia> thats no frown
05:51:05 <quintopia> thats how i smile
05:51:08 <quintopia> ever since the stroke
05:52:07 <oerjan> i did not know strokes could do that
05:53:05 <fizzie> oerjan: Maybe it was a... keystroke?
05:53:21 <oerjan> a key event, ok
05:53:52 <quintopia> no, i mean, ever since that awful billy squier song came out, i've been unable to truly smile
05:54:11 <elliott> fizzie: How's jitfunge :P
05:54:13 <oerjan> oh. good like i have no idea what song you are referring too, then.
05:54:25 <oerjan> ew, grammr
05:54:29 <oerjan> and spling
05:54:36 <elliott> grandma and spelunking
05:54:41 <elliott> a novel
05:54:53 <oerjan> that sounds like it could be readable
05:55:00 <cheater> <shachaf> I am now cheater. < NOOOOOOOOOOOOOoooooooooooooooooooooooooooooooooooooooooooooooo
05:55:01 <lambdabot> cheater: You have 1 new message. '/msg lambdabot @messages' to read it.
05:55:17 <elliott> shachaf would make a nicer cheater than the one we have now.
05:55:21 <elliott> Can we apply for a transfer?
05:55:33 <quintopia> 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 <elliott> Oh, there's a spider here. Hi spider.
05:55:36 <quintopia> g
05:55:37 <oerjan> but brain transfers are so complicated
05:55:50 <elliott> quintopia: wow i think i remember small soldiers........
05:55:51 <cheater> you cannot.
05:55:53 <elliott> yes i do
05:55:56 <shachaf> elliott: Sorry, I'm deeply embedded in #haskell-blah as my off-topic channel of choice.
05:55:59 <shachaf> Sadly cheater is in there too.
05:56:12 <oerjan> "sadly"
05:56:18 <elliott> shachaf: He's quieter in here. Just sayin', we have benefits.
05:56:25 <elliott> And a great retirement plan, too.
05:56:36 <shachaf> elliott: On the other hand you talk about esoteric languages all the time.
05:56:40 <quintopia> elliott: you remember it existing or you remember the movie itself? if the latter, my many condolences.
05:56:45 <shachaf> elliott: In #haskell-blah, C++ is considered an esolang.
05:56:45 <elliott> shachaf: That...
05:56:52 <elliott> shachaf: Where on earth did you get the perception that we tend to be on-topic?
05:56:58 <elliott> Apart from my Shiro babbling which is more about the Haskell.
05:57:10 <elliott> quintopia: A little bit of both.
05:58:24 <monqy> is haskell-blah good
05:58:50 <elliott> It lacks the Holder of the Rightness.
05:59:04 <monqy> worst chanel
06:02:04 * shachaf wonders if #esoteric-blah etnds to talk about esoteric languages.
06:02:18 <elliott> #esoteric-blah is usually used for botspam.
06:02:21 <elliott> Or at least it was, years ago.
06:02:37 <elliott> -ChanServ- 1 freenode-staff +voOtsriRfAF [modified 2 years, 12 weeks, 4 days, 20:53:47 ago]
06:02:40 <elliott> Also freenode stole it off me?
06:02:43 <elliott> Jerks.
06:03:20 <shachaf> Your nick has only been registered for <a year.
06:03:32 <elliott> shachaf: Yes, because I only got it back then.
06:03:58 <oerjan> elliott: i think #esoteric was changed to freenode-staff too
06:04:00 <quintopia> shachaf: he has been named "elliott" for like 16 some-odd years though. fun fact.
06:04:09 <elliott> 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 <elliott> But now it is back to its rightful owner, me.
06:04:29 <elliott> All other elliotts can just suffer.
06:04:35 <monqy> cable
06:04:36 <quintopia> i miss alise
06:04:39 <monqy> elliottt
06:04:39 <shachaf> Not elliottt!
06:04:44 <elliott> Elliotttttttttttttttttttttttttttttttttttttttt.
06:04:47 <elliott> That's me.
06:04:50 <shachaf> elliottt is the best of all the elliots.
06:04:52 <monqy> elliotttcable
06:05:05 <elliott> I wonder whether I should try and sell this to elliotttcable again.
06:05:08 <monqy> are there any other elliottts
06:05:09 <elliott> He seemed quite willing to buy.
06:05:19 <elliott> He didn't seem to like the sound of five hundred dollars though.
06:05:48 <shachaf> Ask for bitcoins.
06:05:54 <shachaf> It's the way of the future.
06:06:08 <elliott> I'm not sure his political leanings are aligned with that.
06:06:09 <quintopia> 65 btc
06:06:32 <elliott> (Though I certainly don't claim to understand the American right-wing.)
06:08:06 <elliott> I wonder who the richest bitcoiner is, in terms of bitcoins.
06:08:15 <elliott> That should be calculable from the public data, I think.
06:10:04 <elliott> 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 <cheater> #haskell-blah is working on implementing one
06:12:06 <elliott> I'm sure it'll do wonderfully.
06:12:11 <cheater> Ŧ
06:13:28 <quintopia> so bitcoin is not actually interesting? i think "catching on enough to work" is damn interesting.
06:14:22 <elliott> FSVO work. Anyway, it's essentially a digital gold standard, which is incredibly boring.
06:14:55 <elliott> "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 <quintopia> 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 <elliott> So how do bitcoins fit into your post-apocalyptic libertarian paradise?
06:19:29 <quintopia> 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 <quintopia> so called because it will the be the only place free of zombies
06:26:55 -!- sllide has joined.
06:33:45 <elliott> ?hoogle [a] -> ([a], a)
06:33:46 <lambdabot> Numeric floatToDigits :: RealFloat a => Integer -> a -> ([Int], Int)
06:33:50 <elliott> hmph :P
06:33:57 <elliott> oerjan: what's a nice way of (init xs, last xs)
06:34:00 <elliott> (nice = fast)
06:34:32 <oerjan> i'm not convinced there is a faster one
06:34:42 <elliott> oerjan: um not scanning the list twice?
06:35:13 <oerjan> hm
06:35:17 <elliott> foo [x] = ([], x); foo (x:xs) = let (xs',y) = foo xs in (x:xs',y)
06:35:18 <elliott> that's ugly though
06:36:06 <elliott> actually it's (reverse (init xs), last xs) but I doubt that can be optimised more
06:36:19 <elliott> foo [x] = ([], x); foo (x:xs) = let (xs',y) = foo xs in (xs'++[x],y)
06:36:56 <oerjan> elliott: um of course that can duh
06:37:09 <elliott> how?
06:37:11 <oerjan> (reverse (init xs), last xs) is tail recursive
06:37:23 <elliott> um hmm
06:37:25 <elliott> it is?
06:37:32 <elliott> hmm
06:37:44 <elliott> oh right
06:37:46 -!- Patashu has joined.
06:38:11 <oerjan> foo l = foo' l []; foo' [x] r = (r, x); foo' (x:xs) r = foo' xs (x:r)
06:38:20 <elliott> right
06:38:58 <elliott> there we go
06:42:08 <elliott> oerjan: now design me a more efficient stack structure :)
06:42:11 <elliott> s/:)/>:)/
06:42:15 <elliott> typo :D
06:43:38 <oerjan> <elliott> oerjan: now design me a more efficient stack structure :) <-- there is an oxymoron in that sentence somewhere
06:44:25 <elliott> wat, howso
06:44:42 <monqy> implementing funge98 sounds painful, a thing i do not want to do
06:44:48 <olsner> oerjan and design maybe
06:45:05 <oerjan> olsner: also, efficient
06:45:08 <monqy> maybe i would be fine with implement an old befunge,,, one without pain,,
06:45:35 <elliott> oerjan: but my current one is so lame :(
06:45:44 <elliott> data StackElems = (:-) {-# UNPACK #-} !Value StackElems deriving (Show)
06:45:44 <elliott> it's literally just a micro-optimised stream type
06:45:53 <elliott> well plus a length field
06:46:01 <elliott> so i can know how many real values are present
06:46:06 <oerjan> elliott: NOT MY FIELD OF EXPERTISE
06:46:09 <elliott> oerjan: :'(
06:46:10 <elliott> :'(
06:46:17 <elliott> I should probably try Data.Sequence
06:46:23 <elliott> but I dunno
06:46:30 <elliott> it doesn't seem like it'd be a massive benefit
06:46:56 <fizzie> > 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 <lambdabot> ([1,2,3,4],5)
06:47:05 <fizzie> I'm sure that's the efficientest.
06:47:35 <elliott> fizzie's writing completely point-free functions; is he off the: deep end? Experts disagree.
06:47:45 <elliott> But the prevailing opinion is that he has no: hope now.
06:47:56 <elliott> And that his indoctrination is: complete.
06:47:59 <elliott> Am I doing the colont hing right?
06:48:02 <elliott> Colont hing.
06:48:07 <monqy> my name
06:52:31 -!- GreaseMonkey has joined.
06:59:36 -!- Patashu has quit (Ping timeout: 252 seconds).
07:07:13 <fizzie> Actually now that I look at it, maybe it could be a bit more pointless.
07:07:15 <fizzie> > let f = ((head <$>) *** head . head) . break (null . tail) . tails; in f [1,2,3,4,5]
07:07:17 <lambdabot> ([1,2,3,4],5)
07:07:36 <elliott> fizzie: Nnh, but, arrows.
07:14:45 <fizzie> @hoogle (a -> b) -> (c -> d) -> (a,c) -> (b,d)
07:14:46 <lambdabot> Data.Graph.Inductive.Query.Monad (><) :: (a -> b) -> (c -> d) -> (a, c) -> (b, d)
07:14:56 <fizzie> What an obvious place for it.
07:15:08 <fizzie> Also that's one angry-looking operator.
07:15:13 <elliott> :t (***)
07:15:14 <lambdabot> forall (a :: * -> * -> *) b c b' c'. (Arrow a) => a b c -> a b' c' -> a (b, b') (c, c')
07:15:26 <elliott> I mean, it's an okay operator, for functions.
07:16:46 <monqy> are (|||) or (+++) ever useful
07:16:51 <elliott> duno
07:17:01 <oerjan> :t (|||)
07:17:02 <lambdabot> forall (a :: * -> * -> *) b d c. (ArrowChoice a) => a b d -> a c d -> a (Either b c) d
07:17:08 <oerjan> :t (+++)
07:17:09 <lambdabot> 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 <monqy> I can sort of imagine them being useful
07:18:11 <monqy> for functions of course
07:18:57 <oerjan> :t either
07:18:59 <lambdabot> forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
07:19:19 <oerjan> for functions, ||| is either it seems
07:20:15 <monqy> oh right
07:20:24 <monqy> either is useful
07:20:37 <monqy> back to only imagining about +++
07:25:01 <elliott> hmm, this could surely be expressed more nicely...
07:25:38 <monqy> now im couriuos
07:25:43 <elliott> monqy: ?
07:25:48 <monqy> curiosyu
07:25:52 <monqy> about what is it
07:26:02 <elliott> oh
07:26:23 <elliott> 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 <elliott> player :: Vec -> Behavior Player
07:26:49 <elliott> player pos = accumB (Player pos (0,0)) (gravity <$ tick)
07:26:49 <elliott> where gravity (Test p v) = Test (p .+. v) (v .+. (0,1))
07:26:56 <elliott> and i'm just thinking......can this be done.......more elgelgantly.....
07:27:05 <elliott> 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 <oerjan> monqy: +++ is sort of dual to ***
07:28:21 <monqy> yeah
07:28:38 <monqy> but I'v enever had to do anything like that to eithers
07:28:46 <monqy> so it is all up to imagineation
07:29:40 <olsner> oerjan: wow, that's cool
07:29:51 <monqy> i wish it was easily visible
07:30:01 <monqy> now i want to see it :(
07:31:36 <elliott> almost as cool as frogs
07:32:30 <monqy> i want frogs in my night sky
07:37:09 <elliott> frp is am hards
07:38:10 <monqy> i wish i knew frp ;_; i a,m try frp soonbut finishing other thigns first
07:40:48 <CakeProphet> wow, operator has no logical and.
07:40:54 <CakeProphet> both __and__ and and_ are bitwise.
07:41:19 <elliott> player :: Vec -> Discrete Player
07:41:19 <elliott> player initialPos = Player <$> pos <*> vel
07:41:20 <elliott> where pos = accumD initialPos ((.+.) <$> changes vel)
07:41:20 <elliott> vel = accumD (0,0) (collision $> (.+. (0,1)))
07:41:20 <elliott> collision = (/= (9,9)) <$> changes pos
07:41:20 <elliott> ok this is starting to get better...
07:41:29 <elliott> I guess it needs to take a list of things it can collide with...
07:42:37 <monqy> CakeProphet: hi what
07:42:51 <CakeProphet> monqy: just me trying to write functional code in Python.
07:42:57 <elliott> :t none
07:42:58 <CakeProphet> and finding that it is not well supported
07:42:58 <lambdabot> Not in scope: `none'
07:42:59 <elliott> :t any
07:43:01 <lambdabot> forall a. (a -> Bool) -> [a] -> Bool
07:43:13 <elliott> ?pl all . map not
07:43:14 <lambdabot> all . map not
07:43:16 <elliott> oh hm
07:46:35 <oerjan> :t all . (not .)
07:46:36 <monqy> would none be something like (fmap (fmap not) any)
07:46:36 <lambdabot> forall a. (a -> Bool) -> [a] -> Bool
07:47:27 <elliott> player :: Vec -> Discrete Vec -> Discrete Entity
07:47:27 <elliott> player initialPos collider = Entity <$> pos <*> vel
07:47:27 <elliott> where pos = accumD initialPos ((.+.) <$> changes vel)
07:47:27 <elliott> vel = accumD (0,0) (changes falling $> (.+. (0,1)))
07:47:28 <elliott> falling =
07:47:30 <elliott> (\p q -> p .-. (0,1) /= q)
07:47:32 <elliott> <$> pos
07:47:34 <elliott> <*> collider
07:47:36 <elliott> this looks right but is wrong :(
07:48:10 <CakeProphet> what is this code for?
07:48:20 <elliott> game
07:48:27 <monqy> "a really simple game" - elipt
07:48:41 <monqy> - a few minutes ago
07:48:43 <CakeProphet> similar to the one we were discussing before?
07:48:43 <monqy> - monqy
07:48:49 <elliott> no
07:48:57 <CakeProphet> oh okay.
07:49:09 <CakeProphet> THERE ARE ENTITIES SO I WAS SUSPICIOUS.
07:49:19 <monqy> whats entity
07:49:21 <CakeProphet> I am suspicious of things so vaguely named.
07:50:00 <oerjan> eek, an entity in the channel
07:50:06 <monqy> oh no
07:51:56 <CakeProphet> madnir
07:58:09 -!- oerjan has quit (Quit: Bye!).
07:58:26 <elliott> rip oerjan
07:58:28 <elliott> died as he lived
07:58:30 <elliott> fighting crime
08:14:03 -!- nooga has joined.
08:23:46 <CakeProphet> you know a library has bad code when I can rewrite it to be faster.
08:30:30 <CakeProphet> uh, is there even such a thing as a left-associative prefix unary operator?
08:30:55 <CakeProphet> !!x as right associative = !(!(x))
08:30:59 <CakeProphet> !!x as left associative = ???
08:31:16 <CakeProphet> (!(!x)) same thing.
08:31:41 <shachaf> !!x isn't necessarily equal to x.
08:31:47 <shachaf> C is intuitionistic!
08:31:56 <CakeProphet> ..I make no mention of what ! is
08:32:04 <CakeProphet> but yes, that's true.
08:32:13 <shachaf> No, just referring to a #haskell discussion.
08:32:24 <CakeProphet> oh yes of course.
08:32:38 <elliott> It's like a #haskell away from #haskell in here.
08:32:43 <elliott> God bless haskell america.
08:33:12 <shachaf> @localtime elliott
08:33:13 <lambdabot> Local time for elliott is Thu Sep 8 09:34:00
08:33:19 <elliott> What a silly command.
08:33:21 <shachaf> Is that your localtime?
08:33:30 <monqy> 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 <elliott> I'm... not sure how much I trust this computer's clock.
08:33:41 <monqy> @localtime
08:33:45 <lambdabot> Local time for monqy is Thu Sep 8 01:35:07 2011
08:33:46 <elliott> @localtime lambdabot
08:33:47 <lambdabot> I live on the internet, do you expect me to have a local time?
08:33:53 <elliott> How rude.
08:34:18 <elliott> @localtime EgoBot
08:36:17 <elliott> Car Crush II is a thrilling high speed 2-D driving
08:36:17 <elliott> 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 <monqy> sounds extreme
08:36:38 <monqy> and u
08:36:38 <elliott> "be a bit careful" is definitely the best part.
08:36:38 <monqy> h
08:36:40 <monqy> thrilling
08:36:46 <elliott> Not too careful. Just a bit.
08:37:37 <monqy> so i'm considering using not using a typeclass for this thing but I'm afraid it would get messier
08:37:42 <elliott> what is the thing
08:37:55 <elliott> typeclasses are never the answer don't do it n;o
08:38:02 <elliott> (Typeclasses are sometimes the ansewr.)
08:38:22 <monqy> it would probably be better to use a normal record but...mess...
08:38:30 <elliott> what is it
08:39:14 <monqy> i want multiple ui ends for a thing and the signature is right now a typeclass
08:39:41 <elliott> today on esoteric: monqy attempts to be as vague as possible so that nobody can help him
08:39:48 <monqy> exactly
08:40:05 <elliott> would you have to create a new dummy type just so you can make an instance
08:40:06 <elliott> like
08:40:08 <elliott> data Gtk
08:40:10 <elliott> instance UI Gtk where ...
08:40:14 <monqy> yes that's what i'm doing right now
08:40:17 <elliott> yeah no
08:40:19 <elliott> make it a record
08:40:25 <monqy> is there any way to clean it up
08:40:29 <elliott> make it a record
08:40:32 <monqy> i mean
08:40:34 <monqy> clean record
08:40:39 <elliott> how is it not clean
08:42:08 <monqy> hard to describe :(
08:43:06 <elliott> monqy: show class
08:43:44 <monqy> 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 <monqy> like theres
08:43:59 <monqy> the first three lines
08:44:00 <monqy> class UI a where type Key a :: * getKey :: IO (Key a)
08:44:04 <monqy> oh no it got condensed
08:44:07 <monqy> into one line
08:44:10 <monqy> when i pasted it
08:44:26 <elliott> monqy: since you have to do
08:44:28 <elliott> data Gtk
08:44:33 <elliott> instance UI Gtk where ...
08:44:39 <elliott> monqy: you would have to pass around the dummy Gtk value _anyway_
08:45:01 <elliott> what's with the Key thing though, sounds like you could eliminate that
08:45:32 <monqy> the next line might explain it
08:45:33 <monqy> a bit
08:45:36 <monqy> keyToCommand :: Key a -> Command
08:46:02 <monqy> e.g. hscurses represents keys differently than gtk??
08:46:09 * elliott diagnoses you with overcomplicating it syndrome
08:46:12 <monqy> :(
08:46:16 <monqy> what should i do help
08:46:20 <elliott> since you can't examine values of (Key a) except via the other methods
08:46:23 <elliott> you don't need it at all
08:46:27 <elliott> for instance that class is equivalent to
08:46:33 <elliott> class UI a where getKey :: IO Command
08:46:38 <elliott> (note lack of "a" occurring because it's dummy)
08:46:39 <elliott> so
08:46:43 <elliott> data UI = UI { getKey :: IO Command }
08:46:47 <elliott> obviously a key can do somewhat more maybe
08:46:58 <elliott> but that's fine, just define an abstract key type that would be all the class methods taking (Key a)
08:47:05 <elliott> data Key = Key { keyName :: String, keyCommand :: Command }
08:47:09 <elliott> data UI = UI { getKey :: IO Key }
08:47:16 <elliott> suddenly clean
08:47:51 <monqy> 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 <elliott> how does that help you avoid that pattern?
08:48:23 <elliott> that gives you that pattern exactly
08:48:26 <elliott> that's the only way to use yours
08:48:52 <elliott> 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 <monqy> i think i was thinking defining it generally for UI a?? i'll simplify it anyway
08:49:05 <elliott> and if you create that record, you'll realise that you never actually use the a in UI
08:49:09 <elliott> and it can be a trivial data type
08:50:05 <monqy> 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 <monqy> ending up making the sad empty type anyway and type families
08:50:50 <elliott> monqy: http://sprunge.us/gDXW
08:51:01 <elliott> monqy: "lose valuable things" <-- how can you? the translation is literally an isomorphism
08:51:19 <elliott> 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 <elliott> 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 <CakeProphet> this debug output is getting pretty furious.
08:54:57 <elliott> monqy: over the identical-in-the-literally-identical-sense, simple record types that cannot possibly longer your code
08:54:58 <elliott> then the bear
08:55:00 <elliott> of hope
08:55:01 <elliott> will be sad
08:55:03 <monqy> :(
08:55:12 <monqy> i;m going to use the records one don;t worry
08:55:32 <monqy> right now i am just being sad about not thinking of useing more records than one; _;
08:55:33 <elliott> IM WORRYING
08:55:37 <elliott> THE WORRYING WILL NEVER STOP
08:55:41 <CakeProphet> typeclasses are still useful if you want other data types to interface with your code easily.
08:55:46 <elliott> monqy: IT IS OK I HAD TO UNLEARN IT TOO
08:55:57 <elliott> CakeProphet: That's... well, it's a sentence.
08:56:34 <elliott> 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 <CakeProphet> 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 <elliott> typeclasses are not completely useless? WOW REALLY :P
08:57:57 <monqy> is cakeprohpet aware of the context i suspect not.....
08:57:58 <CakeProphet> ...yes I'm just discussing HOW they are useful. :P
08:58:20 <CakeProphet> not the specific problem no. Just that you guys are talking about typeclasses and data types being isomorphic.
08:58:41 <elliott> 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 <CakeProphet> .......I am not trying to disprove anything?
08:59:12 <CakeProphet> there's nothing to disprove.
08:59:29 <monqy> then why are you saying
08:59:29 <monqy> things
08:59:48 <CakeProphet> to like, I dunno, talk about it in detail?
09:00:01 <CakeProphet> I wasn't aware this was #esoteric-debate
09:00:03 <monqy> it's funny because that wasn't what we were talking about
09:00:22 <monqy> also: since when wasn't it???
09:01:33 <CakeProphet> 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 <CakeProphet> 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 <elliott> i never mentioned that sorry
09:05:20 <elliott> i was talking about one specific case
09:05:26 <elliott> exists =/= forall
09:05:38 <CakeProphet> "in many cases" =/= forall
09:05:48 <elliott> never said that
09:06:56 <CakeProphet> okay fine.
09:07:29 <CakeProphet> 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 <CakeProphet> why is 9 and 0 excluded from the number list?
09:12:18 <monqy> unnecessary
09:12:48 <monqy> who needs them
09:13:05 <CakeProphet> I assume the reason they're up there is because elliott's number keys are broken.
09:13:25 <CakeProphet> but maybe 9 and 0 work fine.
09:13:35 <elliott> they do
09:13:43 <monqy> why doesn't 0 on the left of 1 anyway
09:13:46 <monqy> 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 <monqy> what
09:14:25 <monqy> neither do I
09:14:27 <monqy> how is it relevant
09:14:33 <CakeProphet> maybe if I were like an accountant or something
09:14:37 <CakeProphet> and punched in numbers all day.
09:14:39 <CakeProphet> to a spreadsheet
09:14:41 <CakeProphet> then I might adopt it.
09:15:08 <monqy> that sounds like hell
09:15:40 -!- Patashu has joined.
09:15:42 <CakeProphet> it's not too different from what programmers do...
09:15:54 <elliott> it's not too different from what programmers like you do, maybe
09:16:01 <CakeProphet> except we have to think about what we're typing.
09:16:22 <monqy> thinking a smaller difference than typing is a similarity
09:16:27 <monqy> the wonderful world of hell
09:17:42 <CakeProphet> elliott: I'm not really sure that makes any sense, but I don't really appreciate it either.
09:18:30 <elliott> Well, if you think programming is like that, you can't be doing very interesting programming.
09:18:51 <CakeProphet> it's similar in that you are confined to one place typing for hours
09:18:55 <CakeProphet> is basically what I was saying.
09:19:28 <monqy> but that's not the hellish part
09:19:30 <CakeProphet> programming is interesting. why else would I be here?
09:20:02 <monqy> programming is usually fairly awful, things not doing what I want them to do
09:20:12 <CakeProphet> monqy: programming can be its own special hell. :)
09:20:30 <monqy> that's when people make me do things I don't want to do
09:20:38 <CakeProphet> right.
09:20:59 <monqy> people intentionally vague, _perhaps not vague enough_
09:21:05 <CakeProphet> but if you have a degree of pain tolerance, then even that sort of programming can be enjoyable.
09:21:13 <monqy> ahahahah no
09:21:47 <CakeProphet> have fun making money then...
09:21:58 <monqy> I'm scared of that
09:22:11 <CakeProphet> it's really not so bad, you just can't be so stingy. :P
09:22:24 <monqy> I guess there might be a sort of joy in some cases, but it is a very bad joy
09:22:50 <CakeProphet> there's always academia I suppose.
09:23:11 <CakeProphet> if you have the money or the welfare state for that.
09:23:22 <monqy> academia scares me too
09:23:39 <CakeProphet> why's that?
09:23:43 <monqy> reasons
09:23:48 <CakeProphet> ah.
09:24:26 <CakeProphet> monqy: well, then there's always doing something amazing that makes you rich or at least somewhat well-off.
09:24:33 <CakeProphet> better start now.
09:24:44 <monqy> whats amazing
09:24:54 <CakeProphet> ...if I knew I would be working on it. :P
09:27:24 <CakeProphet> monqy: well if you go into academia you could always design a language or something.
09:27:35 <monqy> instant money
09:27:42 <CakeProphet> well, sure.
09:27:47 <CakeProphet> enough money to live off of.
09:27:50 <monqy> would it be a good language
09:27:58 <CakeProphet> I dunno, would it?
09:28:03 <monqy> would it be new and exciting and fresh
09:28:13 <CakeProphet> presumably
09:28:23 <monqy> would it solve problems
09:28:23 <CakeProphet> the idea with academia is that you produce original research.
09:28:35 <monqy> I'm afraid of not being cool enough for that
09:28:53 <monqy> I'm also afraid of parts of academia that aren't that
09:29:00 <Patashu> if you know of something that makes you think 'surely there's a better way!'
09:29:01 <CakeProphet> DON'T YOU SEE? YOUR FEAR IS WHAT SHACKLES YOU, SIR.
09:29:05 <Patashu> and you feel strongly about it
09:29:06 <Patashu> go into academia
09:29:16 <monqy> now i have to go into academia
09:29:40 <CakeProphet> well it's that develop practical software of some kind.
09:29:43 <CakeProphet> +or
09:29:58 <CakeProphet> or find a different source of income and program as a hobby.
09:30:24 <monqy> everything is terrible
09:30:30 <CakeProphet> nah
09:30:36 <monqy> maybe i will make a living off of being dead
09:30:48 <CakeProphet> .....
09:31:14 <CakeProphet> maybe this guy will allow me to use him as a reference, so that I can get a better paying job.
09:31:23 <CakeProphet> instead of my current zero work experience state.
09:31:41 <monqy> work experience terrifies me
09:32:01 <CakeProphet> you can use open source experience on a resume, if you're worried about how to get started.
09:32:17 <CakeProphet> or freelance work, which is the route I'm going.
09:38:37 <shachaf> 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 <elliott> shachaf: It's ok; now _you_ hate yourself.
09:40:23 <shachaf> elliott: No, as a matter of fact, I'm rather pleased with myself.
09:40:37 <elliott> For now, maybe.
09:40:45 <shachaf> ...I suppose that's not strictly disjoin from self-hatred.
09:40:51 <elliott> But eventually, you will feel the virus inside you. You will realise the horror you have caused.
09:40:52 <shachaf> Endohatred.
09:41:01 <elliott> And it will evaporate your sense of self-worth.
09:41:07 <shachaf> u mad?
09:41:11 <elliott> Or at least this is what _should_ happen to people who say u mad.
09:41:23 <shachaf> u mad!
09:41:29 <shachaf> Wow, you're right. It's happening already.
09:41:33 <Patashu> 'u mad' is possibly the worst internet meme
09:42:03 <Patashu> unless someone knows of a meme more engineered towards debate ending
09:42:07 <Patashu> /poisoning
09:42:21 <cheater> u mad?
09:42:38 <Patashu> a little
09:42:39 * shachaf realizes he's brought himself down to cheater's level.
09:42:41 * shachaf mad
09:42:48 <cheater> shachaf, u mad?
09:43:19 <elliott> shachaf: Enjoy your self-destruction.
09:43:25 <elliott> u mad?
09:43:31 <elliott> AARGH IT'S SPREAD
09:43:34 * shachaf will take elliott down with him.
09:43:42 * cheater burns corpses
09:43:45 <elliott> WE ALL MAD
09:43:47 <elliott> WE ALL MAD!!!
09:43:49 * shachaf mad, I tell you, mad!
09:43:50 <cheater> no u
09:43:55 <cheater> NO U
09:44:18 <cheater> < totally not mad. you sai i'm mad? u mad? aargghhgh
09:44:25 <shachaf> elliott: What's your localtime?
09:44:33 <elliott> shachaf: mad:mad
09:44:41 <elliott> Mad mad mad mad, u, mad u, mad mad.
09:44:41 <cheater> +MAD,))
09:44:45 <cheater> +MAD,00.
09:45:26 <elliott> Well, we're reaching new heights of discourse here.
09:45:35 <elliott> If height is measured by seeing how low something's sunk.
09:45:40 <cheater> thank you shachaf for this interesting experience.
09:46:07 <shachaf> Universal mutually assured destruction.
09:46:18 <shachaf> u mad?
09:46:34 * cheater fights the urge.
09:46:47 <monqy> hi
09:46:49 <monqy> i'm back from
09:46:51 <elliott> 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 <monqy> not paying attention
09:46:57 <cheater> @trollcoins shachaf +50
09:46:58 <lambdabot> Unknown command, try @list
09:46:59 <elliott> (Oblig. joke answer: religion)
09:47:08 <monqy> hyuk
09:47:19 -!- Jafet has quit (Ping timeout: 245 seconds).
09:47:24 <shachaf> elliott: That depends on what you call "mental breakdown".
09:47:26 <cheater> elliott, iphone
09:47:38 <shachaf> Religion is in many ways beneficial to its host.
09:47:49 <elliott> Note the "joke" part of "oblig. joke answer" :P
09:48:01 -!- Jafet has joined.
09:48:02 <ais523> religion does wonders in activating the placebo effect
09:48:20 <elliott> Hello ais523, u mad this fine day?
09:48:23 <CakeProphet> elliott: hey I disagree with your very serious answer.
09:48:23 <elliott> Oh god it's unstoppable.
09:48:32 <elliott> It's like a rash. I must rip off all my skin.
09:48:33 <cheater> as well as in unifying the masses by limiting their potential severely
09:48:37 <ais523> 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 <ais523> and they did indeed work anyway
09:48:49 <Patashu> haha
09:48:54 <monqy> elliott: maybe this...is your answer...
09:48:57 <Patashu> I love the placebo effect
09:49:12 <ais523> the scientists running the experiment were pretty surprised
09:49:18 <cheater> ais523, irritable bowel has a strong psychological element though
09:49:19 <ais523> perhaps the participants just didn't know what a placebo was
09:49:20 <shachaf> ais523: Did they test this by using a control group and giving them placebos?
09:49:21 <elliott> I wish the placebo effect worked for really useful things.
09:49:25 <elliott> shachaf: Hahaha
09:49:28 <ais523> cheater: it does, that's why they were testing on that
09:49:31 <cheater> it's not like it would cure a bacterial infection i think
09:49:35 <elliott> Like, curing cancer by placebo.
09:49:38 <elliott> That would be really useful.
09:49:40 <ais523> shachaf: tests /of/ the placebo effect typically are compared to not using anything at all
09:49:41 <CakeProphet> elliott: perhaps one could treat air as a placebo
09:49:53 <elliott> CakeProphet: One could do that, if one were trying to make no sense at all.
09:49:55 <CakeProphet> elliott: and then breathing automatically invokes a placebo effect of whatever desired.
09:50:02 <shachaf> ais523: Note the "joke" part of elliott's "oblig. joke answer" above.
09:50:05 <cheater> i'm sure you've you seen children in africa with stomachs full of air
09:50:14 <elliott> shachaf: Does that enable joke mode for the rest of eternity?
09:50:21 <shachaf> elliott: Just for this channel.
09:50:25 <shachaf> So no harm done.
09:50:25 <ais523> shachaf: I'm not discussing elliott's answer
09:50:28 <elliott> Well, that's been on since the start.
09:50:31 <shachaf> ais523: Nor am I.
09:50:43 <shachaf> Hey, you're ais523 from #nethack.
09:50:50 <elliott> No, really?
09:50:51 <cheater> i have a leftover slicehost VPS. can i use it to run DF?
09:50:53 <ais523> 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 <elliott> There's so many ais523s going around.
09:51:02 <CakeProphet> elliott: it makes just as much sense as a sugar pill creating a placebo effect...
09:51:07 <monqy> I saw an ais523 over there too
09:51:09 <monqy> that way
09:51:14 <shachaf> Do you know toft?
09:51:16 * shachaf knows toft.
09:51:20 <ais523> 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 <cheater> german author
09:51:23 -!- derdon has joined.
09:51:27 <ais523> and I know of toft, but haven't interacted with him/her much
09:51:36 <shachaf> Oh.
09:52:25 <shachaf> At any rate, I, too, was making a joke.
09:52:33 <shachaf> preflex isn't in this channel. :-(
09:52:39 * shachaf mad
09:52:52 <elliott> Nor is mauke. Get him back.
09:52:53 <elliott> They used to be.
09:52:55 <ais523> 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 <elliott> Does preflex follow mauke around everywhere?
09:52:59 <elliott> Like a pet.
09:53:06 <elliott> An IRC pet bot. That's adorable.
09:53:17 * ais523 pats fungot on the head
09:53:17 <fungot> ais523: 6. as seen above, any attempt to insert them. user:thatsothatso 01:29, 18 september 2006 ( utc
09:53:31 <monqy> I used to have a pet bot, but then it died, because i killed it
09:53:32 <ais523> hmm, looks like it's in wikipedia mode
09:53:33 <elliott> fungot's chained to a stick because of its volatile nature.
09:53:33 <fungot> elliott: it has come under criticism for it. --user:ghcoolghcool 06:15, 28 november 2007 ( utc)))
09:53:40 <elliott> That stick is #esoteric.
09:53:48 <monqy> isn't fungot in other channels too
09:53:49 <fungot> 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 <CakeProphet> monqy: if only there were some way to check.
09:54:03 <ais523> haha, the sigs don't get fnorded?
09:54:11 <ais523> presumably because they're repeated so much
09:54:21 <CakeProphet> ^style europarl
09:54:21 <fungot> Selected style: europarl (European Parliament speeches during approx. 1996-2006)
09:54:25 <monqy> I think fungot is in #scheme? I remember I visited there and fungot was therE??
09:54:25 <fungot> 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 <shachaf> ais523: Who's Vorpal?
09:54:37 <CakeProphet> channels : #esoteric
09:54:42 <elliott> shachaf: A monster... of boringness... and despair.
09:54:43 <CakeProphet> monqy: not currently
09:54:44 <monqy> whois doesn't work like that
09:54:44 <ais523> someone who typically idles in this channel
09:54:47 <ais523> although he isn't here atm
09:54:48 <elliott> Or that, yes.
09:54:56 <monqy> CakeProphet: whois doesn't work like that here
09:55:09 <CakeProphet> oh, hmmm...
09:55:11 <CakeProphet> indeed not.
09:55:12 <ais523> elliott and Vorpal are known for not understanding the other's brand of humour
09:55:21 <elliott> I _understand_ Vorpal's, it just isn't funny.
09:55:23 <CakeProphet> monqy: I recall previous times whois would show me all channels.
09:55:25 <elliott> Vorpal is the one who goes eh a lot. :p
09:55:28 <shachaf> elliott: Example?
09:55:35 <monqy> do I go eh a lot
09:55:40 <CakeProphet> eh.
09:55:47 <elliott> shachaf: I, um, do you know AnMaster? I am really having trouble explaining Vorpal, I mean, a priori.
09:55:53 <shachaf> elliott: It sounds to me like u just mad
09:56:00 <elliott> I just the maddest.
09:56:08 <monqy> dead
09:56:09 * shachaf is not familiar with AnMaster
09:56:14 * CakeProphet has the best humor of all.
09:56:16 <elliott> Darn, so you don't know him at all.
09:56:24 <elliott> You will just have to... imagine.
09:56:30 <monqy> i have the humour trohpy
09:56:32 <elliott> ais523: Explain Vorpal to shachaf or he might mad.
09:56:40 <ais523> elliott: I tried
09:56:42 <shachaf> elliott: You ought to go to sleep.
09:56:46 <monqy> "good at jkoe"
09:57:02 <elliott> "good at jkoe" is a good motto.
09:57:08 <elliott> Is it a motto? I'm not sure what it is.
09:57:08 <shachaf> Good at jkoe and doesn't afraid of anything?
09:57:18 <monqy> thats me
09:57:26 <monqy> it says so on my the humour trohpy
09:57:40 <CakeProphet> 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 <shachaf> Is that a good start>
09:58:14 <shachaf> s/.$/?/
09:58:33 <elliott> shachaf: Sounds like u might be a tad mad.
09:58:47 <elliott> This is really quite liberating, just being a horrible person.
09:58:53 <shachaf> elliott: Go to sleep.
09:59:01 * shachaf assumes elliott lives in EDT.
09:59:09 <monqy> I'm horrible in my own special way, or maybe someone else's way too, I haven't bothered to check
09:59:16 <elliott> Assumptions are great things.
09:59:27 * CakeProphet lives in EDT and NEEDS NO SLEEP
09:59:29 <CakeProphet> no such thing.
09:59:43 <CakeProphet> 6 AM is afternoon for me.
09:59:54 <elliott> What even _are_ timezones, anyway?
10:00:02 <CakeProphet> standards.
10:00:03 <elliott> I ask the questions on everyone's minds.
10:00:08 <shachaf> You know that yellow blob in the sky?
10:00:19 * shachaf worries that he's using words unfamiliar to elliott.
10:00:26 <elliott> You mean... eggs?
10:00:31 <shachaf> Right. Eggs.
10:00:38 <elliott> Okay, eggs.
10:00:57 <monqy> how do ehggs in the sky
10:01:03 <monqy> is that how where you live works
10:01:08 <shachaf> Just the yolks, yo.
10:01:30 <shachaf> So egg yolks float around in the sky, and sometimes they disappear.
10:01:37 <shachaf> When they disappear, we call that "breakfast" or "morning".
10:01:44 <elliott> Yes. I have, at times, been sufficiently sleep-deprived to imagine such things.
10:01:46 <shachaf> Then we're awake until they come back.
10:01:53 <elliott> Thank god for the great frying pan in the sky.
10:01:55 <shachaf> And that's what a time zone is.
10:01:58 <monqy> I tend not to hallucinate
10:02:11 * shachaf hallucinates lovely classical music when he's tired.
10:02:21 <monqy> maybe I just haven't deprived myself enough
10:02:37 <CakeProphet> yop\\\
10:02:39 <elliott> I suggest fasting.
10:02:43 <elliott> Also, slowing.
10:02:44 <monqy> good idea
10:03:10 <CakeProphet> !wacro 3 5
10:03:12 <EgoBot> MCW
10:03:15 <monqy> wacro
10:03:27 <monqy> miserable crummy wacro
10:03:45 <CakeProphet> MCW is a perfectly believable acronym.
10:03:45 <elliott> 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 <elliott> Note: I won't.
10:04:04 <CakeProphet> elliott: you definitely should.
10:04:27 <CakeProphet> And because you won't what you should, you are unethical.
10:04:36 <elliott> I won't what I should
10:04:43 <CakeProphet> correct.
10:05:19 <shachaf> elliott: You should come to #haskell-blah, yo.
10:05:26 <shachaf> We make fun of people who aren't us.
10:05:37 <monqy> sounds like a cool place
10:05:45 <elliott> Hmm, the last time I did that cheater got banned.
10:05:48 <elliott> Sure, I'll give it a shot.
10:05:48 <Patashu> the only moral tribalism is my tribalism
10:06:03 <monqy> banned?????
10:06:13 <CakeProphet> :o
10:06:17 <monqy> were you naughty
10:06:22 <monqy> :'(
10:06:33 <elliott> monqy: Yes, I was so naughty that they banned someone who isn't me.
10:06:42 <elliott> Whereby they I mean oerjan.
10:06:52 <monqy> oh I misread
10:06:57 <monqy> maybe you can ban cheater again
10:07:05 <CakeProphet> 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 <CakeProphet> shameful and tasteless, honestly.
10:07:20 <shachaf> @quote monochrom
10:07:21 <lambdabot> 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 <shachaf> @quote monochrom
10:07:33 <lambdabot> monochrom says: "Monad is about computation." "Our company is about synergy." "iPod is about coolness." Godawful postmodernism nothingness.
10:07:56 <shachaf> elliott: Next step is to /part #esoteric.
10:07:58 <Patashu> @quote monochrom
10:07:59 <lambdabot> monochrom says: Don't wrap your head around haskell. Immerse! Wrap haskell around your head.
10:08:02 <Patashu> @quote monochrom
10:08:02 <monqy> wow my company is about synergy too
10:08:02 <lambdabot> monochrom says: premature generality is the root of OOP
10:08:08 <Patashu> @quote monochrom
10:08:08 <lambdabot> monochrom says: just add #! /usr/bin/runghc to your haskell file. then type errors occur at runtime only.
10:08:17 <shachaf> Hah.
10:08:21 <elliott> shachaf: But that's a bad step.
10:08:27 <elliott> @quote elliott
10:08:28 <lambdabot> elliott says: Top universities now employ people to watch infomercials all day to find the latest mysteries.
10:08:31 <elliott> @quote elliott
10:08:32 * shachaf guarantees less mad
10:08:32 <lambdabot> elliott says: i'm here to prove theorems and compile code and I'm all out of code
10:08:35 <elliott> @quote elliott
10:08:36 <lambdabot> 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 <elliott> @quote elliott
10:08:38 <lambdabot> 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 <elliott> Ahhh, ego.
10:08:50 <monqy> @quote monqy
10:08:51 <lambdabot> No quotes match. My pet ferret can type better than you!
10:08:53 * shachaf regularly @forgets his quotes from lambdabot.
10:09:04 <elliott> @quote shachaf
10:09:05 <lambdabot> shachaf says: boost::lambda: The ultimate error message.
10:09:10 <CakeProphet> `quote
10:09:14 <HackEgo> 555) <fungot> fizzie: i, myself, will bring an end to all.
10:09:15 <elliott> ?remember shachaf * shachaf regularly @forgets his quotes from lambdabot.
10:09:15 <lambdabot> Okay.
10:09:26 <shachaf> @forget shachaf * shachaf regularly @forgets his quotes from lambdabot.
10:09:26 <lambdabot> Done.
10:09:33 <CakeProphet> `quote gaping
10:09:35 <elliott> Neat. Orderly. Very well.
10:09:36 <HackEgo> 617) <elliott> Deewiant: How do you go through life without seeing at least one gaping anus, that's what I want to know
10:09:45 <elliott> CakeProphet: Hey, it's a legitimate query.
10:10:17 <monqy> is haskell-blah being a good place I'm tempted to join
10:10:37 <CakeProphet> elliott: of course it is.
10:10:46 <shachaf> monqy: Only if you like Haskell and simultaneously have no desire to talk about it.
10:11:02 <CakeProphet> wow that suits me perfectly.
10:11:13 <monqy> me too
10:12:17 <shachaf> Wow, I can't believe I missed an opportunity there.
10:12:24 <shachaf> 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 <monqy> :|
10:12:49 <Patashu> u not even mad serious jelly?
10:13:02 <elliott> I see your conditions only continue to deteriorate.
10:13:09 <elliott> Soon u will so mad that there will be nothing but the mad.
10:13:17 <CakeProphet> forever mad.
10:13:21 <elliott> Aargh.
10:13:25 <CakeProphet> :)
10:13:43 -!- itidus20 has quit (Ping timeout: 260 seconds).
10:13:44 <monqy> i'm furious
10:14:12 <CakeProphet> I am great sad that itidus20 as parted.
10:14:50 <Patashu> If 4chan never existed, would the internet be notably different?
10:15:13 <CakeProphet> there is no such thing as internet without 4chan.
10:15:20 <CakeProphet> if there were no 4chan then something else would have taken its place.
10:15:26 <Patashu> That's what I assumed
10:16:23 <CakeProphet> apparenty I can magically make things true by saying them.
10:16:24 <lambdabot> You think this is a botiecall??
10:16:33 <CakeProphet> .....
10:16:33 <lambdabot> When i get kinky, i have been known to engage in watersports... Does that turn you on as well?
10:16:50 <Patashu> Oh murr
10:16:51 <lambdabot> i hate it when i get stuck with chatting with a bot!
10:17:06 <elliott> i;m cant stop laughign
10:17:07 <lambdabot> stop what?
10:17:34 <Patashu> Hey elliott, me and lambdabot need some alone time together... Eyebrow waggle, eyebrow waggle
10:17:45 <elliott> Thank god for /query
10:18:07 <CakeProphet> @hoogle a -> a -> a -> a
10:18:08 <lambdabot> Network.BufferType buf_append :: BufferOp a -> a -> a -> a
10:18:08 <lambdabot> Language.Haskell.TH CondE :: Exp -> Exp -> Exp -> Exp
10:18:08 <lambdabot> Language.Haskell.TH.Syntax CondE :: Exp -> Exp -> Exp -> Exp
10:18:22 <CakeProphet> @hoogle a -> a -> a -> a -> a
10:18:23 <lambdabot> Text.Regex.Base.RegexLike MR :: a -> a -> a -> [a] -> Array Int a -> MatchResult a
10:18:23 <lambdabot> Text.Parsec.Error showErrorMessages :: String -> String -> String -> String -> String -> [Message] -> String
10:18:23 <lambdabot> Text.ParserCombinators.Parsec.Error showErrorMessages :: String -> String -> String -> String -> String -> [Message] -> String
10:18:41 <Patashu> never enough parameters!
10:20:43 <CakeProphet> @hoogle a -> a -> a -> a -> a -> a
10:20:44 <lambdabot> Text.Parsec.Error showErrorMessages :: String -> String -> String -> String -> String -> [Message] -> String
10:20:44 <lambdabot> Text.ParserCombinators.Parsec.Error showErrorMessages :: String -> String -> String -> String -> String -> [Message] -> String
10:20:44 <lambdabot> 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 <monqy> are you looking for something
10:21:05 <CakeProphet> I don't like these approximate types.
10:21:07 <CakeProphet> that hoogle gives.
10:21:22 <monqy> :t undefined :: a -> a -> a -> a -> a -> a
10:21:23 <lambdabot> forall a. a -> a -> a -> a -> a -> a
10:21:37 <elliott> CakeProphet: those are the whole point of hoogle
10:22:09 <CakeProphet> elliott: to give you answers that don't match what you're looking for?
10:22:24 <monqy> because you really wany a -> a -> a -> a -> a -> a
10:22:29 <monqy> where wany means want
10:22:50 <CakeProphet> yes, if I didn't I'd type a -> b -> c -> d -> e -> f
10:23:12 <monqy> no you don't
10:23:17 <monqy> nobody wants a -> a -> a -> a -> a -> a
10:23:28 <CakeProphet> that's not even the point though.
10:23:44 <monqy> who cares the point is bad
10:24:14 <monqy> the most matchy appear at the top
10:24:40 <monqy> 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 <monqy> where now is hoogle
10:24:51 <CakeProphet> I suppose.
10:25:26 <elliott> ?hoogle (a -> b -> c) -> (a -> b) -> a -> c
10:25:27 <lambdabot> Data.Function on :: (b -> b -> c) -> (a -> b) -> a -> a -> c
10:25:27 <lambdabot> Data.Data gmapQl :: Data a => (r -> r' -> r) -> r -> (d -> r') -> a -> r
10:25:28 <lambdabot> Control.Parallel.Strategies parZipWith :: Strategy c -> (a -> b -> c) -> [a] -> [b] -> [c]
10:25:34 <elliott> Darn, it didn't find ap :P
10:26:13 <CakeProphet> I wouldn't expect it to.
10:26:52 <elliott> Why not
10:27:07 <CakeProphet> because that's not the type of ap.
10:27:17 <monqy> :t ap :: (a -> b -> c) -> (a -> b) -> a -> c
10:27:19 <lambdabot> forall a b c. (a -> b -> c) -> (a -> b) -> a -> c
10:27:22 <CakeProphet> :t ap
10:27:23 <lambdabot> forall (m :: * -> *) a b. (Monad m) => m (a -> b) -> m a -> m b
10:27:45 <elliott> CakeProphet: ap meets that type very well, thank you very much.
10:27:52 <monqy> :t ap (undefined :: a -> b -> c)
10:27:54 <lambdabot> forall a a1 b. (a -> a1) -> a -> b
10:29:00 <CakeProphet> @hoogle m (a -> b) -> m a -> m b
10:29:00 <lambdabot> Control.Applicative (<*>) :: Applicative f => f (a -> b) -> f a -> f b
10:29:00 <lambdabot> Control.Monad ap :: Monad m => m (a -> b) -> m a -> m b
10:29:00 <lambdabot> Control.Applicative (<**>) :: Applicative f => f a -> f (a -> b) -> f b
10:29:22 <CakeProphet> hmmm...
10:29:30 <CakeProphet> I suppose it /should/ show ap.
10:29:45 <CakeProphet> as you may not always know what you're looking for.
10:29:56 <CakeProphet> and be really specific when you want something general.
10:30:32 <CakeProphet> s/know/know the type of/
10:30:42 <CakeProphet> obviously you don't know what you're looking for because you're searching for it. :P
10:34:01 <CakeProphet> fungot
10:34:03 <fungot> 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 <monqy> 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 <elliott> Nooooooo.
10:57:14 <monqy> hi
10:57:16 <elliott> Okay fine you can stay.
10:57:25 -!- itidus20 has joined.
10:57:28 <monqy> hi
10:57:31 <CakeProphet> itidus20: weeeee
10:57:44 <CakeProphet> fungot: hi
10:57:45 <fungot> 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 <monqy> hi
10:58:55 <CakeProphet> ^ ff7
10:58:58 <CakeProphet> ^style ff7
10:58:58 <fungot> Not found.
10:59:00 <CakeProphet> ^style ff7
10:59:00 <fungot> Selected style: ff7 (Full script of the game Final Fantasy VII)
10:59:01 <brisingr> I have a limited comprehension of the underlying context of the inception of this particular channel
10:59:13 <CakeProphet> fungot: that sword
10:59:13 <fungot> CakeProphet: you the truth, i did work for cheap! i've had a way to get tattoos. is that all?
10:59:30 <elliott> brisingr: http://esolangs.org/wiki/
10:59:34 <elliott> uggh wait
10:59:37 <elliott> http://esoteric.voxelperfect.net/wiki/Main_Page
10:59:41 <elliott> stupid dns
10:59:46 <monqy> is dns still happening
11:00:00 <monqy> poor esolangs.org
11:00:19 <brisingr> oh so #esoteric is language esoteric not general esoterism
11:00:30 <brisingr> cool
11:00:45 <elliott> brisingr: we get a lot of people looking for the latter
11:00:53 <elliott> they tend to get quite upset somehow
11:01:00 <monqy> except for some of them
11:02:13 <brisingr> anyone here played trainyard? it would make an awesome esoteric language
11:02:37 <brisingr> I know there are tons already with 2d movement
11:03:15 <monqy> never heard of trainyard. what's special about it?
11:03:50 <brisingr> it's a game involving 2d movement of the trains with tracks and all
11:04:15 <brisingr> 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 <brisingr> you can make counter loops and stuff, theoretically
11:04:28 <monqy> mmm
11:04:48 <elliott> :t Data.Map.lookupWithDefault
11:04:50 <lambdabot> Not in scope: `Data.Map.lookupWithDefault'
11:04:56 <elliott> ?hoogle lookupWithDefault
11:04:56 <lambdabot> No results found
11:04:59 <elliott> Oh pleae.
11:05:01 <elliott> please.
11:05:03 <CakeProphet> elliott: I believe it's M?
11:05:07 <CakeProphet> or something like that.
11:05:10 <elliott> :t M.lookupWithDefault
11:05:11 <Deewiant> elliott: findWithDefault
11:05:12 <lambdabot> Couldn't find qualified module.
11:05:16 <elliott> :t Data.Map.findWithDefault
11:05:18 <lambdabot> forall a k. (Ord k) => a -> k -> M.Map k a -> a
11:05:18 <elliott> 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 <elliott> shachaf: Go to sleep.
11:14:43 <shachaf> elliott: goto sleep;
11:14:47 <elliott> COME FROM SLEEP
11:14:54 <shachaf> Digusting.
11:14:59 <elliott> Digusting indeed.
11:15:06 <shachaf> Of all the places to go to after SLEEP, this channel is one of the worst.
11:15:19 <elliott> Says the guy who hangs out in #haskell-blah of all places.
11:17:44 <brisingr> so #esoteric is like a secondary #haskell-blah
11:18:23 <monqy> from my perspective it's the other way around
11:18:38 <elliott> These statements are true as of approximately half an hour ago when we all invaded there.
11:18:50 <elliott> Also we keep getting people from #haskell.
11:19:04 <elliott> But #haskell doesn't have, uh, ais523. And oerjan. And oerjan wrote most of the Haskell report by himself!
11:19:12 <elliott> In fact, most refer to him as the TRUE father of Haskell.
11:19:24 <Deewiant> For small values of "most".
11:19:39 <elliott> Those typo fixes were crucial, Deewiant.
11:19:40 <elliott> Crucial.
11:19:42 <ais523> monqy: #haskell is like a secondary #esoteric-blah?
11:19:50 <monqy> ais523: sure
11:20:01 <ais523> I haven't actually been in #esoteric-blah for a while
11:20:05 <ais523> what's it like there nowadays?
11:20:12 <elliott> The best.
11:20:17 <ais523> it became mostly useless when pastebins were invented and bsmnt_bot disappeared
11:20:28 <elliott> "pastebins were invented" XD
11:20:37 <ais523> although I love the concept of a channel whose main purpose is for thousand-line pastes
11:20:50 <monqy> what was bsmnt bot
11:21:07 <ais523> a bot that ran arbitrary Python
11:21:12 <ais523> with some sort of complex sandboxing
11:22:08 <ais523> what happened to bsmntbombdood anyway?
11:22:31 <ais523> -NickServ- Last seen : Aug 06 23:37:08 2011 (4 weeks, 4 days, 11:45:55 ago)
11:22:41 <elliott> he comes here occasionally
11:22:46 <elliott> last time as subleq for a second or two
11:23:15 <ais523> ah, aha, different nick, I was wondering about that
11:23:30 <ais523> also, Slashdot just published a headline saying that Linux games run faster via an emulation layer on BSD
11:23:43 <ais523> I don't know, or really care, if it's true or not
11:23:45 <shachaf> Slashdot published articles?
11:23:49 <elliott> Has Netcraft confirmed it?
11:23:51 <ais523> but it seems like such a beautifully pointless thing to measure
11:23:56 <ais523> elliott: nope, Phoronix
11:24:02 <elliott> Not good enough.
11:24:19 <shachaf> In Soviet Russia, ...
11:24:20 <elliott> oh, the project gutenberg founder died
11:24:22 * shachaf can't go on.
11:24:26 * shachaf too mad
11:24:30 <elliott> shachaf: Netcraft confirms u mad?
11:24:38 <monqy> 04:25:41 < elliott> oh, the project gutenberg founder died
11:24:38 <monqy> 04:25:42 * shachaf can't go on.
11:24:40 <monqy> :'(
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 <elliott> https://github.com/ivmai/bdwgc/commit/5abff1068fcfb3234295021a635ea5167404a10b
11:42:59 <elliott> Gregor: How long has Boehm GC been developed without -Wall...
11:45:00 -!- sebbu2 has changed nick to sebbu.
11:46:52 <Gregor> "Developed without -Wall" is not the same as "Having -Wall in configure.ac", which is just a bad option altogether.
11:47:18 <Gregor> (Rather, "developed without -Wall" is not the same as "NOT having -Wall in configure.ac")
11:48:37 <elliott> Yeah OK :P
11:48:41 <elliott> What's just a bad option altogether?
11:49:57 -!- derrik has quit (Ping timeout: 264 seconds).
11:50:55 <Gregor> Having -Wall in your configure.ac
11:51:16 <Gregor> 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 <elliott> Right
11:57:49 -!- sllide has joined.
12:05:27 <Patashu> 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 <derdon> damn these noisy farmers!
12:19:38 <elliott> hi DH____, you sound new
12:19:55 <DH____> Hi
12:21:08 <DH____> 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 <elliott> oh, ok :)
12:23:06 <elliott> what nick did you use?
12:23:08 <ais523> why is your phone using Virgin Media's cable service?
12:23:08 <ais523> or is it a landline phone?
12:23:16 <elliott> ais523: wifi, man
12:23:39 <DH____> Yes, WiFi
12:23:41 <ais523> phones use wifi nowadays?
12:23:59 <DH____> HTC Desire S
12:24:03 <Deewiant> Where "nowadays" = "for several years"
12:24:04 <DH____> Android
12:24:05 <elliott> ais523, you're so ais523
12:24:20 <DH____> Anyway...
12:24:38 <ais523> 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 <DH____> I usually use a nick of some variation upon DH or DHeadshot...
12:27:11 <ais523> DH____ is the first nick you've been under from that exact hostname in here
12:27:14 <DH____> The iPad is Apple taking inspiration from The Onion's parody of their products...
12:27:19 <ais523> at least, while I've been in here simultaneously
12:27:52 <DH____> From my phone, yes..
12:28:11 <ais523> aha:
12:28:15 <ais523> 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 <ais523> 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 <ais523> the first of those is you just joining
12:28:56 <ais523> and the second is you joining #irp last year
12:29:07 <ais523> amusingly, the only thing that's changed in the hostname is ntl.com to virginmedia.com
12:29:18 <ais523> it seems that hostnaming structure survived the company buyout
12:29:34 <DH____> Virgin bought Ntl
12:29:38 <ais523> indeed
12:30:07 <DH____> Sorry, ninjad
12:31:00 <ais523> why are you apologising for being ninja'd?
12:31:03 <ais523> most people rage instead
12:32:18 <DH____> Probably my Britishness kicking in... ;)
12:32:27 <ais523> heh, there are quite a few Brits here
12:32:34 <ais523> (as if being with virginmedia didn't give it away in your case)
12:32:50 <ais523> in fact, I suspect the channel is more than half Europeans, although I'm not certain in that
12:32:58 <ais523> there are certainly an unexpectedly high number of Scandinavians here
12:33:04 <DH____> I should really find a.way to mask that...
12:33:40 <DH____> The virginmedia I mean...
12:33:51 <ais523> 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 <DH____> That works?
12:34:55 <ais523> yep
12:35:03 <DH____> Thanks!
12:35:03 <ais523> that's what unaffilated cloaks are for, hiding your hostname
12:35:25 <ais523> 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 <DH____> Any way to check if it worked?
12:38:51 <Deewiant> 2011-09-08 15:38:08 --> DH____ (~DH____@unaffiliated/dh----/x-6288474) has joined #esoteric
12:39:09 <DH____> :D
12:40:03 <ais523> that's quite the cloak
12:40:04 <ais523> I like it
12:40:19 <DH____> Heh
12:40:27 <ais523> presumably it's some encoding scheme for the underscores
12:40:41 <ais523> it reminds me a bit of utf-5, although it isn't exactly that
12:41:25 <ais523> DH____: /whoising yourself is a more direct way to make sure it worked
12:42:21 <DH____> Well, given the channel theme, it shouldn't be hard for someone here to reverse engineer it...
12:42:27 <DH____> Thanks
12:43:13 <ais523> well, translating 6288474 to hex would seem to be a good start
12:43:21 <ais523> !c printf("%x",6288474)
12:43:25 <EgoBot> 5ff45a
12:43:33 <ais523> hmm, that doesn't seem to help much
12:43:42 <ais523> (also, interesting that EgoBot doesn't seem to need a semicolon there)
12:44:02 <ais523> perhaps it's not an encoding scheme but just a random number there for uniquifying purposes
12:44:12 <DH____> Possibly
12:44:42 <elliott> probably
12:45:09 <DH____> Maybe I'm the nth person to have underscores in their nick...
12:45:43 <ais523> the 523 in my nick's a random number for uniquifying purposes too
12:47:21 <ais523> hmm, I still want to get round to that language some time where the source code is just a number
12:47:44 <ais523> 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 <ais523> giving extra weight to ones specifically marked as not-cheating, I suppose
12:48:35 <elliott> what about endless problems that don't reveal src?
12:48:40 <elliott> like most popular ones
12:48:44 <DH____> Doesn't unary only use a number?
12:48:53 <ais523> elliott: I, umm, don't know
12:48:54 -!- azaq23 has joined.
12:48:58 <ais523> DH____: yes, but it's a pretty /big/ number
12:49:17 <ais523> the idea here would be to have astonishingly small programs for a range of popular programs
12:49:30 <ais523> I suppose for the endless ones, we just hire elliott or someone to do reference impls
12:50:15 <elliott> heh
12:50:27 <ais523> you'd be good at them!
12:51:03 <DH____> You could use DMM's WebPEG encoding on the source...
12:52:09 <DH____> Leaving a 20 byte source file or so...
12:55:11 <ais523> that's a /different/ creative way to cheat
12:57:20 <elliott> ais523: we need sg soon; git is driving me insane
12:58:02 <ais523> what are you using to version sg itself while it's being written, incidentally?
12:58:32 <elliott> nothing? :) or darcs I guess
12:58:36 <ais523> presumably it's not yet complete enough to version itself
12:58:47 <ais523> darcs seems to be the least-bad VCS that isn't vaporware
12:58:57 <Deewiant> Write the sg repository by hand as you go until it can do it by itself
12:58:58 <elliott> 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 <ais523> 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 <elliott> 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 <ais523> that's what I normally do
12:59:40 <ais523> elliott: I would mention patch-tag, but you said decent
12:59:49 <ais523> it's, umm, passable
12:59:51 <ais523> sometimes
12:59:55 <elliott> ais523: You could do that gitorious thing, but I would be far too lazy to pull your changes
13:00:12 <ais523> pulling isn't that hard...
13:00:19 <elliott> Harder than having someone else push for you
13:00:48 <ais523> you can't push into a repo with working changes anyway
13:00:55 <ais523> which is the usual state of a repo someone's directly working on
13:00:59 <ais523> so in practice, you have to pull anyway
13:01:32 <elliott> This is the thing where you're deliberately stupid to maintain your worldview and I ignore you, right?
13:01:47 <ais523> not this time
13:02:00 <elliott> You realise that the repositories you push to are not usually repositories with working directories?
13:02:01 <ais523> I can't think of any reasonable git workflow that doesn't involve pulling at all
13:02:08 <ais523> elliott: well, if you're too lazy to pull
13:02:14 <elliott> Well, sure, the person pushing has to pull
13:02:20 <ais523> then you wouldn't be pulling from any /other/ repo I push to
13:02:21 <elliott> Pull changes, merge in, push them off
13:02:27 <elliott> ais523: Har har
13:02:41 <ais523> so what you mean is, you're too lazy to pull from two repos at once
13:02:46 <ais523> despite the existence of git remote update
13:03:06 <elliott> 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 <ais523> oh right, I didn't pick that up
13:04:39 <elliott> I'll probably end up versioning it in nothing for the longest time, anyway
13:05:02 <elliott> VCSes are too workflow-hostile for me to bother for a project still in its solo stage
13:05:17 <ais523> I find that what I do with a VCS is to use it more and more properly as time goes on
13:05:29 <ais523> starting off by just using it as a backup system rather than version control
13:05:40 <ais523> and gradually making the commits more and more the correct size
13:05:49 <elliott> I'm trying to do that for mcmap too, but mostly just because Deewiant complained
13:05:50 <ais523> (so the commits tend to get smaller and more numerous as time goes on)
13:06:01 <elliott> Being a good git citizen is really hard, because you have to do terrible things like modifying history
13:06:11 <elliott> nice global notice
13:06:35 <ais523> indeed
13:06:45 <ais523> I don't think it's possible to use git correctly
13:06:47 <elliott> 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 <ais523> even using it as intended causes problems
13:07:03 <ais523> elliott: heh, I've done that too, except I more usually use tarballs
13:07:17 <elliott> I have about ten of those for Shiro right now
13:07:23 <elliott> Holy crap, I somehow submitted a pull request... to my own repository.
13:07:24 <elliott> From itself.
13:07:35 <elliott> GitHub, I...
13:07:47 <ais523> accept it!
13:07:52 <elliott> "This pull request cannot be automatically merged."
13:07:54 <elliott> :'(
13:08:03 <elliott> 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 <ais523> darcs would have noticed the option wasn't semantically correct!
13:08:12 -!- mycroftiv has joined.
13:08:13 <ais523> *the request
13:08:16 <elliott> ais523: it is semantically correct
13:08:18 <elliott> it's just insane
13:08:23 <elliott> It's a request from an older revision
13:08:25 <elliott> "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 <ais523> 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 <elliott> so? that's a nop
13:08:57 -!- yorick has joined.
13:09:38 <ais523> indeed
13:10:04 <ais523> I suppose you can say that a no-op pull request is technically semantically correct...
13:10:40 <elliott> The thing with VCSes is, I think, that almost everything they consider an error, I think should succeed
13:11:06 <elliott> Pushing when you don't have changes that have happened since? Sure, go ahead
13:11:21 <elliott> Basically errors are bad and make me sad. This is the way of elliott.
13:11:47 <ais523> indeed, I think pushing then should give a friendly reminder rather than an error
13:11:55 <elliott> 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 <ais523> (it's not an error in darcs, but has a tendency to cause exponential performance)
13:12:19 <ais523> actually, "friendly reminder" is pretty much exactly what darcs does
13:12:23 <elliott> ais523: in sg, I think it just creates a new, unnamed branch
13:12:28 <elliott> unless you did a lot of commits since
13:12:31 <elliott> in which case it'd probably become the new tip
13:12:34 <ais523> if you push before pulling, you get a "(By the way, the remote repository has 2 patches to pull.)", or whatever
13:12:53 <elliott> 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 <elliott> depending on which trail is longer
13:13:15 <elliott> well, that's assuming they conflict
13:13:28 <elliott> 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 <elliott> and that's the correct situation
13:13:35 <ais523> yep, and assuming that people haven't nicknamed a particular whitelist set as their own personal concept of the tip
13:13:50 <elliott> there's no personal concept of a tip; tip is an objective thing
13:13:53 <ais523> well, yes
13:13:54 <elliott> they can call something my-tip, though, I'm sure
13:14:00 <ais523> personal thing used instead of a tip?
13:14:03 <elliott> heh
13:14:06 <elliott> personal-thing-used-instead-of-a-tip
13:14:11 <elliott> good branch name
13:14:17 <ais523> ballpoint, perhaps
13:14:29 <elliott> I think the tip is literally just the longest self-consistent branch
13:14:47 <elliott> although, actually, that's not right
13:15:00 <elliott> because if you dump all the sg repos possible together into one massively infinite repository, it should have no tip
13:15:28 <elliott> what was your definition, again?
13:15:55 <ais523> 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 <ais523> umm, commit is the wrong word there
13:16:14 <ais523> but you probably know what I mean
13:16:17 <elliott> ais523: a tip has to point to one directory structure, though
13:16:22 <elliott> the only way you can have multiple is by explicit nesting
13:16:37 <elliott> to me, you've pretty much described the situation of having no tip
13:16:40 <elliott> you have multiple viable tips
13:16:42 <elliott> so there is no tip
13:16:47 <elliott> you have to select one to work
13:17:00 <elliott> (and probably designate one quickly, likely moving them all into subdirectories of a new root)
13:17:01 <ais523> oh, you mean actually on your own personal filesystem?
13:17:05 <elliott> s/likely/likely by/
13:17:07 <ais523> that makes sense
13:17:10 <elliott> ais523: no, I'm talking about sg concepts
13:17:22 <ais523> well, a tip is just a set of patches
13:17:31 <ais523> and it's the maximal set of patches that combine without conflicts
13:17:36 <elliott> yep, but a set of patches can't result in having two directories without explicitly doing that
13:17:42 <ais523> why not?
13:17:49 <elliott> because there's no mechanism for that?
13:18:10 <ais523> 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 <elliott> because it doesn't fit into the existing model?
13:18:54 <ais523> 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 <elliott> give me a patch that isn't self-conflicting and results in two directory trees, neither containing the other
13:19:19 <ais523> combination of {new directory} and {new directory}
13:19:36 <elliott> ais523: by combination of, you mean patchset, right?
13:19:39 <ais523> yep
13:19:52 <ais523> sorry, that should have been set of [{new directory}; {new directory}]
13:19:52 <elliott> ais523: there is no "new directory", there's "new directory in [HASH]"
13:19:59 <ais523> aha, that's possibly why I was confused
13:20:00 <elliott> (and a special root directory change)
13:20:03 <ais523> how do repos get started, then?
13:20:16 <elliott> ais523: repos initially contain one commit by the Ghost of Scapegoat
13:20:26 <ais523> that can be referred to to start off
13:20:27 <elliott> that commit is just the root directory change
13:20:35 <elliott> it has a single global hash worldwide
13:20:59 <ais523> 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 <Gregor> And that hash is 0xDEFACED
13:21:09 <elliott> you need to specify a name for the directory :)
13:21:10 <ais523> 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 <ais523> elliott: yes, I'm not writing out all the metadata
13:21:24 <elliott> changeset {new directory "foo" in root, new directory "bar" in root}
13:21:29 <ais523> yep
13:21:31 <elliott> that doesn't produce two unrelated filesystems
13:21:33 <elliott> that's just
13:21:38 <ais523> no, it produces two parallel filesystems
13:21:40 <elliott> no
13:21:42 <elliott> it's a directory
13:21:45 <elliott> with two empty directories in
13:21:48 <elliott> that's what you'd get if you cloned it
13:21:49 <ais523> well, right
13:21:52 <ais523> agreed
13:21:54 <elliott> s/cloned it/checked it out/
13:22:10 <elliott> ais523: the most you'd get is the directories of all the projects mushed together
13:22:14 <ais523> yep, I think so
13:22:17 <elliott> not in neatly separated unnamed hierarchies, that's not possible
13:22:34 <elliott> ais523: but really, the Infinite Repo should have no tip, not least because its commit changes go on literally forever
13:22:36 <ais523> hmm, it'd happen if we had a convention not to make sgbombs
13:22:48 <elliott> ais523: sgbombs are valuable
13:23:06 <elliott> hmm, wait, let me think
13:23:09 <ais523> 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 <elliott> all existing VCSes allow them
13:23:23 <elliott> they just clone into directories
13:23:29 <ais523> well, right
13:23:56 <elliott> 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 <ais523> so I suppose the question should be "can you commit files directly into the Ghost of Scapegoat"
13:24:09 <ais523> elliott: some sort of directory move patch, I guess
13:24:16 <ais523> reparent HASH from HASH to HASH
13:24:16 <elliott> it's a move change, but it's a move change on... the ghost of scapegoat?
13:24:18 <elliott> wait, no
13:24:22 <elliott> it's a move change on the.. hmm
13:24:25 <elliott> no, it's a move change on the ghost of scapegoat
13:24:27 <elliott> _that_ can't work
13:24:33 <elliott> because it's the root of the target repository, too
13:24:40 <ais523> oh, if you're trying to rotate the root under a new directory?
13:24:47 <ais523> yep, that's a good enough reason for it to have a unique hash
13:24:51 <elliott> ais523: basically, say you have repos foo and bar checked out
13:24:57 <elliott> you want to achieve the sg equivalent of
13:24:59 <elliott> mv foo bar/quux
13:25:02 <elliott> where bar/quux doesn't exist
13:25:23 <elliott> 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 <Gregor> 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 <elliott> which just seems wrong for some reason
13:25:34 <ais523> 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 <elliott> a repo shouldn't depend on when you create it
13:25:51 <elliott> ais523: I know what pivot_root is
13:25:53 <ais523> 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 <ais523> elliott: I know, I just felt like quoting it
13:26:06 <elliott> ais523: I assumed they'd start by creating a file
13:26:10 <ais523> or, well, a related set of projects
13:26:19 <elliott> you can just move every file into a new subdirectory to pivot the root, but that makes merging hard
13:26:24 <elliott> because future files will end up in the root
13:26:25 <ais523> you can tell that two repos are working on the same project because they share an initial root dir commit
13:26:27 <elliott> rather than the pivoted root
13:26:40 <ais523> yep, I agree that that's semantically wrong
13:26:41 <elliott> I suppose the first commit you make can make a new directory called /
13:26:51 <elliott> but then what is the name of the directory made by the Ghost of Scapegoat?
13:27:00 <ais523> /../, obviously
13:27:02 <elliott> other pressing questions: does the Ghost of Scapegoat have a PGP key?
13:27:27 <elliott> ais523: I think it's actually just called the null string
13:27:35 <Gregor> Clearly the commit message associated with this root should be "Boo"
13:27:37 <elliott> obviously you can't create a file at foo.c (absolute path)
13:27:38 <ais523> but /../ is a much better name for the root dir's parent
13:27:39 <elliott> only /foo.c
13:27:41 <elliott> so you have to make / first
13:27:47 <elliott> the null string is behind it
13:27:50 <elliott> ais523: ugly
13:27:53 <ais523> well, OK
13:28:07 <ais523> I'm not entirely convinced it needs a name, maybe null-stringing it is the best option
13:28:08 <elliott> ais523: in fact, ideally the genesis commit (THIS IS THE WORST RELIGIOUS METAPHOR) should have no author field
13:28:13 <elliott> or date
13:28:24 <elliott> actually, it doesn't need any attributes at all
13:28:27 <ais523> (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 <elliott> it's literally just the defined-by-construction object root-directory
13:28:41 -!- sebbu has joined.
13:28:45 <elliott> ais523: haha
13:29:17 <ais523> 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 <ais523> 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 <Gregor> 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 <ais523> (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 <elliott> I really want a famous band/author/whatever to release a work called Main Page
13:30:27 <elliott> Really, really, really
13:30:42 <ais523> Gregor: have you seen http://en.wikipedia.org/wiki/Talk:%25s
13:30:48 <ais523> (i.e. [[Talk:%s]])
13:30:58 <ais523> you might want to look at the history of [[%s]] itself, too
13:31:08 <ais523> hmm, bleh, they stopped arguing about it in 2009
13:31:24 <Gregor> ais523: ... WOW
13:31:44 <elliott> ais523: I can't believe people actually wanted to make it not redirect
13:31:45 <ais523> I knew it would blow your mind :)
13:31:49 <elliott> because %s is /such/ a popular topic to look up
13:31:55 <elliott> MUST PUNISH USERS OF OBSOLETE SHORTCUTS
13:32:19 <ais523> 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 <elliott> ais523: it's a page nobody will ever look up on their own, modulo rounding error
13:32:43 <ais523> and that it was only that way due to a bug in old versions of Firefox
13:33:09 <elliott> Yet "According to statistics, %s is the 993rd most visited page this month"
13:33:21 <elliott> It seems pretty clear-cut to me, the logic doesn't matter, usability does
13:33:40 <ais523> hmm, Firefox bug 298697 is still open
13:33:47 <ais523> https://bugzilla.mozilla.org/show_bug.cgi?id=298697
13:33:52 <ais523> despite being over 6 years old
13:34:24 <ais523> do any other popular search engines special-case searches for %s, I wonder?
13:34:26 <elliott> Is it just me, or do bugzilla bugs never get fixed, ever?
13:34:26 <ais523> say, Google?
13:34:31 <ais523> elliott: they do sometimes
13:34:37 <elliott> 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 <ais523> I used to subscribe to the entire bugzilla of MediaWiki
13:34:43 <elliott> well, that worked, but it knows i came from the google.com page
13:34:49 <elliott> so it's not a very useful result
13:34:59 <ais523> and quite a lot of the bugs there got fixed
13:35:02 <ais523> although not all of them
13:35:10 <ais523> every now and then I get reports that one of the bugs I voted for got fixed
13:35:18 <ais523> which amuses me, as I stopped voting on them years ago
13:35:36 <elliott> 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 <elliott> I don't know whether to blame bugzilla or the developers, I think it's both
13:36:01 <ais523> random fact: Bugzilla is the only webform-login I've ever used that works without cookies
13:36:10 <ais523> /however/, without cookies you have to relogin every page
13:36:15 <elliott> Useful
13:36:17 <ais523> but it does work eventually, after something like 5 relogins
13:36:24 <elliott> Who even wrote Bugzilla?
13:36:27 <elliott> And why?
13:36:29 <elliott> And how can I make them hurt?
13:36:39 <elliott> Terry Weissman, apparently
13:36:49 <elliott> Stern glares in his direction, I tell you
13:37:07 <elliott> "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 <elliott> Why the hell's it so slow then
13:38:55 <ais523> 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 <ais523> (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 <Gregor> Oh Wikipedia.
13:40:16 <Gregor> So screwy.
13:40:26 <ais523> 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 <ais523> <CraigF> Oh come on. %s clearly doesnt belong as a seperate article anyway. Are we going to list [[lparam]]? how about [[hwnd]]?
13:41:35 <ais523> (lparam is currently a redlink; hwnd a redirect to handle (computing))
13:42:14 -!- augur has joined.
13:44:06 <elliott> if (is_stop)
13:44:07 <elliott> {
13:44:07 <elliott> world_running = 0;
13:44:07 <elliott> g_thread_exit(0);
13:44:07 <elliott> /* never reached */
13:44:07 <elliott> }
13:44:09 <elliott> exit(1);
13:44:13 <elliott> wtf?
13:44:23 <elliott> anyone who knows pthreads: why would you exit the threadright before exiting?
13:44:25 <elliott> or, um, hmm
13:44:57 <ais523> 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 <ais523> in terms I actually understood
13:45:11 <ais523> I hate C++ sometimes
13:45:17 <elliott> RAII is just equating scope with resources
13:45:17 <ais523> (as opposed to everyone else, who hates it continuously)
13:45:36 <ais523> it's like alloca, but objectorientized
13:45:48 <elliott> and handling more than memory
13:46:14 <ais523> yep
13:46:24 <fizzie> 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 <ais523> 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 <elliott> fizzie: Right.
13:48:20 -!- Phantom_Hoover has joined.
13:48:43 <elliott> 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 <elliott> It's really the nicest language I could possibly bind to.
13:48:59 <elliott> As far as binding quality goes.
13:49:16 <elliott> (The download isn't big; just six megs or so, and the building only takes a few minutes.)
13:49:23 <ais523> there were a bunch of articles recently about how Guile was still better than the alternatives at its intended purpose
13:49:43 <ais523> GNU's NIH syndrome was mentioned as a positive for it ;)
13:50:02 <elliott> probably gnu propaganda, but guile has a really nice c api, is a decent scheme, and is well-maintained
13:50:31 <ais523> I suppose lua's the other language designed to bind nicely to things
13:50:34 <elliott> 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 <elliott> erm
13:50:42 <elliott> s/gnu/gcc/
13:50:45 <ais523> I noticed that the Guile fans were mostly ignoring it
13:50:47 <elliott> (void);? :P
13:50:49 <ais523> elliott: assert(0)
13:50:52 <elliott> ais523: Lua is an awful language, though
13:51:00 <elliott> any way that doesn't involve including assert.h?
13:51:03 <ais523> it has good points
13:51:17 <ais523> actually, I'm not convinced that assert(0) definitely works
13:51:20 <ais523> but it /ought/ to
13:51:35 <elliott> 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 <elliott> I don't even want to know.
13:51:39 <ais523> 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 <DH____> I've been meaning to learn List for years..
13:52:00 <elliott> ais523: ah, abort() makes it happy
13:52:04 <fizzie> Add an exit(0) or something actually marked as noreturn there. (What do you mean inelegant?)
13:52:16 <ais523> elliott: thread cancellation is a bad idea anyway
13:52:26 <elliott> ais523: it's cancelling the thread I'm in :P
13:52:35 <ais523> 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 <Phantom_Hoover> http://www.reddit.com/r/worldnews/comments/k8p8b/the_lifetime_ban_on_blood_donations_by_homosexual/
13:53:01 <Phantom_Hoover> 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 <elliott> aha, I can just declare
13:53:02 <elliott> SCM scm_cancel_thread(SCM thread) __attribute__((noreturn));
13:53:04 <elliott> at the top of the file
13:53:46 <fizzie> That's probably not any prettier.
13:53:59 <elliott> fizzie: It avoids generating needless extra code to call abort()
13:54:06 <elliott> fizzie: Anyway, give me official approval dammit :P
13:54:09 <fizzie> Since it's not really a noreturn function if you call it for some other thread.
13:54:20 <elliott> Well, true.
13:54:28 <ais523> why would a thread cancel itself, rather than just exit?
13:54:30 <elliott> But the declaration will be local to that file.
13:54:30 <fizzie> Doesn't it have some sort of exit-this-thread function?
13:54:38 <elliott> ais523: How can a thread "just exit"?
13:54:45 <elliott> If pthreads has a function for that I can use it, but I couldn't find anything
13:54:47 <ais523> elliott: there's typically an API call for that
13:54:52 <elliott> What's the pthreads for it
13:54:56 <ais523> I know Linux has a system call for exiting a thread
13:55:09 <ais523> (it's called exit(2), not to be confused with exit_group(2) which is called by exit(3))
13:55:12 <elliott> man pthread_<tab> doesn't show much interesting
13:55:21 <fizzie> pthread_exit.
13:55:27 <elliott> Why don't I have a manpage for pthread_exit
13:55:41 <fizzie> "pthread_exit - terminate calling thread"
13:55:46 <fizzie> I have one.
13:55:49 <elliott> o_O
13:55:50 <elliott> What package?
13:55:51 <ais523> I don't have a manpage for pthread_exit either
13:55:55 <ais523> maybe it's missing on my system
13:55:58 <elliott> And what arguments does it take?
13:56:13 <fizzie> A void * retval.
13:56:34 <elliott> NULL ok?
13:56:48 <ais523> http://linux.die.net/man/3/pthread_exit
13:56:57 <elliott> Thanks
13:56:58 <ais523> elliott: I can't believe /you/ didn't think of searching for "man pthread_exit"
13:57:03 <elliott> I'm lazy
13:57:04 <ais523> it seems we're in reversed roles today
13:57:22 <ais523> (also, I should have just gone to linux.die.net anyway as that's the site I always check for manpages)
13:58:20 <ais523> it seems that the return value is just a pointer that's returned literally to anything trying to join the thread
13:58:25 <ais523> so NULL is OK
13:59:20 <elliott> erm, hmm
13:59:26 <elliott> how can I get a specific file out of a git stash from another branch?
14:00:30 <elliott> never mind
14:00:39 <ais523> gah, trying to edit Wikipedia, my connection to the server's getting reset while the page is loading
14:00:42 <ais523> that hasn't happened for months
14:01:02 <ais523> there, that's better
14:01:06 <ais523> it started working again
14:01:25 <ais523> 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 <fizzie> 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 <fizzie> $ dpkg-query -S `locate pthread_exit|grep usr/share/man`
14:01:37 <fizzie> manpages-dev: /usr/share/man/man3/pthread_exit.3.gz
14:01:42 <fizzie> That one is right there, though.
14:01:50 <elliott> elliott@katia:~/Code/mcmap$ build/mcmap pyralspite.net
14:01:51 <elliott> 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 <elliott> umm, what
14:01:57 <elliott> I thought pkgconfig was meant to take care of those sorts of things
14:02:26 <ais523> fizzie: weird, I think I have manpages-dev installed
14:02:28 <ais523> let me try again
14:02:31 <fizzie> Just for finding them for linking and so on; not for actually using them.
14:02:34 <elliott> ais523: different os, version
14:02:43 <elliott> fizzie: but I thought LD_LIBRARY_PATH was a massive hack :'(
14:02:45 <ais523> yep, I'm wondering if it's missing from manpages-dev by mistake
14:02:54 <fizzie> ais523: This is the Ubuntu 11.04 thing.
14:02:58 <ais523> the version I have, that is
14:03:07 <ais523> it's bad enough having various syscalls not documented
14:03:14 <ais523> like set_robust_list
14:03:25 <elliott> GLib-ERROR **: The thread system is not yet initialized.
14:03:26 <elliott> aborting...
14:03:26 <elliott> Aborted
14:03:26 <elliott> yay
14:03:37 <elliott> oh, hmm
14:03:46 <elliott> fizzie: do you need to initialise glib threads to use mutexes and the like?
14:03:55 <fizzie> Probably, yes.
14:04:55 <fizzie> 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 <elliott> Indeed.
14:05:17 <elliott> 15:06:00 [DIED] select: Interrupted system call
14:05:19 <elliott> fizzie: Oh deary me
14:05:37 <elliott> fizzie: I'm pretty sure you're meant to handle those things
14:05:45 <elliott> I seem to be getting it deterministically, though
14:06:11 <fizzie> Possibly, though I don't recall where I select()'d anything.
14:06:30 <elliott> fizzie: I wrote that code. :p
14:06:35 <elliott> The proxy.
14:06:45 <fizzie> Well, then s/you/I/ to you.
14:07:02 <elliott> fizzie: Well, it's more that literally any syscall can do that and you have to handle it.
14:07:03 <fizzie> Yes, "I're".
14:07:17 <fizzie> No, *you* have to.
14:07:39 <elliott> NO YOU HAVE TO
14:07:54 <fizzie> 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 <fizzie> A don't-mark-and-don't-sweep-either-in-fact-just-lounge-around-and-be-lazy GC.
14:11:37 <ais523> 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 <ais523> 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 <elliott> do
14:12:27 <elliott> ret = select(nfds, &rfds, NULL, NULL, NULL);
14:12:27 <elliott> while (ret == EINTR);
14:12:32 <elliott> do...while looks so weird
14:12:56 <elliott> gah, EINTR doesn't do it, I need errno, duh
14:12:57 <ais523> without the braces?
14:13:08 <elliott> do
14:13:09 <elliott> ret = select(nfds, &rfds, NULL, NULL, NULL);
14:13:09 <elliott> while (ret == -1 && errno == EINTR);
14:13:09 <elliott> BEAUTIFUL
14:13:18 <elliott> ais523: We're retro coders at mcmap inc.
14:13:23 <ais523> elliott: do you prefer the standard C API (return -1 and set errno) or Linux API (return -errno)?
14:13:34 <elliott> ais523: Haskell
14:14:01 <elliott> All C error-handling conventions are intolerable :P
14:14:03 <ais523> well, I was asking which of two options you preferred, not if you thought either was good
14:14:23 <elliott> Setting errno is kind of iffy, because of calling other things in the interim, and thread-local storage
14:14:26 <elliott> So the latter, I guess
14:17:57 <ais523> I think I prefer the latter too, it's less boilerplate than errno-style
14:21:58 <fizzie> "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 <ais523> 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 <ais523> and the Secret Project cannot be used for benchmarking (have a free clue about it while you're at it)
14:23:21 <ais523> ideally, I'd like to count instructions rather than realtime
14:23:57 <ais523> 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 <Jafet> valgrind, then
14:26:16 <ais523> Jafet: hmm, interesting, explain more
14:26:32 <ais523> presumably it wouldn't be used in a memory-checking mode but some other mode
14:27:17 <Jafet> There's cachegrind and lackey
14:27:47 <elliott> ais523: gdb
14:27:52 <elliott> used exclusively with step
14:27:52 <Jafet> Since valgrind adds a huge amount of indirection to the code, the results should be repeatable
14:27:55 <ais523> cachegrind checks cache hits/misses, right?
14:27:57 <elliott> counting step until program termination
14:28:23 <ais523> 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 <elliott> ais523: I think you can do "step N" for some large N
14:28:42 <Jafet> Yes, but with a simulated cache.
14:28:58 <ais523> elliott: the API only allows one step at a time
14:29:07 <Phantom_Hoover> !sanetemp 66.9
14:29:08 <EgoBot> 292.5
14:29:14 <Phantom_Hoover> Wha
14:29:17 <Phantom_Hoover> !sanetemp 66
14:29:18 <EgoBot> 292.0
14:29:27 <Phantom_Hoover> !show sanetemp
14:29:28 <EgoBot> sh dc -e "1k?459.67+5*9/p"
14:29:41 <ais523> is that converting farenheit to kelvin?
14:29:52 <Phantom_Hoover> OK, who was it?
14:29:57 <ais523> !sanetemp 32
14:29:57 <EgoBot> 273.1
14:30:03 <ais523> !sanetemp 212
14:30:03 <EgoBot> 373.1
14:30:05 <ais523> looks like it
14:30:27 <Phantom_Hoover> !delinterp
14:30:27 <EgoBot> ​ is not a user interpreter.
14:30:29 <ais523> Phantom_Hoover: what did it used to do?
14:30:31 <Phantom_Hoover> !delinterp sanetemp
14:30:31 <EgoBot> ​Interpreter sanetemp deleted.
14:30:38 <Phantom_Hoover> ais523, Celsius.
14:30:42 <Jafet> deamericanize
14:30:47 <ais523> from farenheit?
14:30:54 <ais523> ah, and someone changed it to kelvin as a joke
14:30:55 <Phantom_Hoover> !addinterp sanetemp sh dc -e "1k?32-5*9/p"
14:30:55 <EgoBot> ​Interpreter sanetemp installed.
14:30:58 <fizzie> Well, Kelvin's eminently sane.
14:31:37 <Phantom_Hoover> !sanetemp 66.9
14:31:37 <EgoBot> 19.3
14:32:21 <fizzie> !insanetemp 19.3
14:32:22 <EgoBot> 66.7
14:32:37 <fizzie> Heh, that was just a guess.
14:34:13 <fizzie> Nice rounding there:
14:34:17 <fizzie> 17:34 <fizzie> !sanetemp 66.7
14:34:17 <fizzie> 17:34 <EgoBot> 19.2
14:34:17 <fizzie> 17:34 <fizzie> !insanetemp 19.2
14:34:17 <fizzie> 17:34 <EgoBot> 66.5
14:34:17 <fizzie> 17:34 <fizzie> !sanetemp 66.5
14:34:19 <fizzie> 17:34 <EgoBot> 19.1
14:34:22 <fizzie> 17:34 <fizzie> !insanetemp 19.1
14:34:24 <fizzie> 17:34 <EgoBot> 66.3
14:35:18 <Phantom_Hoover> 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 <Phantom_Hoover> > 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 <elliott> Is there a more impolite way of killing a thread than cancelling it?
15:01:43 <elliott> Like, that doesn't wait for a cancellation point?
15:02:54 <elliott> 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 <elliott> ais523? :p
15:05:35 <ais523> elliott: I imagine pthread_kill with SIGKILL might work, but might just screw up the threading model generally
15:05:43 <ais523> why would you want to do that anyway¿
15:05:44 <elliott> hmm, but pthread_kill with SIGTERM?
15:05:45 <ais523> *?
15:05:51 <elliott> ais523: because pthread_cancel does nothing
15:05:55 <elliott> the thread never hits a cancellation point
15:05:58 -!- yorick has quit (Excess Flood).
15:06:03 <ais523> why is the thread not hitting a cancellation point
15:06:13 <elliott> 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 <ais523> why is the library code in an infinite loop?
15:07:06 <elliott> because the user typed //eval (...infinite loop...)
15:07:13 <elliott> or, possibly, just //eval (computation they did not realise would blow up)
15:07:27 <elliott> stop trying to avoid answering the question, it's like #python :)
15:07:55 <ais523> 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 <ais523> perhaps spinning off a process would make more sense than a thread in that situation
15:08:12 <elliott> I can control the thread enough to set up appropriate signal handlers
15:08:16 <elliott> Not an option, sorry
15:08:18 <ais523> you can kill those as impolitely as you like
15:08:22 <elliott> It must be a thread
15:08:28 <ais523> hmm, OK
15:08:42 <elliott> (it has to be able to call the shared-state-using functions I provide to the environment)
15:08:43 <ais523> I have a hunch that threads aren't really designed for that sort of thing
15:08:59 <elliott> What you're trying to say is, you don't know the answer, right?
15:09:14 <ais523> if arbitrary code can go in that eval, it may well be something that interferes with the threading model
15:09:19 <ais523> elliott: well, I'm not entirely sure I know the question
15:09:21 <elliott> Arbitrary Scheme code
15:09:25 <ais523> but I fear that if I did, I wouldn't know the answer
15:09:46 <elliott> <elliott> 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 <elliott> Oh well, worth a shot
15:10:28 <ais523> hmm, I wonder what happens if you use SIGALRM, and then put a cancellation point in your SIGALRM handler
15:10:36 <ais523> (/me believes in using semantically correct signals for this sort of thing)
15:11:12 <ais523> or better, a pthread_exit in your SIGALRM handler
15:11:25 -!- copumpkin has joined.
15:11:37 <elliott> the question is exiting the evaluation loop safely and putting all the interpreter state back as it should be, euurgh
15:12:09 <ais523> wait what? you're trying to do multiple evals on the same interp?
15:12:17 <ais523> can you set handlers from within Scheme?
15:12:25 <elliott> Multiple whats on the same what what?
15:12:34 <ais523> if you could put an exit in a SIGALRM handler /in the Scheme program/, I think it would work
15:12:37 <elliott> I'm saying that just killing a thread while it's modifying interpreter state might not be smart.
15:13:18 <ais523> I mean, I assumed you'd have one interpreter for each eval
15:13:29 -!- Gregor` has joined.
15:13:32 <elliott> no, that's absurd for my usecase
15:13:40 <elliott> 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 <ais523> elliott: I'm not entirely convinced that what you're asking is possible
15:15:30 <ais523> 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 <elliott> I'm fine with letting it know
15:15:40 <ais523> the problem's not fundamentally about threading, but about the interpreter's API
15:15:44 <elliott> I just don't know how to let it know :)
15:15:48 <elliott> 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 <elliott> 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 <ais523> 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 <ais523> do you know if it signifies anything else?
15:18:56 -!- yorick has joined.
15:19:04 <elliott> it signifies trying to be Lymia, also possibly succeeding
15:19:08 <elliott> (say, by being Lymia)
15:19:29 <elliott> 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 <elliott> Unless it's a third use of the tilde
15:19:44 <elliott> 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 <ais523> light tone of voice but w/e would seem to fit
15:21:58 <elliott> "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 <elliott> ais523: aha, I can do scm_thread_cleanup(thread), and then pthread_kill it
15:22:15 <ais523> sounds right
15:22:21 <ais523> it's an interp API problem, not a threading problem
15:22:28 <ais523> I'll be annoyed if you don't use SIGALRM, though
15:22:44 -!- Phantom_Hoover has joined.
15:22:51 <elliott> ais523: Does SIGALRM quit the thread by default?
15:23:14 -!- Zetro_ has changed nick to Zetro.
15:23:19 <ais523> elliott: yes
15:23:33 <elliott> OK
15:23:36 <ais523> SIGALRM 14 Term Timer signal from alarm(2)
15:23:41 <elliott> yeah, I know
15:23:48 <ais523> the nice thing about semantically correct signals is that they do the right thing by default
15:24:31 <elliott> ugh, minecraft.net, get back up, I'm testing mission-critical software here
15:24:58 <ais523> elliott: strangely, I had a dream about Minecraft a couple of nights ago
15:25:17 <elliott> Do I want to know
15:25:45 <ais523> probably not
15:25:53 <ais523> I can't remember many details anyway
15:25:54 <elliott> Go on then
15:26:23 <ais523> 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 <ais523> 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 <elliott> hmm, just scm_thread_cleanup(thread); does nothing
15:26:54 <ais523> then night came and I was killed by an infinite number of monsters, game over
15:26:57 <elliott> the CPU keeps getting used forever
15:27:03 <elliott> that makes me worry that the thread won't be in a safe staet to kill
15:27:10 <elliott> ais523: haha
15:27:15 <ais523> (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 <elliott> lava doesn't cool in minecraft, though
15:27:28 <elliott> it just lavas
15:27:28 <elliott> forever
15:27:29 <ais523> 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 <elliott> yeah ok thread cleanup thing doesn't work
15:28:05 <ais523> (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 <elliott> And I can't use pthread_kill because the API doesn't expose it
15:28:40 <elliott> the pthread_t, that is
15:29:56 <elliott> aha, hmm, scm_sigaction_for_thread
15:31:52 <ais523> bleh, I want to go home but it's rush rather-more-than-an-hour
15:32:57 <ais523> hmm, RAII is misnamed, I think; it's not really about allocation or initialization at all, but about deallocation and finalization
15:33:37 <elliott> grr, the exact function I want is offered
15:33:41 <elliott> but only through scheme
15:33:46 <elliott> so I have to go through hoops to get at it through c
15:36:27 <elliott> scm_call_1(scm_c_public_variable("(srfi srfi-18)", "thread-terminate!"), thread);
15:36:29 <elliott> hopefully that works
15:36:43 <ais523> what's the exclamation mark doing there? quoting?
15:37:55 <elliott> ERROR: In procedure catch-closure:
15:37:55 <elliott> ERROR: In procedure public-lookup: Module named (#{\x28;srfi}# #{srfi-18\x29;}#) does not exist
15:37:55 <elliott> hmph
15:37:58 <elliott> ais523: no, scheme
15:38:13 <ais523> elliott: I mean, it's part of the name
15:38:19 <elliott> naming convention
15:38:29 <elliott> albeit a vaguely inconsistent one
15:38:30 <ais523> 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 <ais523> I was wondering what the naming convention signified
15:38:48 <elliott> "destructive", it originally just applied to mutating versions of procedures
15:38:53 <elliott> but then it got applied tovariable assignment too
15:39:00 <elliott> so now it means something like "called for side-effects"
15:39:13 <ais523> ah, aha
15:39:17 <ais523> or "impure" more generally, I suppose
15:39:31 <elliott> nah
15:39:36 <elliott> it's not applied enough for that
15:39:41 <elliott> and it's not even really applied consistently
15:39:44 <elliott> IMO the original convention was best
15:40:04 <ais523> amusingly, in ICA you use ! to not assign to a variable
15:40:12 <ais523> it's the get-contents operator (basically a dereference)
15:40:24 <ais523> same idea as in ML, although not quite semanticaly identical IIRC
15:40:26 <elliott> ERROR: In procedure catch-closure:
15:40:27 <elliott> ERROR: Wrong type to apply: #<variable 340db90 value: #<procedure thread-terminate! (thread)>>
15:40:27 <elliott> huh
15:40:48 <ais523> does it say what the right type is?
15:40:58 <ais523> but it looks like you've passed it a variable holding a thread, rather than a thread
15:41:04 <ais523> unless Scheme doesn't distinguish between those cases
15:42:40 <elliott> yay, thread-terminate just doesn't work
15:43:01 <ais523> Gregor: heh, I just noticed that I was on that page, denying a change that I personally agreed with
15:43:09 <elliott> wat
15:43:19 <ais523> because the person in question had used a tag designed for uncontroversial edits only
15:43:26 <ais523> and anything done to that page has been controversial
15:43:27 <elliott> oh, I noticed you on that page
15:43:28 <elliott> Gracenotes, too
15:45:36 <ais523> (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 <ais523> <flamingspinach> 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 <elliott> wtf? not even setting an alarm signal works
15:48:06 <ais523> are you sure it's not messing with signal handlers?
15:48:26 <ais523> 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 <ais523> rather than, say, the thread it was given on
15:48:55 <elliott> wait, alarm isn't signal-aware?
15:49:02 <elliott> hmm, surely scm_aarm is
15:49:04 <elliott> alarm
15:49:24 <ais523> <h2g2bob> 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 <ais523> elliott: it's signal-aware (obviously) but not thread-aware, IIRC
15:50:02 <elliott> return scm_from_uint (alarm (scm_to_uint (i)));
15:50:04 <elliott> gah
15:50:05 <ais523> yep, the man page just mentions that the alarm's delivered to the calling process
15:50:30 <elliott> hmmm
15:50:30 <ais523> 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 <elliott> I'm trying to figure out how to set an alarm for the current thread
15:50:51 <elliott> is that even possible?
15:51:07 <elliott> ooh, ooh, or how about this: can you get the current thread from pthread?
15:51:09 <elliott> s
15:52:01 <ais523> elliott: pthread_self(3)
15:52:10 <elliott> no manual entry, wooo, /me googles
15:52:12 <ais523> which I don't have a manpage for, but it's mentioned in man pthreads
15:52:23 <elliott> right, returns the thread
15:52:49 <elliott> 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 <ais523> heh, clever
15:53:18 <ais523> I hope that the sleep isn't implemented in terms of alarm (which is allowed), or the universe will explode
15:53:36 <ais523> you might want to explicitly sleep using select in order to avoid that (select is guaranteed to be independent of alarm)
15:53:53 <elliott> heh
15:54:12 <ais523> hmm, there's a function called ftw(3)
15:54:19 <ais523> it'll go nicely with Android's wtf()
15:55:13 <ais523> apparently it's for traversing directory structures
15:55:33 <elliott> mcmap has the wonderful (die|stop|wtf)f? family of functions.
15:55:41 <elliott> DIEF!
15:55:55 <ais523> I wouldn't normally bother with a formatted error message for a wtf
15:56:03 <ais523> unless it was happening a lot and I wanted to give debug info at the same time
15:57:27 <elliott> well, completeness :P
15:57:36 <elliott> it's good to know "invalid zlib id blah"
15:57:40 <elliott> as opposed to just "invalid zlib id"
15:58:43 <ais523> heh, I'm still amused I called a template {{REMOVE THIS TEMPLATE WHEN CLOSING THIS AfD}}
15:58:54 <ais523> it seems that the lowercase f is intrinsically part of the spelling of AfD to me
16:02:06 <elliott> AHA
16:02:12 <elliott> if I send SIGTERM rather than SIGALRM, everything quits
16:02:14 <elliott> so SOMETHING works :P
16:04:47 <elliott> fuck this, I'm committing a non-timeouting //eval and doing more important things
16:08:19 -!- pumpkin has joined.
16:09:44 <ais523> oh right, I invented http://en.wikipedia.org/wiki/CAT:AFD/I
16:09:48 <ais523> best category ever
16:09:52 <itidus20> 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 <ais523> 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 <ais523> (barring relists)
16:11:20 <ais523> every 7, actually, I think
16:11:35 <elliott> haha
16:11:40 <elliott> "UML fever"
16:11:41 <elliott> wow
16:11:55 <elliott> A potentially deadly illness, clinically referred to as UML (Unified Modeling Language) fever, is plaguing many software-engineering efforts today.
16:11:55 <elliott> damn
16:12:00 <elliott> i was hoping it was an unrelated UML
16:12:04 <elliott> that could be turned into a diagram hell language
16:12:06 <ais523> so was I
16:12:24 <ais523> 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 <elliott> haha
16:13:09 <ais523> 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 <elliott> grrr, someone reverted my addition of a {{prod}} using Twinkle
16:14:19 <elliott> anon edit? BETTER REVERT IT!
16:14:47 -!- jcp|other has joined.
16:15:08 <ais523> this is what's wrong with Wikipedia, ofc
16:15:17 <ais523> you can follow up with an actual AfD, except you'd probably have to log in for taht
16:15:29 <elliott> I just reverted their reversion
16:15:35 <ais523> 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 <elliott> I might
16:15:44 <ais523> you're not supposed to revert prod removals ever, though, that's what prods are for
16:15:54 <elliott> ais523: hmm, true
16:15:55 <elliott> too late, though
16:16:10 <elliott> 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 <elliott> too late now, anyway
16:16:34 -!- Zuu has quit (Ping timeout: 260 seconds).
16:16:44 <ais523> hmm, seems that 'crats can remove admin rights nowadays, I wonder why that change was made?
16:17:48 <ais523> I should see if the WT:RFA discussion on adminship reform is still going, sometime
16:17:54 <ais523> it had been going for years with no sign of stopping back in 2007
16:18:20 <Phantom_Hoover> ais523, have you checked?
16:18:27 <ais523> not yet
16:18:31 <ais523> 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 <ais523> yep, I'm reading WT:RFA, the same argument's still going
16:31:48 <ais523> and someone's created WP:RFA2001 in order to have /yet another/ attempt at changing the system
16:32:18 <ais523> <Sven Manguard> 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 <ais523> 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 <ais523> I'm not sure which is the more predictable option
16:36:55 <ais523> hmm. looks like content is basically the same but was rewritten in managementspeak
16:37:02 <ais523> or maybe it's always been like that, and I just didn't notice
16:39:37 <ais523> 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 <Taneb> Hello
16:42:04 -!- kmaker has joined.
16:44:02 <ais523> hi
16:44:15 <Gregor> k...eymaker?
16:44:24 <kmaker> hi
16:44:24 <kmaker> yeah
16:44:37 <kmaker> yeah=that's me
16:44:45 <Taneb> So how is everyone today?
16:45:06 <kmaker> 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 <Gregor> kmaker: Yeah, whoever owns esolangs.org effed up.
16:45:49 <ais523> kmaker: the DNS service hosting esolangs.org got bought out
16:46:02 <ais523> and are asking for more money in order to keep hosting the DNS
16:47:51 <kmaker> too bad...
16:48:26 <ais523> the esoteric.voxelperfect.net address should probably be considered the canonical one from now on, because it still works
16:51:50 <kmaker> 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 <cheater> ais523 why can't you transfer esolangs.org
16:52:10 <cheater> oh ok
16:52:13 <ais523> cheater: because I don't own it
16:52:16 <cheater> just reading scrollback now
16:52:29 <ais523> 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 <ais523> basically, because whenever I work on it I end up having to quit due to getting to confused
16:52:50 <ais523> and its vaporwareness has become a #esoteric meme
16:53:12 -!- Zuu has joined.
16:53:13 <ais523> the general concept is a prototype-based OO language that uses time travel rather than delegation
16:54:11 <ais523> 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 <Phantom_Hoover> SSA?
16:55:17 <ais523> single static assignment
16:55:30 <ais523> a programming technique in which variables can't have their values changed once they're assigned for the first time
16:55:46 <Phantom_Hoover> So basically the way variables work in Haskell?
16:55:54 <ais523> very common in functional languages, and many imperative language compilers compile via an intermediate SSA form
16:55:56 <ais523> yep
16:56:30 <Phantom_Hoover> And what's delegation?
16:56:37 <Phantom_Hoover> The WP page is kind of unhelpful.
16:56:56 <kmaker> it sounds interesting. can't imagine how programming is done heh
16:57:04 <ais523> kmaker: neither can I, that's part of the problem
16:57:08 <kmaker> :D
16:57:08 <ais523> or at least, I can, but only slightly
16:57:15 <Sgeo> Phantom_Hoover, elliott, Taneb, CakeProphet, Jailbreak update
16:57:40 <ais523> Phantom_Hoover: "inheriting" methods via asking the superclass to handle them when they aren't present in the class itself
16:57:46 <Phantom_Hoover> Ah.
16:57:56 <ais523> doing things Feather-style is one way to eliminate the distinction between classes and objects, which I like
16:57:59 <Phantom_Hoover> Wait, how does time travel replace it?
16:58:24 <ais523> with delegation: change superclass, subclass delegates to superclass and gets the new changed method
16:58:39 <ais523> with time travel: change superclass, subclass got a copy of the new version of the superclass when it was created
16:58:41 <elliott> ais523: I'm designing a makefile with user input and network connectivity; help
16:58:45 <elliott> ive gone bad
16:58:46 <elliott> mad
16:58:58 <ais523> that should have been "hlep", surely?
16:59:04 <ais523> wow, that word is hard to intentionally typo
16:59:17 <ais523> is this a makefile as in program run via make(1)/
16:59:24 <ais523> if so, I think it counts as alternative programming
16:59:34 <ais523> (that said, IIRC buildroot has user input and network connectivity)
16:59:43 <Gregor> This most recent system upgrade seems to have improved Terminal.app from being /almost/ completely unusable to being completely unusable.
16:59:44 <ais523> (it is also beautifully insane, and even actually works sometimes)
16:59:44 <Taneb> Sgeo: Jailbreak!?
16:59:53 <ais523> Gregor: what was the change?
17:00:02 <elliott> <ais523> is this a makefile as in program run via make(1)/
17:00:02 <elliott> yep
17:00:11 <Gregor> ais523: Before, Terminal was occasionally slow and horrible. Now, it's always slow and horrible.
17:00:27 <ais523> is this a subjective "horrible", or some specific horriblizer?
17:01:12 <Gregor> 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 <elliott> ais523: to clarify, it's for a completely non-esoteric purpose
17:01:20 <Taneb> Sgeo: LIES
17:01:49 <ais523> Gregor: ah, so it's just very laggy for no sane reason at all
17:01:54 <Gregor> Yup
17:01:54 <elliott> 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 <ais523> elliott: * exit with?
17:02:43 <ais523> 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 <elliott> ais523: yes
17:03:58 <ais523> it's trap EXIT (something), I'm trying to work out what the something is atm
17:04:53 <elliott> thanks :P
17:05:15 <ais523> I think it's probably just trap EXIT (echo $? > filename.txt)
17:05:21 <ais523> but I'm not sure; it shouldn't be too hard to test
17:05:46 <elliott> sounds good :P
17:05:52 <ais523> 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 <elliott> it's '' though i think
17:05:53 <elliott> not ()
17:05:59 <ais523> ah, hmm
17:06:16 <ais523> 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 <ais523> perhaps I'm wrong
17:07:11 <ais523> elliott: what should my reaction be to [[Talk:Binary lambda calculus]]?
17:07:31 <ais523> perhaps to mention that <math> 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 <ais523> <Nthern> 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 <elliott> meh, it's a reaonable mistake to make; I thought <math> was standard fo rthe longest time
17:07:54 <elliott> but uh
17:08:03 <elliott> direct em to http://en.wikipedia.org/wiki/Binary_lambda_calculus
17:08:09 <elliott> which is the same article inexplicably not deleted for notability after years
17:08:19 <ais523> elliott: is that the article you just prodded?
17:08:37 <elliott> no :)
17:08:43 <ais523> apparently not
17:08:44 <elliott> aw, the guy apologised to me and now i feel bad
17:09:07 <ais523> it does have references, at least
17:09:34 <ais523> heh, I'll have no idea which article you prodded unless I can guess your IP
17:09:41 <ais523> or check for recent prods, I guess, but that's nontrivial to do
17:09:48 <elliott> MWAHAHAHAHHA
17:11:38 <kmaker> by the way, has anyone made any brainfuck programs lately?
17:12:01 <ais523> we were playing a bit of BF Joust recently, but I don't think so apart from that
17:12:25 <kmaker> ok
17:15:50 <kmaker> i have a few ideas but it remains to be seen if i actually get anything done this year
17:15:59 <kmaker> or the next
17:17:11 <elliott> trap: cd `dirname $0`; rm -rf support; echo $? >guile.built: bad trap
17:17:12 <elliott> :(
17:17:20 <ais523> elliott: FOSD Program Cubes
17:17:29 <ais523> might be difficult to find, but not completely impossible
17:18:00 <elliott> haha
17:18:05 <elliott> 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 <ais523> that took a while, including a bunch of API searches
17:18:36 <elliott> yep, someone seven days ago
17:18:51 <elliott> ais523: what a waste of effort :P
17:19:07 <ais523> it was fun, and I wanted to see if I could still remember how to do it
17:24:04 <ais523> I just looked for a page in the prod category whose most recent recategorization was around the time of your revert
17:26:26 <ais523> 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 <Braber01> I'm having trouble trying to install BeQuinge on Ubuntu could somebody help me?
17:38:30 <Phantom_Hoover> BeQuinge?
17:39:03 <Braber01> 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 <Phantom_Hoover> It doesn't seem to exist.
17:39:26 <Braber01> *BeQunge
17:39:30 -!- ais523 has quit (Read error: Connection reset by peer).
17:40:11 <Braber01> i can't spell...
17:40:32 <Gregor> Build it yourself :P
17:40:50 -!- ais523 has joined.
17:41:11 <Braber01> 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 <Phantom_Hoover> https://github.com/hatstand/Bequnge
17:44:00 <elliott> :t atomicModifyIORef
17:44:04 <elliott> ?hoogle atomicModifyIORef
17:44:31 -!- Braber01 has quit (Remote host closed the connection).
17:44:36 <elliott> Braber01: BeQunge is incredibly non-standards-compliant and ...
17:44:43 -!- augur has quit (Remote host closed the connection).
17:52:41 <ais523> elliott: what's the second-most-... Befunge interp?
17:53:02 <ais523> hey, my compose key has … on it
17:53:02 <elliott> ais523: Definitely GLfunge.
17:53:08 <ais523> that's a fun discovery
17:54:21 -!- augur has joined.
17:57:20 <Phantom_Hoover> elliott, what's the least-... Befunge interpreter that is in a reasonably complete state?
17:57:47 <elliott> Shiro. Definitely Shiro.
17:58:38 <Phantom_Hoover> *Reasonably complete*.
17:59:19 <elliott> Phantom_Hoover: Shiro is reasonably complete.
17:59:26 <Phantom_Hoover> elliott, it is?
17:59:33 <Phantom_Hoover> OK, other than Shiro.
17:59:35 <elliott> 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 <fungot> elliott: i said i don't care about who they like or don't like this ain't gonna show up.
17:59:42 <elliott> It's just a churn of implementing more fingerprints now.
17:59:45 <Phantom_Hoover> ^style
17:59:45 <fungot> 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 <elliott> Phantom_Hoover: Definitely BeQunge, then.
18:00:04 <Phantom_Hoover> 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 <elliott> Phantom_Hoover: I never said it was coherent.
18:08:03 -!- CakeProphet has quit (Ping timeout: 252 seconds).
18:14:01 <Taneb> Hello!
18:14:50 -!- cheater has quit (Ping timeout: 245 seconds).
18:16:35 <Taneb> 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 <elliott> back
18:19:12 <elliott> Taneb: BAD bit?
18:19:26 <Taneb> <elliott> 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 <fungot> Taneb: it looks like the sky?
18:19:40 <Taneb> Thanks, fungie
18:19:42 <elliott> Oh. fungot got it, it fails because it looks like the sky.
18:19:42 <fungot> elliott: even employees can't walk around above the 60th floor. but, then it's easy to get our materia!
18:19:52 <elliott> Actually it's a bug with reading or writing in text mode I'm not sure which
18:20:13 <Taneb> I may learn Funge-98
18:20:20 <Taneb> AND DEVELOPE IN IT
18:20:48 <Taneb> Would I get a swat for a Monty Python quote?
18:21:04 <elliott> oerjan isn't here, so no
18:21:08 <Taneb> Okay
18:21:13 <Taneb> WITH THIS HERRING!
18:21:58 <ais523> elliott: look at the file it generates and see if it's correct?
18:22:07 <ais523> Taneb: wait, you're using /that/ quote?
18:22:09 <ais523> out of context?
18:22:13 <ais523> perhaps you'll get swatted anyway
18:22:46 <Taneb> 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 <Taneb> But yeah, it's not the best quote
18:23:11 <Taneb> Not even the best from Holy Grail
18:23:27 <olsner> developee with it
18:23:50 -!- jcp|other has quit (Read error: Connection reset by peer).
18:24:19 <Taneb> Question:
18:24:26 <olsner> Answer:
18:24:46 <Taneb> In Befunge, if a line feed character is p'd into the program, does that reshape the program?
18:24:55 <elliott> no
18:25:03 <elliott> would be fun if it did but no
18:25:22 -!- jcp|other has joined.
18:27:38 <Taneb> 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 <Taneb> Hello!
19:00:11 <elliott> hi
19:00:17 <nooga> hi
19:04:22 <Taneb> Would Befunge-93 be Turing Complete if it used a queue rather than a stack
19:10:26 <nooga> - (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)theApplication
19:10:37 <nooga> OH THANK YOU MIGHTY COCA
19:10:41 <nooga> COCOA*
19:10:53 <olsner> CACA
19:10:58 <nooga> 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 <nooga> http://en.wikipedia.org/wiki/Hilbert_R-tree
19:41:34 <nooga> this + esolang
20:09:52 <Taneb> 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 <Taneb> Uniquode is a long term project; lingua abstrusa and Salesman are on hold, Binary Variety Pack is dead
20:23:35 <Taneb> Next project: NonE Minimilastic One inSTRuction sET computEr
20:23:43 <Taneb> Or NEMO-STRETE
20:23:53 <ais523> "Minimilastic"?
20:24:00 <Taneb> Yes
20:24:00 <ais523> please tell me that's not a typo
20:24:03 <ais523> because it's a great word
20:24:31 <Taneb> It's e combination of minimalistic and elastic
20:24:37 <Taneb> *a
20:24:50 <Taneb> It is neither Minimalistc nor Elastic
20:25:38 <Taneb> 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 <Taneb> The instruction will have FOURTEEN operands
20:27:01 <Taneb> Or possibly loads of registers
20:27:11 -!- copumpkin_ has changed nick to copumpkin.
20:28:30 -!- ive has joined.
20:31:57 <Taneb> Actually, more fun idea
20:32:12 <Taneb> An Iota interpreter... IN XSLT
20:32:57 -!- elliott has quit (Ping timeout: 240 seconds).
20:33:36 <Taneb> Wait a minute, wait a goddamn minute
20:34:00 <Taneb> Combinatory logic can be expressed as tree rearranging from within the tree, right?
20:34:08 <ais523> I think so
20:34:25 <Taneb> And trees can be expressed as XML, right?
20:34:39 <Taneb> Are you thinking what I'm thinking?
20:39:28 <Taneb> <S><x/><y/><z/></S> becomes <x><z/><y><z></y></x>
20:42:46 <Taneb> I saw a Microsoft advert that really sums the company up.
20:42:56 <Taneb> "I'm a PC and I'm finally up-to-date!"
20:43:28 <ais523> the whole "I'm a PC" campaign was ridiculous IMO
20:43:41 <ais523> also, I hate the conflation of "PC" and "Windows"
20:43:46 <ais523> although I'm pretty sure it's deliberate
20:44:08 <Taneb> It is delibrate on the part of Microsoft and IBM before it
20:49:01 <Taneb> Can someone who understands XPath better than me tell me what //s/*[3]/.. would match?
20:57:34 <Phantom_Hoover> XPath?
20:58:02 <ais523> Taneb: I'm trying to read it as a regex
20:58:04 <ais523> and failing
20:58:04 <Taneb> W3C reccomendation used to navigate an XML document with XSLT or XQuery
20:58:14 <fizzie> It just might match any <s> 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 <Taneb> I'm hoping 1-indexed
20:58:43 <Taneb> And I'm hoping fizzie is right
20:59:53 <fizzie> It could be a shorthand for something like //s/*[position()=3]/..
21:00:26 <Taneb> Right, looked it up
21:00:48 <Taneb> 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 <zzo38> 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 <nooga> < > < > < >
21:14:37 <nooga> 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 <Taneb> 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 <zzo38> Why are type families not allowed in instance declarations in Haskell?
21:23:12 <zzo38> Actually I think I see there are overlapping instances with what I am doing
21:23:57 <zzo38> (There seems to be overlapping instances even though there is only a single instance declaration.)
21:24:30 -!- KingOfKarlsruhe has joined.
21:26:56 <nooga> preprocessing C to get decent OOP syntax
21:30:15 <Taneb> 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 <zzo38> Type families does not seem to do everything.
21:49:39 <zzo38> 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 <olsner> no elliott, huh
22:02:44 <CakeProphet> is it bad that some of my dreams involve conversing in #esoteric?
22:02:57 <CakeProphet> am I dreaming right now? hello?
22:03:10 <ais523> CakeProphet: if I said no, would you believe me?
22:03:29 <CakeProphet> ais523: if I believe you, will that make it any more true?
22:03:57 <CakeProphet> if I mandate conditionals, will they be upheld rigorously?
22:03:59 <ais523> well, if you /are/ dreaming, and I convince you that you are
22:04:03 <ais523> then you'll probably wake up
22:04:06 <ais523> it's the most common result
22:04:10 <CakeProphet> ais523: oh I know I'm not dreaming.
22:04:15 <CakeProphet> :P
22:04:26 <ais523> if you're dreaming, then probably I am too
22:04:28 -!- monqy has joined.
22:04:38 <CakeProphet> I find it is much easier to realize you are not dreaming than it is to realize you are.
22:05:16 <CakeProphet> even the most vivd dreams aren't like being fully awake.
22:05:32 <CakeProphet> and you have the cognitive faculty while awake to determine such things.
22:05:39 <olsner> so how many of those times you've realized you were "not" dreaming were you actually wrong? can you even know?
22:05:46 <CakeProphet> so fucking you philosophy and your dream shit.
22:05:53 <ais523> olsner: that's only ever happened to me with recursive dreams
22:05:53 <monqy> I've been wrong about realizing I'm not dreaming
22:06:02 <ais523> where I assumed I wasn't dreaming because I just work up
22:06:07 <olsner> ais523: recursive dreams are awesome!
22:06:09 <ais523> which turns out not to be an entirely reliable check
22:06:12 <ais523> olsner: no they aren't
22:06:17 <ais523> you go through your boring morning routine
22:06:18 <olsner> I've just had one, it was hilarious
22:06:21 <ais523> then have to do it all /again/
22:06:25 <CakeProphet> olsner: sure can't
22:06:29 <ais523> well, it's funny the first time
22:06:32 <ais523> but gets old quickly
22:06:40 <monqy> my recursive dreams don't involve morning routines, interestingly enough
22:06:44 <CakeProphet> 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 <CakeProphet> unless my entire life has been a dream, I guess.
22:07:02 <monqy> I usually wake up in a strange place but know what's going on
22:07:20 <ais523> monqy: do you realise it's a recursive dream that time?
22:07:24 <ais523> or only when you wake up a second time?
22:07:25 <monqy> no
22:07:46 <CakeProphet> I think "nested" is a better term.
22:08:01 <monqy> I don't think I'm not dreaming when I wake up
22:08:15 <monqy> maybe it just doesn't occur to dream me
22:08:20 * CakeProphet is very bad at dreaming, truthfully.
22:08:21 <olsner> 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 <olsner> ... and you keep doing it the rest of your life
22:08:59 <monqy> tonight I had a dream in which I had a series of dreams within that dream and I was describing them
22:09:00 <CakeProphet> most of my dreams are not very vivid. Sometimes they are. Sometimes they nest as well.
22:09:05 <CakeProphet> but most are very vaguely recalled.
22:09:25 <ais523> olsner: you just need each dream to go twice as quickly, in realtime, as the previous one
22:09:40 <CakeProphet> ...Inception anyone?
22:09:42 <ais523> once you go past the convergence point, you are now capable of thinking an infinite amount in finite time
22:10:02 <CakeProphet> I don't think the ratio was 2 though in Inception.
22:10:10 <ais523> 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 <olsner> CakeProphet: inception did not go deep enough ... into the subject of nested and recursive dreams
22:10:35 <CakeProphet> 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 <monqy> never seen inception. probably shjould.
22:11:18 <CakeProphet> monqy: it is not bad.
22:11:30 <CakeProphet> it's one of the few movies that made my brain hurt a little bit.
22:12:28 <olsner> didn't make my brain hurt, but maybe I wasn't watching it thinkingly enough
22:13:06 <CakeProphet> occasionally I'd lost track of some detail and be slightly confused as to what was going on
22:13:16 <CakeProphet> until it returned to a previous dream. "oh right..."
22:14:02 <olsner> 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 <CakeProphet> olsner: uh true statement
22:20:15 <CakeProphet> 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 <CakeProphet> I don't trust anyone from Entertainment Weekly to have actually followed what was going on in that moive.
22:20:39 <CakeProphet> thus the "rolling explosion of images"
22:21:24 <zzo38> Now, it cannot make type level programming in Haskell. Because, I try thing it failed
22:21:43 <CakeProphet> wat
22:22:19 <olsner> CakeProphet: it cannot make type level
22:22:31 <CakeProphet> I see.
22:22:40 <CakeProphet> I recall walking out of the theater feeling as though I were in a dream
22:22:44 <CakeProphet> after watching that movie.
22:23:02 <zzo38> 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 <CakeProphet> oh good.
22:24:20 <zzo38> Did you read the book Godel, Escher, Bach?
22:24:49 <CakeProphet> I haven't.
22:26:22 <CakeProphet> According to Hollywood Reporter, both Brad Pitt and Will Smith were offered the role.
22:26:36 <CakeProphet> I don't think Will Smith would have been as good in that role.
22:26:56 <CakeProphet> he would do his Will-Smith-sad-face thing and it would ruin everything. :P
22:27:27 <zzo38> 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 <CakeProphet> you.... don't
22:28:09 <CakeProphet> you don't don't do that.
22:29:35 <zzo38> Is there any way to make an extension in Haskell to make it to work?
22:29:49 <CakeProphet> 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 <CakeProphet> there isn't any sort of re-routing or conditional logic involved.
22:30:15 <CakeProphet> zzo38: feel free.
22:31:38 <zzo38> 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 <CakeProphet> how would it go about resolving that?
22:41:40 <CakeProphet> zzo38: basically you can't make typeclass implications when the instance doesn't match.
22:41:50 <CakeProphet> it has to be true.
22:47:59 <CakeProphet> ...what, why did my date and time disappear
22:48:10 <CakeProphet> and why is there a large inaccessible hole on the panel where I cannot add things.
22:48:25 <monqy> @localtime CakeProphet
22:48:34 <monqy> lambdabot.......
22:48:42 <monqy> rip :'(
22:48:44 <CakeProphet> monqy: NO I MUST FIX MY PANEL
22:49:16 <monqy> 01:49:43
22:49:19 <monqy> when i checked
22:49:25 <monqy> a few minutes ago
22:49:26 <monqy> er
22:49:27 <monqy> seconds
22:49:33 <monqy> maybe a minute ago in a few more seconds
22:49:33 <CakeProphet> 6:50 PM here
22:49:37 <monqy> oh
22:49:39 <CakeProphet> but I CAN'T GET IT TO GO IN THE SAME PLACE
22:49:41 <CakeProphet> NOTHING WILL GO
22:49:44 <CakeProphet> THERE IS JUST A BIG UGLY HOLE
22:49:46 <monqy> i checked your time it must be broken
22:49:54 <monqy> my time is 1551
22:49:55 <CakeProphet> uh, no.
22:50:11 <CakeProphet> it is 6:50 PM aka 18:50
22:50:26 <monqy> yeah but when i checked it it said 01:49:43
22:50:32 <CakeProphet> I have 3 time sources that agree with me.
22:50:36 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
22:50:36 <monqy> oh wait no that must have been the server
22:50:51 <monqy> oh I didn't use the right command
22:50:52 <monqy> haha
22:50:52 <monqy> :(
22:51:18 <monqy> 15:52:58 [freenode] CTCP TIME reply from CakeProphet: Thu Sep 8 18:51:57 2011
22:51:20 <monqy> that's better
22:51:20 <CakeProphet> bah
22:51:22 <CakeProphet> this is bad.
22:51:31 <monqy> just ctcp time yourself whenever you need it
22:51:40 <CakeProphet> you are missing the point completely.
22:51:45 <monqy> that's the joke
22:51:54 <CakeProphet> I have a clock on my panel now
22:52:00 <CakeProphet> BUT IT IS. IN. THE. WRONG. PLACE.
22:52:05 <monqy> how does that even happen
22:52:19 <CakeProphet> I don't know
22:52:28 <CakeProphet> my computer does this shit for some reason after restarts sometimes.
22:52:39 <CakeProphet> first my shutdown button disappeared... though I don't really need that one.
22:53:26 <CakeProphet> where is panel configuration stuff at?
22:54:08 <CakeProphet> 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 <CakeProphet> bam fixed.
23:01:05 <CakeProphet> something weird happened to the original clock app so I just manually removed it in gconf.
23:07:33 <itidus20> random youtube comment: "and I thought Finland was bad for making the moomins..........  :P"
23:09:04 <zzo38> 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 <CakeProphet> if by "missing" you mean "doesn't do what you want it to do" then yes.
23:14:25 <CakeProphet> though there are probably things that are actually missing... ask elliott I bet he knows.
23:16:51 -!- copumpkin has joined.
23:16:52 <zzo38> 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 <CakeProphet> my stance is that nothing could ever be improved about Haskell it is perfect in every way.
23:20:55 <shachaf> CakeProphet: Without more-notation?
23:21:44 <CakeProphet> nothing.
23:22:25 <CakeProphet> man this code is going to be a pain in the ass to debug
23:22:33 <CakeProphet> maybe if I just stare at it long enough I'll find all of the bugs.
23:22:40 <monqy> is this for your thing
23:22:46 <CakeProphet> no never.
23:22:57 <CakeProphet> I have no things.
23:23:00 <CakeProphet> no such thing
23:23:07 <zzo38> Is there some things in category theory that cannot be made in Haskell?
←2011-09-07 2011-09-08 2011-09-09→ ↑2011 ↑all