←2011-06-10 2011-06-11 2011-06-12→ ↑2011 ↑all
00:00:16 <elliott> hope about i just do both
00:00:33 <CakeProphet> s/hope/how/g
00:00:57 <CakeProphet> I probably just introduced several typos in previous posts though.
00:01:11 <elliott> "posts"
00:01:12 <Phantom_Hoover> OK but you must kill yourself after Homestuck ends.
00:01:23 <elliott> implying we'll even be alive by then
00:01:33 <Phantom_Hoover> Which is basically the only logical course of action because life will be as unto a pale shadow after Homestuck ends.
00:01:42 <elliott> CakeProphet: Have I mentioned that Homestuck gets about ten times better after the first act or two.
00:01:52 <CakeProphet> no, but I assumed so.
00:02:03 <elliott> (It gets about a hundred times better every few hundred pages from thereon out.)
00:02:42 <CakeProphet> elliott: hey elliott! elliott! check out this thing I want you to hear: http://www.youtube.com/watch?v=5pr6AbJ9Ij0
00:02:54 <CakeProphet> you have to hear it, or your life is incomplete.
00:03:10 <CakeProphet> *exlucsive-or
00:03:19 <CakeProphet> #c
00:03:24 <CakeProphet> *+
00:03:24 <elliott> Sorry I can only consume Homestuck all other forms of media are invalid by default.
00:03:27 <elliott> (Note: This is not technically true.)
00:04:17 -!- pikhq has joined.
00:04:51 <CakeProphet> what, why is there an MS paint adventures wiki
00:05:11 <elliott> CakeProphet: You don't want to read that.
00:05:17 <elliott> CakeProphet: You have no idea how many spoilers are ahead of you.
00:05:41 <elliott> Homestuck is... about five thousand times more complicated and plotful than Problem Sleuth.
00:05:44 <olsner> are they really spoilers as long as they're ahead of you?
00:05:57 <Phantom_Hoover> CakeProphet, also don't look at any Homestuck stuff on Youtube.
00:06:04 <Phantom_Hoover> Sgeo learned this the hard way.
00:06:10 <elliott> Phantom_Hoover: RIP Bic
00:06:12 <elliott> The best pen.
00:06:28 <Phantom_Hoover> He died the way he lived.
00:06:31 <elliott> Inky.
00:06:34 <Phantom_Hoover> Frustrating people.
00:06:46 * Phantom_Hoover → sleep
00:06:48 -!- Phantom_Hoover has quit (Quit: Leaving).
00:07:55 <CakeProphet> Sometimes you feel like you are trapped in this room. Stuck, if you will, in a sense which possibly borders on the titular.
00:08:10 <elliott> 20:13:26: <ais523> gah, I'm getting a burst of Sgeoism from my parents, who have basically banned the family from eating vegetables because of the E. coli outbreak in Germany
00:08:19 <elliott> ais523: have you taken the non-Sgeo solution to this problem
00:08:25 <ais523> which is to ignore them?
00:08:32 <elliott> that's one part of it :P
00:08:40 <ais523> I'm thinking about it
00:09:08 <elliott> at least it's a "relatively" minor temporary thing
00:12:10 <elliott> 20:25:24: <ais523> floating point arithmetic's avoided like the plague in computer games, except in graphics routines, generally speaking
00:12:15 <elliott> ais523: "embedded" games, maybe
00:12:24 <elliott> I doubt C++ desktop games are so rabid
00:12:27 <ais523> I thought in games in general
00:12:29 <ais523> even desktop games
00:12:32 <elliott> Well, I dunno
00:12:47 <olsner> many 8-bit consoles completely lack an FPU
00:12:58 <elliott> 20:36:37: <pikhq> Wow. Fedora 16 is going to have btrfs as its default filesystem.
00:12:59 <elliott> 20:36:53: <pikhq> It doesn't have an fsck yet.
00:13:11 <elliott> Fedora, upgrading rashly without thinking to be OMG MODERN because it's basically RedHat: The Pre-Alpha?
00:13:12 <elliott> SHOCKING
00:13:31 <CakeProphet> dude, Ubuntu's new interface is so bad
00:13:32 <CakeProphet> don't ever use it.
00:13:42 <olsner> obviously btrfs doesn't need fsck, it just won't break the file system
00:13:46 <CakeProphet> it wants to be Apple so hard.
00:16:44 <pikhq> elliott: Well, at least the Fedora devs are busy writing btrfsck.
00:17:02 <olsner> that reads as ... butterfuck
00:17:18 <pikhq> They are also fucking butter.
00:17:54 <elliott> MOTHS: THE WOGS OF THE TAPS
00:17:57 <elliott> YEAH
00:18:05 <olsner> wogs of the taps?
00:18:12 <olsner> moths?
00:18:13 <olsner> wat?
00:18:29 <elliott> YES
00:18:30 <elliott> FUCK YOU
00:18:49 <olsner> ålrajt
00:18:57 <elliott> shtut up swede bot
00:19:10 <elliott> swede architecture the worst architecture
00:19:33 <olsner> elliott person the worst person
00:19:40 <elliott> olsner: DIE ASS
00:20:03 <elliott> ASS DYE
00:20:10 <elliott> TARSKI REBEL
00:20:22 <elliott> sometimes
00:20:24 <elliott> i say the best things
00:20:27 <elliott> such as
00:20:28 <elliott> always
00:20:38 <olsner> elliott: http://cdn.jimonlight.com/wp-content/uploads/2009/08/infart1.jpg
00:20:50 <elliott> infart rum
00:20:53 <elliott> the best rum
00:24:55 <olsner> lol, oracle saying: "In line with our strategy towards a more open Java ecosystem, ..."
00:25:14 <olsner> when did they stop actively preventing an open java ecosystem?
00:25:23 <elliott> that instant
00:25:27 <elliott> then they started again immediately after
00:26:36 <oerjan> well towards is a synonym of against, right?
00:27:26 <olsner> hmm, in swedish it would be a simple typo actually
00:27:39 <olsner> and most people don't even know which is which :(
00:29:48 <elliott> CakeProphet: btw you should watch this: http://www.mspaintadventures.com/?s=6&p=003701 ... it'll convince you reading homestuck is an excellent idea :P
00:29:54 <elliott> (You won't understand a single thing, so it's not spoilery.)
00:33:56 -!- ais523 has quit (Read error: Connection reset by peer).
00:35:11 -!- ais523 has joined.
00:38:02 <elliott> Sgeo: Hey Homestuck just updated again.
00:38:07 <elliott> Yes again.
00:38:50 <augur> apparently train tracks are turing complete
00:42:50 <olsner> http://esoteric.voxelperfect.net/wiki/Chalcraft-Greene_train_track_automaton
00:43:25 <oerjan> is this about http://wadler.blogspot.com/2011/06/combinator-library-for-design-of.html ?
00:43:44 <olsner> apparently not - the wiki page is a lot older than the blog post
00:43:50 <elliott> i think he means augur
00:43:54 <oerjan> i mean augur's mention
00:44:03 <augur> oerjan: yes
00:44:18 <augur> first comment
00:45:15 <CakeProphet> elliott: the queue fetch modus is even more hilarious.
00:45:38 <elliott> CakeProphet: DID YOU WATCH THAT PANEL I LINKED I SPENT A WHOLE THREE SECONDS GOOGLING IT DOWN YOU KNOW
00:45:40 <elliott> HARD WORK I TELL YOU
00:45:54 <CakeProphet> NOPE I AM READING SHIT IN ORDER DOG
00:45:59 <CakeProphet> part of your life was wasted.
00:46:06 <elliott> RIP that part of my life.
00:46:08 <elliott> Died of being wasted.
00:46:43 <elliott> If you decide to give up reading watch it, it has deluded many upon many a person into thinking reading nearly four thousand panels of comic is an excellent idea.
00:46:53 <elliott> (Sorry did I say deluded I mean convinced of the true fact that.)
00:47:31 <Sgeo> Hold onn
00:47:45 <elliott> I am holding onn.
00:47:47 <elliott> CakeProphet is holding unn.
00:47:51 <elliott> You will have to handle enn.
00:50:01 <Sgeo> According to my dad, the entire purpose of raves is to get people into the drug culture
00:50:08 <elliott> True
00:50:12 <oerjan> enn så lenge
00:50:18 <elliott> That is the terrible secret of raves
00:50:46 <CakeProphet> Actually I've gone to a rave and consumed no drugs.
00:50:54 <elliott> Impossible
00:50:56 <CakeProphet> and am even "into the drug culture"
00:50:58 <CakeProphet> TAKE THAT.
00:51:14 <CakeProphet> dad.
00:51:16 -!- pikhq has quit (Ping timeout: 240 seconds).
00:51:32 -!- pikhq has joined.
00:51:57 <CakeProphet> but yes most people go to raves to take some kind of drug and dance for hours.
00:52:06 <elliott> CakeProphet: Oh man 2037 is right ahead of you.
00:52:06 <CakeProphet> but not everyone.
00:52:16 <elliott> Savour the moment for you can only experience that music for the first time once in your life.
00:52:27 <CakeProphet> elliott: I'm on 2053 now
00:52:32 <elliott> I hope you savoured it
00:52:53 <CakeProphet> yes it was quite savoury.
00:53:12 <CakeProphet> god, these pesterlogs make panels MOVE SO SLOWL.
00:53:13 <CakeProphet> Y
00:53:31 <elliott> Hahaha the pesterlogs at this point are about one thirtieth of what they become, lengthwise.
00:53:38 <elliott> Note: I am terrible at estimating such ratios, but yeah.
00:53:51 <elliott> THIS IS A SIMPLE TIME AND YOU SHALL REGARD IT AS A SIMPLE PLEASURE FOR UNASSUMING FOLK
00:54:29 <CakeProphet> I like to use trees. It's not not exceptionally practical. But I think they are elegant.
00:54:46 <elliott> >not not
00:55:00 <elliott> Wait did it take you several minutes just to read 2053.
00:55:02 <elliott> HAVE YOU READ BOOKS BEFORE
00:55:16 <CakeProphet> no it took me several minutes to talk on IRC and do nothing.
00:55:22 <CakeProphet> I waste a lot of time that way.
00:55:22 <elliott> That usually takes a while yes.
00:59:25 -!- Hammi13 has joined.
00:59:32 <elliott> Hammi13: what did you do to the other hammis.
00:59:40 <Hammi13> Hiii
01:00:43 <CakeProphet> Hey Hammi13
01:04:17 -!- Patashu has joined.
01:04:35 -!- Hammi13 has left.
01:04:40 <elliott> lmao
01:04:42 <CakeProphet> :D
01:04:45 <elliott> i lemonparty'd
01:11:26 -!- zzo38 has joined.
01:11:37 <zzo38> How much do you know of LLVM?
01:11:55 <zzo38> Some of the documentation seems to be incomplete, such as the documentation for the bitcode format.
01:12:26 <elliott> ask coppro
01:12:29 <elliott> comex: you're welcome
01:13:08 <zzo38> coppro has 46575 seconds idle.
01:13:21 <elliott> hes just shy
01:13:46 <olsner> about half a day, maybe he'll be back from sleep/work/school soon then
01:17:49 <zzo38> Do you know how well LLVM currently works?
01:18:10 <elliott> what a vague questoin
01:18:19 <olsner> currently? I'd say about 4, geographically speaking
01:18:19 <zzo38> But regardless, lack of documentation makes it difficult to use
01:18:27 <elliott> OS X uses the clang compiler for all stock userspace applications, so it's definitely mature
01:18:56 <elliott> it has better diagnostics than gcc, supports almost all the language extensions gcc does, and has similar runtime code execution speed
01:19:07 <elliott> so LLVM is good enough for a C compiler :P
01:19:37 <CakeProphet> but pikhq might yell at you or something.
01:19:39 <oerjan> zzo38: i know that ghc has deprecated its C backend because the LLVM backend got better than it
01:19:44 <elliott> CakeProphet: eh?
01:19:47 <pikhq> CakeProphet: No, clang > gcc.
01:20:08 <CakeProphet> You mentioned something about bootloading before.
01:20:12 <oerjan> (C ~ gcc, there)
01:20:25 <pikhq> Boot*strapping*. There is a difference.
01:20:27 <zzo38> No, I mean for writing LLVM codes. However, some documentation missing makes it difficult. Such as, some sections of the document about bitcode format seems incomplete.
01:20:33 <elliott> define LLVM codes
01:20:48 <elliott> you're not meant to write bitcode, anyway
01:20:52 <elliott> you're meant to use the API
01:20:53 <CakeProphet> lol bitcode
01:20:56 <elliott> or at least write LLVM IR
01:20:58 <pikhq> It is *presently* not feasible to build a Linux system with clang as *the* C and C++ compiler.
01:21:01 <elliott> (LLVM IR is the name for their assembly, right?)
01:21:06 <CakeProphet> 0 = print 0 1 = launch missiles
01:21:09 <elliott> (pikhq?)
01:21:11 <pikhq> However, it soon will be.
01:21:32 <pikhq> elliott: Yeah, LLVM IR is the name for the assembly language and the bytecode resulting from assembly thereof.
01:22:01 <elliott> zzo38: right, use the API or output LLVM IR; bitcode is essentially an internal API
01:23:32 <oerjan> (!!) [0, unsafePerformIO launchMissiles]
01:23:44 <oerjan> er wait
01:23:49 <oerjan> * flip (!!) [0, unsafePerformIO launchMissiles]
01:24:01 <oerjan> er
01:24:01 <elliott> ([0, unsafePerformIO launchMissiles] !!)
01:24:17 <ais523> elliott: that doesn't type, does it?
01:24:24 <elliott> types as well as oerjan's
01:24:25 <ais523> or is launchMissiles of type Num x => IO x?
01:24:26 <oerjan> ERROR, BRAIN DUMPED
01:24:54 <oerjan> picky, picky
01:25:10 <pikhq> [0, unsafePerformIO launchMissiles `seq` 0]
01:25:18 <oerjan> clearly it returns the number of missiles succesfully launched
01:25:22 <zzo38> If you use the API with C, then can it also be used to run some LLVM codes at compile-time as well? In that case it would be helpful.
01:25:22 <oerjan> *+s
01:25:27 <elliott> oerjan: also 0 was meant to be print
01:25:28 <elliott> not... 0
01:25:40 <elliott> zzo38: Yes, you can compile things to memory and run them directly.
01:25:40 <oerjan> elliott: print 0
01:25:43 <elliott> LLVM is a JIT in this way.
01:25:45 <pikhq> zzo38: Yes, LLVM JITs.
01:25:58 <CakeProphet> !acro
01:26:05 <pikhq> And is actually even the basis of a JVM implementation.
01:26:06 <EgoBot> ASSE
01:26:16 <CakeProphet> lulz
01:26:18 <zzo38> But the FAQ does also say you can emit LLVM assembly or LLVM bitcode.
01:26:27 <elliott> zzo38: Note that LLVM is C++ and so is its library, but there are bindings to just about every language. There might not be a C binding, but you can write a simple layer yourself for the functions you need with extern "C".
01:26:31 <CakeProphet> !acro
01:26:32 <elliott> Also, that's interesting, I didn't realise.
01:26:36 <EgoBot> BCJE
01:26:38 <elliott> Still, bitcode would be pretty painful to generate compared to the API.
01:26:41 <pikhq> (it's not *that* good, because the JDK is from SPACE)
01:26:54 <olsner> there is a C binding
01:26:58 <elliott> olsner: oh, good then
01:27:08 <olsner> which I believe is the base of the haskell binding
01:27:26 <olsner> or one of them anyway
01:27:38 <pikhq> The Haskell binding is pretty neat, FWIW.
01:28:35 <pikhq> Generate LLVM functions at runtime and then use them as standard Haskell functions without any real effort.
01:29:31 <elliott> obligatory: http://augustss.blogspot.com/2009/06/more-llvm-recently-someone-asked-me-on.html
01:29:58 <olsner> for my llvm-outputting compiler I chose to just write llvm assembly instead of figuring out how to make stuff with the expected types at runtime
01:30:32 <elliott> loser
01:30:47 <zzo38> Where is document for API with C?
01:30:52 <olsner> yes. I think it was before that blog post where august does pretty much exactly what I needed done
01:31:10 <zzo38> olsner: What compiler did you do? Did you make some compiler?
01:32:35 <olsner> not an esolang, and not a known language either
01:33:12 <zzo38> olsner: Then what is it?
01:36:19 <oerjan> horriblysecretlang
01:36:36 <oerjan> or was that horriblesecretlang
01:36:45 <olsner> it's only "secret" because it's terribly uninteresting
01:37:17 <zzo38> Did you do it just for practice?
01:38:12 <olsner> well, it's not done yet
01:38:53 <zzo38> If there is C binding, where is the document about the C binding?
01:39:19 <olsner> in the headers of the C binding, probably
01:39:22 <zzo38> The tutorial is only for C++ and Objective Caml.
01:40:53 -!- FireFly has quit (Quit: swatted to death).
01:41:57 -!- clog has joined.
01:43:46 <CakeProphet> elliott: act 2
01:44:35 <elliott> CakeProphet: sweet.
01:46:15 <elliott> CakeProphet: you clicked the link on http://mspaintadventures.com/?s=6&p=002148 right?
01:46:22 <elliott> (A stupid question, but yes, people seriously fail to.)
01:46:39 <CakeProphet> yes.
01:46:41 <elliott> HERP DERP WHAT'S A LINK OH I DUNNO ITS DEFINITELY NOT FOR CLICKING THOUGH
01:46:45 <elliott> (Historical reenactment)
01:48:15 <ais523> elliott: that advice is kind-of useless, if we didn't know to click the link on the page, we wouldn't know to click it on IRC either
01:48:21 <ais523> (not that I actually /did/ click the link on IRC)
01:48:35 <elliott> ais523: It was directed to CakeProphet
01:48:40 <elliott> [asterisk]at
01:48:56 <elliott> There's a link where the narration usually is, and I guess some people assume it's just irrelevant or something :P
01:50:34 <ais523> elliott: I know
01:52:45 <CakeProphet> also elliott is implying that I'm too daft for link clicking.
01:52:57 * CakeProphet is going to call a WAAAAAMbulance
01:53:10 <elliott> CakeProphet: Hey now, I've had to deal with Sgeo reading Homestuck.
01:53:13 <elliott> I HAVE LEARNED TO ASSUME NOTHING.
01:53:31 <CakeProphet> the clunky flash game thing was kind of cool
01:53:37 <CakeProphet> but nothing really happens.
01:53:55 <elliott> The Flash games get much less clunky. Oops, did I just say something?
01:53:55 <Sgeo> In some games something happens
02:14:23 <elliott> hmm, this is annoying
02:20:04 -!- pikhq_ has joined.
02:20:53 <Sgeo> Oh WTF some spammer managed to get an arbitrary image to appear in th Newspeak forums
02:21:08 <Sgeo> Or at least in the RSS feed
02:21:30 -!- pikhq has quit (Ping timeout: 260 seconds).
02:21:34 <elliott> oh noes
02:22:15 <elliott> http://forums.newspeaklanguage.org/index.php?topic=297.0
02:22:20 <elliott> Road to the Truth can be found at the following address: truenewworld.com
02:22:20 <elliott> (attention, it is not the ad of the site - it is the ad of the Truth).
02:22:48 <elliott> this guy has painting skils
02:22:52 <elliott> http://truenewworld.com/Newworld.jpg
02:24:18 <Sgeo> Everyone should be required to read what they write online. Not for accuracy or sensibility, but just checking that their eyes don't glaze over at a wall of text
02:24:30 <Sgeo> (Yes, I know such a thing is impossible, so shut up)
02:25:47 <elliott> http://www.wolfsearch.org/gfeed/img0/teen+sex/10_teenx1.png
02:25:52 <elliott> compare prices on millions of products
02:29:56 <oklofok> there is no teen sex on the other side of that link, just a blank page
02:30:18 <Sgeo> AdBlock?
02:30:32 <Sgeo> Idiotic porn spam site block?
02:30:42 <olsner> no teen sex!? link is broken!
02:31:05 <oklofok> Sgeo: yeah maybe my dad has installed one for me
02:31:55 <oklofok> i guess the pixel must be white because i can't see it
02:32:22 <Sgeo> ...this spammer cross-references the spam post with other spam posts
02:32:28 <elliott> X-D
02:32:45 <oklofok> yeah it is white
02:32:47 <Sgeo> Unless those "forums" are just spam shills, I guess
02:33:00 <oklofok> worst teen sex ever
02:34:05 <Sgeo> http://forums.newspeaklanguage.org/index.php?topic=300 [NSFW]
02:34:14 <elliott> thx for telling me its nsfw lol
02:34:19 <elliott> Description: Sasha notices that this guy's car is dirty, and she offers to wash it "for a ride." We all know that when girls say they want a ride, what they really mean is that they want to saddle up on top of a bologna pony and bounce their tight pussies on it until they cum. Sasha is no exception. She gives us a nice little strip tease, complete with hosed-down boobies as she washes his car. Then she buffs this guy's cock with her mouth. Sasha
02:34:20 <elliott> bends over the hood of his car and gets fucked like a good girl, bouncing her ass on his prick and squealing like a little fuck-doll.
02:34:26 <elliott> "We all know that when girls say they want a ride, what they really mean is that they want to saddle up on top of a bologna pony and bounce their tight pussies on it until they cum."
02:34:31 <elliott> i...
02:34:49 <oklofok> Sasha notices that this guy's car is dirty, and she offers to wash it "for a ride." We all know that when girls say they want a ride, what they really mean is that they want to saddle up on top of a bologna pony and bounce their tight pussies on it until they cum.
02:34:52 <oklofok> oh
02:34:54 <oklofok> yeah
02:35:01 <oklofok> im slo
02:35:28 <elliott> just... "bologna pony" are you serious
02:36:14 <oklofok> i have no idea what that means so dunno
02:36:52 <oklofok> unless, of course, it just means... bologna pony
02:36:52 <elliott> penis apparently
02:36:58 <oklofok> oh.
02:37:00 <oklofok> nh
02:37:14 <elliott> but... what...
02:38:17 <oklofok> makes perfect sense if you think about it
02:42:46 <CakeProphet> ...
02:42:54 <CakeProphet> it was immediately obvious, without thinking, actually.
02:43:45 <CakeProphet> they why it is a pony remains to be seen.
02:43:49 <CakeProphet> s/they/though
02:43:54 <oklofok> to me, bologna is just a random city in italy
02:44:09 <oklofok> and i don't see why any city + pony should imply penis
02:44:12 <CakeProphet> bologna is also a type of sausage in the states.
02:44:31 <elliott> oh
02:44:34 <CakeProphet> freakin' Europeans. How can you not know this shit.
02:45:00 <oklofok> then it's also obvious why it's a pony
02:45:24 <CakeProphet> the only reason I see is for it to rhyme.
02:45:28 <olsner> bologna is tomato sauce with ground beef
02:45:34 <CakeProphet> ah, well, nevermind. I see. :P
02:45:34 <oklofok> then you're kind of slow
02:45:59 <CakeProphet> just, halfway paying attention
02:46:03 <oklofok> i guess i should go to sleep, being even more of an asshole than usual :D
02:46:17 <CakeProphet> as I am about to go get ridiculously drunk, and this is what is currently on my mind.
02:46:31 <oklofok> makes sense
02:46:40 <CakeProphet> in fact, I shall go do that now. Goodbye. I will likely be on in a little while.
02:46:43 <olsner> bologna ponys is what's on your mind?
02:46:50 <CakeProphet> oh yeah, baby.
02:51:57 -!- CakeProphet has quit (Ping timeout: 276 seconds).
03:19:12 <elliott> Does anyone know how to make the lines that separate vim... windows? panes? less ugly?
03:21:02 <oerjan> see :help status-line, maybe?
03:22:27 <elliott> the vertcial separator
03:22:32 <elliott> it's a line of inverted | chars
03:22:34 <elliott> which is just hideous
03:22:51 <oerjan> oh, i only use horizontal
03:27:07 <zzo38> Do any .S3M players crash if you have overlapping sample data?
03:28:17 <elliott> hm and setting configuration variables for scripts is "let Foo=n" right?
03:29:50 <oerjan> i think let is for actual variables, set is for options. but i haven't made any scripts beyond simple .vimrc
03:30:16 <elliott> right
03:30:18 <elliott> this is vimrc
03:30:23 <elliott> configuring a script
03:30:24 <elliott> isn't working though
03:30:37 <elliott> oh, works now
03:31:14 -!- ais523 has quit (Read error: Connection reset by peer).
03:31:53 <zzo38> I happen to know that the script for CWEB programming has some bugs. Such as, if you type in a variable name "do_something" then it colors "do" as a reserved word. There are other problems too. Although, you can type in ":syn off" to turn off syntax highlighting and then it works OK.
03:31:58 <oerjan> the default one for windows only uses let inside a defined function, set otherwise
03:32:32 -!- ais523 has joined.
03:33:17 <zzo38> There is also a script for WEB although I think it is even worse.
03:36:44 <oerjan> elliott: hl-vertsplit seems relevant
03:36:51 <elliott> oerjan: thanks
03:36:56 <oerjan> *hl-Vertsplit
03:37:00 <oerjan> er
03:37:04 <oerjan> *hl-VertSplit
04:06:34 -!- ais523 has quit (Read error: Connection reset by peer).
04:07:51 -!- ais523 has joined.
04:07:57 <elliott> o no the ais523
04:08:21 <ais523> for some reason freenode keeps disconnecting on me
04:08:26 <ais523> and my client automatically reconnecting
04:09:22 <oerjan> it's your peers, they keep resetting it.
04:09:45 <oerjan> you should give them a stern talk
04:10:25 <olsner> the net's gone all peershaped
04:10:47 <oerjan> it's quite peerplexing
04:11:07 <elliott> stupid peer pun
04:11:52 <oerjan> puns can't all be peerfect
04:11:55 <olsner> I'm glad I'm not the last scandinavian awake anyway
04:12:25 <elliott> http://esolangs.org/wiki/Talk:Underload#Why_the_reserved_characters.3F
04:12:25 <elliott> hth
04:14:41 <oklofok> olsner is also me
04:14:48 <oklofok> i'm everyone who starts with an o
04:15:06 <oerjan> ais523: i guess only you can give a real answer to maharba's question
04:15:32 <ais523> what was it? it's not in nearby scrollback unless I'm missing something
04:15:36 <ais523> oh, on the wiki?
04:16:03 <oklofok> ais523: if you don't get it, it's a link
04:16:04 <elliott> oerjan: i know the answer
04:16:09 <elliott> i just wanted to be an ass instead
04:16:16 <elliott> i'll make a real answer
04:16:17 -!- CakeProphet has joined.
04:16:18 -!- CakeProphet has quit (Changing host).
04:16:18 -!- CakeProphet has joined.
04:16:35 <oklofok> what's the answer?
04:16:39 <olsner> elliott: noo, be an ass, don't answer
04:16:41 <oklofok> is it something convoluted and cool
04:16:50 <olsner> say something fun instead
04:17:05 <oklofok> yes and remember to use funny words like poo
04:17:07 <ais523> I've answered
04:17:12 <olsner> oklofok: poo!
04:17:15 <oklofok> xD
04:17:17 <ais523> and should really tell elliott to stop trolling
04:17:18 <elliott> me too
04:17:20 <ais523> elliott: stop trolling
04:17:25 <elliott> ais523: that wasn't trolling, that was a joke :(
04:17:28 <elliott> difference
04:17:29 <ais523> well, OK
04:17:34 <elliott> it wasn't /funny/
04:17:38 <elliott> but who says jokes have to be funny
04:17:46 <elliott> ais523: I did troll by referring to ais vapourware in my response though
04:17:51 <elliott> so hey how's Feather going
04:17:57 <oerjan> it's simple, really, when elliott says something it isn't trolling
04:18:00 <ais523> badly, or well, depending on your point of view
04:18:11 <ais523> tending towards the non-insanity-inducing side
04:18:23 * elliott resists temptation to add Feather to [[Category:Shameful]]
04:20:40 <oerjan> hey nothing shameful in preventing the collapse of the universe
04:21:00 <olsner> maybe the universe is *meant* to collapse
04:21:08 <olsner> preventing that would be shameful
04:21:23 <oerjan> olsner: it was, until feather reset that
04:21:28 <elliott> ooh, maybe ais523 only thought about Feather on order of Doc Scratch THIS IS A PLAUSIBLE THEORY...
04:21:40 <elliott> one day I will stop relating everything to that darn webcomic that hasn't updated in entire HOURS ugh what is his PROBLEM
04:21:52 <ais523> elliott: hey, the article is a pretty good one describing the current state of the language
04:21:54 <elliott> so glad i don't use my f-five key to refresh or it'd be burned out
04:22:08 <elliott> ais523: i only wanted to do it to annoy you :D
04:22:11 <ais523> and there's only an article about it at all because people kept asking
04:22:24 <elliott> ok yeah I'm fairly sure if you ever get a Feather interp ais523
04:22:31 <elliott> running it will end the universe and summon Lord English
04:22:32 <elliott> don't do it
04:22:59 <oerjan> i'm sure it will be nothing as comprehensible as english
04:23:29 <zzo38> No, ignore that message about that running it will end the universe and so on. If you write the program, you can run it.
04:23:33 <elliott> oerjan: "english" in this case is a reference to a pool term
04:24:06 <oerjan> anyway, ais523 will probably get feather finished just before christmas next year
04:24:13 <elliott> oh dear
04:24:20 <zzo38> oerjan: How much do you want to bet?
04:24:27 <ais523> if I do finish it, I'll aim for april 1
04:24:29 <zzo38> And in what country's currency?
04:24:36 <elliott> ais523: dude, december twentytwelve is the best idea :D
04:24:41 <oerjan> six quatloos
04:24:41 <ais523> then people generally won't believe me, which may manage to let them survive through it
04:24:45 <elliott> Release notes:
04:24:46 <elliott> - Sorry.
04:24:52 <Patashu> wtf's going on right now in mspa
04:25:01 <elliott> Patashu: things
04:25:07 <oklofok> can i just tell you you are being so hilarious i cannot concentrate on playing my guitar
04:25:12 <oklofok> i'm going to close the screen ->
04:25:17 <elliott> oklofok: donk
04:26:00 <olsner> Patashu: you remind me of that onion skit where some stuff is happening
04:26:14 <olsner> "skit", is that a word? I seem to think it is
04:26:24 <oerjan> pretty sure it is
04:26:36 <Patashu> yeah skit's a word
04:27:40 <oerjan> also nynorsk for shit, anyway
04:28:08 <olsner> and swedish for shit, indeed
04:28:11 <oerjan> well bokmål too if you mean the verb
04:28:35 <olsner> also works as the imperative form of the verb
04:29:01 <elliott> you're a bok mal
04:29:37 <olsner> elliott: no, you're the mal and you're bok
04:31:45 <zzo38> The S3M official documentation says channel type 16..31 corresponds to Adlib channels (9 melody + 5 drums). But 9+5=14 it doesn't add up to 16. Do you know how it works?
04:32:33 <olsner> addition? afaict you did it correctly there
04:32:38 <olsner> must be their fault
04:35:24 <zzo38> I am trying to write the program that reads the file format. I also have a S3M file open in a hex editor so that I can see some things. But I have no Adlib S3M files (actually I don't know if any even exist, nor of any programs that can play them).
04:37:00 <zzo38> Do you know anything about the Adlib sound card, or about S3M?
04:37:11 <olsner> nope
04:39:49 <zzo38> It also says bit 0-7 for channel type and bit 8 for channel enabled, but that is clearly wrong. It should be bit 0-4 for channel type and bit 7 for channel enabled.
04:40:01 <elliott> obviously
04:41:12 <zzo38> The table for the header says channel settings for 32 channels, which is 32 bytes long in total, where 255=unused and +128=disabled, so that would agree with my texts, and also agrees with the actual S3M file.
04:45:25 <zzo38> Like DVItype can be used as a correct document for DVI format as well as a program to test it, so can my program be used to do similar thing for S3M file.
04:46:23 <zzo38> Probably you would get less errors in documentation for file formats if you did them like this.
04:50:02 <elliott> oerjan: hm I am surprised there is no such thing as OverloadedLists...
04:52:26 <elliott> Just ((:>) 0 ((:>) 0 VNil))
04:52:32 <elliott> oh fer chrissakes, how do you do showsPrec again...
04:53:40 <zzo38> (As far as I know, Knuth is the only other person who documents formats in this way; this has resulted in his documentation being extremely accurate.)
04:56:14 <oerjan> :t showsPrec
04:56:15 <lambdabot> forall a. (Show a) => Int -> a -> String -> String
04:56:42 <oerjan> first argument is precedence level, second what to show, third string to pretend it to
04:56:54 <zzo38> The file I have claims to be the OFFICIAL documentation for the Scream Tracker file format......
04:57:55 <oerjan> elliott: i think i recall there was some ListLike class in the iteratee stuff
04:58:20 <elliott> oerjan: in this case, it encodes the length so that's not really worthwhile
04:58:23 <elliott> as in
04:58:25 <elliott> probably not possible
04:58:31 <elliott> <oerjan> first argument is precedence level, second what to show, third string to pretend it to
04:58:34 <elliott> pretend it to :D
04:58:41 <oerjan> *prepend
04:59:00 <oerjan> PREPEND I SAID THAT INSTEAD
04:59:24 <elliott> I think I'm going to need both unary and binary numbers here.
04:59:52 <elliott> hey oerjan, http://sprunge.us/JMUb
05:00:01 <elliott> (I realise there's already a Data.TypeLevel on hackage but it sucks it uses undefiend and the like)
05:00:37 <zzo38> The document says the number of orders should be even. The file I am testing it with has an odd number of orders.
05:00:53 -!- Sgeo has quit (Ping timeout: 260 seconds).
05:04:51 <elliott> Could not deduce (Succ (ToBinary n0) ~ Succ (ToBinary n))
05:04:53 <elliott> r u srs
05:05:34 * oerjan cannot precisely help without seeing code
05:05:47 <olsner> elliott: make it deductible
05:06:02 <elliott> olsner: deduct yourself
05:06:08 <elliott> oerjan: i'm hacking it on my own :P
05:06:16 <elliott> no big problem right now
05:06:20 <elliott> just a day's type-level work
05:06:37 <oerjan> just another day in the type system
05:11:24 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
05:13:43 <elliott> oerjan: can you believe that you can do all this vector stuff fine with unary type-level nats for the length
05:13:46 <elliott> but if you make it binary
05:13:48 <elliott> it all gets ugly as shit
05:13:48 <elliott> :(
05:13:54 <elliott> like even
05:13:55 <elliott> instance (Eq a) => Eq (Vec n a) where
05:13:55 <elliott> VNil == VNil = True
05:13:56 <elliott> (x :> xs) == (y :> ys) = x == y && xs == ys
05:13:56 <elliott> don't type
05:13:59 <elliott> [asterisk]won't type
05:14:37 <elliott> oerjan: because
05:14:39 <elliott> (:>) :: a -> Vec n a -> Vec (Succ n) a
05:14:41 <elliott> Succ is a type family
05:14:45 <elliott> and it's just hard to deduce anything about it
05:14:46 <elliott> ok wait
05:14:49 <elliott> what if I just do the really ugly
05:14:53 <oerjan> hm if you make it binary, make the Vec's into binary trees i suggest
05:14:58 <elliott> data Vec n a = LolHiddenConstructor [a]
05:15:17 <elliott> oerjan: heh, what would the type of the branch constructor be then?
05:16:37 <oerjan> Br1 :: Vec n a -> Vec n a -> Vec (Twice n) a
05:16:51 <elliott> oerjan: um but what is Twice...
05:17:01 <oerjan> Br2 :: Vec n a -> Vec n a -> a -> Vec (TwiceAndABit n) a
05:17:02 <elliott> oh, just the 0 digit?
05:17:06 <elliott> I call it O and I
05:17:18 <elliott> oerjan: this is actually tempting, but I dislike a bit how it changes the runtime representation
05:17:34 <elliott> the worst part though is
05:17:42 <elliott> class FromList n where fromList :: [a] -> Maybe (Vec n a)
05:17:45 <elliott> instance FromList Z where ...
05:17:52 <elliott> instance (FromList n) => FromList (S n) where ...
05:17:55 <elliott> good luck doing that with binary
05:18:09 <oerjan> eek
05:18:27 * elliott tries the binary tree idea before the cheating "let's just make it unsafe internally"
05:18:55 <elliott> oerjan: hm the leaves would just be nil here, right?
05:19:18 <oerjan> hm what about Br1 :: Vec n (a,a) -> Vec (0 :> n) a
05:19:27 <elliott> wat
05:19:28 <oerjan> *Br0 i guess
05:19:34 <elliott> what's that for
05:20:10 <oerjan> well it's a standard trick for forcing trees to be balanced by type
05:20:18 <elliott> don't your two constructors already achieve that?
05:20:28 <elliott> "(0 :> n)" I assume you mean (O n)
05:20:42 <oerjan> ok
05:20:48 <elliott> but -- don't your two constructors already achieve that?
05:20:57 <elliott> the typed-safe balancedness, that is
05:21:25 <oerjan> ok that's not the precise thing achieved, but:
05:21:38 <oerjan> with that you can do FromList easier
05:21:43 <elliott> ah
05:21:48 <elliott> do I still need BrTwo with that?
05:21:55 <oerjan> yes
05:22:12 <elliott> data Vec :: * -> * -> * where
05:22:12 <elliott> VLeaf :: Vec BZ a
05:22:12 <elliott> VBr0 :: Vec n (a,a) -> Vec (O n) a
05:22:12 <elliott> VBr1 :: a -> Vec n (a,a) -> Vec (O n) a
05:22:13 <elliott> erm
05:22:14 <elliott> I n
05:22:16 <elliott> for the latter
05:22:32 <elliott> great, the Eq instance derives now, but not the Ord instance
05:22:55 <elliott> Couldn't match type `BZ' with `BO n1'
05:22:55 <elliott> Inaccessible code in
05:22:55 <elliott> a pattern with constructor
05:22:55 <elliott> VLeaf :: forall a. Vec BZ a,
05:22:55 <elliott> in a case alternative
05:22:55 <elliott> In the pattern: VLeaf {}
05:22:57 <elliott> In a case alternative: VLeaf {} -> GT
05:22:59 <elliott> wat
05:23:21 <elliott> sigh, it is generating code that does not respect the fancy type magic
05:25:17 <elliott> (+>) :: a -> Vec n a -> Vec (Succ n) a
05:25:17 <elliott> a +> VLeaf = VBr1 a VLeaf
05:25:17 <elliott> a +> VBr0 b = VBr1 a b
05:25:17 <elliott> a +> VBr1 a b = whoops look at my coding energy drain away
05:25:18 <elliott> im a good programmer
05:27:23 <oerjan> a +> VBr1 a' b = VBr0 ((a,a') +> b), i think
05:28:21 <elliott> heh, I just hit upon that now :)
05:28:48 <elliott> *Main> 0 +> 9 +> 0 +> 9 +> VLeaf
05:28:48 <elliott> VBr0 (VBr0 (VBr1 ((0,9),(0,9)) VLeaf))
05:28:48 <elliott> *Main> 0 +> 9 +> 0 +> 9 +> 0 +> VLeaf
05:28:48 <elliott> VBr1 0 (VBr0 (VBr1 ((9,0),(9,0)) VLeaf))
05:28:50 <elliott> that doesn't look right...
05:29:36 <elliott> or no wait it does
05:29:38 <oerjan> looks right to me
05:29:43 <elliott> oerjan: heh, now I just have to write a dest (opposite of cons) function...
05:29:48 <elliott> this is going to be pretty slow runtime-wise, isn't it
05:30:19 <oerjan> MAAAYBE
05:30:37 <elliott> well hm
05:30:46 <elliott> vhead (VBr0 b) = fst (vhead b)
05:30:47 <oerjan> it's just rebalancing a tree, isn't it
05:30:52 <elliott> vhead (VBr1 x b) = x
05:30:53 <elliott> right?
05:31:12 <elliott> because, lol, that doesn't type :)
05:31:13 <oerjan> think so
05:31:18 <elliott> because
05:31:21 <elliott> Could not deduce (n1 ~ Succ n0)
05:31:22 <elliott> from the context (Succ n ~ BO n1)
05:31:22 <elliott> fucking Succ
05:31:27 <elliott> i'm going to try and make succ a typeclass intsead
05:31:51 -!- Patashu has quit (Ping timeout: 276 seconds).
05:33:17 <elliott> lol didn't work
05:33:47 <elliott> this sucks :/
05:34:07 <elliott> oerjan: wanna give it a shot? I can give you the code :P
05:34:09 <oerjan> you need bijection between Pred and Succ, i guess
05:34:14 <elliott> mwahaha
05:34:15 <elliott> I have no Pred
05:34:26 <oerjan> maybe you need it
05:34:33 <elliott> where?
05:34:45 <oerjan> for vhead?
05:34:55 <elliott> vhead :: Vec (Succ n) a -> a
05:34:59 <elliott> not bothering with a full vdest right now
05:35:02 <elliott> just a head
05:35:34 <oerjan> well you said that didn't type
05:35:48 <elliott> it doesn't, but if vhead doesn't, making it do even more won't either
05:36:11 <oerjan> i meant vhead
05:37:11 <elliott> right
05:37:14 <elliott> i don't see what you are saying
05:37:17 <elliott> what type do you want vhead to have
05:37:21 <oerjan> isn't there something you supposedly can do with ~ and type families to force things to be bijections
05:37:41 <oerjan> i don't actually know that, mind you
05:38:03 <elliott> vhead :: Vec (Succ n) a -> a
05:38:03 <elliott> vhead (VBr0 b) = fst (vhead (unsafeCoerce b))
05:38:03 <elliott> vhead (VBr1 x b) = x
05:38:04 <elliott> nailed it
05:38:14 <oerjan> O_o
05:38:26 <elliott> unfortunately "vhead foo" fails because of the type family :D
05:38:31 <elliott> for foo = 0 +> VLeaf
05:38:34 <elliott> oerjan: haha i scared you
05:40:12 <oerjan> sort of ruins the point of type level programming, doesn't it :P
05:40:28 <elliott> oerjan: well in this case I've lost the ability to care about how safe the internals are
05:40:31 <elliott> so long as the exposed API is safe
05:41:33 <elliott> "According to Calver, the cheese at this point had "a caramel nose, a sweet twiggy greenness and a creamy good length of flavour...lemony, with a certain 'spritziness'"."
05:42:04 <oerjan> that was just before he started hallucinating from the mold, i take
05:42:26 <elliott> my prediction: it actually just tasted like cheddar
05:42:26 <oerjan> or possibly just after
05:44:14 <oerjan> can't you make Succ into a GADT somehow
05:44:28 <elliott> um that would result in it having constructors
05:44:36 <elliott> that... makes no sense, really
05:44:40 <oerjan> hm...
05:44:51 <oerjan> phantom GADT :D
05:45:21 <elliott> ooh, wait
05:45:29 <elliott> oerjan: your constructors are _bad_
05:45:35 <oerjan> :(
05:45:38 <elliott> Leaf == VBr0 Leaf == VBr0 (VBr0 Leaf) == ...
05:45:50 <elliott> and in fact (VBr0 Leaf) produces the forbidden type (BO BZ)
05:45:56 <elliott> (all zeroes must be normalised to Z)
05:46:04 <oerjan> well that's your job :P
05:46:09 <elliott> >:|
05:46:13 <elliott> oerjan: this causes _actual problems_
05:46:18 <elliott> that's why we can't recurse
05:46:19 <elliott> in the VBr0 branch
05:46:24 <elliott> because we might be doing (vhead VLeaf)
05:47:11 <oerjan> fine, make a Vec1 which cannot be zero length
05:48:31 <oerjan> move VBr0 and VBr1 to it, but not Leaf
05:48:48 <elliott> yeah OK, in a minute
06:05:11 -!- oerjan has quit (Quit: Good night).
06:15:38 -!- lifthrasiir has quit (Ping timeout: 240 seconds).
06:17:07 <elliott> I have this horrible temptation to write a patcher.
06:51:00 -!- cheater8 has quit (Ping timeout: 260 seconds).
06:53:19 -!- cheater8 has joined.
07:01:18 -!- ais523 has quit (Remote host closed the connection).
07:06:07 -!- CakeProphet has quit (Ping timeout: 276 seconds).
07:26:22 -!- monqy has quit (Quit: hello).
07:28:47 -!- augur has quit (Remote host closed the connection).
07:30:24 -!- augur has joined.
07:32:35 -!- augur has quit (Remote host closed the connection).
07:33:41 -!- Vorpal has joined.
07:39:51 -!- augur has joined.
07:45:32 -!- Phantom_Hoover has joined.
08:09:17 -!- Sgeo has joined.
08:12:32 -!- zzo38 has quit (Quit: zzo38).
08:22:01 -!- CakeProphet has joined.
08:23:52 <elliott> ?hoogle evaluate
08:23:53 <lambdabot> Control.Exception evaluate :: a -> IO a
08:23:53 <lambdabot> Control.OldException evaluate :: a -> IO a
08:23:53 <lambdabot> Test.QuickCheck evaluate :: Testable a => a -> Gen Result
08:36:18 -!- lifthrasiir has joined.
08:43:55 <Phantom_Hoover> http://www.youtube.com/watch?v=JAWuMd6GOfs&feature=related
08:43:55 <lambdabot> Phantom_Hoover: You have 5 new messages. '/msg lambdabot @messages' to read them.
08:44:03 <Phantom_Hoover> Ohmygodacatinzergog
08:44:34 <elliott> a cat in zer gog
08:45:00 <elliott> Phantom_Hoover: That cat looks surprisingly comfortable with the environment.
08:45:19 <Phantom_Hoover> http://www.reddit.com/r/askscience/comments/hwv1e/computer_scientists_do_you_consider_syntax_to_be/
08:45:33 <Phantom_Hoover> Presented without comment.
08:46:17 <Gregor> Ow.
08:57:53 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
08:58:00 <Sgeo> "loseth abacus . sup you can get a htc hd7 for putting in your email at"
08:59:11 <oklofok> "<elliott> but who says jokes have to be funny" <<< poo
09:03:22 <elliott> yeah
09:06:34 <oklofok> nothing worse than sitting comfy in your armchair and then didididididiiii hello i'm an alarm clock on the other side of room hihihihi come touch me :)))))))))))))))))))))))))))))))))))
09:06:46 <oklofok> *-
09:08:24 <oklofok> well actually many worse.
09:08:33 <oklofok> but not all worse? certainly not.
09:10:27 -!- Phantom_Hoover has joined.
09:19:18 <elliott> :t execState
09:19:19 <lambdabot> forall s a. State s a -> s -> s
09:22:47 <CakeProphet> !help
09:22:47 <EgoBot> ​help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help <command>.
09:37:02 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
09:38:02 -!- Phantom_Hoover has joined.
09:43:08 -!- MigoMipo has joined.
09:43:28 -!- Patashu has joined.
10:05:23 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
10:10:06 -!- CakeProphet has quit (Ping timeout: 240 seconds).
10:12:59 -!- Timwi has joined.
10:20:30 -!- Timwi has changed nick to Timwi-Away.
10:23:43 -!- Timwi-Away has quit.
10:37:19 -!- CakeProphet has joined.
11:16:12 -!- MigoMipo has quit (Remote host closed the connection).
11:29:02 -!- elliott has quit (Remote host closed the connection).
11:29:14 -!- elliott has joined.
11:31:37 -!- pikhq has joined.
11:31:47 -!- pikhq_ has quit (Ping timeout: 255 seconds).
11:34:49 -!- FireFly has joined.
11:50:02 <elliott> 05:04:43: <Gregor> ehird: Now write an editor that distinguishes alignment from indentation and actually maintains your alignment in the correct tab/space ratio while you write code.
11:50:02 <elliott> many editors can do this >:|
11:50:04 <elliott> past gregor sucks
12:04:18 -!- Phantom__Hoover has joined.
12:13:03 <elliott> "Multi-penised, six-legged, two-anused piglet given silly name" --Metro
12:21:38 -!- ralc has joined.
12:23:31 <Sgeo> http://www.reddit.com/r/askscience/comments/hwqzc/dear_asksci_in_todays_age_we_can_create_light/
12:24:48 <elliott> lol
12:25:26 <elliott> Sgeo eagerly awaiting you trying to defend this guy
12:26:45 <elliott> TIL That all money is debt & that most money doesn't actually exist. :) (unpac.ca)
12:26:47 <elliott> this person is a good poster
12:27:09 <Patashu> 'create light from photons'
12:27:12 <Patashu> photons aren't light :O
12:27:13 <Sgeo> Didn't occur to me to try to defend him
12:27:24 <elliott> apparently river song is marilyn munroe
12:27:28 <elliott> til from this person
12:28:33 <Sgeo> But: Not everyone has a basic knowledge of elementary science. They see articles about making virtual photons real (if I understand the linked article correctly) and misinterpret it. It's entirely understandable that to someone who doesn't know what a photon is, it sound the way he described it.
12:30:06 <elliott> lol
12:30:11 <elliott> when isa id
12:30:13 <elliott> eagerly awaiting
12:30:14 <elliott> i meant
12:30:16 <elliott> fucking dont
12:36:09 <Vorpal> pikhq, wrt the "huge" kernel on ubuntu: seems like ubuntu builds with debug symbols
12:38:13 <Phantom__Hoover> <elliott> apparently river song is marilyn munroe
12:38:41 <Phantom__Hoover> That actually seems plausible given the sheer idiocy of her character.
12:39:25 <Phantom__Hoover> Sgeo, it does occur to me that they might possibly be talking about that entanglement thing.
12:39:39 <elliott> they made link things in heir comments
12:40:10 <Phantom__Hoover> "How long does a pig's orgasm last?"
12:40:14 <Phantom__Hoover> Possibly the best question.
12:40:33 * Sgeo sorts his feeds into Fast, Click, and Slow
12:41:03 <elliott> click
12:41:45 <Sgeo> Click is for those feeds where I have to open externally to have any idea what's going on
12:41:52 <Sgeo> Or not "any idea"
12:42:10 <Sgeo> Um, like SMBC, due to the votey, or MSPA
12:42:40 * Phantom__Hoover notes that of the links in today's IWC annotation, "Pencil" is the only one he has previously seen.
12:43:05 <Sgeo> I should read IWC's archive
12:43:10 <Sgeo> Then start reading it regularly
12:43:44 <Vorpal> * Phantom__Hoover notes that of the links in today's IWC annotation, "Pencil" is the only one he has previously seen. <-- do you mean "seen the wikipedia page" or "seen the word"?
12:43:53 <Phantom__Hoover> Vorpal, seen the WP page.
12:43:55 <Vorpal> ah
12:44:06 <Phantom__Hoover> Sgeo, it's like Homestuck.
12:44:10 <Phantom__Hoover> Except with Lego.
12:44:12 <Phantom__Hoover> And science.
12:44:18 <elliott> And no sprites
12:44:21 <elliott> Or games
12:44:21 <Phantom__Hoover> And even slower-moving plots.
12:44:22 <elliott> Or
12:44:22 <elliott> Or
12:44:23 <Phantom__Hoover> Somehow.
12:44:23 <Vorpal> Phantom__Hoover, and less weird troll romances
12:44:27 <elliott> It's like Homestuck but not Homestuck.
12:44:33 <elliott> It is similar in that it is:
12:44:34 <elliott> - long;
12:44:37 <elliott> - a web comic.
12:44:46 -!- quintopia has quit (Ping timeout: 240 seconds).
12:45:06 <Phantom__Hoover> elliott, well it does manage to have about 20 parallel plots which move at a rate of about 5 in-comic seconds per month.
12:45:06 <Vorpal> elliott, by that measure, schlock is quite similar to homestuck too!
12:45:19 <elliott> isn't schlock the one drawn by a mormon
12:45:45 <Vorpal> elliott, is he? I don't know.
12:46:44 <Vorpal> elliott, I found another similarity between homestuck, iwc and schlock: they use long story-arcs.
12:46:58 <Vorpal> so you need to read a large part of the archive for anything to make sense.
12:47:02 <elliott> homestuck doesn't have story arcs
12:47:05 <elliott> it is all one gigantic arc
12:47:17 <elliott> as far as i know, not a single homestuck arc can be legitimately said to have ended
12:47:34 <Vorpal> elliott, yeah, one huge story arch is a degenerate case of long story arcs :P
12:47:34 <Phantom__Hoover> elliott, the Intermission wrapped up pretty well.
12:47:54 <elliott> Phantom__Hoover: POINT
12:48:02 <Sgeo> Does it count a wrapped up if there's something like a prequel?
12:48:36 <Phantom__Hoover> No.
12:49:22 <Vorpal> has any "story arc" in iwc actually ended so far?
12:49:30 <Vorpal> maybe espionage...
12:49:41 <elliott> isnt the whole point of iwc that nothing ever happens and the plots will never advance
12:49:59 <elliott> except by dramatic intervention by, like, killing everyone
12:50:02 <Vorpal> elliott, come on, they reached the dragon after all. That was actually something happening
12:50:04 -!- quintopia has joined.
12:50:04 -!- quintopia has quit (Changing host).
12:50:04 -!- quintopia has joined.
12:50:09 <Phantom__Hoover> elliott, the whole point of IWC is to get more comics than Calvin & Hobbes.
12:50:11 <Phantom__Hoover> True fact.
12:50:17 <elliott> Phantom__Hoover: yes and then it will end
12:50:24 <Phantom__Hoover> Vorpal, yes, and then they turned around and went to a pub.
12:50:25 <elliott> (gives oerjan nightmares)
12:50:36 <Vorpal> Phantom__Hoover, true
12:50:40 <Phantom__Hoover> elliott, on that day the annotation will explain the GUT.
12:50:49 <Vorpal> Phantom__Hoover, but it was still some sort of advancing.
12:50:57 <Vorpal> Phantom__Hoover, GUT?
12:51:01 <Phantom__Hoover> -_-
12:51:03 <Sgeo> Gran Unified Theory
12:51:06 <Vorpal> ah
12:51:09 <Sgeo> *Grand
12:51:10 <Vorpal> right
12:51:32 <Sgeo> Grain Unified Theory
12:52:13 <elliott> bran flakes theory
12:53:28 <Phantom__Hoover> Candidates include Fruit Loop Gravity.
13:22:49 -!- copumpkin has joined.
14:04:26 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:09:52 -!- copumpkin has joined.
14:18:20 -!- copumpkin has quit (Ping timeout: 246 seconds).
14:37:10 <elliott> ?t foldl
14:37:10 <lambdabot> Maybe you meant: tell thank you thanks thx ticker time todo todo-add todo-delete topic-cons topic-init topic-null topic-snoc topic-tail topic-tell type . ? @ ft v
14:37:13 <elliott> :t foldl
14:37:13 <lambdabot> forall a b. (a -> b -> a) -> a -> [b] -> a
14:37:18 <elliott> hmm
14:37:23 <elliott> ?src concatMap
14:37:23 <lambdabot> concatMap f = foldr ((++) . f) []
14:37:26 <elliott> in terms of fold come on
14:37:28 <elliott> woot
14:37:42 <elliott> :t foldl ((++) . f) (9,[])
14:37:42 <lambdabot> forall t a. (Monoid t, Num t, Show a, SimpleReflect.FromExpr (t, [a])) => [(t, [a])] -> (t, [a])
14:38:00 <elliott> :t foldl (\(a,x) r -> f a x ++ r) (9,[])
14:38:01 <lambdabot> forall t a. (Num t, Show a, SimpleReflect.FromExpr (t, [a]), Monoid t) => [(t, [a])] -> (t, [a])
14:38:06 <elliott> :t foldl (\(a,x) r -> ?f a x ++ r) (9,[])
14:38:06 <lambdabot> forall t a. (?f::t -> [a] -> (t, [a]), Monoid t, Num t) => [(t, [a])] -> (t, [a])
14:38:19 <elliott> ?hoogle concatMapM
14:38:19 <Phantom__Hoover> ?thanks foo
14:38:19 <lambdabot> No results found
14:38:20 <lambdabot> you are welcome
14:38:23 <Phantom__Hoover> -_-
14:45:10 <elliott> :t ask
14:45:11 <lambdabot> forall (m :: * -> *) r. (MonadReader r m) => m r
14:56:22 * Phantom__Hoover attempts to remember how to pronounce "mamihlapinatapai".
14:56:37 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
15:13:28 <elliott> ?undo do { fx <- f x; gmapM (everywhereM' f) fx }
15:13:28 <lambdabot> f x >>= \ fx -> gmapM (everywhereM' f) fx
15:13:33 <elliott> ?pl f x >>= \ fx -> gmapM (everywhereM' f) fx
15:13:33 <lambdabot> gmapM (everywhereM' f) =<< f x
15:17:55 <twice11> :t gmapM (everywhereM' f) =<< f x
15:17:55 <lambdabot> Not in scope: `everywhereM''
15:18:42 <twice11> :t everywhere
15:18:43 <lambdabot> forall a. (Data a) => (forall a1. (Data a1) => a1 -> a1) -> a -> a
15:18:57 <elliott> tswett: that's the definition of everywhereM'
15:19:01 <elliott> er
15:19:02 -!- Sgeo has quit (Ping timeout: 255 seconds).
15:19:03 <elliott> twice11:
15:19:05 <elliott> misping
15:19:19 <elliott> -- ndm hates this, but I don't know how to code his descendM
15:19:19 <elliott> everywhereM' :: (Monad m) => GenericM m -> GenericM m
15:19:19 <elliott> everywhereM' f x = f x >>= gmapM (everywhereM' f)
15:19:19 <elliott> :)
15:19:20 <elliott> it's syb stuff
15:19:38 <twice11> Ah, recursive.
15:20:35 <twice11> I just wanted to test whether "f x >>= gmapM (everywhereM' f)" is equivalent to the point{less,free} output produced by ?pl
15:20:42 <twice11> Obviously it is.
15:20:46 <elliott> Yeah, it is
15:20:56 <elliott> I dunno why ?pl likes =<< so much
15:21:00 <elliott> I guess to try and preserve "applicative order"
15:21:06 <elliott> It can be kind of ugly IMO
15:21:17 <twice11> Probably because ?pl also likes . for non-monadic code.
15:21:46 <elliott> Ah, precedence stuff?
15:22:28 <twice11> Maybe that too, but I just thought about shared code for producing monadic =<< and non-monadic dots.
15:22:37 <elliott> Right.
15:22:46 <elliott> Well, it is ?undo that created the >>=.
15:22:50 <elliott> ?pl just flipped it around to =<<, inexplicably.
15:22:51 <lambdabot> (line 1, column 30):
15:22:51 <lambdabot> unexpected ","
15:22:51 <lambdabot> expecting white space or simple term
15:23:06 <elliott> twice11: btw, haven't seen you around here before -- come from the wiki?
15:23:17 <elliott> or has someone been blabbing in #haskell again :)
15:23:44 <twice11> I have been around here (or whatever was the esolang wiki recommended channel at that time) in 2007.
15:23:56 <elliott> It's always been this place, AFAIK
15:24:09 <elliott> The channel is quite a bit older than the wiki
15:24:29 <twice11> I met oerjan already at that time, and we made the proof that 0x29A is turing complete.
15:25:01 <twice11> I came here to ask about the claim of turing-completeness, as I was unable to see how it works.
15:25:33 <elliott> ah, cool
15:25:37 <elliott> are you the inventor of 0x29A?
15:25:47 <twice11> Now a friend slightly hinted me to get here again - and I thought it might be a good idea.
15:26:15 <twice11> No, I didn't invent it, it just stumbled upon it randomly browsing the esolang wiki.
15:26:19 <elliott> I bet it was ralc. You can never trust that ralc.
15:26:25 <elliott> Sitting there idling, plotting our downfall quietly.
15:27:08 <ralc> rambling again, eh?
15:27:21 <elliott> All two lines of ramble.
15:27:32 <twice11> No, I was not pointed here by ralc.
15:27:50 <twice11> And if I should cause downfall of the channel, feel free to kick me.
15:28:14 <elliott> If you cause the downfall of this place it might be a bit tricky to kill you, since we'll presumably all be gone.
15:28:17 <elliott> Er, kick you.
15:28:22 <elliott> I swear that was a typo.
15:28:41 <twice11> My endpoint does not support RSP, so no problem ;)
15:28:49 <twice11> RSP == remote strangulation protocol.
15:29:07 <elliott> Hmm, I've always preferred the UDP Disintegration Laser.
15:30:11 <twice11> Hmm, never heard of, neither did google.
15:30:37 <elliott> Yes, well, someone had to make up the remote strangulation protocol too, didn't they. :p
15:34:41 <Phantom__Hoover> elliott, TbH, the TCP Orbital Bombardment always tickled my fancy more.
15:37:07 -!- pikhq has quit (Ping timeout: 258 seconds).
15:37:11 -!- pikhq_ has joined.
15:46:37 -!- augur has quit (Remote host closed the connection).
15:52:09 -!- elliott has quit (Read error: Connection reset by peer).
15:56:24 -!- hiato has quit (Ping timeout: 250 seconds).
16:14:45 -!- Sgeo has joined.
16:22:56 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net).
16:23:45 -!- elliott has joined.
16:24:14 -!- augur has joined.
16:47:14 -!- Phantom__Hoover has quit (Ping timeout: 255 seconds).
16:48:18 -!- augur has quit (Remote host closed the connection).
16:48:39 -!- oerjan has joined.
16:50:36 <oerjan> <elliott> (gives oerjan nightmares)
16:50:42 <oerjan> AYEEE
16:51:51 <oerjan> <oklofok> nothing worse than sitting comfy in your armchair and then didididididiiii hello i'm an alarm clock on the other side of room hihihihi come touch me :)))))))))))))))))))))))))))))))))))�
16:52:29 <olsner> wow
16:52:41 <oerjan> i am sorry, but you are clearly misspelling "in the room of your housemate on the other side of the wall, and he is not home..."
16:57:03 <oerjan> 12:40:10: <Phantom__Hoover> "How long does a pig's orgasm last?"
16:57:13 <oerjan> "Long enough". HTH, HAND.
16:58:33 <oerjan> also, how can the channel be this silent when elliott is here
16:58:47 <elliott> i was too busy composing the greatest musical masterpiece ever to be created
16:59:14 <oerjan> ah. i guess that's a proper excuse.
16:59:30 -!- augur has joined.
16:59:43 <elliott> oerjan: for your wonderful concern, you get to listen to it
16:59:45 <elliott> SO
16:59:46 <elliott> LUCKY
17:00:07 <elliott> 14:12:46: <ais523> hi everyone
17:00:08 <elliott> 14:22:53: <ais523> or noone
17:00:08 <elliott> 14:23:01: <ais523> pity
17:00:09 <elliott> 14:23:13: <ais523> maybe I could just sit here monologuing until someone tells me to stop spamming
17:00:35 <Gregor> elliott's musical mode of choice is gangsta rap.
17:00:40 <Gregor> And those are the words.
17:00:58 <elliott> I will offer a five quadrillion dollar bounty to anyone who can rap those lines to this thing.
17:03:27 -!- Phantom__Hoover has joined.
17:06:46 -!- monqy has joined.
17:08:11 -!- Timwi-Away has joined.
17:08:15 -!- Timwi-Away has changed nick to Timwi.
17:09:55 -!- augur has quit (Remote host closed the connection).
17:12:39 -!- azaq23 has joined.
17:16:02 -!- augur has joined.
17:22:21 -!- augur has quit (Remote host closed the connection).
17:24:52 -!- augur has joined.
17:29:07 -!- oerjan has quit (Quit: Later).
17:29:25 -!- Tritonio has joined.
17:31:19 -!- elliott has quit (Remote host closed the connection).
17:34:07 -!- elliott has joined.
17:35:29 -!- Tritonio has quit (Quit: Leaving).
17:37:46 -!- zzo38 has joined.
17:50:14 -!- augur has quit (Remote host closed the connection).
18:10:56 -!- Phantom__Hoover has quit (Ping timeout: 255 seconds).
18:13:17 -!- Phantom__Hoover has joined.
18:13:54 -!- MigoMipo has joined.
18:22:44 -!- augur has joined.
18:24:49 <zzo38> I am trying to figure out how to shorter C code for selecting numbers 1 to 300 that have digit 3 or divisible by 3
18:26:16 <olsner> golfing? or just shorter?
18:26:44 <zzo38> Golfing
18:27:15 <zzo38> I have 22 bytes of a expression that makes 0 for numbers that meet this criteria.
18:28:34 <zzo38> I know of operator precedence and order, a few mathematical things about modulo and multiplication and stuff, but still I did not figure it out
18:30:28 <zzo38> That is, if there is any shorter expression for that!
18:33:55 <Timwi> What’s the 22 bytes expression you already got/
18:34:01 <Timwi> / => ?
18:35:33 <zzo38> x%3&&x%10-3&&x/10%10-3
18:35:56 <zzo38> But maybe is possible to change other parts of the program, although it doesn't seem to help from what I can figure out
18:36:26 <Timwi> Right, so x needs to be divisible by 3 — I thought you meant it should contain *digits* divisible by 3
18:37:11 <twice11> Either divisible by three or at least one digit is 3.
18:37:19 <olsner> maybe you could generate all matching numbers, dunno if that'll be shorter though
18:37:20 <twice11> Sounds like a fizzbuzz variant.
18:37:28 <Timwi> Yeah
18:38:28 -!- Timwi has quit.
18:38:54 <zzo38> Also, someone made a C program output "Success" with 21 bytes, the most obvious way I can figure out is 24 bytes. I can figure out how to make "Success" to standard error with 18 bytes, but not to standard output with 21 bytes.
18:39:22 <twice11> zzo38: Your expression seems to fail on 311
18:39:34 <zzo38> twice11: It only has to be OK for numbers 1 to 100
18:39:39 <zzo38> s/100/300/
18:39:52 <twice11> Ah, OK. In that case...
18:41:20 <zzo38> I noticed that it seems the C standard functions will have the same address twice if you run the program twice. That doesn't seem to help, though. (This is for "Success" problem)
18:41:40 <twice11> Hmm. 24 bytes is obvious.
18:41:57 <twice11> Ah, perror for the stderr case - clever.
18:42:45 <elliott> what if you dup'd the fd then perrored
18:42:50 <elliott> i guess that would still go over though
18:42:55 <twice11> Try to find out the address where the string for perror is stored.
18:43:07 <twice11> And then puts that address.
18:43:10 <elliott> heh
18:43:17 <zzo38> twice11: I thought of that, but could not figure it out.
18:43:40 <twice11> Do you get access to stderr/stdout of failed programs?
18:44:09 <twice11> And even if not - you get the address from strerror.
18:44:24 <twice11> In the worst case you need to do a binary search.
18:44:51 <twice11> No further hints here - *you* want to win the golfing.
18:45:14 <zzo38> Yes you do get access to stderr/stdout of failed programs.
18:45:38 <zzo38> But I do suppose you are correct. Still, all of those are things I have already thought of. It is OK if you want to give no further hints.
18:45:52 <twice11> So what is your problem?
18:46:10 <zzo38> O, I just wanted to mention it, is all.
18:46:25 <twice11> It should be straight-forward to apply my hints.
18:46:34 <twice11> Especially if you get stdout/stderr.
18:47:02 <elliott> there is no guarantee the address is predictable though
18:47:24 <twice11> Who cares at golfing.
18:47:31 <elliott> i mean,
18:47:33 <twice11> It needs to pass the judge system once.
18:47:34 <elliott> it might differ enough between runs
18:47:39 <zzo38> Addresses of "puts" and "strerror" and that stuff themself seem to always be the same each time (I have tried it).
18:47:54 <elliott> twice11: well actually there have been proposals for a rejudge button on anagolf :)
18:48:22 <twice11> There are even time()-dependent golf entries around...
18:48:53 <elliott> twice11: the cheat entries (random+resubmit spam ones) are a really bad problem at anagolf
18:48:55 <elliott> thus the rejudge proposals
18:49:07 <zzo38> It is one reason why I dislike endless problems.
18:49:09 <elliott> basically if you're ok hammering the server for a few minutes chance will get you pretty much anywhere
18:50:32 <twice11> On my system, the strerror result is not constant. Did you try on the judge system?
18:50:36 <zzo38> However, in any case, what I prefer to do, is I can post multiple solutions if I have it, some for random or time dependent, others with embed, cheat, genuine, alnum-only, symbols-only, etc.
18:50:53 <zzo38> twice11: The strerror result is not a constant pointer.
18:51:04 <twice11> Too bad :(
18:51:07 <zzo38> The address of the result changes with each run.
18:51:28 <twice11> I was suggesting to hardcode that.
18:51:32 <elliott> zzo38: they might be doing a
18:51:35 <elliott> main="machine code";
18:51:37 <elliott> trick, you know
18:51:39 -!- pikhq has joined.
18:51:50 <zzo38> I already had all of these ideas (elliott: except your last one)
18:52:02 -!- pikhq_ has quit (Ping timeout: 252 seconds).
18:52:10 <twice11> elliott: That will store a pointer at the main location.
18:52:20 <twice11> You need at least char main[]="machine code";
18:52:44 <elliott> Yeah yeah :)
18:52:45 <elliott> main[] should do
18:52:47 <elliott> without char
18:52:58 <twice11> Maybe a global variable from libc has a constant offset from the "Success" string...
18:53:10 <twice11> main[] declares an array of ints.
18:53:24 <twice11> Are you sure you can initialize that with a string?!
18:53:28 <elliott> yep, but if you can do with every other byte being 0...
18:53:31 <elliott> it... might work :)
18:53:42 <elliott> or maybe, if you put a L before the string
18:53:46 <zzo38> twice11: I also thought of those things too, I tried subtraction...
18:53:48 <elliott> or an LL i gues
18:53:48 <elliott> s
18:53:50 <elliott> then maybe it will work fine?
18:53:52 <elliott> unicode-y
18:54:28 <pikhq> elliott: Isn't 0x00 a noöp on x86? :)
18:54:35 <twice11> 0x90 is a nop.
18:54:37 <zzo38> No, I don't think so
18:54:38 <twice11> 0x00 not.
18:54:43 <pikhq> The fuck is 0x00, then?
18:54:47 <elliott> but yeah i think
18:54:49 <elliott> main[]=LL"..."
18:54:52 <elliott> might actually work
18:54:58 <zzo38> 0x00 is NOP in z80, though, I think.
18:55:03 <pikhq> And why would you ever want 0x00 to not be NOP?
18:55:41 <pikhq> Oh, wait, x86. x86 hates you.
18:55:44 <zzo38> pikhq: In case the way of all command and the electronics and stuff works, makes it help to not have 0x00 to be NOP, like, some pattern, etc
18:55:48 <olsner> 0x00 is the first byte of a bunch of add instructions, but by itself means nothing to x86
18:56:08 <pikhq> You see? x86 hates you.
18:56:09 <twice11> I understand the request for NOP at 0xFF (unprogrammed ROM celss are NOPs), but what does 0=NOP help in practice?
18:56:20 <elliott> twice11: C string programming :D
18:56:33 <pikhq> twice11: Uninitialised pages!
18:56:41 <olsner> I think usually nop is an alias for a completely different instruction that just happens to have no effect
18:56:43 <zzo38> twice11: If that is the case, then maybe 0xFF should be debug trap command.
18:56:53 <pikhq> ... Presuming you have a kernel that has just-allocated pages as 0.
18:57:01 <pikhq> olsner: FEH
18:57:11 <twice11> 0xFF as space for hotpatching is what I had in mind.
18:57:17 <twice11> Without erasing.
18:57:45 <twice11> For 0-initialized pages, crash-on-NUL would be nice.
18:57:59 <zzo38> twice11: O, that makes sense, then.
18:58:20 <zzo38> It would be useful if 0xFF to be NOP in case of hotpatching.
18:58:25 <elliott> 0 should be hcf
18:58:30 <elliott> that'll teach low-level programmers to make memory errors
18:58:52 <twice11> Isn't on Z80 the typical NOP encoding one of 0x40/0x49/0x52/0x5B/0x64/0x6D/0x76/0x7F?
18:59:14 <elliott> Z80, hoggin' all the nops
18:59:15 <twice11> But maybe 00 is a NOP, too...
18:59:20 <olsner> on x86, 0x90 aka nop is actually xchg ax,ax (or xchg eax,eax)
18:59:23 <Sgeo> http://www.reddit.com/r/askscience/comments/hx40e/scientists_of_reddit_whats_the_most_disastrous/c1z3xo2
18:59:30 <elliott> olsner: I love how it needs special-casing in sixty-four bit mode
18:59:30 <Sgeo> I misread that as "cut her into half"
18:59:35 <pikhq> You and your LOGIC
18:59:35 <olsner> elliott: yeah :)
18:59:44 <twice11> Those are LD A,A; LD B,B and so on Z80
18:59:55 <twice11> on x86, mov ax,ax would be two bytes.
19:00:12 <olsner> elliott: plus I think the special case only applies for the ax/eax opcode, not for all the other nops for the other registers :)
19:00:25 <elliott> olsner: yeah :D
19:00:29 <elliott> great for assemblers
19:00:30 <elliott> so logicla
19:00:32 <elliott> logical
19:00:48 <twice11> NOP needs to be special-cased for 64 bit?
19:00:58 <elliott> twice11: yes, otherwise it would clear the high bits of rax
19:01:08 <elliott> it would xchg eax with eax, which would clear the top thirty-two bits of rax
19:01:25 <elliott> so the opcode gets special-cased to mean a true nop
19:01:35 <olsner> found a bochs bug a while ago, test eax,eax clears the higher bits of rax
19:02:04 <twice11> I hope the bug was that the bits are cleared...
19:02:19 <olsner> yes, ordinary cpus don't clear them
19:02:29 <twice11> So 0x90 is no longer a nop, but you would need a 64-bit-prefix on that?
19:02:44 <olsner> no no: 0x90 is still a nop, that's the special case
19:02:51 <twice11> OK, finally got it.
19:03:42 <olsner> to get the real xchg eax,eax behavior (clearing the upper bits) you have to use a different encoding of xchg
19:04:36 -!- Timwi has joined.
19:04:58 <twice11> and eax,0ffffffffh should work to.
19:05:12 <elliott> hey zzo38
19:05:15 <elliott> try sys_errlist[0]
19:05:22 <olsner> yes, and take 5 bytes or so
19:06:17 <elliott> hmm, how do you do a syscall from linux assembly again? :p
19:06:36 <Timwi> You guys still discussing the golf?
19:06:40 <elliott> oh wait
19:06:41 <olsner> elliott: oh, there are many ways to do that :)
19:06:44 <elliott> dup2 isn't a syscall
19:06:44 <elliott> is it
19:06:52 <elliott> Timwi: i'm having a go at doing it incredibly nonportably :)
19:07:01 <olsner> pretty sure it is, the file descriptors live in the kernel
19:07:25 <olsner> but maybe it shares a syscall with dup3
19:07:41 <elliott> oh, it is a syscall
19:07:54 <elliott> what's the shortest byte-count way to syscall, then :p
19:08:16 <olsner> probably the interrupt, int 81h iirc
19:08:32 <olsner> or is that 81 not-hex, hmm
19:08:48 <twice11> 0x80 it is on linux
19:08:50 <pikhq> elliott: int 80h.
19:08:59 <elliott> right
19:09:24 <elliott> hmm
19:09:32 <pikhq> If you're *also* willing to actually set up vdso access, then it'd be a call to the appropriate system call.
19:09:35 <pikhq> (note: PITA)
19:09:41 <elliott> it occurs to me I have no idea how I would go about finding the machine code of /just/ the main function I defined
19:10:06 <twice11> Stop! We try to get something below 24 bytes!
19:10:50 <olsner> elliott: what do you mean?
19:11:00 <elliott> olsner: like, i can get an ELF .o from nasm
19:11:04 <elliott> and link that with libc with gcc
19:11:10 <elliott> but i just want to extract the specific bytes of main from there
19:11:14 <elliott> and that seems like a pain
19:11:28 <pikhq> elliott: objdump is your friend.
19:11:36 <olsner> just output a flat binary from nasm?
19:11:40 <pikhq> Or that.
19:11:45 <elliott> olsner: that doesn't support external libc references
19:11:47 <elliott> but uh
19:11:54 <elliott> I can't find the header with syscall numbers :(
19:11:56 <elliott> on here
19:12:00 <elliott> so i can't use the syscall thing afaik
19:12:05 <olsner> how would you get those libc references into your char array anyway?
19:12:12 <elliott> true
19:12:35 <elliott> um wait
19:12:38 <elliott> perror isn't a system call
19:12:42 <olsner> nope :)
19:12:42 <pikhq> elliott: sys/syscall.h
19:15:26 <pikhq> Hrm. Apparently glibc 2.14 actually breaks ABI. Hard-core.
19:15:55 <elliott> ugh now why isn't this working
19:16:10 <Timwi> Because it’s not esoteric enough
19:16:17 <olsner> so which glibc is everyone using now, and which century will they be using 2.14?
19:16:49 <pikhq> olsner: It's "just" dropping the RPC interfaces.
19:17:15 <olsner> it has RPC interfaces?
19:17:23 <pikhq> Had.
19:18:10 <pikhq> They're being dropped because a) that's fucking STUPID b) the damned thing really fucked with builds, and wouldn't cross-compile right.
19:18:32 <pikhq> Also, as far as I know, the absolute oldest glibc you'll still find is going to be something like 2.10.
19:18:34 <elliott> gah, even the machine code is long for write
19:18:36 <pikhq> (see RHEL)
19:20:52 <pikhq> Huh.
19:21:00 <pikhq> Apparently Ulrich Drepper no longer works for Red Hat.
19:21:12 <pikhq> He is VP, Technology Division at Goldman Sachs.
19:21:52 <Timwi> Since October 2010 :-p
19:21:58 <pikhq> Yup.
19:36:33 -!- kovacs1 has joined.
19:59:09 -!- CakeProphet has quit (Ping timeout: 252 seconds).
20:00:58 -!- CakeProphet has joined.
20:00:59 -!- CakeProphet has quit (Changing host).
20:00:59 -!- CakeProphet has joined.
20:05:27 <Sgeo> Thank you for making many great points in this conversation.
20:05:56 -!- Tritonio has joined.
20:06:59 <elliott> yes
20:09:52 <zzo38> Is it possible in LLVM to tell it to use different settings for optimization for different parts of the code?
20:10:18 -!- oerjan has joined.
20:10:25 <elliott> I think so, but I'm no expert
20:10:38 <Deewiant> No, but you can split your code into separate bitcode files, optimize each one however you like, and link them together
20:11:18 <zzo38> Is that so even if the API is used?
20:11:28 <Deewiant> That I'm not sure about
20:11:40 <zzo38> I did find the header files for using LLVM API with C
20:11:41 <Deewiant> The API may allow more fine-grained control
20:13:10 <zzo38> I do see a lot of things in those header files. But I do not understand all of it.
20:13:17 <zzo38> A lot of useful things are in there.
20:15:39 -!- CakeProp1et has joined.
20:15:52 -!- CakeProphet has quit (Ping timeout: 276 seconds).
20:18:54 -!- Tritonio has quit (Quit: Leaving).
20:21:45 -!- MigoMipo has quit (Remote host closed the connection).
20:23:48 -!- CakeProp1et has quit (Ping timeout: 240 seconds).
20:24:22 -!- CakeProphet has joined.
20:24:23 -!- CakeProphet has quit (Changing host).
20:24:23 -!- CakeProphet has joined.
20:25:01 <twice11> Wow!
20:25:55 <twice11> Sorry. Wrong window...
20:26:13 <Phantom__Hoover> No CakeProphet is truly a wondrous thing.
20:26:25 <oerjan> there you see him, there you don't
20:26:31 -!- kovacs1 has quit (Ping timeout: 260 seconds).
20:27:24 <elliott> #define __NR_fcntl64 221
20:27:24 <elliott> #define __NR_gettid 224
20:27:26 <elliott> oops
20:27:29 <elliott> #define __NR_fcntl64 221
20:27:29 <elliott> /* 223 is unused */
20:27:30 <elliott> #define __NR_gettid 224
20:27:33 <elliott> :o
20:31:15 <olsner> hmm, how about 222?
20:31:23 <elliott> heh
20:31:26 <elliott> good point
20:31:50 <oerjan> i'm sure poor 223 feels left out too
20:32:00 <oerjan> oh wait
20:32:06 -!- pikhq has quit (Ping timeout: 240 seconds).
20:32:16 -!- pikhq has joined.
20:32:26 <oerjan> Y U NO READING COMPREHENSION
20:32:35 <Phantom__Hoover> olsner, we don't talk about 222 in this channel.
20:33:02 <oerjan> it's a third of evil
20:33:48 <olsner> the number of the 1.33 quarterbeasts
20:44:03 -!- aloril has quit (Ping timeout: 250 seconds).
20:44:22 <Sgeo> http://en.wikipedia.org/wiki/Oil_drop_experiment#Millikan.27s_experiment_and_cargo_cult_science this is downright creepy
20:46:35 <Phantom__Hoover> Sgeo, THE CHARGE ON THE ELECTRON IS RISING
20:46:35 <oerjan> <pikhq> And why would you ever want 0x00 to not be NOP?
20:46:47 <Phantom__Hoover> WE'RE ALL GOING TO DIE
20:47:13 <oerjan> in case you accidentally run into zeroed memory, it might be nice not to have a NOP. theoretically.
20:47:32 -!- cheater8 has quit (Ping timeout: 246 seconds).
20:47:40 <olsner> that's one reason to make 0 a HCF instruction instead of NOP
20:47:49 <olsner> or debug breakpoint or something
20:48:04 <elliott> yeah but zeroing memory is arbitrary :D
20:49:14 <olsner> otoh, a non-zero pattern is better for clearing memory area that you don't want used accidentally, like msvc fills with 0xcc (int3/debug breakpoint)
20:52:37 -!- kovacs1 has joined.
20:53:29 <pikhq> *Clearly* it should be filled with int 80h.
20:53:49 <olsner> pikhq: but that's a two byte instruction
20:54:22 <pikhq> BAH
20:55:25 <olsner> there are a couple of reserved undefined instructions though
20:56:03 <olsner> they are, eh, defined as undefined instruction 1 and 2 or something like that
20:57:01 <elliott> best instructions
20:57:02 <olsner> and their behaviour would be defined as causing the undefined instruction exception
20:57:40 -!- aloril has joined.
20:58:13 <olsner> defined things as "undefined" something is probably the best way to define anything ever :>
20:58:23 <olsner> *defining things
21:04:26 <olsner> hehe, the f00f bug is listed on wikipedia as an HCF instruction :)
21:04:55 -!- CakeProphet has quit (Ping timeout: 244 seconds).
21:05:02 <elliott> i'm a purist
21:05:10 <elliott> it's not an hcf unless the cpu actually catches on fire
21:05:23 <oerjan> > let things = undefined in things
21:05:23 <lambdabot> *Exception: Prelude.undefined
21:05:32 -!- kovacs1 has quit (Ping timeout: 255 seconds).
21:06:06 <oerjan> halt, conquer france
21:06:28 -!- CakeProphet has joined.
21:06:28 -!- CakeProphet has quit (Changing host).
21:06:28 -!- CakeProphet has joined.
21:06:38 <elliott> <oerjan> > let things = undefined in things
21:06:38 <elliott> <lambdabot> *Exception: Prelude.undefined
21:06:44 <elliott> spent a minute waiting for oerjan to correct his pun code there
21:06:45 <elliott> >_<
21:06:55 <oerjan> :D
21:09:42 <olsner> elliott: maybe it's a NOPUR then - no operation until reset
21:09:53 <elliott> no purring
21:09:57 <elliott> its forbiten
21:10:15 <olsner> but it might be doing memory stuff while it's looping, so not sure if it's really no operation
21:11:32 -!- CakeProphet has quit (Ping timeout: 240 seconds).
21:11:34 <pikhq> God. Banshee is a fucking *revolting* media player.
21:11:44 <pikhq> I couldn't use it for 2 minutes.
21:12:37 <pikhq> Why would you *want* it to display albums by the artist tag (as opposed to the album artist tag)?
21:12:59 -!- CakeProphet has joined.
21:13:15 <pikhq> Seriously, I should not have albums under [dialog] simply because some live album happens to have a track of dialog.
21:13:51 <elliott> [dialog] is an artist?
21:14:39 <pikhq> It's a psuedo-artist for tracks of general dialog not really attributable to anything sane in MusicBrainz.
21:15:40 <olsner> that track should have the artist set to whoever is doing the dialog, shouldn't it?
21:15:45 -!- variable has quit (Remote host closed the connection).
21:16:18 <pikhq> olsner: Who the hell are you going to attribute something like "AND WITHOUT FURTHER ADO, THE FOO BARS" to, anyways?
21:16:38 <elliott> find the announcer's name obvs
21:16:42 <olsner> exactly
21:16:46 <elliott> personally id just attribute it to the album artist
21:16:54 <pikhq> Also, that scheme *really* fucks up on albums where the album artist is Various Artists.
21:17:06 <elliott> how many such albums have dialogue tracks
21:17:12 <pikhq> elliott: Not that many.
21:17:13 <elliott> how many such albums are worth listening to
21:17:14 <olsner> The Foo Bars feat. Announcer - Announcing the Foo Bars
21:17:53 <elliott> Person Who Said "And Without Further Ado, The Foo Bars"
21:18:13 <pikhq> That *too* would screw up on Banshee.
21:18:27 <pikhq> It would list *the album* under Person Who Said "And Without Further Ado, The Foo Bars".
21:18:35 <pikhq> In addition to being under The Foo Bars.
21:18:43 <olsner> The Foo Bars feat. Person Who Said "And Without Further Ado, The Foo Bars" - Person Who Said "And Without Further Ado, The Foo Bars" saying "And Without Further Ado, The Foo Bars"
21:19:11 <elliott> olsner: id buy that single
21:19:53 <pikhq> So, yeah. When it takes me all of 15 seconds to find a *major* flaw in your handling of tags, your music program sucks.
21:20:12 -!- variable has joined.
21:20:34 <pikhq> Though, good on it for at least sorting by the artistsort tag and displaying by artist. Can't manage to get Quod Libet to do that.
21:21:03 <elliott> have you tried Clementine lately?
21:21:13 <pikhq> Tempting.
21:21:31 <elliott> it was so disappointing using amarok 2 for the first time :/
21:21:33 <elliott> like... why did you do this
21:21:38 <pikhq> Ah, heck, I will.
21:21:51 <elliott> before that amarok was like itunes done properly
21:21:57 <olsner> one thing I really miss from clementine is a way to get to related music from the currently playing song, or a song listed in the playlist
21:21:58 <pikhq> Yeah, Amarok 2 was saddening.
21:21:59 -!- variable has quit (Remote host closed the connection).
21:22:17 <pikhq> Amarok 1 was fucking t3h awesome. With any luck, so's Clementine.
21:22:17 <olsner> e.g. good song playing from shuffle, rightclick to list all stuff from the same artist
21:22:25 <elliott> olsner: how did that actually work anyway?
21:22:26 <elliott> genre tags?
21:22:40 <elliott> http://upload.wikimedia.org/wikipedia/commons/7/73/Amarok_2.4.png <-- seriously who even designed this
21:22:50 <olsner> spotify does that particular part quite well since artists and albums are clickable links
21:22:53 -!- variable has joined.
21:22:54 <elliott> nobody wants to fucking read a wikipedia article in the centre of their ugly media player
21:22:56 <elliott> the whitespace is all fucked up
21:22:58 <elliott> the left pane is almost useless
21:23:06 <elliott> and the useful shit at the right is stripped down to the point of unusability
21:23:07 <elliott> why
21:23:12 <elliott> oh because its FANCY KDE PANEL WIDGETS
21:23:45 <pikhq> Seriously people, *just eat your fucking dog food*. that alone would solve so many usability woes.
21:23:45 <olsner> elliott: I didn't mean any fancy stuff though, just the *really obvious* stuff that you can do with a media library
21:23:47 <elliott> <olsner> e.g. good song playing from shuffle, rightclick to list all stuff from the same artist
21:24:00 <elliott> if clementine has any kind of smart browser functionality, which i'm like 99.999 percent sure it does, this should actually be like
21:24:04 <elliott> a sixty line patch
21:24:18 <olsner> exactly
21:24:25 <elliott> have a go at it :P
21:24:33 <elliott> or just make an issue.
21:24:59 <elliott> http://www.clementine-player.org/
21:25:00 <elliott> wow
21:25:01 <elliott> pretty fancy site
21:25:17 <elliott> i find it amusing that the most native-looking screenshots are on windows
21:25:41 <elliott> oh man
21:25:51 <olsner> doing it myself? it'll be horrible code and then I'd have to get all involved in their "community" to send a patch in and meh... I don't want anything more to do with it than have this particular thing fixed anyway
21:25:52 <elliott> did they clone the amarok ... whats even the name for the bar visualisation
21:25:53 <elliott> that everything has
21:25:55 <elliott> probably winamp started it
21:26:00 <olsner> isn't it a fork of amarok?
21:26:00 <elliott> they cloned it identically, awesome :D
21:26:06 <elliott> olsner: no, "rewrite"
21:26:12 <elliott> olsner: they basically recreated amarok onepointfour in qtfour
21:26:15 <elliott> from scratch
21:26:32 <elliott> (But Better, one presumes)
21:26:39 <olsner> sigh
21:26:49 <elliott> olsner: um you realise that amarok onepointfour was tied to kde?
21:26:54 <elliott> and clementine is meant to be cross-platform
21:26:58 <elliott> so forking it would just not be tenable
21:27:03 <elliott> you'd have to port from qtthree + kdethree -> qtfour
21:27:08 <elliott> which would involve rewriting most of it anyway
21:28:13 <elliott> well theres http://code.google.com/p/clementine-player/issues/detail?id=273&q=similar&colspec=ID%20Type%20Status%20Priority%20Milestone%20Owner%20Summary%20Stars
21:28:15 <olsner> I used amarok in !kde just fine, but still in X of course
21:28:19 <elliott> not quite the same thing though
21:28:23 <elliott> http://code.google.com/p/clementine-player/issues/detail?id=1162&q=similar&colspec=ID%20Type%20Status%20Priority%20Milestone%20Owner%20Summary%20Stars
21:28:23 <elliott> similar
21:28:28 <elliott> olsner: still depends on a shitload of kde libs and daemons
21:29:16 <pikhq> Dammit; one issue with Clementine. Can't sort by one tag and display a different.
21:29:42 <elliott> pikhq: how often do you actually care about the exact ordering of your artists? its not like type-to-search isnt faster
21:29:47 <elliott> and most of the time i just use shuffle anyway
21:30:18 <pikhq> elliott: For artists, it's a minor thing. For albums, I *really* want it to sort by date.
21:30:42 <elliott> why not just sort by date then
21:31:19 <pikhq> It doesn't have the concept of sorting by things. It has the concept of grouping by things.
21:37:49 <pikhq> In short, it's too stupid for its own good.
21:38:34 <oerjan> > [x | x <- [1..10], then group by x `mod` 3]
21:38:35 <lambdabot> Illegal transform or grouping list comprehension: use -XTransformListCompNo...
21:38:40 <oerjan> darn
21:38:54 <elliott> oerjan: "then group by"
21:38:57 <pikhq> Oh, yeah, and it also seems to struggle with the concept of album artists.
21:38:57 <elliott> hasql?
21:39:27 <pikhq> If an album has multiple artists on it, but a single album artist, it gets filed under "Various Artists".
21:39:28 <oerjan> !haskell {-# LANGUAGE TransformListComp #-} main = print [x | x <- [1..10], then group by x `mod` 3]
21:39:34 <EgoBot> ​/tmp/input.23664.hs:1:13: unsupported extension: TransformListComp
21:39:56 <Phantom__Hoover> pikhq, saw this and thought of you: http://www.cracked.com/blog/5-reasons-internet-access-in-america-disaster/
21:39:57 <oerjan> what's that *No up there
21:40:23 <oerjan> !haskell {-# LANGUAGE TransformListCompNot #-} main = print [x | x <- [1..10], then group by x `mod` 3]
21:40:26 <EgoBot> ​/tmp/input.23757.hs:1:13:
21:40:47 <oerjan> hm...
21:40:55 <oerjan> !haskell main = print [x | x <- [1..10], then group by x `mod` 3]
21:41:13 <oerjan> Gregor: UPGRADE
21:41:29 <oerjan> grmble
21:44:23 -!- pikhq_ has joined.
21:44:28 <oerjan> (http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#generalised-list-comprehensions, anyway)
21:45:49 -!- copumpkin has joined.
21:46:05 <oerjan> > groupBy ((==) `on` (% 3)) [1..10] -- old style
21:46:06 <lambdabot> [[1],[2],[3],[4],[5],[6],[7],[8],[9],[10]]
21:46:17 <oerjan> hm that's not very well grouped
21:46:40 <olsner> groupBy only groups adjacent elements
21:46:44 <oerjan> i know
21:47:04 -!- pikhq has quit (Ping timeout: 252 seconds).
21:47:09 <oerjan> there's just no short way to express this without the extension i guess
21:47:33 <oerjan> > groupBy ((==) `on` (% 3)) $ sortBy (comparing (% 3)) [1..10] -- old style
21:47:34 <lambdabot> [[1],[2],[3],[4],[5],[6],[7],[8],[9],[10]]
21:47:39 <oerjan> er what
21:47:48 <oerjan> :t comparing
21:47:49 <lambdabot> forall b a. (Ord a) => (b -> a) -> b -> b -> Ordering
21:48:01 <oerjan> oh duh :P
21:48:14 <oerjan> > groupBy ((==) `on` (`mod` 3)) $ sortBy (comparing (`mod` 3)) [1..10] -- old style
21:48:15 <lambdabot> [[3,6,9],[1,4,7,10],[2,5,8]]
21:48:29 <olsner> > 1 % 3
21:48:30 <lambdabot> 1 % 3
21:48:33 <olsner> heh
21:48:46 <oerjan> that's actually haskell's fraction notation
21:48:59 <oerjan> > 1%2 + 1%3
21:49:00 <lambdabot> 5 % 6
21:49:12 <olsner> yeah realized about the time I saw your oh duh and revised code
21:50:55 <oerjan> > scanl1 (+) $ map recip [1 :: Int ..]
21:50:55 <lambdabot> No instance for (GHC.Real.Fractional GHC.Types.Int)
21:50:55 <lambdabot> arising from a use o...
21:51:03 <oerjan> oh hm
21:51:11 <oerjan> > scanl1 (+) $ map (1%) [1 :: Int ..]
21:51:12 <lambdabot> [1 % 1,3 % 2,11 % 6,25 % 12,137 % 60,49 % 20,363 % 140,761 % 280,7129 % 252...
21:51:31 <oerjan> > scanl1 (+) $ map (1%) [1 ..]
21:51:32 <lambdabot> [1 % 1,3 % 2,11 % 6,25 % 12,137 % 60,49 % 20,363 % 140,761 % 280,7129 % 252...
21:51:42 <oerjan> > scanl1 (+) $ map (1%) [1000 :: Int ..]
21:51:43 <lambdabot> [1 % 1000,2001 % 1001000,1503001 % 501501000,2009011003 % 503005503000,6300...
21:51:55 <oerjan> > scanl1 (+) $ map (1%) [1000000 :: Int ..]
21:51:56 <lambdabot> [1 % 1000000,2000001 % 1000001000000,1500003000001 % 500001500001000000,200...
21:52:06 <oerjan> darn short lines
21:52:35 <twice11> lambdabot seems to run on a 64 bit system.
21:53:00 <oerjan> > (1 :: Integer) == (1 :: Int64)
21:53:00 <lambdabot> Couldn't match expected type `GHC.Integer.Type.Integer'
21:53:01 <lambdabot> against inf...
21:53:08 <oerjan> > (1 :: Integer) == (1 :: Int32)
21:53:09 <lambdabot> Couldn't match expected type `GHC.Integer.Type.Integer'
21:53:09 <lambdabot> against inf...
21:53:11 <oerjan> oh wait
21:53:16 <oerjan> > (1 :: Int) == (1 :: Int64)
21:53:17 <lambdabot> Couldn't match expected type `GHC.Types.Int'
21:53:17 <lambdabot> against inferred type ...
21:53:21 <oerjan> > (1 :: Int) == (1 :: Int32)
21:53:22 <lambdabot> Couldn't match expected type `GHC.Types.Int'
21:53:22 <lambdabot> against inferred type ...
21:53:29 <oerjan> huh
21:53:32 <twice11> oerjan: That can't work.
21:53:42 <twice11> Int, Int32 and Int64 are distinct types.
21:53:47 -!- CakeProphet has quit (Ping timeout: 240 seconds).
21:53:51 <oerjan> i'd have imagined one of the types to be a synonym
21:53:55 <twice11> > maxBound :: Int64
21:53:55 <lambdabot> 9223372036854775807
21:54:00 <twice11> maxBound :: Int
21:54:13 <oerjan> ...
21:54:21 <twice11> > maxBound :: Int
21:54:22 <lambdabot> 9223372036854775807
21:54:25 <olsner> that'd be a bad idea since it'd make some haskell programs subtly dependent on the local word size
21:54:30 <elliott> what olsner said
21:54:45 <oerjan> olsner: um they _already_ do that if they use Int
21:54:58 <elliott> yes but not in a way
21:55:01 <elliott> that could make it type on one machine
21:55:02 <elliott> but not another
21:55:03 <elliott> that's just _sick_
21:55:07 <oerjan> hm
21:55:16 <olsner> instead it types on all, but runs differently :)
21:55:34 <elliott> well I would consider using more than the allowed range for Ints unportable/undefined anyway
21:55:34 <monqy> gross but less so
21:55:47 <elliott> i.e., you can do it as long as you acknowledge you are creating a "GHC program" that only works on some machines
21:56:00 <elliott> the allowed range = by the report that is
21:56:09 <oerjan> > scanl1 (+) $ map (1%) [1000000 :: Int32 ..]
21:56:10 <lambdabot> [1 % 1000000,666667 % (-242126656),353137899 % 820529344,(-1022068671) % (-...
21:56:16 <oerjan> MUCH BETTER
21:56:19 <olsner> yeah, you can't count on more than 31 bits in an Int anyway
21:56:31 <twice11> Do they really guarantee 31?
21:56:39 <elliott> yes
21:56:45 <olsner> that's the number I remember yes
21:56:47 <twice11> IIRC not only ocaml, but also haskell have just 28 bits or so.
21:56:51 <elliott> thirty-two with a tag bit for GC :)
21:56:59 <oerjan> twice11: no it's thirtysomething
21:57:04 <twice11> Oh, 31 including sign. That's possible.
21:57:16 -!- zzo38 has quit (Remote host closed the connection).
21:57:29 <monqy> does anyone use a sign bit ever
21:57:45 <oerjan> ghc of course doesn't put the tag bit in the same word, so uses 2^n size
21:58:06 <elliott> The finite-precision integer type Int covers at least the range [ - 229, 229 - 1].
21:58:08 <elliott> --haskell ninety-eight
21:58:13 <elliott> that's two to the power of twenty nine
21:58:17 <elliott> oerjan: u lied
21:58:19 <oerjan> monqy: um two's complement is the most common representation
21:58:20 <elliott> or wait
21:58:25 <elliott> that's thirty bits, right?
21:58:26 <oerjan> elliott: darn
21:58:31 <oerjan> oh right
21:58:31 <olsner> so that's 30 bits of two's complement
21:58:31 <monqy> oerjan: yeah that's what I thought
21:58:31 <elliott> so two tag bits, weir
21:58:31 <elliott> d
21:59:09 <oerjan> monqy: and you can consider one bit as sign, although it isn't just negating what it would be without it of course
21:59:29 <monqy> oh right
22:00:36 <Gregor> ROBOTS EAT PEOPLE
22:00:37 <olsner> elliott: verbatim is pronounced ver-bay-tim, right? but can you say verb-a-tim instead or is that definitely wrong?
22:00:37 <Gregor> RUN
22:01:03 <elliott> olsner: i dont even know with pronunciation and like wtf
22:01:04 <elliott> `quote like wtf
22:01:08 <HackEgo> 131) <fungot> alise: why internet is like wtf
22:01:09 <Gregor> olsner: I've never heard anyone pronounce it the latter way, I probably wouldn't recognize that pronunciation.
22:01:18 <elliott> verb-a-tim is my mental pronunc
22:01:22 <oerjan> elliott: two tag bits is used for some mark and sweep algorithms, isn't it
22:01:23 <elliott> but then im a socially isolated weirdo
22:01:36 <Phantom__Hoover> Gregor, verbatim is how I'd pronounce it, and I'm fairly sure I've said it at some point.
22:01:43 <elliott> Phantom__Hoover: congrats on conveying 0 information
22:01:48 <elliott> "verbatim"
22:01:52 <olsner> I wonder how the romans pronounced it
22:01:55 <monqy> I pronounce "verbatim" "verbatim" too
22:02:19 <Phantom__Hoover> *facepalm*
22:02:26 <elliott> I pronounce "verbatim" "roman"
22:02:28 <Phantom__Hoover> olsner, werbahtim, I assume.
22:02:37 <elliott> we're 'bating
22:02:52 <oerjan> elliott: with that three color thing it requires 2 tag bits
22:02:55 <ralc> mastur?
22:03:04 <elliott> http://www.haskell.org/haskellwiki/Amb THIS CODE IS STILL AS COOL AS IT WAS WHEN I WROTE IT THREE YEARS AGO
22:03:16 <elliott> POLYMORPHIC LIST MONAD TRANSFORMER WITH CUT AWW YEAH
22:05:43 <oerjan> olsner: the a in the second last syllable is long, so it carries the stress (although the romans iirc considered the length more important than the stress)
22:06:08 <oerjan> http://en.wiktionary.org/wiki/verbatim#Latin
22:06:48 <oerjan> (their poetry was based on long vs. short syllable meters)
22:08:59 <olsner> so verbum means word, and -atim is an adverbial suffix, so basically it's "wordly"?
22:09:47 <oerjan> http://en.wiktionary.org/wiki/-atim#Latin
22:09:52 <oerjan> by the word, i guess
22:10:08 <oerjan> or wait
22:10:13 <oerjan> word by word
22:10:30 <olsner> so there are more than this particular adverbial suffix and it adds additional meaning?
22:10:56 <oerjan> so it seems
22:11:19 <olsner> I think latin suddenly became too hard to bother with
22:12:04 <olsner> but I wonder, how do we know how the romans pronounced things? preserved mp3:s on millenia-old memory sticks?
22:12:04 <oerjan> heh my impression is that it has scores of little words and stuff
22:12:29 <oerjan> i don't think we actually know precisely
22:13:38 <oerjan> maybe there is an ancient pronunciation guide preserved, i don't know
22:14:56 <oerjan> "Pronunciation of Latin by the Romans in ancient times has been reconstructed from a variety of data, such as the evolution of features of the Romance languages, the representation of Latin words in other languages, such as Greek, the metrical patterns of Latin poetry, and more."
22:15:09 <oerjan> http://en.wikipedia.org/wiki/Latin#Phonology
22:15:37 <oerjan> hm i recall seeing metrical patterns mentioned as a guide
22:16:05 <oerjan> basically since latin script doesn't tell you which vowels are long and short, you need to use poetry to find out :P
22:16:54 <oerjan> olsner: did you know latin doesn't actually have one word for "yes"? you have to express it using one of several methods
22:17:37 <olsner> oerjan: I did not know
22:18:07 * oerjan doesn't actually know enough latin to speak
22:18:21 -!- Lymia has quit (Ping timeout: 240 seconds).
22:18:55 -!- Lymia has joined.
22:19:37 <oerjan> i think "sic" (thus) is the one that evolved into what modern romance languages use
22:26:14 -!- Timwi has quit.
22:40:52 -!- ralc has quit (Quit: Leaving).
22:45:54 <Phantom__Hoover> http://en.wikipedia.org/wiki/Anatoli_Bugorski
22:46:00 <Phantom__Hoover> This raises so many questions.
22:46:36 <Phantom__Hoover> Like, "how stupid do you have to be to stick your head into a proton beam even if the safety mechanisms fail?"
22:47:33 <elliott> Excuse me he is awesome.
22:48:08 -!- elliott has quit (Quit: Leaving).
22:48:29 <Phantom__Hoover> Oh god please don't tell me elliott has left to find the nearest proton beam.
22:48:35 <olsner> "remained a poster boy for Soviet and Russian radiation medicine" ... basically he randomly survived due to his own awesomeness with no help from his doctors, and now he's a poster child for great medicine?
22:48:43 -!- elliott has joined.
22:48:54 <Phantom__Hoover> olsner, it was Soviet Russia after all.
22:53:02 -!- augur has quit (Remote host closed the connection).
23:01:22 <oerjan> in soviet russia, radiation survives you!
23:04:19 -!- pikhq has joined.
23:05:25 -!- Patashu has joined.
23:06:08 -!- augur has joined.
23:07:33 -!- pikhq_ has quit (Ping timeout: 258 seconds).
23:17:29 -!- Wamanuz3 has quit (Read error: Connection reset by peer).
23:20:52 <Phantom__Hoover> Wait "lascivious" is spelt that way.
23:21:03 <Phantom__Hoover> I always thought it was "laviscious".
23:21:38 <Phantom__Hoover> This is nearly as bad as the time I thought "Fibonacci" was spelt "Fibocanni".
23:21:41 -!- Wamanuz has joined.
23:22:57 <oerjan> a viscous lie indeed
23:23:27 * oerjan gets annoyed by people spelling it fibbonaci too
23:24:17 <Sgeo> Ugh, I can't prove it, don't quite have the patience and statistics, but I suspect there is no difference in minimum functional gravity between altitudes
23:24:42 <Phantom__Hoover> Minimum functional gravity?
23:24:42 <Sgeo> That is, the least amount of gravity such that gravity doesn't stop pulling once it's started
23:24:55 <Phantom__Hoover> OK your explanation makes even less sense.
23:25:09 <Phantom__Hoover> Gravity... doesn't stop pulling... once it's started?
23:25:16 <Phantom__Hoover> Gravity is *always* pulling.
23:25:19 <Phantom__Hoover> That's how it works.
23:25:22 <Sgeo> As far as I can tell, sometimes, gravity starts pulling, but then stop
23:25:23 <Sgeo> stops
23:25:26 <pikhq> Sgeo: You seem to have a very, very confused idea of how gravity works.
23:25:32 <Phantom__Hoover> Um... Sgeo.
23:25:32 <Sgeo> This is in SL
23:25:37 <pikhq> Oh, never mind.
23:25:37 <Sgeo> I thought this was obvious
23:25:43 <Phantom__Hoover> You should really really really have clarified that.
23:26:14 <pikhq> Linden Labs seems to have a very confused idea of how gravity should be implemented.
23:26:17 <pikhq> :P
23:26:26 <Sgeo> They just use Havok
23:26:59 <pikhq> That's new.
23:27:04 -!- CakeProphet has joined.
23:27:04 -!- CakeProphet has quit (Changing host).
23:27:04 -!- CakeProphet has joined.
23:27:14 <oerjan> Phantom__Hoover: um he's been speaking about it several times before
23:27:29 <Phantom__Hoover> Sgeo, isn't it because they use FP for everything?
23:27:41 <Sgeo> Phantom__Hoover, yes
23:27:42 <Phantom__Hoover> oerjan, he's also developed an interest in /r/AskScience, so either was plausible.
23:27:44 <Sgeo> I think
23:27:54 <oerjan> heh
23:35:11 -!- augur has quit (Remote host closed the connection).
23:38:06 <Phantom__Hoover> Cold War protest stuff is quite interesting in hindsight.
23:38:49 <oerjan> > ("fi"++).concat<$>sequence[id,join((:).head)]`sequence`["bo","na","ci"]
23:38:50 <lambdabot> Couldn't match expected type `[a]' against inferred type `a1 -> a1'
23:40:45 <oerjan> > ("fi"++).concat<$>sequence[id,join((:).head)]`mapM`["bo","na","ci"]
23:40:47 <lambdabot> ["fibonaci","fibonacci","fibonnaci","fibonnacci","fibbonaci","fibbonacci","...
23:40:54 -!- zzo38 has joined.
23:41:03 -!- zzo38 has quit (Remote host closed the connection).
23:41:28 -!- pikhq_ has joined.
23:41:28 -!- pikhq has quit (Ping timeout: 246 seconds).
23:41:52 <CakeProphet> > let ncycle a b = map ((+a) . (`mod` (a+b)) [1..] in ncycle 10 15
23:41:53 <lambdabot> <no location info>: parse error on input `in'
23:42:04 <CakeProphet> > let ncycle a b = map ((+a) . (`mod` (a+b))) [1..] in ncycle 10 15
23:42:05 <lambdabot> [11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,10...
23:42:22 <CakeProphet> er, no.
23:42:47 <CakeProphet> > let ncycle a b = map ((`mod` b).(+a)) [1..] in ncycle 10 15
23:42:48 <lambdabot> [11,12,13,14,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,0,1,2,3,4,5,6,7,8,9,10,11,1...
23:42:58 <CakeProphet> ....bleh, nevermind. :P
23:43:13 * CakeProphet just woke up, and did not think that one through.
23:43:20 <oerjan> Sgeo: if they use FP, why is their scripting language an imperative hack :(
23:44:12 <elliott> whoosh
23:44:39 <oerjan> elliott: yeah yeah i _guessed_ that's not what the acronym is for :P
23:45:01 <Deewiant> > let ncycle a b = liftM2 (:) head (takeWhile.(/=).head <*> tail) $ map ((`mod` b).(+a)) [1..] in ncycle 10 15
23:45:04 <lambdabot> [11,12,13,14,0,1,2,3,4,5,6,7,8,9,10]
23:45:30 <monqy> fp can stand for too many things it makes me sad :(
23:45:46 <CakeProphet> My regular expression language is now called FP.
23:45:53 * oerjan wonders what CakeProphet and Deewiant are actually trying to make
23:46:04 <CakeProphet> I was trying to make a more efficient cycle over numeric ranges.
23:46:22 <CakeProphet> but using mod doesn't work for that...
23:46:34 <CakeProphet> or at least not the way I'm using it.
23:46:40 <oerjan> what's wrong with cycle [10..15]
23:46:51 <CakeProphet> I have a latent fear of ++
23:47:00 <CakeProphet> it comes from programming in Python long ago.
23:47:45 <Phantom__Hoover> CakeProphet, why, the O(n) execution?
23:47:49 <oerjan> yours can easily be _more_ inefficient spacewise, since it doesn't use a cyclic structure
23:48:14 <CakeProphet> Phantom__Hoover: yes.
23:48:24 <oerjan> unless it's a really long cycle which you _don't_ want to hold on to, i guess
23:48:39 <CakeProphet> it's just a strange reflex I have from programming in Python, where one of the rules of thumb is to never chain together large amounts of list concatenation.
23:48:56 <CakeProphet> basically, optimization in Python consists of relying on as many C built-ins as possible, or writing your own.
23:49:04 <oerjan> CakeProphet: note that cycle doesn't actually _do_ a large amount of ++, just a single one
23:49:08 <oerjan> @src cycle
23:49:08 <lambdabot> cycle [] = undefined
23:49:08 <lambdabot> cycle xs = xs' where xs' = xs ++ xs'
23:49:28 <CakeProphet> oerjan: it does as many ++'s as you traverse...
23:49:38 <CakeProphet> because that's a recursive definition there.
23:49:54 <oerjan> CakeProphet: well it does the length of xs if that's what you mean
23:51:24 <oerjan> once you reach the end of the cycle it uses sharing
23:51:52 <CakeProphet> oh, so there's some optimization afoot.
23:52:18 <Deewiant> CakeProphet: That's why it's not defined as 'cycle xs = xs ++ cycle xs'
23:52:20 <oerjan> it's not really optimization, it's just the fact that xs' is referred to inside itself
23:52:45 <oerjan> hm...
23:52:58 -!- augur has joined.
23:53:15 <CakeProphet> well, space efficiency wasn't the concerning as much as execution.
23:53:26 <oerjan> CakeProphet: it is quite possible that ghc does _actual_ optimization on the result, though
23:53:48 <oerjan> if you use cycle in the right way, it might be inlined as an actual loop
23:54:12 <CakeProphet> Ah, I see.
23:54:19 <CakeProphet> !show acro
23:54:19 <EgoBot> haskell import System.Random; import Control.Monad; main = do {len <- pick [2..10]; putStrLn =<< (replicateM len $ pick ['A'..'Z'])} where pick a = randomRIO (0, length a - 1) >>= return . (a !!)
23:54:24 <CakeProphet> any idea why this is so slow?
23:54:33 <CakeProphet> or is it just egobot taking a long time?
23:54:35 <CakeProphet> !acro
23:54:40 <EgoBot> OJMWQZQOLE
23:54:44 <elliott> night
23:54:51 * CakeProphet waves.
23:54:52 -!- elliott has quit (Quit: Leaving).
23:56:39 <oerjan> CakeProphet: well egobot recompiles it each time
23:56:52 <CakeProphet> ah okay, that's probably it.
23:57:02 <CakeProphet> I've actually notice slowness with all of the Haskell userinterps so that makes sense.
23:57:09 <CakeProphet> *noticed
23:57:34 <oerjan> what's more it tried to compile it as an expression first before as a module
23:57:37 <oerjan> *tries
23:58:50 <oerjan> hm...
←2011-06-10 2011-06-11 2011-06-12→ ↑2011 ↑all