←2011-11-19 2011-11-20 2011-11-21→ ↑2011 ↑all
00:00:27 <Sgeo> :t var
00:00:28 <lambdabot> forall a. String -> Sym a
00:00:34 <CakeProphet> shachaf: mission accomplished.
00:00:51 <shachaf> CakeProphet: Hmm?
00:00:52 <Sgeo> > var . unlines . show $ [1..]
00:00:53 <lambdabot> Couldn't match expected type `[GHC.Types.Char]'
00:00:53 <lambdabot> against inferred ty...
00:00:58 <shachaf> Does it cut it off by number of character or number of lines?
00:01:00 <monqy> CakeProphet did you do it
00:01:03 <CakeProphet> Sgeo doesn't get unlines
00:01:04 <CakeProphet> monqy: yes
00:01:08 <Sgeo> :t unlines
00:01:09 <lambdabot> [String] -> String
00:01:22 <CakeProphet> its like lines but un-
00:01:23 <monqy> has haskell said anything
00:01:25 <shachaf> > var . unlines . map pure $ "abcdefghijklmn"
00:01:27 <lambdabot> a
00:01:27 <lambdabot> b
00:01:27 <lambdabot> c
00:01:27 <lambdabot> d
00:01:27 <lambdabot> e
00:01:28 <CakeProphet> monqy: I left
00:01:29 <lambdabot> [9 @more lines]
00:01:41 <shachaf> Hah. Not so spammable now, is it?
00:01:49 <Sgeo> > var . unlines . map show $ [1..]
00:01:51 <lambdabot> 1
00:01:51 <lambdabot> 2
00:01:51 <lambdabot> 3
00:01:51 <lambdabot> 4
00:01:51 <lambdabot> 5
00:01:53 <lambdabot> [17 @more lines]
00:01:55 <CakeProphet> shachaf: that's 4 too many lines of spam
00:02:05 <shachaf> lambdabot has other commands that output more than one line.
00:02:07 <shachaf> @djinn-env
00:02:07 <lambdabot> data () = ()
00:02:08 <lambdabot> data Either a b = Left a | Right b
00:02:08 <lambdabot> data Maybe a = Nothing | Just a
00:02:08 <lambdabot> data Bool = False | True
00:02:08 <lambdabot> data Void
00:02:09 <lambdabot> type Not x = x -> Void
00:02:11 <lambdabot> class Monad m where return :: a -> m a; (>>=) :: m a -> (a -> m b) -> m b
00:02:13 <lambdabot> class Eq a where (==) :: a -> a -> Bool
00:02:15 <lambdabot> data Thrice f x = Thrice (f (f (f x)))
00:02:19 <CakeProphet> shachaf: yes but none of those commands allow arbitrary strings.
00:02:19 <lambdabot> data O a b x = O (a (b x))
00:02:21 <lambdabot> data Tri f a = Tri (f a) (f a) (f a)
00:02:23 <lambdabot> Plugin `djinn' failed with: thread killed
00:02:35 <CakeProphet> shachaf: THERE'S TOTALLY A DIFFERENCE OKAY
00:02:45 <Sgeo> @djinn a -> a
00:02:46 <lambdabot> f a = a
00:02:56 <shachaf> CakeProphet: lambdabot just assumes that you'll be nice.
00:02:58 <Sgeo> Ok, so djinn thread dying != dkinn dead
00:03:08 <shachaf> CakeProphet: You can also get @admin-ed trivially.
00:03:16 <Sgeo> @admin
00:03:17 <lambdabot> Not enough privileges
00:03:31 <CakeProphet> shachaf: yes I know of that one.
00:03:40 * Sgeo doesn't
00:03:43 <CakeProphet> #haskell was way too spammy as it is.
00:03:49 <CakeProphet> just from the few seconds I was there.
00:04:07 <shachaf> CakeProphet: You came in in the mdidle of a game of golf, I think.
00:04:40 <CakeProphet> sounds fun.
00:04:43 <shachaf> elliott elliott elliott
00:04:52 <elliott> hi shachaf
00:04:53 <shachaf> It's a pretty good nick to type.
00:04:59 <shachaf> Not as good as geheimdienst, though.
00:05:05 <CakeProphet> > unwords $ fix (("elliott ":) . scanl (++) "elliott ")
00:05:07 <lambdabot> "elliott elliott elliott elliott elliott elliott elliott elliott elliot...
00:05:53 * Sgeo still needs to wrap his mind around folds and scans and unfolds
00:06:02 <CakeProphet> fold is easy.
00:06:09 <elliott> Sgeo:
00:06:09 <CakeProphet> scan is also easy
00:06:11 <elliott> > foldr f z [a,b,c,d]
00:06:12 <lambdabot> f a (f b (f c (f d z)))
00:06:13 <Sgeo> An unfold's just a way to make a list around an arbitrary function, right?
00:06:15 <elliott> > foldl f z [a,b,c,d]
00:06:16 <lambdabot> f (f (f (f z a) b) c) d
00:06:23 <elliott> > foldl1 f [a,b,c,d]
00:06:24 <lambdabot> f (f (f a b) c) d
00:06:28 <elliott> HTH.
00:06:40 <elliott> foldr f z is just s/(:)/f/, s/[]/z/.
00:06:59 <Sgeo> elliott, ooh, that's a nice way of thinking about it
00:06:59 <shachaf> unfoldr is annoying.
00:07:10 <elliott> Just pretend unfolds don't exist.
00:07:12 <elliott> They're ugly.
00:07:13 <Sgeo> :t unfoldr
00:07:14 <elliott> Also nobody ever uses them.
00:07:14 <lambdabot> forall b a. (b -> Maybe (a, b)) -> b -> [a]
00:07:22 <elliott> But what they do is pretty obvious.
00:07:26 <Gregor> !c printf("%d %d\n",9<<16,9<<16-1)
00:07:31 <EgoBot> 589824 294912
00:07:32 <elliott> Return Nothing, ends the list. Return Just (a,b), a gets added to the list and we start again with b.
00:07:36 <shachaf> elliott: All I said was that it was annoying.
00:07:38 <Gregor> Whoopsie poopsie.
00:07:45 <elliott> shachaf: So?
00:07:49 <elliott> Gregor: lol
00:07:53 <Sgeo> > unfoldr (\i -> Just (negate i, negate i)) 1
00:07:54 <lambdabot> [-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1...
00:07:55 <elliott> Gregor how big should my pools be.
00:08:03 <CakeProphet> `run echo "test" > /dev/audio
00:08:07 <Sgeo> > unfoldr (\i -> Just (i, negate i)) 1
00:08:08 <lambdabot> [1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1...
00:08:08 <HackEgo> bash: /dev/audio: Permission denied
00:08:09 <Phantom_Hoover> :t unfoldl
00:08:10 <lambdabot> Not in scope: `unfoldl'
00:08:10 <shachaf> Hmm, what if unfoldr's function returned a list instead of a Maybe?
00:08:13 <Phantom_Hoover> :t unfoldr
00:08:14 <elliott> > unfoldr (Just <$> id <*> succ) 0
00:08:14 <lambdabot> forall b a. (b -> Maybe (a, b)) -> b -> [a]
00:08:15 <lambdabot> Couldn't match expected type `a1 -> Data.Maybe.Maybe (a, b)'
00:08:15 <lambdabot> agains...
00:08:18 <elliott> > unfoldr (Just <$> id <*> succ) 0
00:08:19 <lambdabot> Couldn't match expected type `a1 -> Data.Maybe.Maybe (a, b)'
00:08:19 <lambdabot> agains...
00:08:21 <shachaf> It would be sort of like concatMap.
00:08:23 <CakeProphet> permission denied? I can't fathom why.
00:08:26 <shachaf> Except not a lot like concatMap.
00:08:28 <elliott> > unfoldr (Just <$> ((,) <$> id <*> succ)) 0
00:08:29 <lambdabot> [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,...
00:08:44 <elliott> > unfoldr (fmap Just $ liftA2 (,) id succ) minBound
00:08:45 <lambdabot> [(),*Exception: Prelude.Enum.().succ: bad argument
00:08:51 <elliott> > unfoldr (fmap Just $ liftA2 (,) id succ) minBound :: [Word8]
00:08:52 <lambdabot> [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,...
00:09:00 <CakeProphet> WOW INCREDIBLE
00:09:07 <CakeProphet> unfodlr, SO POWREFUL
00:09:09 <elliott> shachaf: Would that make any sense?
00:09:17 * Gregor reappears
00:09:20 <elliott> shachaf: What would [(1,x),(2,y)] mean? the x is pointless.
00:09:22 <Gregor> <elliott> Gregor how big should my pools be.
00:09:27 <Gregor> elliott: Depends, what for :P
00:09:29 <shachaf> elliott: Well, it could make a sort of tree.
00:09:32 <elliott> shachaf: You'd want a list where [] takes a value of a different type
00:09:38 <shachaf> Or it could concatenate the lists.
00:09:44 <Gregor> elliott: I found with GGGGC that so long as you can handle multiple pools well, getting more than a few megs doesn't help you much. Mine are 16MB.
00:09:49 <elliott> Gregor: @ :P
00:09:52 * shachaf hasn't thought it through. That's what you people are for.
00:10:00 <elliott> Gregor: 16 megs isn't practical, since there could be literally millions of these.
00:10:01 <copumpkin> elliott: I am disappoint. liftA2 (,) ?
00:10:09 <elliott> Gregor: Well, I suppose it'd WORK.
00:10:16 <elliott> Gregor: But I'd rather stay smaller to start with :P
00:10:18 <CakeProphet> monqy: perl has concatmap
00:10:23 <elliott> I think I'm going to end with variably-sized pools anyway.
00:10:24 <CakeProphet> monqy: what now?
00:10:27 <elliott> copumpkin: Yes, what of it?
00:10:29 <copumpkin> :t Just . (id &&& succ)
00:10:30 <lambdabot> forall b. (Enum b) => b -> Maybe (b, b)
00:10:33 <elliott> Applicative style was getting noisy there :P
00:10:36 <elliott> copumpkin: I don't like arrows, maaaaan.
00:10:45 <monqy> CakeProphet: hi
00:10:46 <copumpkin> that operator is so much bigger than arrows
00:10:48 <CakeProphet> monqy: hi
00:10:52 <copumpkin> it shouldn't be in Control.Arrow
00:11:01 <elliott> copumpkin: Yes, but while it is, I won't use it :)
00:11:10 <copumpkin> pfft
00:11:17 <elliott> copumpkin: It's in one of Kmett's thousand packages, I think bifunctors, but it has different strictness properties.
00:11:19 <CakeProphet> !perl print map {$_, $_+1} (1..5)
00:11:20 <copumpkin> then how about
00:11:20 <EgoBot> 1223344556
00:11:41 <copumpkin> :t (Just . fmap succ) :: a -> Maybe (a, a)
00:11:42 <lambdabot> Occurs check: cannot construct the infinite type: a = (a, a)
00:11:43 <lambdabot> In the expression: (Just . fmap succ) :: a -> Maybe (a, a)
00:11:44 <copumpkin> gah
00:11:47 <copumpkin> I fail
00:11:50 <copumpkin> :(
00:11:55 <CakeProphet> !perl print map {$_-1, $_, $_+1, $_*2} (1..5)
00:11:55 <EgoBot> 012212342346345845610
00:12:04 <copumpkin> :t (Just . fmap succ . join (,)) :: a -> Maybe (a, a)
00:12:05 <lambdabot> Could not deduce (Enum a) from the context ()
00:12:05 <lambdabot> arising from a use of `succ' at <interactive>:1:13-16
00:12:06 <lambdabot> Possible fix:
00:12:14 <copumpkin> :t (Just . fmap succ . join (,)) :: Enum a => a -> Maybe (a, a)
00:12:16 <lambdabot> forall a. (Enum a) => a -> Maybe (a, a)
00:12:19 <copumpkin> fuck you, haskell
00:12:22 -!- GreaseMonkey has joined.
00:12:26 <CakeProphet> monqy: did I mention that perl has concatmap?
00:12:33 <CakeProphet> because it does.
00:12:33 <monqy> i think so
00:12:33 <monqy> hi
00:13:47 <CakeProphet> GreaseMonkey: hi monqy: hi CakeProphet: hi
00:14:01 <CakeProphet> > var "hi"
00:14:02 <lambdabot> hi
00:14:09 -!- Gregor has set topic: The IOCCC is back on! http://www.ioccc.org | Even a chipmunk can learn these cat training techniques | http://codu.org/logs/_esoteric/.
00:14:11 <Sgeo> :t concatMap
00:14:12 <lambdabot> forall a b. (a -> [b]) -> [a] -> [b]
00:14:26 <CakeProphet> Sgeo: >>= for lists
00:14:29 <elliott> Gregor: YOU RUINED THE SPAM
00:14:41 <shachaf> CakeProphet: It does?
00:14:49 <CakeProphet> shachaf: yes. I use it above
00:15:14 <shachaf> CakeProphet: That's not concatMap.
00:15:20 <CakeProphet> sure it is
00:15:30 <elliott> shachaf: It is, actually.
00:15:44 <Sgeo> :t (=<<)
00:15:45 -!- Gregor has set topic: The IOCCC is back on! http://www.ioccc.org | Even elliott can learn these cat training techniques | http://codu.org/logs/_esoteric/.
00:15:45 <lambdabot> forall a (m :: * -> *) b. (Monad m) => (a -> m b) -> m a -> m b
00:15:55 <shachaf> elliott: No, it won't turn a triply-nested list into a double-nested list, will it?
00:16:09 <elliott> shachaf: Yes, but only because N-nested lists == 0-nested lists in Perl.
00:16:09 <shachaf> s/le/ly/
00:16:19 <elliott> Gregor: Acceptable.
00:16:19 <shachaf> Right. So it's hardly concatMap.
00:16:35 <shachaf> It operates on a type with completely different semantics, for one.
00:16:36 <elliott> shachaf: If you can do "foo (\a -> [a,a+1,a+2])" and it does the obvious, I think it's concatMap.
00:17:00 <CakeProphet> !perl print map {1} [[1,2,3], [4,5,6]]
00:17:00 <EgoBot> 1
00:17:04 <Sgeo> Is shachaf criticising the Perl version of a function, or what?
00:17:04 <CakeProphet> >_>
00:17:17 <shachaf> Sgeo: The Perl function is fine! It's just not concatMap.
00:17:34 * Sgeo thought you were referring to >>= at first
00:17:41 <elliott> (>>=) = flip concatMap.
00:17:51 <CakeProphet> !perl print map {print} [[1,2,3], [4,5,6]]
00:17:51 <EgoBot> ARRAY(0x7f5b2609bb70)1
00:17:55 <CakeProphet> ah
00:17:57 <Sgeo> elliott, Yes, thank you, I'm aware
00:18:05 <shachaf> You might as well call a C function that operates on NULL pointers "concatMap", because Just Nothing ~ Nothing, and who cares that it's a one-element list?
00:18:06 <elliott> You're very welcome.
00:18:11 <CakeProphet> !perl print map {$_} [[1,2,3], [4,5,6]]
00:18:12 <EgoBot> ARRAY(0x7f895b267b78)
00:18:14 <elliott> shachaf++
00:18:20 <elliott> I would totally do that.
00:18:37 <CakeProphet> !perl print map {@$_} [[1,2,3], [4,5,6]]
00:18:38 <EgoBot> ARRAY(0x7f03e3258d48)ARRAY(0x7f03e3276b28)
00:18:58 * Sgeo laughs at Perl's broken Show instances (Yes, I know that's not what's going on)
00:19:11 <CakeProphet> perl is just bad at nested lists :P
00:19:21 <CakeProphet> bad at showing them anyway
00:19:54 <CakeProphet> anyway I'm actually kind of confused...
00:19:54 <elliott> I like how Sgeo constantly clarifies that he's not stupid.
00:20:05 <CakeProphet> !perl print map {@$_} ([1,2,3], [4,5,6])
00:20:06 <EgoBot> 123456
00:20:17 <CakeProphet> elliott: I would sometimes but it gets exhausting.
00:20:38 <Sgeo> I'm pretty sure some joke I've said has been misinterpreted as stupidity before
00:21:07 <CakeProphet> shachaf: does that count? :P
00:21:09 <Vorpal> elliott, hi
00:21:22 <elliott> Vorpal: helo
00:21:37 <Vorpal> elliott, is it normal for horses to have glowing (to the point of being noticeable in daylight) red eyes?
00:21:37 <shachaf> CakeProphet: I don't think asking me that question is strictly necessary to figure out what my answer would be.
00:21:50 <elliott> Um.
00:21:52 <CakeProphet> shachaf: so "yes" :P
00:22:08 <shachaf> Not quite.
00:22:11 <oklopol> Sgeo: and when i do something stupid, people think it's a joke. sucks to be you i guess.
00:22:12 <elliott> Vorpal: Check whether you're in the underworld or not.
00:22:34 <CakeProphet> elliott: well, Sweden is kind of like the underworld right?
00:22:41 <elliott> CakeProphet: Similar, but not quite.
00:22:43 <CakeProphet> maybe that's just what Swedish horses are like.
00:22:48 <elliott> The underworld is less hellish.
00:22:52 <Vorpal> elliott, right.
00:22:55 <elliott> And the temperatures are more humane.
00:22:56 <Vorpal> elliott, nope.
00:23:02 <Vorpal> elliott, let me upload a photo
00:23:59 <oerjan> :t Just . runState $ modify succ
00:24:00 <lambdabot> forall s. (Enum s) => Maybe (s -> ((), s))
00:24:06 <oerjan> oops
00:24:12 <CakeProphet> shachaf: it's the same thing, you just have to do the awkward dance that Perl makes you do to get nested lists of any sort.
00:24:33 <oerjan> :t Just . (runState $ modify succ)
00:24:34 <lambdabot> forall s. (Enum s) => s -> Maybe ((), s)
00:24:42 <oerjan> oh darn
00:24:51 <shachaf> Why am I spending my time arguing about Perl?
00:24:59 * oerjan sics zzo38 at modify
00:25:05 <CakeProphet> shachaf: BECAUSE IT'S IMPORTANT SHIT MAN
00:25:14 <CakeProphet> life changing consequences.
00:25:27 <Vorpal> elliott, here: http://i.imgur.com/BgF7p.jpg
00:25:32 <CakeProphet> also it's not an argument until we're both Hitler.
00:25:41 <Vorpal> elliott, I took this just across the road
00:25:44 <elliott> Vorpal: Perfectly ordinary for Sweden.
00:25:53 <elliott> Vorpal: As is the shockingly low texture resoution.
00:25:56 -!- pagnol has quit (Ping timeout: 252 seconds).
00:25:57 <Vorpal> elliott, ah, nothing to worry about then?
00:25:59 <elliott> And shiny rocks.
00:26:29 <Vorpal> elliott, yes, it is probably gneiss or something?
00:26:37 <Jafet> Probably just red-eye effect.
00:26:51 <Vorpal> Jafet, hm pretty sure I had the flash off
00:27:13 <elliott> Vorpal: No, I think you just get children to polish them?
00:27:20 <oerjan> those are some very gneiss rocks
00:27:32 <Vorpal> elliott, oh perhaps. Yeah since we can't kill them we have to do /something/.
00:27:54 <elliott> Have you considered building an army of pregnant people and children.
00:28:23 <CakeProphet> elliott: I certainly have.
00:28:27 <CakeProphet> it's on my to-do list.
00:28:35 <Vorpal> elliott, nah, too expensive. What with us reducing the defence budget every year. I think it must be some weird sort of counterbalance to the US defence budget
00:28:47 <elliott> Vorpal: Do you even need an army?
00:28:52 <Phantom_Hoover> elliott, hey, shiny rocks are *my* shtick.
00:29:12 <elliott> I'm trying to think of why anyone would want Sweden and I'm coming up blank.
00:29:28 <Phantom_Hoover> elliott, to control... um...
00:29:28 <CakeProphet> sexy Swedish chicks.
00:29:35 <Vorpal> elliott, terrorists that mistook us for Denmark?
00:29:55 -!- MSleep has changed nick to MDude.
00:29:58 <Phantom_Hoover> CakeProphet, your BDSM fantasies are not enough of a justification for invasion.
00:30:12 <oerjan> http://trauskeneventyr.blogspot.com/2010/07/grimsborken.html particularly the last one
00:30:31 <Vorpal> elliott, btw I turned self-shadowing trees on in the .ini file, it improved the realism quite a bit.
00:30:47 <CakeProphet> Phantom_Hoover: you know nothing about being a king.
00:31:31 <Vorpal> oerjan, ?
00:31:43 <Gregor> Added registers to my dc :)
00:31:46 <Phantom_Hoover> CakeProphet, I know that declaring wars on people because their women are sexy is not an especially good way of continuing to be a king.
00:31:57 <Vorpal> oerjan, why should I read a very very long Norwegian text?
00:32:03 <CakeProphet> Phantom_Hoover: why so serious?
00:32:09 <Jafet> It has worked very well for many kings in the past.
00:32:16 <Phantom_Hoover> CakeProphet, please don't put a smile on that face.
00:32:18 <Vorpal> Gregor, btw did that JIT idea work out?
00:32:46 <Phantom_Hoover> Jafet, yeah, but they tended to *balance* the sexy women against the size of the army guarding them.
00:33:04 <oerjan> Vorpal: no, just the pictures
00:33:17 <Gregor> Vorpal: Yeah, but it took a couple days to make it work :P
00:33:21 <Phantom_Hoover> Gmail why does your planets theme have pictures of the sun.
00:33:25 <Vorpal> Gregor, so how does it work?
00:33:41 <zzo38> oerjan: Can you tell me exactly how you mean by "sics zzo38 at modify"? Were you trying to question me or something like that?
00:33:46 <Gregor> Vorpal: I'll describe in PM
00:33:49 <Vorpal> anyway, who *did* recognize that horse? Hint: Oblivion players please stand up.
00:33:59 <Vorpal> Gregor, okay.
00:34:12 <zzo38> someone else other than oerjan: Do you have the moustache like Hitler has, even though you are not Hitler?
00:34:41 <Vorpal> zzo38, why aren't you asking oerjan ?
00:34:44 <Phantom_Hoover> Vorpal, did you really play as /yourself/.
00:34:44 <elliott> <Phantom_Hoover> CakeProphet, I know that declaring wars on people because their women are sexy is not an especially good way of continuing to be a king.
00:34:50 <elliott> Have you ever even played Dwarf Fortress?
00:34:51 <Vorpal> Phantom_Hoover, ?
00:35:01 <Phantom_Hoover> elliott, um dude their women don't even have beards.
00:35:08 <elliott> Phantom_Hoover: Point.
00:35:22 <zzo38> Vorpal: Because I asked oerjan different question. But they can answer anyways if they want to, since it is IRC and anyone can question/answer anything if it is public channel.
00:35:22 <Phantom_Hoover> (Female dorfs don't actually have beards in game, but everybody thinks they do.)
00:35:32 <oerjan> Vorpal: because i've already told i'm clean shaven
00:35:39 <elliott> oerjan: SHUT UP DIJKSTRA
00:35:57 <Vorpal> <Phantom_Hoover> Vorpal, did you really play as /yourself/. <-- what do you mean?
00:36:00 <oerjan> zzo38: i just tried to do a haskell trick which would have worked if modify had the type you suggested it should have once
00:36:03 <Phantom_Hoover> In Skyrim.
00:36:07 <elliott> oerjan: BEHOLD YOU: http://www.knowledgerush.com/wiki_image/0/0a/Edsger_Dijkstra_large.jpg
00:36:24 <Phantom_Hoover> Did you attempt to accurately recreate Arvid Norlander of wherever the hell it is you are from.
00:36:29 <Vorpal> Phantom_Hoover, eh? Yes I'm a magician that ride a red eyed horse in real life?
00:36:36 <zzo38> oerjan: O, that is what you meant. In that case I agree.
00:36:39 <Phantom_Hoover> I mean in terms of appearance etc.
00:37:14 <oerjan> <Phantom_Hoover> Gmail why does your planets theme have pictures of the sun. <-- well the ancients considered the sun a planet, i think
00:37:19 <Vorpal> Phantom_Hoover, not really, I went with standard nord and added a beard. Then I tried to think of a typical nord name and I realised my name fitted right in there,
00:37:25 <Vorpal> s/,/./
00:37:28 <Phantom_Hoover> Gmail: written by the ancients.
00:37:56 <zzo38> The reason the planets theme have pictures of the sun is that the planets have to go around the sun. If there is no sun, what will the planets orbit around?
00:38:08 <elliott> zzo38: THEMSELVES
00:38:34 <Phantom_Hoover> The reason the cute animals collection includes pictures of intestines is that cute animals have to have intestines.
00:38:47 <pikhq_> zzo38: The Earth.
00:38:55 <pikhq_> Which, of course, is not a planet.
00:38:58 <Vorpal> Phantom_Hoover, I guess I can upload a screenshot of myself as I'm currently playing. Hm that looks kind of like assassin of the north or something. Thieves guild armour.
00:39:04 <zzo38> The other possibility is the use of the word "planet" in the old way instead of the new way (the old way is still used in astrology)
00:39:19 <oerjan> elliott: that picture is so very almost but not quite unlike me
00:39:22 <zzo38> Phantom_Hoover: But surely intestines must be inside so that you cannot see it from outside, isn't it?
00:39:24 <elliott> oerjan: ITV IS YOU SHUT UP!!
00:39:26 <elliott> <
00:39:44 <Phantom_Hoover> zzo38, you can't exactly see the sun in most pictures of planets either.
00:40:13 <oerjan> the part that fits is i'm pale skinned
00:40:15 <Vorpal> Phantom_Hoover, upload going to take a while
00:40:29 <zzo38> pikhq_: Of course Earth is planet! You can put everything orbiting the Earth if you want to, but then, the orbit will be more complicated. That is why you have to orbit the Sun, to simplify the orbiting.
00:41:11 <zzo38> Phantom_Hoover: Then it must be either because they use the older word "planet" or because they don't have enough planets so they have to include the sun as well.
00:41:48 <elliott> pikhq_: HOW BIG SHOULD MY POOLS BE
00:42:03 <pikhq_> zzo38: I say, son, that was a joke son!
00:42:10 <Vorpal> <Phantom_Hoover> zzo38, you can't exactly see the sun in most pictures of planets either. <-- what about in an image of mercury? It should be fairly big that close to the sun
00:42:26 <Vorpal> err typoed that
00:42:34 <oerjan> `addquote <Phantom_Hoover> The reason the cute animals collection includes pictures of intestines is that cute animals have to have intestines.
00:42:34 <Vorpal> err no
00:42:36 <HackEgo> 725) <Phantom_Hoover> The reason the cute animals collection includes pictures of intestines is that cute animals have to have intestines.
00:42:42 <pikhq_> elliott: Let's go with a nice constant... 1024 pages?
00:42:54 <elliott> pikhq_: ...4 gig heaps?
00:42:58 <elliott> s/heaps/pools/
00:42:59 <pikhq_> (probably actually not that good an idea)
00:43:07 <elliott> Gregor said 16 megs :P
00:43:12 <Phantom_Hoover> elliott, 2500000l!
00:43:21 <Vorpal> elliott, Phantom_Hoover https://imgur.com/zZSHR and https://imgur.com/u4OYh
00:43:22 <elliott> I'm trying to figure out how much I'll lose with 16 megs + 4 unused megs pools.
00:43:26 <pikhq_> elliott: What page size are you thinking of, anyways?
00:43:26 <elliott> Lose in terms of the unused space, that is.
00:43:35 <elliott> pikhq_: No reason to go below 4 megs, is there?
00:43:51 <shachaf> This channel really ought to stop talking when I'm not around.
00:43:53 <oerjan> elliott: you should have a pool big enough to swim in, but not big enough to get lost
00:43:53 <pikhq_> More granularity, and there is nothing restricting you to a single page size on x86_64.
00:43:54 <Phantom_Hoover> Vorpal, so you look like an assassin of the North in that there is nothing remotely Northern about you?
00:43:58 <shachaf> Otherwise there's too much backlog.
00:44:00 <oerjan> hth
00:44:03 <Vorpal> Phantom_Hoover, well I'm playing a nord?
00:44:07 <elliott> pikhq_: I don't see the advantage of granularit.
00:44:09 <elliott> y.
00:44:18 <Vorpal> Phantom_Hoover, but yeah
00:44:31 <Vorpal> Phantom_Hoover, can't say I don't look like a ninja though.
00:44:47 <elliott> Yes.
00:44:49 <elliott> Yes, you can.
00:44:50 <Phantom_Hoover> Ninjas do not, to my mind, conjure images of the frigid northlands.
00:44:56 <Vorpal> Phantom_Hoover, true
00:45:09 <Vorpal> Phantom_Hoover, I guess I could fetch a horned helmet from somewhere and take a new screenshot. Though that is not authentic nordic at all
00:45:12 <CakeProphet> what's good reading material about Haskell and low-level implementation.
00:45:13 <pikhq_> elliott: You can't think of *any* time that 2 megabytes would be too big?
00:45:25 <elliott> pikhq_: I said 4.
00:45:30 <pikhq_> elliott: You can't have 4.
00:45:36 <Phantom_Hoover> Vorpal, I'm going to stop you here and tell you that I already know that Viking helmets didn't have horns.
00:45:36 <elliott> CakeProphet: /implementation of fp languages/, spj?
00:45:51 <pikhq_> elliott: The page sizes are 4 KiB, 2 MiB, and 1 GiB.
00:45:56 <Gregor> <pikhq_> (probably actually not that good an idea) // typically pools aren't very large, you just have a lot of them.
00:45:58 <CakeProphet> basically "how pure functional languages are efficiently implemented"
00:46:03 * Phantom_Hoover → sleep
00:46:06 -!- Phantom_Hoover has quit (Quit: Leaving).
00:46:25 <elliott> CakeProphet: yes.
00:46:29 <Vorpal> pikhq_, iirc the linux kernel uses 1 GiB hugepages internally to map all the physical ram in the computer
00:46:31 <elliott> http://research.microsoft.com/en-us/um/people/simonpj/papers/slpj-book-1987/
00:46:32 <elliott> free
00:46:37 <pikhq_> Vorpal: Quite plausibly.
00:46:44 <shachaf> elliott: That's a bit old, though.
00:46:50 <elliott> shachaf: CakeProphet is old.
00:46:51 <pikhq_> Vorpal: The less TLB use, the better.
00:46:52 <elliott> Or something.
00:46:55 <Vorpal> pikhq_, quite
00:46:56 <elliott> pikhq_: I thought the 2 Mio one doubled if you did something.
00:47:06 <elliott> 1 gig pages don't really work for me.
00:47:06 <Gregor> Heyo, just broke virtually every platform with the power of conditionals.
00:47:10 <shachaf> CakeProphet: http://www.scs.stanford.edu/11au-cs240h/notes/ghc-slides.html#(1) has a bunch of introductory slides and links to various papers.
00:47:10 <pikhq_> elliott: If you pretend it doubles. :P
00:47:15 <CakeProphet> "The big arrows, at the top left and right of each page, move backward and forward one page."
00:47:18 <CakeProphet> wow thanks Simon
00:47:24 <oerjan> CakeProphet: also the ghc compiler commentary, i imagine
00:47:27 <elliott> CakeProphet: Dude, http://research.microsoft.com/en-us/um/people/simonpj/papers/slpj-book-1987/slpj-book-1987.pdf.
00:47:28 <Vorpal> <Gregor> Heyo, just broke virtually every platform with the power of conditionals. <-- hm?
00:47:37 <zzo38> In much older times they did not call the Earth a planet.
00:47:41 <shachaf> CakeProphet: In particular I've seen _Implementing lazy functional languages on stock hardware: the Spinesless Tagless G-Machine_ recommended.
00:47:50 <shachaf> CakeProphet: Also _How to Make a Fast Curry_
00:48:26 <CakeProphet> zzo38: technically in newer times, I suppose.
00:48:28 -!- hagb4rd has quit (Ping timeout: 240 seconds).
00:48:39 <oerjan> wrt to viking helmets having/not having horns, is that an example where both something _and_ its opposite is a meme...
00:48:59 <Vorpal> oerjan, is there a meme here?
00:49:25 <elliott> pikhq_: Anyway, no, I don't see where 2 megs would be too big.
00:49:28 <Vorpal> anyway I believe there are horned iron helmets in skyrim. I generally have way better armour though.
00:49:35 <Vorpal> at the current point in the game I mean
00:49:46 <elliott> pikhq_: Although I could actually use 1 Gio pages, to store huge pools.
00:51:01 <oerjan> Vorpal: note that "meme" does not _actually_ mean internet fad, despite appearances.
00:51:11 <CakeProphet> elliott: why did you link me to the same thing twice?
00:51:18 <elliott> CakeProphet: I didn't.
00:51:25 <oerjan> viking helmet having horns is obviously a meme from at least the 19th century
00:51:28 <Vorpal> oerjan, oh right
00:51:42 <pikhq_> elliott: So, you're perfectly happy with 2 megs being the minimum contiguous allocation, and everything doing smaller allocations being piled on top of that?
00:51:55 <elliott> pikhq_: Yeah, because allocations have a 1:1 mapping with pages?
00:52:09 <oerjan> viking helmets _not_ having horns keeps being brought up by pedants as a response to the first one
00:52:12 <pikhq_> Physical memory allocations do.
00:52:16 <pikhq_> And with 2 megs being the minimum boundary for *any* page munging?
00:52:27 <elliott> pikhq_: I don't see the problem *shrugs*
00:52:32 <shachaf> Real Programmers use 16GB pages.
00:52:53 <Vorpal> shachaf, does x86 support that?
00:52:56 <CakeProphet> oerjan: but everyone knows that viking helmets actuallly did have hrosn
00:53:17 <oerjan> CakeProphet: yeah they just horribly misspell it as horns
00:53:34 <elliott> viking hrosn
00:53:36 <shachaf> Vorpal: I don't think so, but I think PowerPC does.
00:53:37 <oerjan> hrosn is _so_ plausibly a norse word
00:53:47 <pikhq_> Let's say you're COWing a 4k object. Do you want to get a page fault happening (and thus a copy) when the one or two 4k pages that's on get written to, or do you want it happening when the one or two 2m pages that's on get written to?
00:53:56 <Vorpal> shachaf, ah
00:54:06 <CakeProphet> pikhq_: your mom is a 4k object oooooooooh
00:54:20 <shachaf> Vorpal: Apparently you can get 1GB pages, though.
00:54:47 <elliott> pikhq_: I'm pretty sure it's faster to copy 4k than to COW it.
00:55:05 <elliott> pikhq_: In fact, I bet 2 megabytes is damn close to the sweet spot where COW gets better than an optimised copy routine.
00:55:06 <pikhq_> Okay, contrived example. *Still*.
00:55:08 <CakeProphet> COWing your mom persists long into the night.
00:55:35 <elliott> Seriously though, I don't see any problem yet at all :P
00:55:44 <oerjan> CakeProphet: what BULL
00:56:14 <pikhq_> You see no problem *at all* with only being able to change virtual memory at 2MB boundaries. When ideally you'd be able to change it at 1B boundaries.
00:56:43 <pikhq_> Oh, and by the way, it takes hardly any effort to support multiple page sizes.
00:56:49 <elliott> pikhq_: Oh stop saying "do you *really* not see any problem?!?!" and give me an example of an actual issue :P
00:56:49 <CakeProphet> oerjan: ..
00:57:31 <CakeProphet> elliott: do you *really* not see the actual issue?
00:57:47 <oerjan> CakeProphet: i'm just HORSing around
00:57:53 <CakeProphet> 1?!
00:58:17 <CakeProphet> 1!!
00:58:43 <CakeProphet> @src lines
00:58:44 <lambdabot> Source not found. My brain just exploded
00:58:57 <CakeProphet> @src unlines
00:58:57 <lambdabot> unlines = concatMap (++ "\n")
00:59:10 <CakeProphet> @src unlineso_0
00:59:10 <lambdabot> Source not found.
00:59:36 <oerjan> lines is presumably rather larger
00:59:55 <CakeProphet> @src intercalate
00:59:56 <lambdabot> intercalate xs xss = concat (intersperse xs xss)
01:00:03 <CakeProphet> @src intersperse
01:00:03 <lambdabot> intersperse _ [] = []
01:00:03 <lambdabot> intersperse _ [x] = [x]
01:00:04 <lambdabot> intersperse sep (x:xs) = x : sep : intersperse sep xs
01:00:18 <pikhq_> Hmm. Trying to think of some things that are inherently on a page boundary.
01:00:24 <pikhq_> Mostly I'm thinking of mmap...
01:00:27 <CakeProphet> pages
01:00:29 <CakeProphet> >_>
01:00:38 <CakeProphet> inherently are on page boundaries.
01:00:40 <CakeProphet> is that helpful?
01:00:54 <pikhq_> CakeProphet: No, it's about as helpful as remarking that 2+2=4
01:01:10 <CakeProphet> > 2 + 2 == 4
01:01:11 <lambdabot> True
01:01:15 <CakeProphet> but it totally is!
01:01:28 <elliott> pikhq_: mmap doesn't really apply :P
01:01:52 <oerjan> http://www.haskell.org/ghc/docs/latest/html/libraries/base-4.4.1.0/src/Data-List.html#lines
01:02:31 <pikhq_> elliott: mmap is more the "Swiss army knife of memory" in common UNIXes than just "I want to map the file into memory"
01:02:32 <CakeProphet> oerjan: beautiful code
01:02:43 <elliott> pikhq_: Yep, and @ isn't a common Unix.
01:02:53 <shachaf> elliott: Wait, @ isn't going to be UNIX, is it?
01:03:03 <CakeProphet> ,,duh :P
01:03:06 <elliott> Hell naw. That Jurassic Park character has no chance.
01:03:12 <elliott> @ is pro-dinosaur.
01:03:22 <pikhq_> elliott: Hmm. And page permissions are much less relevant...
01:03:26 <Sgeo> You should still get that file manager workijg
01:03:34 <CakeProphet> file manager haha
01:03:35 <Sgeo> Even though @ probably won't have files as we know them?
01:03:35 <elliott> Sgeo: What.
01:03:46 <elliott> pikhq_: Try "completely irrelevant", most likely :P
01:04:01 <Sgeo> Get a file manager working on a new OS that doesn't have files.
01:04:18 <elliott> Sgeo: What file manager.
01:04:28 <Sgeo> The thingy in Jurrasic Park
01:04:28 <Sgeo> iirc
01:04:38 <elliott> Oh.
01:04:43 <shachaf> elliott: @ isn't going to have a 3D file browser? :-(
01:04:54 <elliott> shachaf: Better: 3D VALUE browser!
01:05:00 <monqy> file browsers can go to hell
01:05:02 <elliott> shachaf: Inspect constructors! Build up thunks!
01:05:07 <elliott> FORCE THEM TO COLLAPSE INTO VALUES
01:05:09 <shachaf> EXCUSE *ME*!
01:05:24 <CakeProphet> elliott: rewrite them indsicriminantly? :(
01:05:25 * shachaf goes back to Windows Explorer.
01:05:34 <shachaf> @ supports mutation everywhere.
01:06:04 <elliott> The nice thing about forcing thunks is that it's mutation that doesn't change the value.
01:06:05 <elliott> x = x;
01:06:09 -!- azaq23 has quit (Quit: Leaving.).
01:06:18 <elliott> This is why I call evaluation "Objectivist mutation".
01:06:21 <elliott> (I don't actually do that.)
01:06:33 <monqy> oh good i was scared there for a momen
01:06:33 <monqy> t
01:06:41 <Sgeo> Is that a behavior that can be relied upon?
01:06:47 <elliott> Sgeo: Eh?
01:06:52 <CakeProphet> Sgeo: see: Haskell
01:07:00 <Sgeo> elliott, Forced thunks staying forced
01:07:08 <elliott> Sgeo: In what?
01:07:09 <elliott> @? GHC?
01:07:09 <lambdabot> Plugin `compose' failed with: Unknown command: ""
01:07:18 <Sgeo> Haskell, non-specific to GHC
01:07:38 <elliott> Haskell has no notion of "thunks".
01:07:50 <Sgeo> Basically, whether the pure memoization stuff is portable
01:07:51 <elliott> Nor "forcing".
01:08:01 <elliott> It is perfectly legitimate to implement Haskell as string rewriting.
01:08:12 <CakeProphet> in Perl.
01:08:22 <zzo38> I believe there is a 3D gopher browser exists, in case some people prefer that way. And you probably need some way to access file systems even if the operating system has no files (it can be command-line, GUI, or something different), to operate with other system using files. Such as, FTP, and Plan 9, and so on
01:08:44 <CakeProphet> the perl interpreter compiles your Haskell functions to regex and then uses them to make substitions on other source code.
01:08:44 <shachaf> elliott: Hey, hey, hey. Legitimate as in "valid according to the Report" or legitimate as in "legitimate"?
01:08:58 <elliott> shachaf: Legitimate as in "legal in all 52 states".
01:09:23 <shachaf> The 52 states being the 50 states of the US, and then "other land" and "other water"?
01:09:26 <Sgeo> That's a pretty broad cange
01:09:37 <Sgeo> erm, ignoring the 52 bit thingy
01:09:37 <elliott> shachaf: The last 2 are secret.
01:09:42 <elliott> Sgeo: What.
01:09:55 <Sgeo> I think I can, without getting arrested, call a Brainfuck interpreter a "Haskell compiler"
01:10:07 <CakeProphet> no
01:10:10 <monqy> ill arest you
01:10:13 <CakeProphet> I will arr-- yes
01:10:13 <shachaf> And Sgeo was never heard from again.
01:10:46 <zzo38> Sgeo: You probably could without getting arrested, but I doubt it will help anyone to do that, because it is still a lie even if it is not illegal to lie in that way.
01:11:16 <Sgeo> It will help my sense of legitimacy.
01:11:53 <zzo38> O, that is what it is.
01:12:54 <Sgeo> zzo38, we were discussing definitions of "legitimate".
01:13:12 <monqy> we were?
01:13:12 <Sgeo> Lying in such a way would, according to one of those definitions, still be legitimate
01:13:27 * Sgeo thought we were
01:14:25 <elliott> So I had a dream where the moon was evil.
01:14:47 <elliott> pikhq_: Got any examples yet? :P
01:14:55 <shachaf> So I had a dream where the nom was alive.
01:15:46 <CakeProphet> mmmm cornbread and milk
01:16:33 * shachaf soon off to see _Rosencrantz and Guildenstern Are Dead_.
01:17:18 -!- hagb4rd has joined.
01:19:49 <elliott> pikhq_: You're wrong, x86-64 has 4 meg hugepages.
01:20:03 <elliott> Oh, wait.
01:20:04 <elliott> PAE halves that.
01:20:06 <elliott> Lame.
01:21:15 <shachaf> elliott: For x86-64?
01:21:25 <elliott> shachaf: ?
01:21:42 <shachaf> Do you use PAE on x86-64?
01:21:53 <shachaf> Oh.
01:21:56 * shachaf was confused.
01:22:07 <elliott> shachaf: x86-64 /is/ PAE.
01:22:11 <elliott> Plus bigger registers.
01:22:14 <elliott> Plus some stuff.
01:22:23 <shachaf> Right. Are you sure you don't get 4MB pages?
01:22:42 <elliott> "4M (2M in PAE mode)"
01:22:43 <elliott> "Starting with the Pentium Pro, x86 processors support 4MB pages (called Page Size Extension) (2MB pages if using PAE)"
01:22:46 <shachaf> I'm pretty sure I did, this one time.
01:23:12 <shachaf> Hmm.
01:23:27 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 , Skype: patashu0 .).
01:27:45 <elliott> pikhq_: BTW, the reason I was thinking that pool-per-thread would be nice is that I could store the pool pointer on the stack.
01:29:03 <elliott> hmm... I forget whether "add [foo], bar" is ok
01:29:43 <elliott> pikhq_: Wait, using dynamically-sized pages DOES have a use!
01:29:52 <elliott> pikhq_: I can make the barrier page after each pool just 4k in size.
01:30:01 <elliott> That's a lot less wasteful, and the vast majority of allocations are still <4k.
01:32:15 <CakeProphet> > listArray (0, 5000) [1..]
01:32:16 <lambdabot> array (0,5000) [(0,1),(1,2),(2,3),(3,4),(4,5),(5,6),(6,7),(7,8),(8,9),(9,10...
01:32:26 * CakeProphet just tipped the scales a little bit.
01:32:40 <CakeProphet> that's one more >4k in the world.
01:32:45 <CakeProphet> +allocation
01:34:32 <elliott> More, since arrays are boxed.
01:36:05 <CakeProphet> hmmm, so..
01:36:20 <zzo38> I notice you can make Applicative by pure and <*> and then make fmap by liftA but is there something possible that you can define pure and fmap and some new function to make <*> resulting (like how monads you can have fmap/join/return, or bind/return and it can make fmap/join from that)?
01:36:23 <CakeProphet> the OS gives out pages, and then it's the languages job to fill those pages correctly?
01:36:23 <elliott> pikhq_: Hmm, OK, you're right that 2 megs is a bit too big.
01:36:47 <elliott> pikhq_: Because threads obviously need at least one page of memory, and I want millions of threads running simultaneously.
01:37:00 <elliott> Hmm, wait.
01:37:03 <elliott> I was confusing megabytes and gigabytes.
01:37:34 <elliott> I can support 512 million threads with a 16 meg heap each with less than 8 gigs of RAM :P
01:37:55 <elliott> Err, wait.
01:37:58 -!- lifthrasiir has quit (Quit: 오후에 봐요 ㅂㅂ).
01:38:06 <elliott> No I can't X-D
01:38:36 <shachaf> elliott: Turns out you can support 5.12 threads at most?
01:38:50 <elliott> OK, yeah, 2 megabytes of physical RAM per thread scales to... 4000 threads with 8 gigs of RAM.
01:38:54 <elliott> Not good enough.
01:38:59 <elliott> shachaf: The best number of threads!
01:39:09 <elliott> shachaf: 4 to do your work, 1 to manage it, and .12 to schedule them all.
01:39:31 <shachaf> elliott: Why do you need so much RAM per thread?
01:39:42 <zzo38> Do you think this plan is OK for DVI writing functions: createDVI :: FilePath -> Word32 -> Ratio Word32 -> IO DocStat; shipOut :: Page -> IO DocStat; finishDVI :: DocStat -> IO DocStat;
01:40:03 <elliott> shachaf: Well, the idea right now is to give each thread a pool. And a pool has to be a multiple of the page size.
01:40:30 <elliott> Wait, GHC gives each thread 512 kilobytes of nursery, so how come it can do millions of threads?
01:40:36 <elliott> A million threads should require 488 gigabytes like that.
01:40:46 <elliott> Or is it relying on the OS to not actually allocate that much physical RAM?
01:40:50 <elliott> (Answer: Almost certainly.)
01:40:58 <shachaf> Which is a reasonable thing to do.
01:40:59 <elliott> Or maybe the nursery is per-OS thread.
01:41:01 <elliott> That wouldn't surprise me.
01:41:04 <elliott> shachaf: Yes, but not if you're an OS.
01:41:18 <shachaf> elliott is an OS.
01:41:21 <shachaf> @lliott
01:41:21 <lambdabot> Unknown command, try @list
01:41:22 <elliott> Yes.
01:41:26 <elliott> That is my secret.
01:41:43 <CakeProphet> I was under the impression that programs could address more RAM than physically exists on the system without any issue.
01:41:50 <elliott> Yes, they can.
01:42:02 <shachaf> elliott: *That* is your secret?
01:42:15 <elliott> Who wouldn't be ashamed of their true OS nature?
01:42:16 <elliott> ANYWAY
01:42:25 <elliott> I wonder if maybe I can avoid giving threads pools altogether.
01:42:36 <elliott> The question then is how on earth I divide pools to be able to do GC.
01:42:38 <shachaf> What about the ▬▬▬▬▬▬▬▬ ▬▬▬▬▬ ▬▬ ▬▬▬▬▬?
01:43:04 <elliott> The hunter2?
01:43:41 <shachaf> Oh, wow, Unicode has a great selection of block characters.
01:44:10 <elliott> Totally.
01:44:22 <shachaf> 2580 UPPER HALF BLOCK [] 2581 LOWER ONE EIGHTH BLOCK [▁] 2582 LOWER ONE QUARTER BLOCK [▂] 2583 LOWER THREE EIGHTHS BLOCK [▃] 2584 LOWER HALF BLOCK [] 2585 LOWER FIVE EIGHTHS BLOCK [▅] 2586 LOWER THREE QUARTERS BLOCK [▆] 2587 LOWER SEVEN EIGHTHS BLOCK [▇] 2588 FULL BLOCK [] 2589 LEFT SEVEN EI
01:45:12 <oerjan> zzo38: well you can define (<*>) = liftA2 id
01:45:26 <elliott> shachaf: Did you see my wonderful Unicode sparklines of channel activity?
01:45:32 <shachaf> 2580 -- UPPER HALF BLOCK []; 2581 -- LOWER ONE EIGHTH BLOCK [▁]; 2582 -- LOWER ONE QUARTER BLOCK [▂]; 2583 -- LOWER THREE EIGHTHS BLOCK [▃]; 2584 -- LOWER HALF BLOCK []; 2585 -- LOWER FIVE EIGHTHS BLOCK [▅]; 2586 -- LOWER THREE QUARTERS BLOCK [▆]; 2587 -- LOWER SEVEN EIGHTHS BLOCK [▇]; 2588 -- FULL BLOCK []; 2589 -- LEFT SEVEN EIGHTHS BLOCK [▉]; 258A -- LEFT THREE QUARTERS BLOCK [▊]; 258B -- LEFT FIVE EIGHTHS BLOCK [▋]; 258C -- LEFT HAL
01:45:38 <elliott> left hal
01:45:50 <shachaf> elliott: No. I hate anything whose name is "sparklines".
01:46:04 <elliott> shachaf: I can hear Tufte crying.
01:46:17 <shachaf> It's just the name.
01:46:54 <elliott> "Hello. I would have probably donated, but the left-wing extremism here and the weaselly use of the 'rules' to justify that left wing bias leaves a permanent bad taste in my mouth. I've paid attention to key subjects' discussion pages and I've seen how WP runs off all the right-wing conservatives, right-libertarians, constitutionalists, anti-globalization patriots, etc... Now I must say, WP is to academia what McDonald's is to restaurants."
01:47:00 <elliott> I love [[Talk:Main Page]].
01:47:52 <CakeProphet> neutrality - part of the left-wing agenda
01:48:45 <oerjan> > Left $ pred <*> "IBM"
01:48:46 <lambdabot> Couldn't match expected type `(a -> b) -> a'
01:48:46 <lambdabot> against inferred type ...
01:48:51 <oerjan> wat
01:48:53 <oerjan> oh
01:48:56 <shachaf> elliott: Fortunately there's Conservapedia.
01:48:58 <oerjan> > Left $ pred <$> "IBM"
01:48:59 <lambdabot> Left "HAL"
01:49:06 <elliott> shachaf: Thank god.
01:49:09 <elliott> oerjan: aka map
01:49:31 <shachaf> > succ <$> "VMS"
01:49:32 <lambdabot> "WNT"
01:49:46 * shachaf looks up [[Talk:Main Page]] on Conservapedia.
01:49:51 <shachaf> elliott: What were you doing reading that, anyway?
01:49:56 <elliott> shachaf: It's the best page.
01:50:25 <elliott> > let rot _ [] = []; rot 0 xs = xs; rot n (x:xs) = rot (n-1) xs ++ [x] in rot 13 ['a'..'z']
01:50:26 <lambdabot> "nopqrstuvwxyzmlkjihgfedcba"
01:50:29 <oerjan> > pred <$> "OSX
01:50:30 <lambdabot> <no location info>:
01:50:30 <lambdabot> lexical error in string/character literal at end o...
01:50:32 <oerjan> > pred <$> "OSX"
01:50:33 <lambdabot> "NRW"
01:50:39 <oerjan> > succ <$> "OSX"
01:50:40 <lambdabot> "PTY"
01:50:41 <shachaf> elliott: Better than [[Elections in Zimbabwe]]?
01:51:42 <elliott> shachaf: The most thrilling page.
01:51:47 <shachaf> "On more than one occasion, Obama verbally attacks the economic livelihood of Las Vegas for unknown reasons. The reason may be his contempt of gambling which is forbidden in the Koran."
01:51:56 <elliott> X-D
01:52:17 <elliott> shachaf: And yet: Morally bankrupt Massachusetts opens the floodgates to gambling, despite its negative impact on the poor. [29]
01:52:37 <elliott> Oh, someone beat me to it: http://conservapedia.com/Talk:Main_Page#Gambling_story
01:53:12 <CakeProphet> Mercury's surface - evolutionists have to admit what they generally thought was wrong [5] God vs. evolutionists - God wins again!
01:53:16 <CakeProphet> bahahaha
01:53:35 <zzo38> oerjan: I know about "liftA2 id" but that uses <*> in the definition if liftA2
01:53:58 <oerjan> > let rot = (uncurry (flip (++)) .) . splitAt in rot 13 ['a'..'z']
01:53:59 <lambdabot> "nopqrstuvwxyzabcdefghijklm"
01:54:08 <elliott> "Global atheism is in decline in terms of the number of its adherents and the grassroots Question evolution! campaign could certainly accelerate this decline."
01:54:12 <elliott> So beautiful.
01:54:26 <oerjan> zzo38: well _every_ applicative operation can be written using pure and (<*>)
01:54:30 <elliott> oerjan: now define an elegant rot13 character function :P
01:54:39 <pikhq_> I think the worst part about Conservapedia is that it's not a troll.
01:55:00 <shachaf> It's not?
01:55:03 <pikhq_> There may well be trolls *involved*, but Andrew Schlafly is motherfucking serious.
01:55:26 <elliott> schlafly is my fav :')
01:55:32 <zzo38> oerjan: I know. What I am asking is if there can be something that if you have pure, fmap, <*>, then you can define one more function that it determines <*> from fmap and pure and this new function
01:55:53 <pikhq_> elliott: Well, there's certainly schadenfreude to be had.
01:56:03 <shachaf> "Schlafly created Conservapedia in November 2006.[12] He felt the need to start the project after reading a student's assignment written using Common Era dating notation rather than the Anno Domini system that he preferred."
01:56:47 <CakeProphet> lol
01:57:01 <Gregor> Seeing "shachaf" and "Shlafly" written so near each other makes their similarity apparent.
01:57:07 <zzo38> shachaf: That is a silly idea. Common Era and Anno Domini are the same; he can use AD if he prefers but other people can use CE or AD whatever you just have to know it is the same there are different words for that
01:57:11 <Gregor> Conclusion: shachaf must be a Muslim.
01:57:20 <Gregor> Underlying logic: See: Conservapedia.
01:57:21 <Gregor> QED
01:57:40 <shachaf> zzo38: Oh. Now I understand.
01:58:00 <Vorpal> <zzo38> shachaf: That is a silly idea. Common Era and Anno Domini are the same; he can use AD if he prefers but other people can use CE or AD whatever you just have to know it is the same there are different words for that <-- did you just completely miss the point?
01:58:12 <pikhq_> If bitched about AD in front of me, I'd just start using AUC dating. "Anno Urbis Conditae", "in the year of the founded city [of Rome]".
01:58:14 <Vorpal> hm I think you did
01:58:18 <CakeProphet> Jesus Christ is the person who changed the world forever with teachings of love and faith, using logical parables like the Prodigal Son that flow from the existence of God. "Jesus triumphed over the Devil, and personally set the ultimate example for mankind, by enduring the horrific process of scourging and death by crucifixion under the ancient Roman regime in obedience to God's will."
01:58:24 <CakeProphet> first paragraph of the article Jesus Christ
01:58:25 <shachaf> I think Vorpal is missing the point of zzo38.
01:58:35 <pikhq_> It is now 2764 AUC.
01:58:37 <Vorpal> shachaf, hm good point.
01:59:01 <zzo38> However, it is not the exact year of Jesus Christ; they are probably inexact by a few years. That is one reason (but not the only reason) to use "Common Era"; but "Anno Domini" is commonly known what it meant, even if the year might be inexact. Since we have the year now, we use the same calendar instead of changing it; any reference point works as long as everyone agree.
01:59:21 <Gregor> pikhq_: I use AU. "Anno Unixine". It's 41AU.
01:59:33 <pikhq_> Gregor: A good era.
01:59:37 <Vorpal> pikhq_, I would use stardates if there was any sort of official mapping to normal years (I have no idea if there is)
02:00:20 <Gregor> pikhq_: The only problem is that in 68AU it'll suddenly become 0AU >_>
02:00:21 <elliott> Vorpal: You want the, aah, what's the name again.
02:00:23 <Gregor> Vorpal: There is.
02:00:30 <Vorpal> elliott, memory alpha?
02:00:34 <elliott> No.
02:00:45 <Sgeo> Does foldl (:) [] == reverse?
02:00:46 <pikhq_> Vorpal: There's nothing neatly *canonical*.
02:00:51 <Sgeo> > foldl (:) [] [1,2,3]
02:00:52 <lambdabot> Occurs check: cannot construct the infinite type: a = [a]
02:00:52 <Vorpal> pikhq_, oh okay
02:00:57 <pikhq_> Vorpal: Well, except if you consider the 2009 film.
02:00:58 <Vorpal> elliott, calculator?
02:00:58 <Sgeo> Nope
02:01:03 <elliott> During a Q&A session, Orci restated that a stardate is "the year, as in 2233, with the month and day expressed as a decimal point from .1 to .365 (as in the 365 days of the year)." [5] A similar reply was posted on his Twitter account: "star date=standard year, with decimal representing day of year from 1-365."
02:01:05 <Sgeo> > foldl (flip (:)) [] [1,2,3]
02:01:07 <lambdabot> [3,2,1]
02:01:08 <elliott> Wow 2009 film, that is so stupid.
02:01:09 <pikhq_> Then, it's moronically trivial. YEAR_AD.DAY_OF_YEAR
02:01:30 <zzo38> Yes, there are many systems you can use. But for common calendar you use the Anno Domini/Common Era system. UNIX timestamp is certainly one way. You can also use stardate, Holocene, Discordian, Chinese, solar, or whatever.
02:01:34 <Vorpal> "with decimal representing day of year from 1-365." <-- I'm not sure I would call that decimal
02:01:39 <zzo38> That doesn't seem decimal notation to me!
02:01:39 <elliott> Oh come on, what is the fucking name.
02:01:41 <Vorpal> because it is not actually based on 1/10th
02:01:44 <elliott> Ah!
02:01:50 <elliott> Vorpal: Okuda timeline.
02:01:53 <Vorpal> heh
02:02:28 <Vorpal> elliott, anyway "with decimal representing day of year from 1-365.", means that .5 would be in about July or so? If not then the system isn't decimal
02:02:38 <pikhq_> Vorpal: The system isn't decimal.
02:02:42 <Vorpal> ouch
02:02:42 <pikhq_> .5 would be January 5th.
02:02:50 <Vorpal> pikhq_, that is just terrible
02:03:15 <Vorpal> pikhq_, obviously .1 and .100 should be the same.
02:03:25 <Vorpal> I guess it is like version numbers
02:03:57 <Vorpal> actually I should start using decimal version numbers
02:04:00 -!- derdon has quit (Remote host closed the connection).
02:04:05 <Vorpal> so that 1.4 is later than 1.35
02:04:08 <zzo38> Vorpal: If it is decimal of course it has to be .1 and .100 same. In addition, it says 365 days of the year, but there can be leap years too.
02:04:34 <elliott> Vorpal: 1.4? Please: .14.
02:04:35 <Vorpal> zzo38, stop missing the point, it is annoying
02:04:40 <elliott> If you can't operate like that you suck.
02:04:42 <zzo38> Vorpal: I use a system, ten minors is worth one major, so that it is decimal and not decimal at the same time
02:04:45 <elliott> Vorpal: Stop missing the point of zzo38, it's even more annoying.
02:04:49 <Vorpal> elliott, what?
02:05:05 <zzo38> So there will be no version number "1.35"
02:05:17 <Vorpal> elliott, version 0.14 would be less than 1.14 of course
02:05:30 <Vorpal> zzo38, the point here is to mess up version number handling in distros...
02:05:38 <elliott> Vorpal: Being able to use non-post-decimal-point numbers ruins it.
02:05:41 <zzo38> O, you are trying to mess up everything?
02:05:45 <elliott> Since you can ascend in a "normal" fashion from 9 to 12.
02:05:49 <Vorpal> zzo38, of course
02:05:55 <elliott> If you put everything after the decimal point, you have to plan ahead.
02:05:58 <Vorpal> elliott, ah good point
02:06:15 <zzo38> And I am instead removing mess up everything.
02:06:39 <Vorpal> elliott, I could just add more digits at the end, slowly converging against 1 if I didn't plan ahead enough
02:06:47 <elliott> 1, 12, 197, 21, 810, 87, 88, 89, 8999, 9, 91, 93, 934934834, 94, 99, 999, 999, 999999...
02:06:48 <Vorpal> err s/against/towards/
02:06:57 <elliott> After you die, you release version 1.0.
02:07:06 <zzo38> A major revision after 0.9 or a minor revision after 0.9 is still 1.0 either way, in my system.
02:07:19 <zzo38> TeX and METAFONT version number are decimal.
02:07:26 <zzo38> After you die, you release version $\pi$.
02:07:28 <Vorpal> <zzo38> And I am instead removing mess up everything. <-- that is not even grammatically correct!
02:10:33 <oerjan> Vorpal: O_o
02:15:35 <elliott> oerjan: ?
02:15:39 <elliott> Dammit, I've forgotten how GHC gets memory from the OS.
02:15:59 -!- MonkeyofDoom has joined.
02:16:09 <elliott> `@ MonkeyofDoom ? welcome
02:16:11 <HackEgo> MonkeyofDoom: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page
02:16:28 <MonkeyofDoom> hi
02:16:51 <MonkeyofDoom> just heard some people were hacking on IOCCC stuff in here so I figured I'd drop in to see what's up
02:16:53 <Vorpal> elliott, yogscast interviewing notch (see their channel). Except well... after watching that I think they are trolling the viewers...
02:17:00 <elliott> mostly Gregor :P
02:17:03 <monqy> hi
02:17:19 <quintopia> ais was working on something too
02:17:23 <pikhq_> Gregor: I have it on good authority that it would be "Anno Unis".
02:17:32 <pikhq_> Erm, Unicis
02:19:19 <CakeProphet> elliott: s/\`@ (MonkeyofDoom) \? (welcome)/\`\2 \1/
02:19:35 <Gregor> pikhq_: Noted.
02:20:07 -!- kwertii has joined.
02:20:31 <Gregor> Also:
02:20:33 <Gregor> SPAAAAAAAAAAAAARC
02:20:38 <monqy> sparc
02:20:50 <elliott> shark
02:21:27 <elliott> Gregor: Is it the register windows??? The delay sdfk??? The return addreses???
02:21:29 <pikhq_> SNAAAAKE!
02:21:40 <Gregor> elliott: Some horrible, horrible combination of them.
02:21:47 <elliott> Gregor: Register delay addresses.
02:21:50 <zzo38> Is this good? createDVI :: FilePath -> Word32 -> Ratio Word32 -> IO DocStat; shipOut :: Page -> IO DocStat; finishDVI :: DocStat -> IO ();
02:22:58 <CakeProphet> > (\x y -> 's':x:"ar"++[y]) <*> ['a'..'z'] <*> ['a'..'z']
02:22:59 <lambdabot> Couldn't match expected type `a -> b'
02:22:59 <lambdabot> against inferred type `[GHC.T...
02:23:13 <CakeProphet> erm
02:23:21 <CakeProphet> > (\x y -> 's':x:"ar"++[y]) <$> ['a'..'z'] <*> ['a'..'z']
02:23:22 <lambdabot> ["saara","saarb","saarc","saard","saare","saarf","saarg","saarh","saari","s...
02:26:34 <CakeProphet> > dropWhile (/= "sparc") $ (\x y -> 's':x:"ar"++[y]) <*> ['a'..'z'] <*> ['a'..'z']
02:26:35 <lambdabot> The lambda expression `\ x y -> 's' : x : "ar" L.++ ...'
02:26:35 <lambdabot> has two arguments...
02:26:45 <CakeProphet> thanks lambdabot
02:27:07 <CakeProphet> > dropWhile (/= "sparc") ((\x y -> 's':x:"ar"++[y]) <*> ['a'..'z'] <*> ['a'..'z'])
02:27:08 <lambdabot> The lambda expression `\ x y -> 's' : x : "ar" L.++ ...'
02:27:09 <lambdabot> has two arguments...
02:27:11 <CakeProphet> >_>
02:27:48 <CakeProphet> 21:27 <lambdabot> but its type `[a1 -> a -> [GHC.Types.Char]]' has none
02:27:49 <CakeProphet> what?
02:28:06 <CakeProphet> oh
02:28:12 <CakeProphet> > dropWhile (/= "sparc") ((\x y -> 's':x:"ar"++[y]) <$> ['a'..'z'] <*> ['a'..'z'])
02:28:14 <lambdabot> ["sparc","spard","spare","sparf","sparg","sparh","spari","sparj","spark","s...
02:28:50 <oerjan> hm...
02:32:18 <elliott> > succ 'sparc'
02:32:19 <lambdabot> <no location info>:
02:32:19 <lambdabot> lexical error in string/character literal at chara...
02:32:23 <elliott> > succ "sparc"
02:32:24 <lambdabot> No instance for (GHC.Enum.Enum [GHC.Types.Char])
02:32:24 <lambdabot> arising from a use of `...
02:32:28 <elliott> hmph
02:32:39 <oerjan> shocking
02:32:55 <elliott> @hack
02:32:55 <lambdabot> http://hackage.haskell.org
02:32:57 <elliott> or whatever it was
02:33:29 <CakeProphet> ellio
02:33:30 <CakeProphet> ...
02:33:32 <CakeProphet> elliott: http://conservapedia.com/Talk:Jesus_Christ
02:33:40 <CakeProphet> I think this is more entertaining than the Main Page
02:34:29 <CakeProphet> Funny how this page is locked depsite conservapedia asking for people to edit it. previous unsigned comment added by User:Wikipediaisbetter
02:34:32 <CakeProphet> Funny how Wikipedia's article is also locked... They are better exactly how..? Fox 10:11, 25 May 2007 (EDT)
02:34:43 <CakeProphet> the logic
02:34:45 <oerjan> !perl $_="sparc"; print $_,"\n" while($_++);
02:34:46 <EgoBot> spard
02:34:46 <CakeProphet> I can't deny it.
02:34:54 <oerjan> oops
02:35:03 <CakeProphet> lolwat
02:35:41 <oerjan> `perl -e '$_="sparc"; print $_,"\n" while($_++);'
02:35:43 <HackEgo> No output.
02:35:51 <oerjan> oh hm
02:35:55 <oerjan> `run perl -e '$_="sparc"; print $_,"\n" while($_++);'
02:35:57 <HackEgo> spard \ spare \ sparf \ sparg \ sparh \ spari \ sparj \ spark \ sparl \ sparm \ sparn \ sparo \ sparp \ sparq \ sparr \ spars \ spart \ sparu \ sparv \ sparw \ sparx \ spary \ sparz \ spasa \ spasb \ spasc \ spasd \ spase \ spasf \ spasg \ spash \ spasi \ spasj \ spask \ spasl \ spasm \ spasn \ spaso \ spasp \ spasq \ spasr \ spass \ spast \ spasu \ spasv \ spasw \ spasx \ spasy \ spasz \ spata \ spatb \ spatc \ spatd
02:36:17 <oerjan> it even wraps from z back to a :P
02:36:50 <CakeProphet> I didn't know ++ had those semantics on strings.
02:37:15 <elliott> spata
02:37:37 <quintopia> wow. there are four real words there
02:37:40 <Sgeo> See, why can't Haskell do that. (I'm sure it can, given appropriate instances)
02:37:45 <quintopia> someone filter that with the dictionary
02:37:48 <Sgeo> With succ instead of ++ of course
02:38:03 <elliott> `run grep /usr/share/dict/words $(perl -e '$_="sparc"; print $_,"\n" while($_++);' | head -n 50)
02:38:06 <HackEgo> grep: spard: No such file or directory \ grep: spare: No such file or directory \ grep: sparf: No such file or directory \ grep: sparg: No such file or directory \ grep: sparh: No such file or directory \ grep: spari: No such file or directory \ grep: sparj: No such file or directory \ grep: spark: No such file or directory \ grep: sparl: No such file or directory \ grep: sparm: No such file or directory \ grep: sparn:
02:38:09 <elliott> oops
02:38:23 <Sgeo> Except it won't be fun on strings, come to think of it
02:38:31 <Sgeo> Since maxBound :: Char /= 'z'
02:39:24 <oerjan> an Ix instance would work better, i think
02:39:31 <CakeProphet> !perl $_="100"; ++$_;print
02:39:31 <EgoBot> 101
02:39:37 <CakeProphet> !perl $_="aaa"; ++$_;print
02:39:37 <EgoBot> aab
02:40:00 <CakeProphet> !perl $_="199"; ++$_;print
02:40:01 <EgoBot> 200
02:40:16 <Sgeo> Hmm, would it? I still think you need to specialize on Strings specifically
02:40:26 <oerjan> > range (('s',('a',('a',('r','a')))),('s',('z',('a',('r','z)))))
02:40:27 <lambdabot> <no location info>:
02:40:28 <lambdabot> lexical error in string/character literal at chara...
02:40:31 <oerjan> argh
02:40:37 <oerjan> > range (('s',('a',('a',('r','a')))),('s',('z',('a',('r','z')))))
02:40:38 <lambdabot> [('s',('a',('a',('r','a')))),('s',('a',('a',('r','b')))),('s',('a',('a',('r...
02:40:49 <CakeProphet> good range
02:40:57 <elliott> > [ [s,p,a,r,c] | (s,p,a,r,c) <- range (('s',('a',('a',('r','a')))),('s',('z',('a',('r','z'))))) ]
02:40:58 <lambdabot> Couldn't match expected type `(GHC.Types.Char,
02:40:58 <lambdabot> ...
02:41:09 <elliott> > [ [s,p,a,r,c] | (s,(p,(a,(r,c)))) <- range (('s',('a',('a',('r','a')))),('s',('z',('a',('r','z'))))) ]
02:41:10 <lambdabot> ["saara","saarb","saarc","saard","saare","saarf","saarg","saarh","saari","s...
02:41:15 <elliott> saarg
02:41:17 <oerjan> CakeProphet: i thought that was the one you wanted
02:41:38 <CakeProphet> I have no wants
02:41:45 * CakeProphet meditates on enlightenment.
02:41:52 <oerjan> Sgeo: as you see, Ix works better because you can give lower/upper bounds for each element
02:42:32 <Sgeo> Hmm
02:42:44 * Sgeo is mildly lost
02:42:54 <CakeProphet> > foldr1 (,) "saara"
02:42:55 <lambdabot> Occurs check: cannot construct the infinite type: a = (a, a)
02:42:58 <Sgeo> ...I see
02:43:00 <CakeProphet> oh.
02:43:01 <CakeProphet> right.
02:43:23 <zzo38> It looks like Conservapedia is not being encyclopedic! Although some of the points might be valid in some cases, they are not correct if you are trying to be unbiased articles about stuff like encyclopedic stuff.
02:43:54 <CakeProphet> zzo38: but "unbiased articles about stuff like encyclopedic stuff" is the left-wing agenda.
02:43:59 -!- Zuu has quit (Ping timeout: 252 seconds).
02:44:28 <oerjan> > range ((1,3),(0,2)) -- it's meant for things like this when indexing 2d arrays
02:44:29 <lambdabot> []
02:44:32 <oerjan> oops
02:45:00 <oerjan> > range ((1,0),(3,2))
02:45:01 <lambdabot> [(1,0),(1,1),(1,2),(2,0),(2,1),(2,2),(3,0),(3,1),(3,2)]
02:45:12 <zzo38> CakeProphet: O, that is what "left-wing agenda" is to them. Well, it is freedom of speech (and writing); that is why there are multiple resources to read information, including more than one if you want to. Whether or not they like that.
02:45:54 <oerjan> zzo38: basically the us conservatives are doing their best propaganda to redefine normal as "left-wing"
02:46:36 <CakeProphet> zzo38: well, apparently because Wikipedia doesn't cover Jesus Christ as the savior of mankind etc, it's pushing a atheist left-wing political agenda.
02:46:40 <CakeProphet> that's the logic as far as I can tell.
02:46:49 <oerjan> at least that's what it looks like for most western people outside the us
02:47:42 <pikhq_> zzo38: When you think "left-wing agenda" you should actually think "agenda of people who don't want a Christian theocracy".
02:47:49 <pikhq_> That'd do it.
02:48:01 <CakeProphet> some GOP presidential candidates actually claim that NPR is a left-wing organization..
02:48:10 <pikhq_> Only some?
02:48:17 <CakeProphet> vocally, anyway.
02:48:33 <CakeProphet> well, NPR is certainly too factual to be right-wing.
02:48:37 <CakeProphet> so it must be left-wing!
02:48:48 <zzo38> Well, Wikipedia should probably cover Jesus Christ as savior of mankind etc, although in the different way than Conservapedia does; Wikipedia should write it like, this is according to Christians religion, and such things, instead of saying it is absolute and that stuff. But Wikipedia should still write about Jesus Christ as savior, just not the way Conservapedia does.
02:48:51 <pikhq_> Remember, Fox News is "fair and balanced" reporting.
02:49:19 <pikhq_> zzo38: I'm pretty sure Wikipedia does go into quite a bit of detail regarding Christian beliefs on Jesus Christ.
02:49:42 <pikhq_> It would be a horrendous disservice to omit that on an article about Jesus.
02:50:47 <oerjan> i'd assume they have a whole series of articles on it
02:51:10 <CakeProphet> http://conservapedia.com/Homosexuality
02:51:14 <pikhq_> Well, yes. There's enough information for it.
02:51:49 <elliott> http://conservapedia.com/Poop
02:52:09 <elliott> http://conservapedia.com/Obscenity "Language describing homosexual acts tends, at least in English, to have the greatest emotional impact."
02:52:20 -!- elliott has left ("Leaving").
02:52:21 -!- elliott has joined.
02:52:24 <CakeProphet> 20:42, 10 April 2007 TimS (Talk | contribs) deleted "Poop" ‎ (content before blanking was: '== Poop ==The word poop in the English language is the vulgar and sinful slang term referring to human excrement. We know that human excrement is th...')
02:52:41 <oerjan> heh, they have a series on Salvation
02:53:08 <Sgeo> I guess only gay people fuck? Or what do they consider to be emotionally impacting? Varies from person to person, wouldn't it?
02:53:28 <elliott> Sgeo: SHUT UP FAG
02:53:40 <elliott> `addquote <Sgeo> I guess only gay people fuck?
02:53:42 <HackEgo> 726) <Sgeo> I guess only gay people fuck?
02:53:42 <CakeProphet> Sgeo: I think they're referring specifically to obscenities.
02:54:10 <CakeProphet> but I think they're wrong
02:54:18 <CakeProphet> YOUR MOM has the most emotional impact.
02:57:37 <CakeProphet> http://liberapedia.wikia.com/wiki/Main_Page
02:57:37 <CakeProphet> huh
02:58:04 <CakeProphet> The founder (known only as "WillH") wanted Liberapedia to parody Conservapedia and advised that: "most articles should take stereotypical liberal views and distort them to the extreme". Most arrivals since then have ignored that, and instead just written about liberal politics with dead seriousness.
02:58:09 <CakeProphet> --RationalWiki
02:58:15 <CakeProphet> so many biased encyclopedias
02:58:26 <oerjan> indeed Christology is a wikipedia series
03:01:55 <quintopia> hey guys
03:02:14 <quintopia> did you know being gay increases your likelihood of being a drug addict?
03:02:29 <quintopia> "Also, the homosexual population has a greater propensity to engage in illegal drug use."
03:02:33 <quintopia> :P
03:03:16 <CakeProphet> http://rationalwiki.org/wiki/Lenski_affair
03:03:20 <CakeProphet> this is a fun read.
03:08:50 <elliott> CakeProphet: Don't get sucked into RationalWiki.
03:10:06 <CakeProphet> I have no intention of getting sucked into a wiki of any sort.
03:10:17 <CakeProphet> oh you mean, just reading it?
03:10:18 <CakeProphet> or contributing?
03:10:32 <CakeProphet> *"contributing"
03:12:09 <CakeProphet> But perhaps because you did not bother even to read our paper, or perhaps because you aren’t very bright, you seem not to understand that we have the actual, living bacteria that exhibit the properties reported in our paper, including both the ancestral strain used to start this long-term experiment and its evolved citrate-using descendants. In other words, it’s not that we claim to have glimpsed “a unicorn in the
03:12:16 <CakeProphet> this is so good
03:12:41 <CakeProphet> garden” – we have a whole population of them living in my lab! And lest you accuse me further of fraud, I do not literally mean that we have unicorns in the lab. Rather, I am making a literary allusion.
03:18:27 -!- tiffany has quit (Quit: nyu~).
03:31:00 -!- kwertii has quit (Changing host).
03:31:00 -!- kwertii has joined.
03:47:16 -!- CakeProphet has quit (Ping timeout: 240 seconds).
03:56:44 -!- Vorpal has quit (Ping timeout: 248 seconds).
04:01:08 <zzo38> The Conservapedia page about GNU/Linux mentions that Richard Stallman is atheist. The article about Donald Knuth doesn't mention that Knuth is Christian, and it says he is known as the creator of LaTeX (the article about LaTeX (there is none about TeX) mentions that Leslie Lamport invented LaTeX, not Knuth). I did look at Liberapedia too.
04:01:47 <Sgeo> ....Does Conservapedia have a thing against F/OSS?
04:01:49 <zzo38> Both are bad (although valid if you just want to see different point of view). Wikipedia is more complete and better, although it too might omit some things. It is why they make things such as Wikinfo and various articles people write.
04:02:07 <Sgeo> (Don't tell Stallman that I lumped Free Software and Open Source together)
04:02:11 <zzo38> Sgeo: Not as far as I can see.
04:02:29 <kwertii> Wikipedia does tend to have a postmodernist bias on many topics, though it's getting better slowly.
04:02:53 <kwertii> particularly on topics that mainly only postmodernists care much about, such as colonialism
04:05:02 <pikhq_> Sgeo: Stallman actually has no issues with one lumping them together in contexts where that makes sense. He *may* object to your characterising GNU as "F/OSS", though.
04:06:00 <pikhq_> Also, I'd imagine Conservapedia mostly has an anti-geek bias. I'm surprised there's even an *article* on rms.
04:08:20 <elliott> kwertii: which of the 5000 definitions of postmodern are you using
04:10:55 <kwertii> elliott: "a loosely related set of philosophies deriving ultimately from the work of Heidegger holding that there is no such thing as absolute truth or objective reality and that so-called 'facts' are social constructions created through 'narrative' or 'discourse,' lately said to be actively manipulated by the Evil White Heterosexual Euro-American Male to oppress the glorious Other, whom he fears and seeks to quash."
04:12:29 <pikhq_> Is that even *slightly* prevalent?
04:12:41 <kwertii> pikhq_: as I said, it's gotten better lately
04:12:45 <pikhq_> I mean, as an actual thing, rather than some strawman figure?
04:13:01 <kwertii> pikhq_: it's quite popular in academia
04:13:15 <kwertii> pikhq_: especially in social sciences and literary criticism
04:13:45 <pikhq_> Bleh.
04:13:51 <kwertii> pikhq_: at my graduate school (San Francisco State University), it was orthodoxy, and daring to question any aspect of it was strongly discouraged.
04:14:18 <kwertii> (ironically, for a philosophy that claims to be open to all viewpoints and claims to not be privileging any one over another)
04:15:48 <pikhq_> Yeah, um, I'm having a bit of difficulty believing such things exist. That's really hitting Poe's Law levels of "... Wut?"
04:16:06 <Sgeo> What's the typical response to the trivial criticism of "Well, it itself suggests that some viewpoints are false"
04:16:19 <kwertii> in fact, on the west coast of the US, it's metastasized and spread out of the universities into the mainstream of the culture.
04:16:20 <Sgeo> Which I suspect should only effect a strawman
04:16:37 <pikhq_> Sgeo: I'd go with "Rephrase that as something substantial please."
04:16:38 * Sgeo is ignoring the word "lately" and everything after
04:16:42 <kwertii> Sgeo: the typical response is to get mad and accuse the person saying that of being a {racist, sexist, etc}
04:17:31 <Sgeo> Is the lack of objective reality itself a fact of objective reality?
04:17:44 <kwertii> Sgeo: my professors got really mad at me when I asked them that.
04:18:34 <kwertii> I also offered to retract my views on objective reality if anyone could jump off a bridge and manage to fly instead of splattering messily on the sidewalk in my presence. strangely, there were no takers.
04:18:49 <pikhq_> Sgeo: Well, strictly speaking, it is *unknowable* whether there is an "objective reality", I at least think.
04:19:04 <pikhq_> Of course, the *correct* answer to "is there an objective reality?" is "sure seems like it."
04:19:56 <pikhq_> And, of course, such discussions are at best pointless mental masturbation.
04:20:10 <Sgeo> You imply that mental masturbation is pointless
04:20:15 <kwertii> pikhq_: that would be the problem with logical positivism that the postmodernists claim to be addressing. Karl Popper also addressed this point far better with his critical rationalist theory that (informally) while we may not know with 100% ∫certainty whether something is objectively true, it may be taken to probably be true until it is falsified.
04:20:22 <pikhq_> Sgeo: No, I state it.
04:20:44 <kwertii> it is indeed mere pointless mental masturbation, which is why I am no longer in academia and have a real job now.
04:21:00 <kwertii> also, I get paid as much as 2 or 3 professors
04:21:00 <Sgeo> What is pointless about something that is interesting to think about?
04:21:13 <Sgeo> Next you'll say that purely theoretical math is pointless
04:21:20 <Gregor> I'm in academia mainly so that I can acquire the nickname "Doctah G, PhD"
04:21:20 <MonkeyofDoom> mental masturbation is only a half or a third as important as practical work, that is
04:21:21 <MonkeyofDoom> :P
04:21:39 <kwertii> Sgeo: trying to convince asshats that you're right is largely pointless. academia comes down more to politics than to actually being right, especially in soft sciences
04:21:49 <pikhq_> Gregor: You're in a different form of academia.
04:22:18 <kwertii> Gregor: what do you study?
04:22:26 <Gregor> pikhq_: Doesn't change my statement.
04:22:28 <Gregor> kwertii: CS.
04:22:28 <kwertii> hard sciences seems like a paradise, where you can actually prove that you're right
04:22:29 <pikhq_> Gregor: You're in the land of CS, math, science, and engineering. At least in principle, you need to deal with reality.
04:22:49 <pikhq_> Well, "reality" isn't quite the right term for math.
04:22:52 <pikhq_> :P
04:23:00 <kwertii> at least it can be provably internally consistent
04:23:10 <pikhq_> kwertii: Actually no.
04:23:31 <pikhq_> kwertii: Gödel ring a bell?
04:24:39 <kwertii> pikhq_: actually, yes, I've looked into that in some detail. Goedel's incompleteness theorem says that a certain class of logical statements are EITHER internally inconsistent OR rely on external axioms.
04:25:01 <kwertii> since "math" as that term is commonly used uses external axioms, it can be provably internally consistent
04:26:29 <kwertii> most commonly https://secure.wikimedia.org/wikipedia/en/wiki/Zermelo%E2%80%93Fraenkel_set_theory for the axioms, but there are other choices
04:27:07 <pikhq_> Y'know what? Fuck it, I shouldn't discuss this.
04:27:11 * pikhq_ summons oerjan
04:27:15 <pikhq_> oerjan: oerjan: oerjan:
04:27:40 <kwertii> social sciences COULD be similarly rigorized. but the establishment (professors currently in tenure) actively resist any attempt to impart the use of logic into the field. logic being an invention of the Evil White Heterosexual Man created for the specific purpose of oppressing brown people, gays, women, etc.
04:27:49 <kwertii> (at least on the west coast)
04:28:08 <pikhq_> kwertii: ... So, they reject logic, eh?
04:28:14 <pikhq_> Therefore, asdfhhbcixv;bjkosdahtfp9gxcjgidaf;
04:28:26 <elliott> looooool kwertii is so full of shit
04:28:45 <kwertii> elliott: I wish I was
04:29:00 <kwertii> pikhq_: actually, it's based on politics. you have to write something flattering to your advisor, not just random crap
04:29:00 <kwertii> \
04:29:34 -!- madbr has joined.
04:29:36 <madbr> hey
04:29:58 <pikhq_> kwertii: I am seriously finding this incredibly hard to believe.
04:30:02 <madbr> I think I have a realisable design for a slice processor :D
04:30:05 <kwertii> pikhq_: :(
04:30:14 <pikhq_> I can't reject it, but it seems so utterly *implausible*.
04:30:36 <Gregor> So because of IOCCC's size restrictions, I wrote a golf assistant.
04:30:48 <kwertii> pikhq_: you've obviously never spent much time at a California university
04:30:49 <Gregor> I was thinking about golfing the golf assistant and submitting it to IOCCC.
04:30:59 <Gregor> The problem is, then it'd just be golfed, not obfuscated :P
04:31:01 <pikhq_> kwertii: Indeed not.
04:31:48 <kwertii> pikhq_: http://www.linguistics.ucsb.edu/faculty/bucholtz/cv.html
04:32:38 <pikhq_> I have absolutely no idea what I should be getting out of that CV.
04:32:47 <kwertii> pikhq_: read a few of her publications and you'll see what I'm talking about
04:33:02 <kwertii> "You da Man: Narrating the Racial Other in the Linguistic Production of White Masculinity," Journal of Sociolinguistics 3(4): 443-460, 1999
04:33:37 <kwertii> tl;dr - white men are always seeking to appropriate the black man's "cultural identity" by stealing his slang, a subtle, ubiquitous, and hitherto unrecognized form of racism
04:34:00 <elliott> so Gregor why not drown out this off-topic inane prattle with an ioccc update
04:34:07 <elliott> did you fix sparc? :P
04:34:07 <Gregor> elliott: I was trying :P
04:34:11 <Gregor> elliott: I was trying :P
04:34:16 <pikhq_> kwertii: I see no such implications from the abstract of said publication.
04:35:30 <Gregor> elliott: Right now I'm focused more on making it a more complete dc, as I'm quite afraid that I'll run out of bits.
04:35:44 <kwertii> that's what "the narrative preserves the racial hierarchy that enables white cultural appropriation of African American culture through language crossing" means
04:35:47 <kwertii> in pomo-speak
04:36:17 <kwertii> http://richarddawkins.net/articles/824 Richard Dawkins on postmodernist vernacular
04:37:00 <madbr> lol postmodernism
04:37:02 <kwertii> if they just came out and said it in ordinary language, nobody would pay any attention to them. they have to dress it up in pompous jargon
04:37:11 <elliott> kwertii: pls, nobody gives a shit, take it to /msg if you must
04:37:26 <kwertii> elliott: pikhq_ asked.
04:37:37 <pikhq_> *That said*, this article seems to spend much time on irrelevancies in its discussion of the spread of features of African-American Vernacular English.
04:37:39 <zzo38> I have, in general, one problem with Skeptics Annotated Bible, which is that the deuterocanonical/apocrypha books are not included.
04:37:44 <pikhq_> And, frankly, this discussion is really boring me.
04:38:15 <kwertii> pikhq_: and yet you've kept participating in it and moving it further along
04:38:30 <elliott> shut
04:38:31 <elliott> the
04:38:32 <elliott> fuck
04:38:33 <elliott> up
04:38:34 <pikhq_> kwertii: s/really boring/starting to really bore/
04:38:37 <madbr> dude
04:38:39 <kwertii> :''(
04:39:15 <Gregor> elliott: I wish there were a SPARC expert about.
04:39:46 <madbr> http://s.engramstudio.com/src/101467.jpg
04:40:32 <pikhq_> zzo38: The reason for that is, undoubtedly, due to the target audience being *American* atheists.
04:40:40 <madbr> derrida should be punched in the face for différence / différance
04:41:03 <pikhq_> And in America the prevalent forms of Christianity are Protestant, and thus don't care about the apocrypha.
04:41:15 <kwertii> elliott: seems like people are interested after all
04:41:39 <Gregor> elliott: I'm at 2635 bytes raw, and don't have everything implemented >_>
04:42:13 <elliott> kwertii: orly:
04:42:15 <elliott> <elliott> so Gregor why not drown out this off-topic inane prattle with an ioccc update
04:42:19 <elliott> <Gregor> elliott: I was trying :P
04:42:21 <elliott> <pikhq_> And, frankly, this discussion is really boring me.
04:42:23 <madbr> wonder if you could get a midi player in that little code... probably not
04:43:00 <Gregor> madbr: I'm sure you could get a really bad one.
04:43:03 <kwertii> elliott: and madbr> derrida should be punched in the face for différence / différance
04:43:18 <elliott> 3 > 2
04:43:39 <madbr> gregor: hmm, sounds hard to fit in the synthesis
04:43:50 <kwertii> elliott: pikhq_ was actively discussing and only suddenly became bored when you indicated that you disliked the topic. I think he likes you.
04:43:53 <madbr> and the 128 damn patches, plus all the drums
04:43:54 <Gregor> madbr: Just need a sufficiently bad synthesis :)
04:43:59 <zzo38> It is not entirely atheists; they have Christian responses too. They also say you can have your own opinion. It is for both believers and skeptics. And people who just want to read it including annotations and cross-references, which you can disagree if you want to, or agree, or agree with some and disagree with others.
04:44:12 -!- copumpkin has quit (Ping timeout: 248 seconds).
04:44:15 <Gregor> madbr: You are thinking waaaaay to far into it. My synth would be square waves. MAYBE sine waves.
04:44:29 <madbr> gregor: I guess it's not too hard if you play everything with square waves and ignore all the controllers
04:44:38 -!- copumpkin has joined.
04:44:40 <madbr> square waves are boring :(
04:44:43 <elliott> kwertii: ah! conspiracy theories
04:44:44 <Gregor> Yeah, just need to process noteon/noteoff events.
04:44:48 <elliott> kwertii: this keeps getting better and better
04:44:51 <Gregor> madbr: So's your face, but you don't see us complaining.
04:44:56 <Gregor> OHHHHHHHHHHHHH RANDOM
04:45:03 <madbr> whatever
04:45:14 <Gregor> You could probably do better than square waves ...
04:45:31 <Gregor> I think, within the amount of space, you MAY be able to fit a heuristic mapping instruments to square, sine or saw.
04:45:45 <Gregor> And since all instruments are one of the three, DONE :P
04:45:50 <elliott> pikhq_: I appreciate your liking me but unfortunately I cannot reciprocate, we must duel to the death.
04:45:57 <zzo38> "God creates light and separates light from darkness, and day from night, on the first day. Yet he didn't make the light producing objects (the sun and the stars) until the fourth day." Well, actually, while there are examples of illogical things in the Bible, this is not one of them. There can be light and radiation and so on in the beginning of the universe;
04:46:14 <pikhq_> zzo38: The target *audience* of the Skeptic's Annotated is clearly atheists, though.
04:46:14 <elliott> Gregor: btw i wouldn't submit the twitter interp to ioccc
04:46:17 <elliott> Gregor: although hmm
04:46:22 <elliott> they don't look at authors so might as well
04:46:26 <zzo38> there can be photon and gravity and everything else. (Some Christians say it is the "Light of God"; still valid, but not scientific.)
04:46:32 <Sgeo> In my part of the US, most of the Christians are Catholic
04:46:33 <elliott> i was thinking two "short language impl" submissions from one person might go badly :P
04:46:43 <pikhq_> That some other groups may be interested is fairly irrelevant.
04:46:57 <pikhq_> Sgeo: That's somewhat exceptional.
04:47:01 <pikhq_> elliott: ?
04:47:11 <madbr> sgeo: isn't catholic church going badly these days?
04:47:15 <elliott> pikhq_: The jig is up!
04:47:24 <Gregor> elliott: Yeah, I was only thinking of it given that they don't look at the author :P
04:47:32 <Gregor> elliott: But actually, now I'm thinking about a MIDI player ;)
04:47:38 <Sgeo> madbr, *shrug*
04:47:42 <zzo38> However the second part of that annotation says "And how could there be "the evening and the morning" on the first day if there was no sun to mark them?" and that is a valid point; there cannot be evening/morning without the sun. The people that wrote that part just made some mistake, or never intended it to be logical, or whatever. I don't know for sure.
04:47:52 <madbr> dunno what it looks in us but here over 80% of people are catholic on paper
04:47:54 <elliott> Gregor: Outputting how?
04:47:57 <madbr> but irl nobody goes to church
04:48:02 <Gregor> elliott: wav to stdout
04:48:04 <elliott> Gregor: If you don't say "PC speaker", I don't like you.
04:48:17 <Gregor> elliott: OMG PLATFORM SPECIFIX
04:48:24 <madbr> and I dunno how many actually believe in god but it's certainly not 80% :D
04:48:40 <pikhq_> kwertii: Well, that's pretty strange to think. I was mostly discussing to see if it would actually go anywhere. Most I got was "postmodernists suck at writing".
04:48:54 <elliott> Gregor: You could probably do OSS in about two lines; if /dev/audio or whatever it is exists, open it, redir stdout to it and skip headers.
04:49:27 <kwertii> pikhq_: well, I do have some commentary on that point, but I won't deepen your boredom by relating it and forcing you to read it
04:49:29 <pikhq_> madbr: Here in the US, 85% of people claim to be Christian. Also, churches are exceptionally common.
04:49:38 <Gregor> elliott: Considering that I can't seem to get dc to fit, *waaah* :(
04:49:43 <madbr> there are lots of church here too
04:49:46 <madbr> but they're empty
04:49:57 <madbr> when they're not empty, they're full of old people
04:50:02 <Sgeo> I think I've been inside a church 0 or 1 times
04:50:14 * Sgeo increments that to 1 or 2
04:50:37 <madbr> lots of "3x catholics"
04:50:37 <pikhq_> madbr: We've got churches with 50,000 people attending a week.
04:50:54 <madbr> goes to church on birth, marriage, death :D
04:51:08 <pikhq_> https://upload.wikimedia.org/wikipedia/commons/3/31/Lakewood1.jpg
04:51:11 <elliott> Gregor: int q=open("/dev/audio",O_RDWR);if(q>0)dup2(q,1);else{...print wav headers...}
04:51:16 <kwertii> depends on what part of the US you're in. some suburban and rural areas are still highly religious in terms of % of people attending church. I would be surprised if 1 in 100 attends church in New York City.
04:51:34 <elliott> Gregor: 55 chars for OSS support :P
04:51:35 <Sgeo> pikhq_, You used to, well, at least be a Christian, I don't know if you went to church
04:51:36 <elliott> Or is it /dev/dsp...
04:51:39 <elliott> That'd be shorter.
04:51:44 <pikhq_> Sgeo: Vaguely regularly.
04:52:17 <pikhq_> Wasn't that important to me. Which is kinda odd, thinking back.
04:52:21 <elliott> Gregor: For shorter points, try ~0 instead of O_RDWR, there's a good chance that won't break systems :)
04:52:34 <elliott> Gregor: You can also avoid the "int " by reusing argc, ofc.
04:52:59 <pikhq_> Here I was, thinking that there was this omnipotent being that was going to send me to eternal torment if I didn't act right, and for the most part I was just apathetic about the whole ordeal.
04:53:03 <Sgeo> ~0?
04:53:25 <Sgeo> pikhq_, wait what? You didn't believe that God was mostly good, and cares more about actions?
04:53:42 <Gregor> elliott: Hm, I'm using -1 instead of ~0 in the JIT. C doesn't explicitly specify 2's-complement, does it X-D
04:53:46 <elliott> Sgeo: Doing bad things would be "not acting right".
04:54:01 * Sgeo misread/skimmed what pikhq_ said
04:54:18 <pikhq_> "Clearly" if you did bad things you were not good.
04:54:25 <Sgeo> I think I'm just not sure how going to Church is an essential part of "acting right"
04:54:25 <madbr> gregor: in theory no but wouldn't it be really hard to find a platform that's not 2's complement? :D
04:54:40 <madbr> I now it would probably break some of my sound rendering code :D
04:54:41 <pikhq_> When I lived with my extremely fundamentalist father, though, I mostly got a motherfucking *ton* of guilt.
04:54:43 <madbr> *know
04:54:48 <Sgeo> When I was younger, I believed that if there was a hell, it was mostly reserved for people like Hitler
04:54:51 <pikhq_> Reminder: Jesus hates masturbation! And lust!
04:54:56 <elliott> Gregor: if(0<q=open("/dev/dsp",~0))dup2(q,1);else{...print wav headers...} (where q is first argument to main)
04:54:59 <Gregor> madbr: Troof.
04:55:04 <elliott> Gregor: Eeeexcellent.
04:55:14 <Gregor> elliott: Why don't you use your amazing shortening skills to shorten my code instead of yours :P
04:55:20 <Gregor> (Do not actually do this)
04:55:32 <pikhq_> I think I probably just got burnt out on the fucking guilt trips, TBH.
04:55:36 <elliott> Gregor: 'cuz I'm more interested in this MIDI player :P
04:55:44 <kwertii> Sgeo: Raised as a Catholic, questioning the orders of God in any way was not encouraged. the magic book says "go to church every week," you go, and that's all there is to it.
04:56:31 <Sgeo> I distinctly remember, being told in Hebrew school, that, iirc, God could forgive sins against God, but only people could forgive sins against people.
04:56:39 <Sgeo> Or something along those lines.
04:56:57 <elliott> So if you fail to stone an adulterer, maaan are you fucked.
04:57:24 <kwertii> Sgeo: what happens if you die with unforgiven sins? could someone you've sinned against withhold forgiveness just to screw you over in the afterlife?
04:58:13 <pikhq_> Sgeo: Mainstream Christianity has the "wonderful" idea that unless you ask God for forgiveness from everything and strive to be perfect, you're sentenced to eternal torment and suffering.
04:58:24 <madbr> doesn't matter, all that matters is that you personally accept jesus as your saviour. also, catholics don't count and still go to hell </chick tract>
04:58:30 <pikhq_> And that all sins are created equal.
04:58:35 <pikhq_> And that masturbation is a sin.
04:59:21 <pikhq_> In conclusion, masturbation is equal to the Holocaust.
04:59:51 <kwertii> that's why Catholics have 2 classes of sin, venal and mortal. if you die with an unforgiven mortal sin on you, you're in deep shit. not sure where masturbation fits on the spectrum.
05:00:04 <madbr> probably venal
05:00:31 <madbr> I'm not sure what's the border for "lust" :D
05:00:53 <kwertii> I am sure, however, that committees of Catholic canon lawyers have discussed the matter at great length
05:04:12 <madbr> seems they consider masturbation "grave" - ie probably a mortal sin
05:04:18 <madbr> that's fucked up
05:05:08 <pikhq_> It's a religion based around a zombie Jew.
05:05:34 <kwertii> what better way to exert deep psychological control over the populace than require everyone to confess their every sexual thought and act to a priest until they're married?
05:06:16 <elliott> Gregor: So how were you planning to play MIDI files.
05:06:21 <elliott> To PCM.
05:06:22 <elliott> I mean WAV.
05:08:00 <elliott> pikhq_: BTW, I think per-thread pools are untenable for @.
05:08:22 <madbr> elliott: read the midi messages into synthesizer parameters, play that, output? :D
05:09:27 <madbr> maybe you could reduce patch data to about 12 bits of data... but it would probably be hard to make fit
05:11:11 <kwertii> elliott: looks like MIDI is not nearly as popular a topic as either postmodernism or religious views of masturbation were
05:11:29 <elliott> pikhq_: Even if it's just a single 4 kilobyte page, that's still 4 gigs for a million threads.
05:11:37 <elliott> kwertii: lol you are really upset
05:11:50 <kwertii> elliott: .. no. I don't mind
05:11:59 <elliott> which is why you keep bringing it up
05:12:02 * Sgeo likes MIDI files
05:12:08 <elliott> actually Gregor did answer my question, just in /query :)
05:12:13 * Sgeo has a collection of them
05:12:33 <Sgeo> http://daychilde.com/midiguy/ (Note: legality unknown)
05:12:50 -!- oerjan has quit (Quit: Good night).
05:13:36 <madbr> http://s.engramstudio.com/src/virt_-_BLT_Big_Lion_Television_Hour_01.mid
05:13:40 <Sgeo> Would be nice if I could get labels for the unlabelled songs
05:14:56 <elliott> pikhq_: OTOH, I can't think of any other decent way to divide pools...
05:15:16 <elliott> pikhq_: I could do per-CPU (I don't want aaaaany locking, so it can't go coarser-grained than this), but that seems really weird.
05:15:22 <elliott> And would also suck to GC.
05:15:26 <madbr> tour de force would be fitting in a reverb in too
05:15:46 <madbr> but tbh a reverb would probably take an IOCCC entry by itself
05:17:46 <pikhq_> elliott: Maybe you're thinking about this the wrong way around.
05:17:56 <elliott> Plausible :P
05:18:02 <pikhq_> Perhaps you should have some number of memory pools, and assign threads to them.
05:18:24 <elliott> Mm, I was thinking of that... but the problem is basically:
05:18:35 <pikhq_> The granularity is a little arbitrary I admit, but you're only really wanting to split up allocations, so.
05:18:38 <elliott> Hmm, actually
05:18:49 <elliott> I /think/ this might be simple enough that it can be done atomically from multiple CPUs
05:18:57 <elliott> mov rax, [rsp+N]
05:18:57 <elliott> add [rsp+N], 8
05:19:04 <elliott> Two CPUs doing that at once should be just fine, right? Even if 8 diffes.
05:19:05 <elliott> Err
05:19:09 <elliott> s/rsp+N/some shared location/
05:19:11 <elliott> *differs
05:19:24 <elliott> I think at the very worst it can waste some space, which GC will clean up.
05:19:40 <elliott> Wait, no, that's not safe.
05:19:47 <elliott> Because someone else could steal that heap pointer before the add.
05:19:51 <pikhq_> Yeah, that should race.
05:20:04 <elliott> add [blah], 8
05:20:04 <elliott> mov rax, [blah]
05:20:04 <elliott> sub rax, 8
05:20:11 <elliott> That should be safe, though, with the race condition of "wasting space".
05:20:58 <pikhq_> You could probably just use compare-and-swap.
05:21:14 -!- kwertii has quit (Quit: bye).
05:21:28 <pikhq_> CMPXCHG*
05:22:36 <elliott> pikhq_: Yeah, but it's easier to make sure pools are never concurrently accessed from more than one CPU :)
05:23:05 <elliott> You can still access /objects/ on that pool.
05:23:11 <elliott> The GC just has to know which threads are using which pool.
05:23:16 <elliott> ('s objects)
05:27:06 <elliott> pikhq_: This is wearing me down, so I'll pose a more fun question: How hard, and how slow, would it be to do a linked-list stack on x86-64 in place of the regular call stack? Then: Does this generalise easily to a spaghetti stack?
05:27:47 <zzo38> One idea I have, is Haskell command "if instance" which is like a normal "if" command, but in place of the condition you have the word "instance" followed by a constraint specification (which might include type synonyms too), and the expression for the true part is allowed to use those constraints.
05:27:51 <Sgeo> Spaghetti stack?
05:28:09 <elliott> zzo38: No! Breaks parametricity!
05:28:13 <elliott> Sgeo: http://en.wikipedia.org/wiki/Spaghetti_stack
05:28:14 <zzo38> I also have various ideas about instance disambiguation.
05:28:45 <pikhq_> Hard? Not *exceptionally*.
05:28:48 <Sgeo> elliott, So does seq
05:28:50 <pikhq_> Slow? I honestly have no idea.
05:29:04 <elliott> Sgeo: Not even remotely in the same ballpark.
05:29:18 <madbr> elliott: wouldn't that turn every push/pop into a memory allocation?
05:29:25 <elliott> Sgeo: See "Fast and loose reasoning is morally correct"
05:29:34 <Sgeo> ..?
05:29:45 <elliott> Sgeo: http://www.cs.ox.ac.uk/jeremy.gibbons/publications/#fast+loose
05:29:54 <madbr> also isn't the point of a stack the fact that you don't need complicated algos of doom to allocate/deallocate it? :D
05:29:58 <elliott> madbr: Yes, but allocations can be cheap (my current allocator takes two cycles)
05:30:13 <elliott> And it's hardly complicated *shrugs*
05:31:57 <madbr> heh really? if that's true, that's impressive yes
05:32:19 <pikhq_> madbr: It's called "bump pointer".
05:32:35 <madbr> :D
05:32:51 <elliott> madbr: yeah, it looks like this:
05:32:56 <elliott> allocated_object = pool_ptr;
05:32:59 <elliott> pool_ptr += size;
05:33:08 <zzo38> One purpose for "if instance" is in case you want to define some class methods of a instance that require another instance and default otherwise, or define other functions that a few parts of them work only on specific instances but still work OK in general without, or to do conditional compilation (even "backwards"; i.e. an imported module checks conditions of the module it is imported into), etc
05:33:17 <madbr> yeah but then how do you defragment ram? :D
05:33:22 <elliott> madbr: copying gc
05:33:31 <elliott> madbr: pools have a 4k "barrier" page after them so that when you access beyond the limit of the pool the gc runs
05:33:37 <elliott> so there's no branches required at all
05:34:04 <madbr> but don't you get an interrupt instead of a branch?
05:34:16 <madbr> guess you don't have to test it each time tho
05:34:19 <elliott> madbr: yes, it's expensive when you trigger a gc
05:34:24 <elliott> madbr: but most allocations fit within the current pool :P
05:34:27 <elliott> and those are free
05:35:14 <madbr> fair enough :D
05:35:21 <pikhq_> elliott: This does present issues if the allocation is greater than the barrier page size, though.
05:35:28 <elliott> well, yeah
05:35:34 <elliott> this is for allocations under 4k
05:35:36 <elliott> which is most allocations
05:35:42 <pikhq_> True, true.
05:35:50 <elliott> you need a tiny bit of arithmetic and a branch for larger allocations
05:35:56 <madbr> how does free() work
05:36:06 <pikhq_> It doesn't.
05:36:06 <elliott> madbr: it doesn't, gc
05:36:12 <elliott> here's an impl of free
05:36:15 <elliott> free(ptr) {}
05:36:17 <madbr> oh heh
05:36:27 <madbr> I see
05:36:30 <elliott> fastest free() evar, I can prove it
05:37:05 <madbr> it's not free once you have to gc though :D
05:37:36 <elliott> madbr: no, but gc is faster than manual memory management for most cases :)
05:37:41 <elliott> and @ has several nice properties that make it even faster
05:37:51 <MonkeyofDoom> the trick is to line up gc with when the user blinks
05:38:01 <elliott> lol
05:38:03 <MonkeyofDoom> that's why front-facing cameras are so popular these days
05:38:07 <zzo38> I do not like the names "ecliptic longitude" and "ecliptic latitude" for those coordinates very much, since equatorial coordinates have "right ascension" and "declination".
05:38:11 <madbr> monkeyofdoom: how does that work with sound code? :D
05:38:29 <MonkeyofDoom> madbr: you should reuse your buffers there
05:38:44 <zzo38> I also have other ideas about Haskell instance disambiguation. I can write it in my user space in Haskell wiki.
05:38:45 <MonkeyofDoom> underflow=baaad
05:39:00 <elliott> madbr: i'm actually interested in making a concurrent gc so that gc pauses last a couple dozen cycles at most and having it decide which to use at runtime
05:39:07 <elliott> but that's very hard, it'd need to swap out the allocator
05:39:17 <madbr> yeah but what happens if some part of the app starts garbage collecting, which blocks off the sound generating thread?
05:39:17 <elliott> since obviously you can't wait until you run out of pool to gc :p
05:39:34 <elliott> madbr: this is per-thread; in @ threads are very very cheap, not like typical OS threads
05:39:38 <elliott> they're more like lightweight coroutines
05:39:47 <elliott> that just happen to be able to run on multiple cpus and are preemptive :p
05:39:52 <elliott> you can have thousands of them, easily
05:39:56 <madbr> was talking to monkeyofdoom but that sounds good yeah :D
05:40:10 <elliott> so stopping a thread at a time isn't a big deal... but it is true that you can write a tight sound loop in a single thread and it doesn't work out
05:40:16 <elliott> obviously if you avoid allocating it's fine but yeah
05:40:20 <elliott> working on that :P
05:40:42 <elliott> @ will probably be pretty nice for audio stuff too since it's like Synthesis in that you can get away with tiny buffers
05:40:51 <elliott> with Synthesis that's because it did all kinds of tricks to minimise syscall overhead
05:40:52 <madbr> normally you setup things so that the sound thread never has to allocate or deallocate
05:40:56 <elliott> with @ it's because syscall overhead doesn't exist
05:41:28 <madbr> so if you have a program that streams audio from the disk you have 2 threads :D
05:41:49 <elliott> madbr: that's a bit harder with @, since the code would be in a purely functional language ... but you can certainly minimise allocations :)
05:42:20 <madbr> oh
05:42:43 <elliott> this actually makes @ more efficient in general
05:43:07 <elliott> it completely avoids userspace<->kernel context switching, hardware rings, slow allocators, ...
05:44:04 <pikhq_> Basically, it's removing all the abstraction layers that a decent language has to abstract again. :P
05:44:43 <elliott> but yeah, @ especially excels at allocation and IO performance
05:44:51 <elliott> which is pretty good for "realtimeish" code like audio
05:45:05 <quintopia> :|
05:45:22 <elliott> hi quintopia
05:45:43 <quintopia> hi elliott
05:45:48 <elliott> why the frowny
05:46:28 <elliott> madbr: i'm also interesting in making the language expressive enough that you can e.g. limit dynamic allocation of a certain piece of code statically at compile-time
05:46:39 <elliott> and if you break that contract the code won't compile
05:46:52 <elliott> so you know if you fuck it up or if something you call fucks it up for you
05:49:09 <quintopia> it wasn't a frown
05:49:11 <quintopia> it was straight
05:49:20 <quintopia> and i posted it in almost every channel i'm in
05:49:23 <quintopia> for shits
05:49:29 <elliott> but not giggles?
05:49:42 <quintopia> it's hard to giggle with a straight face
05:49:54 <elliott> heh
05:50:23 <zzo38> Someone said that after I make dvi-processing package for Haskell, they might add DVI output to Pandoc. I looked at Pandoc and have other ideas too:
05:50:37 <zzo38> * MediaWiki format for input and output.
05:50:49 <zzo38> * ESC/P format for input and output.
05:51:19 <zzo38> * Pure ASCII format for output, with option for LF/CRLF, line wrap, and form feeds.
05:51:27 <zzo38> * Plain TeX format for output.
05:52:14 <zzo38> * Support additional URI schemes: data ftp gopher
05:52:30 <zzo38> * Plain Old Documentation (as Perl) input and output.
05:53:50 <zzo38> * UNIX manual page format input and output.
05:54:03 <zzo38> What is your opinion/comment/complaint about this please?
05:56:29 <elliott> i'm sure he'd love patches
06:00:12 <pikhq_> Wow. If you add up all countries' reported transactions, the world had $331 billion in net exports.
06:00:24 <pikhq_> I didn't realise we were trading with, I dunno, Mars.
06:00:59 <Sgeo> pikhq_, the article I read that from made pretty much the exact same comment
06:01:00 <Sgeo> >.>
06:02:24 <elliott> pikhq_: It's the compromise the Andromedans agreed to. The population at large remains blissfully ignorant.
06:02:32 <elliott> Turns out the Earth has some interesting natural resources.
06:03:21 <zzo38> It looks like it has output MediaWiki and UNIX manual pages, but cannot input those formats. It also seem to only currently support "http" and "https" URI schemes.
06:05:24 <Sgeo> Aren't the Andromedans [Ed story spoilers]
06:05:31 <Sgeo> Wait, no
06:06:41 <elliott> pikhq_: I was going to ask how coroutine implementations on Unix allocate tiny stacks while stopping coroutines from stepping on each other's stacks, then I realised that they just won't bother *sigh*
06:07:10 <madbr> pikhq: stuff lost in transport?
06:08:28 <coppro> woot
06:08:36 <madbr> slowly working on a replacement for subtractive synthesis :D
06:08:36 <coppro> I'm done implementing my subset-of-c++ compiler for class
06:08:39 <coppro> it's so great
06:08:45 <madbr> coppro: cool
06:08:46 <coppro> I didn't want to write a register allocator
06:08:51 <coppro> so all the work is done on the stack
06:08:57 <coppro> (mips)
06:09:45 <madbr> hmm, I think I've figured out an interesting CPU design
06:09:51 <elliott> coppro: just do what all the cool kids do, assume there are infinite registers :)
06:10:06 <zzo38> Who is people making Pandoc, in #haskell channel?
06:10:22 <madbr> essentially a RISC with a fast calculation unit
06:10:50 <coppro> elliott: I have not confirmed this, but I suspect the prof has an expression with too many subexpressions to fit at some point
06:11:00 <elliott> coppro: oh, i just meant internally
06:11:06 <elliott> coppro: then you can really trivially use registers
06:11:12 <coppro> elliott: yeah, I know
06:11:19 <madbr> executes all the normal code in risc mode, then when it gets to a special loop that's optimised in handwritten assembly for the special execution unit, switches to that mode
06:11:22 <elliott> coppro: you could just assign the first N virtual registers to the real ones if you want to claim to do register allocation :D
06:11:41 <elliott> i think compilers will have really made it when they implement malloc() for register numbers
06:11:48 <elliott> they will have reinvented
06:11:49 <elliott> "the heap"
06:11:51 <madbr> special execution mode is for doing sound mixing and graphic rendering loops
06:12:01 <madbr> the kind of stuff that gets optimised in assembly anyways
06:12:10 <coppro> elliott: well, there's a bonus which is to get code size down
06:12:30 <madbr> special execution unit is a kind of vliw
06:12:36 <coppro> elliott: I may go for a naive subexpression-based allocator
06:13:04 <madbr> basically a whole bunch of mini-units that are a multiplexer + ALU + register
06:13:06 <elliott> coppro: See, here I was going to suggest something like superoptimisation, if compile time isn't a criterion.
06:13:29 <coppro> hahaha
06:13:32 <pikhq_> madbr: That's a lot to lose in transport.
06:13:45 <madbr> transport?
06:13:50 <elliott> coppro: It would shorten complicated arithmetic!!!
06:13:55 <elliott> madbr: <madbr> pikhq: stuff lost in transport?
06:13:56 <pikhq_> Erm.
06:14:00 <pikhq_> Yeah.
06:14:19 <pikhq_> Sorry, I'm interspersing IRC with 10 minute SRS sessions ATM. :)
06:14:22 <madbr> pikhq: ie the multiplexers would gobble up lots of space? :D
06:14:38 <Sgeo> SRS
06:14:38 <Sgeo> ?
06:15:08 <coppro> elliott: I should add that we're on a sufficiently small subset of mips to make that almost irrelevant
06:15:09 <elliott> pikhq_ is having the world's slowest sex resasignment surgery.
06:15:11 <pikhq_> "Spaced Repitition System".
06:15:23 <elliott> coppro: :-(
06:15:35 <coppro> elliott: no bitwise ops, in particular
06:15:56 <pikhq_> One rather obnoxiously good means of learning large quantities of things; I find it particularly handy in language acquisition.
06:15:58 <coppro> elliott: btw when I mean all work, I mean all
06:16:03 <Darth_Cliche> elliott: Wouldn't that be a relatively fast sex reassignment surgery, given that it usually takes about five years or so?
06:16:22 <madbr> but yeah on any given cycle, each ALU gets one opcode, executes it and the result is stored in the corresponding register
06:16:25 <coppro> like, a = b + c first pushes b, then pushes c, then pops them and pushes b + c, then pops that and assigns to a
06:16:43 <elliott> Darth_Cliche: I don't think a 5-year single period of surgery is involved :P
06:16:53 <elliott> coppro: Congratulations! You're compiling to Forth!
06:16:55 <madbr> and it reads the values for the ALU from other special unit registers
06:17:09 <madbr> so essentially you specify a data flow
06:18:02 <coppro> madbr: that's called a vector processor
06:18:22 <madbr> don't vector processors essentially apply SIMD?
06:18:24 <elliott> <madbr> so essentially you specify a data flow ;; you mean a GPU? :P
06:18:39 <madbr> I'm not familiar with GPU architecture :D
06:18:47 <elliott> I think http://www.yosefk.com/blog/simd-simt-smt-parallelism-in-nvidia-gpus.html is relevant.
06:19:18 <madbr> I don't like the fact that GPUs are on the other side of the bus and that you can only control them sorta indirectly
06:19:39 <elliott> madbr: you'd like larrabee
06:19:44 <elliott> also what amd are doing
06:19:52 <elliott> everyone's gluing a cpu and gpu together :P
06:20:09 <elliott> wow, larrabee isn't actually cancelled?
06:20:10 <pikhq_> It's a rather obvious move when people start programming GPUs, TBH.
06:20:45 <pikhq_> "Hmm. The PCIe bus is a major source of latency." "Can't we just stick it on the die?" "..."
06:21:03 <elliott> We should just eliminate all buses.
06:21:14 <elliott> Fuck public transport, the next CPU I buy better not require a motherboard.
06:21:26 <elliott> It's just a CPU with a shitload of USB ports on every single side of it.
06:21:31 <elliott> And a power lead.
06:21:51 <pikhq_> elliott: Strictly speaking, the project was, but the fruits of it are going into production.
06:23:30 <madbr> fruits of it?
06:25:12 <zzo38> One idea I have about Haskell instance override is like this (use scoped type variables): module Example where { value1 :: Int; value1 = 2 + 3; value2 :: (Num x, x ~ Int) => x; value2 = (2 :: x) + 3; } module Main where { import Example; instance Num Int where { _ + _ = 42; }; main = print (value1, value2); }
06:25:18 <madbr> wasn't larrabbee basically a multicore pentium with a huge ass simd unit and some hardware multi-load and bilinear interpolate instructions? :D
06:25:46 <madbr> but yeah my idea isn't actually SIMD
06:25:52 <zzo38> Maybe I am slightly mistake, though.
06:26:00 <pikhq_> "Multicore" doesn't quite describe it.
06:26:18 <madbr> more like a a hybrid between a FPGA and a CPU
06:26:42 <elliott> madbr: specifying microcode isn't really fpga, if i understand your idea from reading half of every third line about it
06:26:44 <pikhq_> A 48 core CPU.
06:27:09 <madbr> elliott: the point of a fpga is that it's rather parallel
06:27:21 <madbr> basically you create a bunch of components
06:27:21 <zzo38> madbr: Can you write a document of this idea please?
06:27:23 <pikhq_> madbr: The point of an FPGA is that it's *specifying circuitry*.
06:28:02 -!- CakeProphet has joined.
06:28:03 <pikhq_> It's a redesignable integrated circuit.
06:28:21 <madbr> most components are basically a bunch of registers for which you specify "ok on next clock cycle this gets a value based on [other registers and math circuits]
06:28:27 <madbr> from what I can tell
06:29:06 <madbr> pikhq: well, yeah, but afaik almost any design is register based
06:29:27 <madbr> zzo: hmm
06:29:41 <madbr> zzo: probably yeah
06:29:54 <madbr> suppose your processor has 32 units
06:31:12 <madbr> for each unit, you specify an ALU opcode, and two source registers, and a cycle from which the data becomes "valid" (before that cycle, the register doesn't get written to)
06:31:18 <elliott> oh well, time to read about the programmable pipeline
06:31:41 <madbr> I guess it's a user programmable pipeline yeah
06:31:51 <elliott> oh, wasn't talking about this :)
06:32:17 <madbr> some of the units are special and can do memory reads
06:32:29 <madbr> or memory writes
06:32:31 <Sgeo> Can it reprogram itself, or must it be reprogrammed externally?
06:32:56 <madbr> sgeo: it's programmed by the RISC part of the processor
06:33:37 <madbr> so basically code reaches some part that needs beefy power, the risc processor fills in all the registers of the fast unit and kicks off execution
06:35:38 <madbr> once that's done executing, control goes back to the risc part, that presumably reads out some values from the fast execution unit and cleans up and returns to C++ code
06:35:41 <elliott> sigh, opengl is so complicated
06:36:14 <madbr> elliott: sometimes that's required in order to make the api useful
06:36:34 * Sgeo just wants to know if they're arrows or not
06:36:35 <Sgeo> >.>
06:36:41 <madbr> arrows?
06:36:41 <elliott> Sgeo: what is arrows
06:36:44 <elliott> as in
06:36:47 <elliott> what do you want to know whether is etc.
06:36:53 <elliott> madbr: sure, but it's annoying when a large part of the complexity is gunk caused by the host language :)
06:37:20 <madbr> elliott: at least it's not oop :D
06:37:33 <elliott> well, there's that
06:37:34 <Sgeo> FPGAs. As far as I understand, circuitry can be represented with arrows, unless the circuit can modify itself
06:37:54 <elliott> Sgeo: there are arrow dsls for hardware design in haskell yes i believe
06:38:03 <madbr> sgeo: ah
06:38:24 <madbr> sgeo: isn't an arrow basically "on next cycle this register takes [value whatever]" ? :D
06:38:27 <elliott> Sgeo: but a york lava-style approach is nicer, arrows suck :P
06:38:35 <elliott> madbr: http://www.haskell.org/ghc/docs/latest/html/libraries/base/Control-Arrow.html
06:38:40 <Sgeo> elliott, but can FPGAs be represented by such, or are they capable of reprogramming themselves in a way that would require ArrowApply?
06:38:59 <elliott> Sgeo: FPGAs can't be reprogrammed at runtime, obviously. and it's not clear what you mean by "represented by"
06:39:09 <Sgeo> Ok, that answers my question
06:39:11 <elliott> Sgeo: obviously you can't write idk (Clock ~> OutPorts)
06:39:13 <elliott> because of arr
06:39:27 * Sgeo is starting to dislike arr >.>
06:39:32 <madbr> I don't know haskell so dunno
06:39:34 <Sgeo> Not just because of this
06:39:48 <elliott> Sgeo: here's some life advice: just skip the interim steps and start disliking arrows
06:39:52 <elliott> a good way to do this is to try and use arrows
06:40:00 <madbr> but essentially it has something like arrows yeah
06:40:10 <Sgeo> york lava?
06:40:33 <madbr> essentially the code would look something like
06:40:53 <elliott> Sgeo: http://www.cs.york.ac.uk/fp/reduceron/memos/Memo23.txt, http://hackage.haskell.org/package/york-lava
06:40:57 <elliott> (first link is more helpful)
06:41:06 <madbr> r[0] <= r[x] {OPERATOR} r[y]
06:41:09 <madbr> r[1] <= r[x] {OPERATOR} r[y]
06:41:11 <madbr> r[2] <= r[x] {OPERATOR} r[y]
06:41:12 <elliott> Sgeo: the reduceron is written in it
06:41:13 <madbr> ...
06:41:17 <madbr> r[31] <= r[x] {OPERATOR} r[y]
06:41:18 <elliott> madbr: that's not what haskell arrows are :P
06:41:30 <madbr> then it's not haskell arrows :D
06:41:36 <madbr> it's VHDL arrows basically
06:41:54 <madbr> r[32] <= memory[r[x]]
06:42:30 <madbr> memory[r[x]] <= r[y]
06:42:53 <Sgeo> But something of type Bit -> Bit -> Bit should be opaque, how can a compiler determine what it is?
06:42:56 <Sgeo> Or is it not really ->/
06:43:04 <madbr> ?
06:43:22 <elliott> Sgeo: hint: Bit isn't Bool
06:43:33 <elliott> data Bit =
06:43:33 <elliott> Symbol { componentName :: String
06:43:33 <elliott> , numOutputs :: Int
06:43:33 <elliott> , parameters :: [Parameter]
06:43:33 <elliott> , inputs :: [Bit]
06:43:34 <elliott> , instanceRef :: IORef (Maybe InstanceId)
06:43:36 <elliott> , outputNumber :: OutputNumber
06:43:38 <elliott> , outputSignal :: Signal
06:43:40 <elliott> }
06:44:09 <Sgeo> Um, hmm. So <&> takes a bit that knows it was made of two bits?
06:44:13 <Sgeo> Erm, makes, not takes
06:44:14 <elliott> what
06:44:17 <elliott> yes
06:44:26 <Sgeo> Hmm, cool
06:44:29 <elliott> (the IORef there is for observable sharing... uses unsafePerformIO, but the Kansas Lava team published a safer, unsafePerformIO-less observable sharing implementation later on, so it's nothing fundamental)
06:44:39 <elliott> (and ofc the external interface is pure)
06:44:56 <elliott> Sgeo: the primitives look like this basically:
06:45:06 <elliott> -- | Inverter.
06:45:06 <elliott> inv :: Bit -> Bit
06:45:06 <elliott> inv a = makeComponent "inv"
06:45:06 <elliott> {- Inputs: -} [a]
06:45:06 <elliott> {- Outputs: -} 1
06:45:07 <elliott> {- Simulate: -} (\[a] -> [map not a])
06:45:09 <elliott> {- Params: -} []
06:45:11 <elliott> {- Continue: -} (\[o] -> o)
06:45:13 <elliott> -- | D-type flip-flop, with initialiser (first argument).
06:45:15 <elliott> delayBit :: Bit -> Bit -> Bit
06:45:17 <elliott> delayBit init a =
06:45:19 <elliott> makeComponent "delay"
06:45:21 <elliott> {- Inputs: -} [init, a]
06:45:23 <elliott> {- Outputs: -} 1
06:45:25 <elliott> {- Simulate: -} (\[init, a] -> [head init:a])
06:45:27 <elliott> {- Params: -} ["init" :-> getConst (componentName init)]
06:45:29 <elliott> {- Continue: -} (\[o] -> o)
06:45:31 <elliott> ehh.... that is longer than it looked
06:45:33 <elliott> sorry for flood
06:46:11 * Sgeo doesn't quite grasp the details
06:46:16 -!- zzo38 has left.
06:46:20 * Sgeo should go to sleep
06:46:37 <elliott> Sgeo: it just records a bit symbolic description of the logic tree basically
06:46:43 <elliott> and then writes it out as a million-line VHDL file
06:46:53 <elliott> (ok not a million lines but the reduceron was like ... a ridiculous number of lines)
06:46:59 <elliott> (and they all look like a <= some_primitive(b,c) :P)
06:47:06 * Sgeo could make something similar for AW stuff!
06:47:10 <Sgeo> >:)
06:47:13 <elliott> die die die
06:47:20 <madbr> so yeah anyways, the idea is that you'd write the tight loops in assembly for the "very fast execution" unit and the rest in C++ to run on the RISC part
06:48:01 <madbr> just like a SIMD coprocessor :D
06:48:12 <Sgeo> Real hardware bores me
06:48:16 <madbr> and it would get potentially more operations per cycle than the SIMD
06:48:19 <Sgeo> Give me virtual worlds any day
06:48:21 <madbr> sgeo: oh?
06:48:43 <madbr> what are you into, networks or what? :D
06:49:11 <Sgeo> Think Second Life, things like that
06:49:25 <madbr> never tried SL
06:49:32 <madbr> heard it was for RP mostly
06:49:43 * Sgeo doesn't really roleplay
06:51:06 <madbr> well, I heard about it mostly from furries so that would explain heh
06:51:27 <pikhq_> That's probably the most *lasting* class of use for it.
06:52:01 <pikhq_> Otherwise, well, you've got rather stupid "ZOMG ALTERNATE CURRENCY" morons, and people there for the novelty.
06:52:08 <pikhq_> As you can imagine, that doesn't last long.
06:52:16 <pikhq_> So, yeah, I suppose by now it mostly is for RP.
06:52:21 <madbr> well, that's just a pyramid/zero sum game
06:52:37 * Sgeo is mostly there for scripting and talking
06:52:46 <madbr> whereas for RP their other alternatives are basically IRC and other chat programs
06:53:02 <Sgeo> I've made a negligible, but non-zero, amount of money in SL
06:53:12 * Sgeo still has yet to convert it to RL currency though
06:53:34 <elliott> is it 3 cents
06:53:35 * Sgeo isn't in it for the money though
06:53:44 <Sgeo> Something like $200
06:53:47 <elliott> Sgeo what's the capital of second life called
06:54:21 <Sgeo> Capital, as in currency? Lindens, or Linden
06:54:25 <Sgeo> *Linden dollars
06:54:27 <elliott> no as in
06:54:28 <elliott> capital
06:54:35 <madbr> tried a MUCK once, was kinda depressing
06:54:47 <Sgeo> elliott, not entirely sure that that's meaningful
06:54:54 <elliott> lame
06:54:56 <elliott> whats the place where you enter
06:55:04 <oklopol> madbr: you can also RP in MMORPGs!
06:55:09 <Sgeo> I think there are several, randomly chosen
06:55:13 <Sgeo> It changes
06:55:14 <elliott> SIGH
06:55:17 <madbr> essentially an IRC chat channel, plus the rest of the world was some kind of dead scripted thing
06:55:21 <elliott> i give up on making this cheap occupy wherever that is joke
06:55:30 <Sgeo> Occupy Grid?
06:55:36 <madbr> oklopol: not playing those, ever :D
06:55:37 <elliott> yes, that. wow that sounds so fucking stupid.
06:55:40 -!- Darth_Cliche has quit (Quit: You are now graced with my absence.).
06:55:43 <elliott> like i'm envisioning it as a wireframe
06:55:44 <elliott> and its the 90s and
06:55:44 <oklopol> madbr: who would
06:55:50 <elliott> oh god what im thinking of is cybertown Sgeo and i hate you
06:55:51 <elliott> and i hate the 90s
06:55:54 <elliott> and the 90s should be obliterated
06:56:02 <Sgeo> Well, the grid represents the whole SL ... universe
06:56:07 <elliott> YOU'RE A UNIVER
06:56:08 <elliott> ASE
06:56:12 <elliott> univer-ASS!!!!!!
06:56:15 <elliott> cry
06:56:23 <madbr> dunno, I dislike music from about 1995 to 2010 :D
06:56:23 <oklopol> elliott: oh right because you never got to see them because you're 12
06:56:27 <Sgeo> elliott, Cybertown is not a part of Second Life
06:56:29 <elliott> no i'm 9
06:56:30 <elliott> and a half
06:56:35 <elliott> i age backwards
06:56:36 <Sgeo> Cybertown does have a City Hall
06:56:43 <elliott> madbr: what happened in 2010
06:56:53 <elliott> Sgeo: YOU'RE A PART OF SECOND LIFE.
06:57:16 <madbr> elliott: well, I haven't heard too much of the 2010's music yet so I'm not judging :D
06:57:36 <madbr> but what I've heard so far I don't like too much
06:57:41 -!- CakeProphet has quit (Ping timeout: 240 seconds).
06:57:43 <madbr> so I guess I am judging, ha
06:57:54 * elliott wonders if madbr is actually listening to a representative sample of all music released in 2010.
06:58:01 <madbr> course not
06:58:05 <elliott> Boring.
06:58:18 <pikhq_> If we're lucky, he's listening to a representative sample of all music that hit top 40 radio in 2010.
06:58:26 <pikhq_> And if he did *that*, then of course he wouldn't like it.
06:58:27 <pikhq_> :P
06:58:47 <pikhq_> Hint: the charts do, and basically have always, sucked.
06:58:50 <Sgeo> elliott, anyways, AW does have a specific entry point, AWGate, and a specific huge world that a lot of people used to build in, AW (Alphaworld)
06:58:58 <Sgeo> So, Occupy AWGate?
06:59:03 <elliott> Sgeo: yes, but nobody has ever made money from activeworlds
06:59:05 <elliott> or enjoyment
06:59:07 <elliott> or happiness
06:59:12 <elliott> all they have made is their soul a little more dead on the inside
06:59:30 <Sgeo> There used to be huge protests in AW
06:59:35 <Sgeo> Due to price increases
06:59:36 <oklopol> well have activeworlders ever made money off the real world?
06:59:42 <oklopol> maybe it just separates better.
06:59:45 <elliott> Sgeo: like i said
06:59:46 <elliott> dead inside
06:59:55 <elliott> oklopol have you tried being dead inside its so great
06:59:59 <madbr> heh money in virtual worlds
07:00:04 <madbr> it's a zero sum game
07:00:25 <Sgeo> There's money in Cybertown
07:00:33 <Sgeo> That has no relation to RL money whatsoever
07:00:40 <oklopol> elliott: it's great for a while
07:01:57 <madbr> but yeah anyways, in a normal processor, you'd go:
07:02:21 <madbr> load r0, [r1]
07:02:23 <elliott> does anyone know opengl shit
07:02:33 <madbr> I know some
07:02:37 <madbr> add r0, #16
07:02:48 <elliott> madbr: programmable pipeline?
07:02:56 <madbr> str r0, [r1]
07:03:00 <madbr> add r1, #4
07:03:15 <madbr> elliott: not anything about shaders or stuff no unfortunately
07:03:23 <elliott> right, that's what i'm interested in :p
07:03:34 <madbr> what are you drawing?
07:04:20 <elliott> tons of stuff, theoretically :P I'm more interested in the high-level details of the pipeline, because I'm playing about with a certain library I want to write...
07:05:14 <madbr> in the slice processor (the kind of processor I've been talking about), you'd have:
07:05:30 <oklopol> elliott: i know pretty much everything about opengl
07:05:38 <oklopol> it means open graphics library
07:05:41 <elliott> oklopol: thx
07:06:06 <elliott> oklopol: i had to check that just because i doubt you so much
07:06:20 <oklopol> wow.
07:06:31 <oklopol> well i did just pull that from my rectum
07:06:36 <oklopol> so maybe that was a good idea
07:06:48 <oklopol> gtg
07:06:54 <elliott> farewell oklopol
07:07:00 <elliott> remember not to die...
07:07:04 <oklopol> uu
07:14:13 <madbr> r0 <= r0 + 4
07:14:14 <madbr> r1 <= r1 + 4 [start at cycle 2]
07:14:14 <madbr> r2 <= r2
07:14:14 <madbr> r3 <= r32 + r2
07:14:14 <madbr> r32 <= mem[r0]
07:14:14 <madbr> mem[r1] <= r3 [start at cycle 2]
07:14:35 <madbr> (all of these operations happen together, on each cycle)
07:15:55 <madbr> essentially this takes a buffer of 32bit numbers and increments each one by the value in r2
07:16:15 <madbr> r0 and r1 are initialized to the data start address
07:16:46 <madbr> there's also a loop count register
07:18:01 -!- derrik has joined.
07:20:23 <madbr> essentially, thanks to out of order execution, you can get more or less that type of execution on a pentiumII and later family processor
07:21:09 <madbr> since you get up to 3 ALU operations and afaik 1 load 1 store and some other operations, plus FPU or SSE operations, on any given cycle :D
07:25:57 -!- madbr has quit (Ping timeout: 276 seconds).
07:30:35 -!- madbr has joined.
07:30:42 <madbr> damnit
07:31:32 <madbr> anyways, that's it for the data flow oriented language
07:32:27 <madbr> the idea being to come up with something that should be simple enough to implement in VHDL or something but allow for fast processing :D
07:32:42 <madbr> eh, did I say language
07:32:43 <madbr> ?
07:32:47 <madbr> I mean processor
07:39:01 -!- madbr has quit (Read error: Connection reset by peer).
08:01:21 -!- copumpkin has quit (Ping timeout: 252 seconds).
08:01:46 -!- copumpkin has joined.
08:08:28 -!- andrew12 has joined.
08:11:00 <elliott> `@ andrew12 ? welcome
08:11:07 <HackEgo> andrew12: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page
08:11:14 * elliott is the best at precision welcome attacks.
08:11:33 <andrew12> hello.
08:11:40 * shachaf never got a warm welcome like that.
08:12:00 <andrew12> i was half expecting this room to be very dead
08:12:14 <shachaf> No one spoke in here for months until you came in.
08:12:26 <andrew12> i doubt that
08:12:29 <elliott> andrew12: It's pretty active :P
08:12:33 <shachaf> That's why we're so excited.
08:12:41 <shachaf> It's active but the topic is never esoteric languages.
08:12:53 * elliott checks our recent log sizes... yeah, still always 100-200 kilobytes per day
08:13:11 <shachaf> I spend too much time at IRC.
08:13:18 <elliott> At IRC?
08:13:31 <elliott> > chr 67
08:13:32 <lambdabot> 'C'
08:14:31 <elliott> andrew12: Mind you, we're not on-topic all that often.
08:14:44 <andrew12> that's not a problem :p
08:14:44 <elliott> But the world of esolangs isn't exactly the fastest-moving beast.
08:14:49 <andrew12> yeah
08:14:55 <oklopol> except me, i'm always on topic
08:15:11 <elliott> `log [^]]<oklopol>
08:15:28 <elliott> HackEgo: Stop being so slow.
08:15:37 <HackEgo> 2008-06-13.txt:00:46:23: <oklopol> also who it a tome, a small one
08:15:47 <oklopol> what
08:15:55 <shachaf> fungot: Stop being so slow.
08:15:56 <fungot> shachaf: but it is your journey i am just not old enoug)( to )(ave t)(ose are your black leanings, much as the moon takes liberty. reason. justice. civility. edification. perfection.
08:16:01 <Sgeo> `log [^]]<Sgeo>
08:16:06 <Sgeo> What's with the ] ?
08:16:07 <elliott> Reason. Justice. Civility. Edification. Perfection. --fungot
08:16:08 <fungot> elliott: really, it is a free card in your sylladex
08:16:08 <elliott> ^style
08:16:09 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher fungot homestuck* ic irc iwcs jargon lovecraft nethack pa sms speeches ss wp youtube
08:16:10 <HackEgo> 2007-09-07.txt:15:09:36: <Sgeo> lol
08:16:12 <oklopol> i never said that
08:16:12 <elliott> ^style irc
08:16:12 <fungot> Selected style: irc (IRC logs of freenode/#esoteric, freenode/#scheme and ircnet/#douglasadams)
08:16:14 <oklopol> `log [^]]<oklopol>
08:16:14 <elliott> fungot: Say hi to andrew12.
08:16:15 <fungot> elliott: mmm... real lambda.... eval don't work?)
08:16:19 <elliott> ^source
08:16:19 <fungot> http://git.zem.fi/fungot/blob/HEAD:/fungot.b98
08:16:20 <HackEgo> 2008-04-26.txt:21:35:27: <oklopol> what's the difference between a function and a thing that receives a message?
08:16:20 <oklopol> this is something crazy i'm guessing
08:16:22 <shachaf> `log [^]]<shachaf>
08:16:28 <HackEgo> 2011-10-02.txt:06:48:41: <shachaf> .,admin + elliott
08:16:29 <andrew12> so many bots
08:16:31 <shachaf> This channel is pretty much #botspam
08:16:32 <elliott> Oh no, it's the "someone new joined, let's use the bots forever" thign.
08:16:34 <elliott> thing.
08:16:44 <elliott> andrew12: Yeah, but only one of them is written in Befunge.
08:16:45 <shachaf> Actually, this channel is pretty much #elliottandhisaudience
08:16:51 <elliott> X-D
08:16:54 <andrew12> lol
08:17:02 <elliott> `run for i in $(seq 5); do echo "and only this one runs arbitrary Linux commands"; done
08:17:03 <shachaf> Actually it's pretty much #haskell
08:17:04 <HackEgo> and only this one runs arbitrary Linux commands \ and only this one runs arbitrary Linux commands \ and only this one runs arbitrary Linux commands \ and only this one runs arbitrary Linux commands \ and only this one runs arbitrary Linux commands
08:17:08 <oklopol> well that's a natural step after hey let's be interesting and realizing we're not
08:17:20 <shachaf> elliott: That's not a Linux command!
08:17:22 <elliott> !bf_txtgen Only this one does esolang stuff?? EgoBot is pretty useless.
08:17:26 <oklopol> this is something crazy i'm guessing
08:17:27 <EgoBot> ​691 +++++++++++++++[>++>++++++++>+++++>+++++++<<<<-]>>>++++.>+++++.--.<<+.<++.>-----.>+++++++++++++++++++++++++.+.<-.<.>----.>+++++.>-------.<<<.>>>-.<<.----------.>+++++.<<.>.>.----.---.<----.>>++++++++++.<<++++++.<.>>+++++++.+.+.>--------.<<-.<+++++++++++++++++++++++++++++++..-------------------------------.+++++++++++++++++++++++++++++++++++++.>+.++++++++.<---.>.+++++.<----------------------------------.>>>+++.<<-.<.+++++++++++++++++++++++++++++++++++++++++
08:17:31 <oklopol> erm
08:17:34 <oklopol> `log [^]]<oklopol>
08:17:38 <elliott> Right, now we've abused all the bots, we can stop now.
08:17:40 <HackEgo> 2007-10-05.txt:20:07:04: <oklopol> hmm, sorry then
08:17:41 <elliott> Dammit oklopol.
08:17:53 <oklopol> but that thing obviously garbles the lines
08:17:59 <Sgeo> What is the ]?
08:18:10 <oklopol> <oklopol> also who it a tome, a small one
08:18:14 <elliott> Sgeo: huh?
08:18:15 <oklopol> why did i say that
08:18:21 <oklopol> let's spend the whole day wondering
08:18:27 <shachaf> elliott: EgoBot ought to generate optimal programs. Kolomogorovically speaking.
08:18:29 <elliott> We're giving andrew12 a super good first impression, here.
08:18:31 <Sgeo> [^]]<Whoever>
08:18:36 * shachaf will complain until someone implements it.
08:18:36 <Sgeo> What's with the second ]?
08:18:41 <elliott> Sgeo: [^]] = [^\]]
08:18:57 <elliott> [^]]<foo> matches any <foo> not preceded by ]
08:19:01 <elliott> but the <foo> in that line is itself preceded by ]
08:19:12 <elliott> so you avoid HackEgo's annoying tendency to spit your line back at you as the result
08:19:18 <Sgeo> Oh, I see
08:19:21 <shachaf> elliott: Any <foo> preceded by a character that is not ], rather. :-(
08:19:27 <Sgeo> I misparsed it as somehow trying to find the first instance
08:19:37 <elliott> shachaf: Shhh, this is #esoteric, we don't do that fancyspeak.
08:19:39 <shachaf> Lern2lookbehind
08:19:59 * elliott instantly hears the Look Around You theme in his head.
08:20:07 <elliott> Only because I read it as "look around".
08:20:19 <elliott> Look Behind You would be a significantly more disturbing name for a show.
08:21:30 <pikhq_> Such an amazing show.
08:21:32 <oklopol> elliott: could you please paste me the context of that tome line so i don't have to do anything
08:21:59 <elliott> 00:46:07: <oklopol> who me a situation where it's bad if it means the same thing
08:21:59 <elliott> 00:46:11: <oklopol> *show
08:21:59 <elliott> 00:46:14: <oklopol> also who it tome
08:21:59 <elliott> 00:46:16: <oklopol> *to me
08:21:59 <elliott> 00:46:23: <oklopol> also who it a tome, a small one
08:22:03 <elliott> Hope that clears things up.
08:22:29 <shachaf> `addquote <oklopol> also who it a tome, a small one
08:22:32 <HackEgo> 727) <oklopol> also who it a tome, a small one
08:22:47 <elliott> I can feel our QDB improving with each passing moment.
08:23:00 <oklopol> wwwhat
08:23:08 <oklopol> oh
08:23:09 <andrew12> doesn't tome mean book?
08:23:09 <oklopol> .
08:23:35 <Sgeo> elliott, update
08:23:48 <oklopol> i don't think i've ever seen a typoness of that badly.
08:23:50 <shachaf> elliott is actually our most sophisticated bot.
08:23:58 <oklopol> so badly typoness.
08:24:05 <elliott> I'm written in SNOBOL.
08:24:21 <shachaf> He accepts commands that contain "@" in them and say anything negative, and responds with simulated anger.
08:24:27 <andrew12> there's always this one: http://bash.org/?5300
08:24:31 <shachaf> It's a lot of fun until you get tired of it.
08:24:39 <elliott> hah
08:25:12 <shachaf> No one mentioned poor lambdabot, speaking of bots that accept @-commands.
08:25:36 <elliott> > 10 "I run BASIC commands."
08:25:37 <lambdabot> 10
08:25:45 <elliott> (It responds with the line number if the command executed correctly.)
08:28:01 <shachaf> elliott: I don't think a string is a correct BASIC command.
08:28:08 <elliott> That's the comment syntax, duh.
08:28:11 <elliott> Haven't you ever used Smalltalk?
08:28:12 <Sgeo> > 10 Blah
08:28:13 <lambdabot> Not in scope: data constructor `Blah'
08:28:22 <elliott> Sgeo: It's BASIC, everything has to be IN CAPITALS.
08:28:42 <Sgeo> Derp
08:28:48 <Sgeo> elliott, funny
08:28:51 <shachaf> I assume everyone is familiar with augustss's various abominations so there's no point in me mentioning them.
08:29:00 <elliott> shachaf: I love those.
08:29:01 <Sgeo> shachaf, I've heard of them
08:29:16 <elliott> Sgeo: http://augustss.blogspot.com/2009/02/more-basic-not-that-anybody-should-care.html
08:29:35 * Sgeo somehow didn't notice that it was lambdabot
08:30:04 <Sgeo> ExtendedDefaultRules?
08:30:16 <Sgeo> andrew12, for clarification, lambdabot does not in fact run BASIC
08:31:07 <andrew12> i see
08:31:08 <shachaf> Sgeo: No one claimed that it did. We're just talking in an esoteric language which happens to resemble English in syntax.
08:32:24 <elliott> shachaf: It's weird how most people don't notice that until we startodifjasj ojrpwer pdsfa kallq fklerg.
08:32:33 <elliott> andrew12 oppq ner.
08:33:15 <andrew12> eh?
08:33:37 <elliott> Yse.
08:33:41 <elliott> That was actually a typo.
08:33:44 <elliott> But let's leave it like that.
08:33:52 <elliott> We're not usually this weird, I swear. Well, that might be a lie.
08:34:14 <andrew12> i'm in weirder rooms
08:34:18 <andrew12> trust me, :P
08:34:24 * Sgeo finds that difficult to believe
08:34:28 <shachaf> elliott: Usually much weirder, eh?
08:34:42 <elliott> Sgeo: Oh please, we're not usually this interesting.
08:34:49 <elliott> If "interesting" is the right word to use.
08:35:07 <elliott> We're a boring, stately freenode enterprise that pretends we're wacky because we talk about esolangs.
08:35:19 <elliott> Also, you all suck.
08:35:57 <shachaf> elliott: u mad?
08:36:02 <elliott> See?
08:36:05 <shachaf> That's elliott's favorite expression.
08:36:20 <elliott> "That's elliott's favorite expression." is shachaf's favourite expression.
08:36:33 <elliott> It is important to keep in mind the difference between someone's favorite expression and their favourite expression.
08:36:53 <shachaf> "post-ironic, a.: When one's ironic appreciation of something becomes genuine, usually due to either prolonged exposure or the enjoyment derived from how amusingly terrible it is."
08:37:04 <shachaf> ellioutt: I agree.
08:37:39 <andrew12> so, i've written a brainfuck interpreter and debugger in ruby.
08:37:57 <andrew12> https://github.com/andrew12/brainfuck
08:38:17 <shachaf> andrew12: Wait, is that, like, a new esolang or something?
08:38:27 <andrew12> brainfuck? totally
08:38:48 <shachaf> You should make a dialect which is identical in semantics but uses slightly different syntax to express the eight operators.
08:38:55 <shachaf> elliott is a fan of those.
08:39:04 <elliott> That's such a novel idea.
08:39:30 * elliott links andrew12 to https://bitbucket.org/lifthrasiir/esotope-bfc/overview, because that's just what he does whenever the topic of brainfuck implementations comes up.
08:39:51 <shachaf> elliott: It's National Novel Idea Month, man!
08:40:03 <elliott> That's a month?
08:40:25 <andrew12> NaNoIdMo!
08:40:46 <elliott> I prefer NaNoSuperEgoMo.
08:41:11 <shachaf> I typed that in and then decided that it was too tacky to say. :-(
08:41:17 <pikhq_> That's every month for you, Sir Hubris.
08:41:26 <elliott> shachaf: The solution is to not have standards.
08:41:29 * elliott recommends it.
08:42:19 <shachaf> honor favorite gray
08:42:34 <pikhq_> Also, dammit, now I'm rewatching "Look Around You".
08:42:53 <pikhq_> Well, "dammit"'s not the right phrase, as that is wonderful.
08:43:02 <elliott> We need Ngevd here to provide some youthful enthusiasm to stop us spiralling down the interminable ... spiral ... self-hatred.
08:43:29 <shachaf> Is Ngevd youthful, or just Ngevd's enthusiasm?
08:43:59 <shachaf> aluminum
08:44:04 <shachaf> What a vile word, aluminum.
08:44:09 <elliott> I wouldn't call Ngevd old and oh god I just realised what you're doing.
08:44:17 <elliott> I thought "honor favorite gray" was just... I don't know, you're weird.
08:45:05 * elliott honours his favourite Grey.
08:45:12 <elliott> http://upload.wikimedia.org/wikipedia/commons/3/32/Alienigena.jpg
08:45:13 * elliott honour.
08:45:17 <shachaf> elliott: Why don't you write him a check?
08:45:53 <shachaf> Maybe give him a donut and go to the theater together.
08:46:09 <elliott> andrew12: Your first task as a newbie is to distract shachaf.
08:46:35 <andrew12> shachaf: Look, a distraction!
08:46:39 <shachaf> elliott has very -- I wouldn't call them *high* standards, exactly, but they're very far off to the side.
08:48:36 <elliott> So they're...
08:48:43 <elliott> #########
08:48:43 <elliott> #
08:48:43 <elliott> ########
08:48:43 <elliott>
08:48:43 <elliott> #######
08:48:44 <elliott>
08:48:45 <elliott> ######
08:48:47 <elliott> # # #
08:48:49 <elliott> ###
08:48:51 <elliott>
08:48:53 <elliott> ######
08:48:55 <elliott> #
08:48:57 <elliott> #####
08:48:59 <elliott> standards?
08:49:01 <elliott> Wow, that's the worst sideways ASCII art lettering anyone's ever done.
08:50:07 <pikhq_> shachaf: I think what you're looking for is nonstandard standards.
08:50:23 <shachaf> The nice thing about elliott's standards is that there are so many to choose from.
08:50:38 <elliott> :-D
08:52:16 <Sgeo> But eso-std is down!
08:52:53 <shachaf> elliott: Is there a pattern to when you capitalize your sentences or don't?
08:52:57 <elliott> Yes.
08:53:09 <elliott> Ewwww, this Haskell binding forces me to explicitly free these simple memory resources.
08:53:11 <elliott> shachaf: Fix it.
08:53:25 <shachaf> Yes, sir, right away, sir.
08:53:31 <shachaf> Done.
08:54:19 <elliott> Thanks.
08:54:39 * shachaf wonders whether elliott will now turn on him, like in that one comic.
08:55:01 <elliott> It is a mystery.
09:00:18 -!- hagb4rd has quit (Quit: Nettalk6 - www.ntalk.de).
09:15:27 -!- sebbu2 has joined.
09:15:27 -!- sebbu2 has quit (Changing host).
09:15:27 -!- sebbu2 has joined.
09:18:29 -!- sebbu has quit (Ping timeout: 240 seconds).
09:19:10 -!- pagnol has joined.
09:19:57 -!- GreaseMonkey has quit (Quit: The Other Game).
10:01:45 -!- monqy has quit (Quit: hello).
10:01:50 -!- Phantom_Hoover has joined.
10:11:33 <Phantom_Hoover> lambdabot...
10:11:34 <lambdabot> Phantom_Hoover: You have 9 new messages. '/msg lambdabot @messages' to read them.
10:15:53 * shachaf isn't sure he wants to know.
10:15:59 <shachaf> I suspect elliott, though.
10:16:06 <elliott> It was lambdabot.
10:16:09 <elliott> Talking to Phantom_Hoover.
10:16:11 <elliott> It's pretty creepy.
10:18:20 <Phantom_Hoover> And her in a relationship with CakeProphet, too.
10:23:29 -!- Jendas has joined.
10:25:47 <Jendas> Please, can anybodey help me? I´m not able to identify one particular code, I need to determine, by which esolang is it written
10:26:21 <elliott> cool
10:26:24 <elliott> for what purpose :P
10:26:57 <Jendas> it´s a kind of cipher O:-)
10:28:48 <Jendas> I need to decrypt it
10:29:00 <elliott> pastebin the code?
10:29:04 <Sgeo> Is this a puzzle from some website?
10:29:52 <Jendas> Yes, it is. If you know geocaching.... Frend of mine, made it :-D
10:29:54 <Jendas> Ok w8
10:30:12 <Jendas> +++v+[->++++++++++<]>+++++++++.+<[-]++++++[->++++++++++<]>+++++.+.>++++
10:30:12 <Jendas> [->$++++++++<]>.<<----.<+++[->-----<]>.+++++++++++++++++.++.>>.<<<++[->
10:30:12 <Jendas> ---$--<]>-.<++[->+++++<]>.>>.<<-----------.++++++++++++..----.>>>++++++
10:30:12 <Jendas> +++$++[->+++++<]>+++.-----------..<<<<+++++++.------.<++++[->----<]>.>>
10:30:12 <Jendas> >>- .<<<<<+++++++++++[->++<]>.+++.>>>>.@<<<<<+++++[->-----<]>++.>>>>>+++
10:30:12 <Jendas> +++ ++++ . [-]
10:30:13 <Jendas> [ > 55+5*, 99*9+55+2*+ , 87*54*+64*+, 48*:, v
10:30:14 <Jendas> v ,: ,+2 ,:*2+7**552 ,-*35 ,:**782 # <
10:30:14 <Jendas> > 2255***5+::, 25*+, 84*, "/z",, 2-, v
10:30:14 <Jendas> v, ++**25*25*251< 5
10:30:14 <Jendas> >$ $552**7+2*,v |:-1< 3 ,,"/",:**33+6<
10:30:16 <Jendas> ^ ># #< ^
10:30:16 <Jendas> v,+*35,"dd"<
10:30:17 <Jendas> > "om.",,,"s"1-, 54*3+5*,"a"4+, 55+, ^
10:30:21 <elliott> Jendas: Pastebin, not Ctrl+V.
10:30:47 <Jendas> y, sorry
10:30:51 <elliott> ^source
10:30:51 <fungot> http://git.zem.fi/fungot/blob/HEAD:/fungot.b98
10:31:15 <elliott> Jendas: Well, the first part is definitely valid brainfuck code.
10:31:18 <Jendas> http://pastebin.com/DyQW1VwC
10:31:39 <elliott> Oh, the whole thing is.
10:33:22 <Jendas> y, i fought that, it seemed to me like that, but the second part?
10:33:56 <elliott> Well, brainfuck ignores all invalid instructions. So it could just be a brainfuck program designed to look like something else.
10:34:01 <elliott> Have you tried running it?
10:34:14 <Jendas> not yeat
10:34:16 <Jendas> t
10:34:27 <Jendas> yet* sorry, it´s dark in here :-D
10:34:36 <elliott> Running it is a good way to find out if it's a brainfuck program :P
10:35:10 <Jendas> i´ve tried to run it as fish... and something else. ok, i´ll try
10:35:32 <elliott> fish?
10:35:41 <Phantom_Hoover> Looks like it's a Brainfuck/Befunge polyglot.
10:36:30 <Phantom_Hoover> With the Befunge contained in a [-][<code>] to shield it from execution as BF.
10:36:49 <Jendas> yes, befunge, this was the second one
10:37:20 <Phantom_Hoover> What does + do on an empty stack?
10:37:25 * elliott isn't sure what you're asking, if you know what the languages are already.
10:38:06 <Jendas> well i´m asking coz i didn´t work :-(
10:38:24 <elliott> What didn't?
10:39:34 <Jendas> running it as fish or befunge. I didn´t run it as brainfuck, coz it looked like that, but had a lot of extra expressions in it...
10:40:22 <Sgeo> Extra expressions don't stop it from being BF
10:40:24 -!- hagb4rd has joined.
10:40:24 <Phantom_Hoover> It definitely looks like valid Befunge; try using a different interpreter.
10:40:35 <Phantom_Hoover> Sgeo, yes, this was established about a page ago.
10:41:31 <Jendas> I know it now... you know, it´s confusing for me, it´s my first time in esolang
10:42:24 <Jendas> And phantom, would you please recommend me one?
10:42:56 <Phantom_Hoover> elliott will yell at me if I say anything other than 'Shiro', so Shiro.
10:43:03 <elliott> Shiro doesn't even do Befunge-93.
10:43:15 <elliott> Jendas: http://catseye.tc/gallery/esolangs/yoob/
10:43:19 <Phantom_Hoover> Do we know it's 93?
10:43:27 <elliott> is the one the creator of the language wrote.
10:45:34 <Jendas> elliott - thanks a lot :-)
10:46:51 -!- elliott_ has joined.
10:46:59 -!- elliott has quit (Read error: Connection reset by peer).
10:47:22 <Deewiant> Phantom_Hoover: Popping an empty stack gives 0, so + on an empty stack pushes 0
10:49:14 <Deewiant> It seems that that polyglot is intended a puzzle of some kind
10:49:37 <Jendas> oh, it worked! Thank you so much :-)))
10:50:18 <Deewiant> $ bf arst.b98
10:50:19 <Deewiant> 1st part is http://wqa.wz.c
10:50:21 <Deewiant> $ ccbi arst.b98
10:50:22 <Deewiant> 2nd part is z/gc/coords.morse
10:52:21 -!- BeholdMyGlory has quit (Ping timeout: 244 seconds).
10:53:40 -!- BeholdMyGlory has joined.
10:56:52 <Jendas> thank you guys! :-))
11:00:26 -!- CakeProphet has joined.
11:00:26 -!- CakeProphet has quit (Changing host).
11:00:26 -!- CakeProphet has joined.
11:00:43 <CakeProphet> 01:54 < Sgeo> Capital, as in currency? Lindens, or Linden
11:00:45 <CakeProphet> I lol'd
11:01:03 -!- derrik has quit (Quit: back to 3D).
11:07:24 <Phantom_Hoover> https://mediastream.cern.ch/MediaArchive/Photo/Public/2008/0804060/0804060_04/0804060_04-A4-at-144-dpi.jpg
11:07:36 <Phantom_Hoover> This is the LHC's entire hydrogen supply.
11:07:47 <elliott_> X-D
11:07:54 <elliott_> That's amazing.
11:08:26 <Phantom_Hoover> Oh, I just noticed the "A proton source" sign.
11:08:51 <elliott_> Phantom_Hoover: Nononono it's like "Proton Source A".
11:08:54 <elliott_> here is no Proton Source B.
11:08:59 <elliott_> s/^/T/
11:09:03 <Phantom_Hoover> (Also there might be some more bottles, but eh.)
11:21:08 -!- Zuu has joined.
11:37:39 -!- Vorpal has joined.
11:47:01 -!- sebbu2 has quit (Read error: Connection reset by peer).
11:47:23 -!- sebbu2 has joined.
11:47:23 -!- sebbu2 has quit (Changing host).
11:47:23 -!- sebbu2 has joined.
11:52:21 -!- derdon has joined.
11:53:10 -!- Phantom__Hoover has joined.
11:54:41 -!- sebbu2 has changed nick to sebbu.
11:54:53 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
11:58:53 -!- Phantom__Hoover has quit (Ping timeout: 240 seconds).
12:00:28 -!- quintopia has quit (Ping timeout: 248 seconds).
12:01:11 -!- Phantom__Hoover has joined.
12:01:28 -!- quintopia has joined.
12:01:28 -!- quintopia has quit (Changing host).
12:01:28 -!- quintopia has joined.
12:05:45 -!- Phantom__Hoover has changed nick to Phantom_Hoover.
12:08:10 -!- Jendas has left.
12:36:40 <elliott_> fizzie: http://www.qwantz.com/everywordindinosaurcomicsOHGOD.xml
12:36:44 <elliott_> fizzie: Need I say more?
12:36:53 <elliott_> fizzie: I'll write the script.
12:36:58 <elliott_> Phantom_Hoover: PREPARE YOURSELF.
12:37:09 <elliott_> Also, don't open that in Chrome.
12:37:10 <elliott_> Or Firefox.
12:37:12 <elliott_> Or anything.
12:38:53 <elliott_> Gleh, it: only has the first four years (i.e. less than half the comic).
12:38:55 <elliott_> Phantom_Hoover: Sadden with me.
12:40:19 <elliott_> Oh, I can just scrape the OhNoRobot archives.
12:56:25 <Phantom_Hoover> Heello.
13:01:18 <elliott_> names = ['T-Rex', 'T:Rex', 'T-Blech', 'Utahraptor', 'Dromiceiomimus',
13:01:18 <elliott_> 'Dromeciomimus', 'Dromeceiomimus', 'Narrator', 'Ye Olde Narratore',
13:01:18 <elliott_> 'The House', 'House', 'Woman', 'Man', 'Human', 'Off-screen',
13:01:18 <elliott_> 'Off-Camera Person', 'Monocle guy', 'Tyrones', 'God']
13:01:26 <elliott_> Phantom_Hoover: THESE TRANSCRIPTS ARE OF SUCH HIGH QUALITY
13:01:43 <Phantom_Hoover> Yes.
13:01:53 <elliott_> Phantom_Hoover: OK I give up, Dinosaur Comics literally has too many characters to list.
13:02:04 <elliott_> Mammuthus Primigenius: Of course not!
13:02:04 <elliott_> Mammuthus Primigenius: It's clearly implied that it takes place in an alternate universe where dinosaurs can talk!
13:02:04 <elliott_> Ground Sloth: So just assume it takes place in a world where Batman, make-outs, and talking dinosaurs co-exist.
13:02:04 <elliott_> Mammuthus Primigenius: I...
13:02:04 <elliott_> Mammuthus Primigenius: I call it "Earth-Perfect."
13:02:06 <elliott_> Lady: Ha ha no thank yooou!
13:02:08 <elliott_> I CAN'T ADD ALL THESE
13:09:23 <elliott_> [elliott@dinky qwantz-scraper]$ wc -l qwantz
13:09:23 <elliott_> 25225 qwantz
13:09:24 <elliott_> Yessssss.
13:14:25 -!- Ngevd has joined.
13:14:30 -!- Ngevd has changed nick to Taneb|Hovercraft.
13:14:52 <Taneb|Hovercraft> Hello
13:17:09 <elliott_> Hi Taneb|Hovercraft.
13:17:19 <elliott_> I'm afraid the IWC style is about to be usurped by the BEST STYLE YET.
13:17:28 <Taneb|Hovercraft> Namely?
13:17:42 <elliott_> DINOSAUR COMICS
13:17:50 <Taneb|Hovercraft> !!!
13:18:31 <elliott_> BEHOLD A SNAPSHOT OF THE FUTURE
13:18:37 <elliott_> <fungot> frig frig frig frig frig frig frig frig frig frig frig frig frig frig frig frig frig frig frig frig frig frig frig frig frig frig frig
13:18:37 <fungot> elliott_: so noted. i'll drop it.
13:19:04 <Taneb|Hovercraft> fungot, you can't fight fate
13:19:05 <fungot> Taneb|Hovercraft: program design is still a decent amount of unity and consensus on the format...
13:19:24 <Taneb|Hovercraft> elliott_, fungot is scaring me
13:19:25 <fungot> Taneb|Hovercraft: differences in syntax. for the rest of which seems to be the fashion, you published said brain-log on the world
13:19:38 <elliott_> Taneb|Hovercraft: It does that a lot.
13:20:40 <Taneb|Hovercraft> It's almost able to pass a Turing test
13:22:08 <Taneb|Hovercraft> fungot, are you a bot?
13:22:09 <fungot> Taneb|Hovercraft: http://www.codu.org/ fnord stuff if you'd like to see the quote, but people keep telling that to it.
13:22:26 <elliott_> ...
13:22:28 <elliott_> ^style
13:22:28 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher fungot homestuck ic irc* iwcs jargon lovecraft nethack pa sms speeches ss wp youtube
13:23:46 <elliott_> oh no
13:29:11 <Taneb|Hovercraft> I think the problem with all my esolangs so far has been their minimaliness
13:29:48 <Taneb|Hovercraft> None of them are anywhere near the scale of Befunge or ORK
13:30:48 <Taneb|Hovercraft> Except for Uniquode, but that's nowhere near completion
13:32:46 <Taneb|Hovercraft> I think Uniquode will be completed around the time when Microsoft PowerPoint has been ported to @
13:32:59 <elliott_> Taneb|Hovercraft: That will be the day I destroy @.
13:33:20 <elliott_> Taneb|Hovercraft: Anyway trust me you don't want to aim for more bloated designs.
13:34:09 <Taneb|Hovercraft> My esolang with the most commands I think is Brook
13:34:18 <Taneb|Hovercraft> And that has what? 10?
13:34:21 * elliott_ finally takes a look at Brook.
13:34:38 <Taneb|Hovercraft> NOOOO
13:35:16 <Taneb|Hovercraft> The article is awfully written
13:35:36 <elliott_> It is.
13:35:41 <elliott_> I take it c is the append-to-program instruction?
13:35:50 <Taneb|Hovercraft> I think so
13:35:53 <elliott_> (diff) (hist) . . N UglyBF‎; 13:33 . . (+695) . . 92.148.109.67 (Talk) (creation)
13:35:54 <elliott_> No dieeeeeee.
13:36:03 <elliott_> Phantom_Hoover: BRICK
13:36:10 <elliott_> I assure you all it is completely justified in this case.
13:36:32 -!- lambdabot has quit (*.net *.split).
13:36:36 -!- ineiros_ has quit (*.net *.split).
13:36:47 -!- ineiros has joined.
13:39:17 -!- hagb4rd has quit (Quit: Nettalk6 - www.ntalk.de).
13:40:47 <Vorpal> <elliott_> Taneb|Hovercraft: Anyway trust me you don't want to aim for more bloated designs. <-- stop being a minimalist all the time
13:40:54 <Vorpal> befunge98 is fun
13:41:22 <Phantom_Hoover> Vorpal, you're an idiot.
13:41:41 <Vorpal> Phantom_Hoover, why do you think so in this case?
13:41:55 <elliott_> Vorpal: Between Uniquode and Brook, I'll take Brook. The vast majority of complicated esolangs are crap.
13:42:35 <Vorpal> elliott_, hm
13:42:36 <elliott_> I don't know of one that is truly interesting; fun, maybe, but even then the esolangs with mounds of orthogonal rubbish piled together rather than being based on a simple interesting concept is the far more common sort of large esolang.
13:42:36 <Taneb|Hovercraft> Vorpal, because befunge98 is actually a brainfuck derivative
13:43:13 <Taneb|Hovercraft> Brook is based on /two/ interesting concepts!
13:43:24 <Taneb|Hovercraft> It's queue-based and something else
13:43:28 <Taneb|Hovercraft> Brook-like
13:46:12 -!- Taneb|Hovercraft has quit (Quit: Goodbye).
13:54:44 -!- Taneb|Hovercraft has joined.
14:01:14 -!- Taneb|Hovercraft has quit (Quit: Goodbye).
14:01:37 <quintopia> the snakes got him!
14:05:41 -!- Taneb|Hovercraft has joined.
14:10:15 <Phantom_Hoover> Snakes on a Hovercraft.
14:10:24 * quintopia feeds the snakes that have taken over taneb's hovercraft
14:10:35 <quintopia> (they took over his irc too!)
14:12:05 <Taneb|Hovercraft> I'm hovercraft for a reason
14:12:16 <Taneb|Hovercraft> Means I could go at any second
14:13:03 <quintopia> dont listen to the treacherous snakes! they have acquired human language!
14:13:56 <Phantom_Hoover> oh noooooo
14:17:32 <elliott_> -- XXX This isn't a great hash function
14:17:32 <elliott_> hashInteger :: Integer -> Int#
14:17:32 <elliott_> hashInteger (!_) = 42#
14:17:49 <Deewiant> Not great, no
14:17:56 <elliott_> Not my code :-)
14:17:59 <elliott_> That's actually GHC code
14:18:10 <elliott_> Well, integer-simple, so I guess not that many people actually USE it
14:18:15 <elliott_> Although I think all ARM users do
14:19:45 <Taneb|Hovercraft> What does "(!_)" mean?
14:19:55 <elliott_> It's like hashInteger _ = ...
14:19:56 <elliott_> But strict.
14:20:09 <Taneb|Hovercraft> And "Int#"?
14:20:18 <Deewiant> It's like hashInteger !_ = ... but with extra brackets
14:20:24 <elliott_> Taneb|Hovercraft: Unboxed integer
14:20:33 <elliott_> Low-level stuff
14:21:04 <Taneb|Hovercraft> Low-level as in I should know this, or low-level as in this is how the computer thinks?
14:21:32 <elliott_> Latter
14:21:38 <elliott_> You won't have to deal with unboxed integers
14:21:45 <Taneb|Hovercraft> Oh good
14:21:46 <elliott_> Unless you do the kind of crazy crap I do :P
14:22:12 <Taneb|Hovercraft> I made a broken also awful brainfuck interpreter in Haskell this morning
14:22:19 <Taneb|Hovercraft> It is broken and also awful
14:22:32 <Taneb|Hovercraft> I'm not even sure if it should work
14:31:04 <Taneb|Hovercraft> I think I've got it working
14:31:11 <Taneb|Hovercraft> What's a suitable test program?
14:32:08 <MonkeyofDoom> write a haskell compiler in brainfuck and see if it produces the same binary
14:40:55 <Taneb|Hovercraft> Got a curious error
14:41:10 <Taneb|Hovercraft> The cat program given on the wiki (-1 on EOF)
14:41:18 <Taneb|Hovercraft> I ran it with input "Hello!"
14:41:22 <Taneb|Hovercraft> Got "llo!" back
14:41:27 <Phantom_Hoover> Taneb|Hovercraft, a self-interpreter running HW.
14:41:41 <Phantom_Hoover> No, wait, a self-interpreter running 99 bottles.
14:46:12 -!- ais523 has joined.
14:46:56 <elliott_> hi ais523
14:47:19 <ais523> hi
14:47:42 <Phantom_Hoover> hais523.
14:47:51 <elliott_> Phantom_Hoover: oh no, the uglybf person replied to you
14:47:54 <elliott_> I'm scared to look
14:48:02 <elliott_> not out of sympathy though, that kind of thing is unforgivable
14:48:17 <elliott_> ais523: don't look at the wiki, there is a chance your soul may survive
14:48:23 <ais523> elliott_: /that/ bad?
14:48:26 <Phantom_Hoover> elliott_, have you looked yet.
14:48:38 <elliott_> ais523: at least, don't look at the article titled "UglyBF"
14:48:47 <elliott_> btw, I suggest we don't clean up or categorise it at all
14:48:50 <elliott_> it doesn't deserve it
14:48:52 <ais523> elliott_: I've noted its existence, it doesn't look like spam
14:48:54 <ais523> I haven't read it
14:48:58 <elliott_> Phantom_Hoover: OK I looked and that's so funny.
14:49:02 <ais523> but apparently Phantom_Hoover is making death threads on the talk page
14:49:07 <elliott_> death threads
14:49:09 <elliott_> threads of death
14:49:20 <elliott_> I don't think it's ever been proven that the brickbraining procedure is fatal.
14:52:02 <Taneb|Hovercraft> Hoover's conjecture: the brickbraining is not fatal
14:53:34 <Madoka-Kaname> What is uglybf?
14:53:47 <elliott_> That is the fatal question.
14:54:11 <elliott_> ais523: Is there a way to delete pages as a bot?
14:54:16 <elliott_> It's kind of annoying seeing the masses of spam deletions in recentchanges.
14:54:38 <ais523> elliott_: not without higher perms than I have
14:54:41 <Madoka-Kaname> *sigh*
14:58:28 <Taneb|Hovercraft> Madoka-Kaname, it's a crap-looking BF derivative
14:58:39 <Taneb|Hovercraft> On another note, who wants to see my awful code?
14:58:41 <Taneb|Hovercraft> http://pastebin.com/0CCW2UeC
14:59:06 <Taneb|Hovercraft> Oh damn, just spotted something very bad
14:59:51 <elliott_> Taneb|Hovercraft: Please, hpaste.org or sprunge instead of pastebin.
14:59:54 * elliott_ really dislikes pastebin.
15:00:25 <elliott_> Taneb|Hovercraft: Hey, did you just reinvent zippers?
15:00:30 <elliott_> Or did you already read abotu them.
15:00:41 <elliott_> Anyway, rule of thumb: don't use an n-tuple if n>2.
15:00:41 <Taneb|Hovercraft> I probably re-invented them
15:00:43 <elliott_> You want a data type.
15:00:57 <elliott_> Taneb|Hovercraft: Well, they're the last chapter of LYAH.
15:01:09 * elliott_ wasn't smart enough to reinvent zippers.
15:01:24 <Taneb|Hovercraft> ...What's a zipper?
15:02:20 <ais523> the simplest example is using a "left of current position stack" and "right of current position stack" rather than a single tape
15:02:28 <ais523> it generalises to more complicated structures
15:02:45 <ais523> the idea's that data near some sort of "current position" is fast to access, and the current position is also fast to move short distances
15:02:56 -!- Phantom_Hoover has quit (Ping timeout: 244 seconds).
15:02:57 <Taneb|Hovercraft> Oh, that
15:03:19 <elliott_> Taneb|Hovercraft: e.g. your (xs,ys,...).
15:03:25 <elliott_> Your tape navigation structure.
15:03:32 <Taneb|Hovercraft> That seemed obvious
15:03:51 <elliott_> Taneb|Hovercraft: Well... congratulations, you're really good at this, then.
15:03:54 <ais523> Taneb|Hovercraft: it is moderately obvious, but that doesn't mean it doesn't have a name
15:04:02 <elliott_> They only date back to 1997.
15:05:58 <ais523> elliott_: are you sure? I suspect they were being used before that, just without being named
15:06:12 <ais523> I mean, I independently invented the structure, and I'm sure thousands of other programmers have too
15:06:32 <elliott_> ais523: I don't know of prior art before Huet's paper. Probably list zippers existed before then but I'd be quite surprised if tree zippers had been used.
15:08:59 <elliott_> Not that I'd rule it out completely.
15:09:05 <elliott_> But of course the tree formulation is much less obvious.
15:26:04 -!- Phantom_Hoover has joined.
15:28:35 <elliott_> if err == Nothing
15:28:35 <elliott_> then Right <$> peek event
15:28:35 <elliott_> else return $ Left . fromJust $ err
15:28:35 <elliott_> NO!!!! BAD LIBRARY! BAD!
15:32:30 <ais523> elliott_: that looks rather special-cased to me
15:32:39 <elliott_> ais523: ?
15:33:09 <ais523> elliott_: the bit of code you pasted
15:33:21 <elliott_> "Special-cased"?
15:33:22 <ais523> but I can't tell without context
15:33:35 <ais523> elliott_: it seems to care about err being a Maybe specifically, and I'm not sure if it should
15:33:43 <elliott_> That... isn't what I'm complaining about.
15:33:48 <ais523> ah, OK
15:33:52 <ais523> what are you complaining about?
15:34:10 <elliott_> ais523: the use of a comparison and a partial function to replace a perfectly safe and more readable case statement?
15:34:21 <ais523> right, I noticed that too
15:34:33 <ais523> but was wondering if you could write it without either
15:35:03 <elliott_> the right thing is obviously a case statement there
15:35:25 <elliott_> however you frame it, you have a base value a, and a destruction step (b -> a)
15:35:31 <elliott_> that's precisely the definition of Maybe
15:35:45 <elliott_> generalising beyond that is pointless, it just hides the fact that types have semantics
15:36:29 <elliott_> combineOr :: [a] -> a
15:36:30 <elliott_> combineOr x = unsafeCoerce $ foldl (\x y -> x .|. unsafeCoerce y) (0 :: CLuint) x
15:36:32 <elliott_> ummmmm...
15:36:41 <ais523> ah right, I just noticed that the Maybe there is backwards
15:36:42 <elliott_> I don't know what that is but I'm removing it
15:36:48 <ais523> it's Nothing = success, non-Nothing = error, rather than vice versa
15:36:56 <elliott_> that's not backwards :)
15:36:59 <elliott_> that's just another use of Maybe
15:37:02 <ais523> well, OK
15:37:11 <elliott_> anyway, it doesn't matter, combineOr is a trillion times more horrifying
15:37:19 <ais523> I'm the sort of person who'd like to give it another name because the semantic is different
15:37:25 <ais523> and wow at that combineOr
15:37:31 <elliott_> the semantics are the same
15:37:39 <ais523> what does it actually /do/? I can't figure it out from the definition
15:37:40 <elliott_> maybe :: b -> (a -> b) -> Maybe a -> b
15:37:51 <elliott_> any other "semantics" you claim Maybe has is projection :P
15:37:58 <elliott_> ais523: it doesn't do much of sense
15:38:14 <elliott_> ais523: but if a is runtime compatible with CLuint then it's just a fold of (.|.) and 0
15:38:27 <elliott_> and if it's not, umm... the program segfaults, or just goes wrong in general
15:38:29 <ais523> (.|.) is bitwise or?
15:38:31 <elliott_> yes
15:38:51 <elliott_> I wonder if people consider it impolite to fix all their awful design and send it in as one gigantic pull request
15:39:05 <elliott_> (ok, this is a fork, so the awful design may be the forkee's fault)
15:39:19 <ais523> hmm… I suspect that unsafe-coercing something to an unsigned int is just reinterpreting its bit pattern as an int
15:39:33 <ais523> so it's basically just oring together the bit patterns of all its arguments
15:40:16 <elliott_> ais523: I don't like you any more, if you're going to claim a program has semantics based on an implementation accident like that :P
15:40:21 <elliott_> but anyway, no
15:40:21 <elliott_> boxing
15:40:47 <elliott_> it's oring together the first machine word in the representation of whatever you give it and euurgh\
15:40:48 <ais523> Haskell boxes integers?
15:40:55 <elliott_> ais523: haskell is a lazy language
15:40:58 <elliott_> how do you do laziness without boxing?
15:41:25 <elliott_> a thunk is a box containing a pointer to some code that overwrites the thunk with the evaluated value
15:41:27 <ais523> it's possible for the laziness to be entirely separate from the representation, I guess
15:41:34 <elliott_> eh?
15:41:51 <ais523> as in, all data are either pointer-to-thunk or pointer-to-value
15:41:55 <ais523> and the actual value itself would be a plain int
15:42:00 <ais523> so there's still boxing, but not at the type level
15:43:03 <elliott_> ais523: the type level? wtf?
15:43:11 <elliott_> I never said ints have their own special boxing mechanism
15:43:14 <ais523> well, OK
15:43:24 <ais523> but I'm thinking of the bit-pattern as the value
15:43:31 <elliott_> which bit-pattern
15:43:32 <elliott_> of the pointer?
15:43:33 <ais523> or can you unsafeCoerce something without evaluating it first?
15:43:40 <ais523> elliott_: of the thing it points to
15:43:43 <elliott_> of the value at the pointer? which, everything is multiple bytes, there's a header and everything
15:43:47 <elliott_> ais523: unsafeCoerce is a nop at runtime
15:43:49 <ais523> the pointer itself has nothing to do with the type system
15:43:54 <elliott_> so of course you can unsafeCoerce something not yet evaluated
15:43:59 <ais523> elliott_: ouch!
15:44:06 <ais523> wait, no, that's fine
15:44:15 <elliott_> ais523: "ouch!"? it already breaks the type system, who gives a fuck about further inconveniences?
15:44:17 <ais523> in that case, evaluating an unsafeCoerce evaluates its argument, because it is its argument
15:44:38 <elliott_> ais523: not necessarily, I don't think
15:44:43 <elliott_> because it's a nop that subverts the type system
15:44:50 <elliott_> which could easily break the forcing mechanism
15:44:55 <elliott_> but I don't think it breaks GHC's
15:45:05 <ais523> I'd assume the forcing mechanism to have nothing to do with types
15:45:16 <ais523> unless you unsafe-coerce something into an Int# or whatever, but that would be even more insane than usual
15:45:31 <elliott_> That sounds like a dangerous assumption, considering what has to be evaluated depends on the type.
15:45:33 <elliott_> e.g.
15:45:37 <elliott_> data Foo = Foo !Int String !Char
15:45:45 <elliott_> to force (Foo a b c), you have to force a and c, but not b
15:46:06 <elliott_> GHC just does that by rewriting constructor calls with strict fields to a wrapper function, but it's an obvious example
15:46:41 <ais523> I'm including strict fields as much the same sort of thing as strict types (i.e. unboxed types)
15:46:53 <elliott_> um, no
15:47:28 <ais523> they both interfere with the usual evaluation order
15:47:44 <elliott_> "interfere"?
15:47:49 <ais523> well, change it
15:47:50 <elliott_> strict fields have perfectly well-defined, simple semantics
15:48:01 <ais523> yes, but they're different semantics from "normal" types
15:48:02 <elliott_> unboxed types are very different
15:48:06 <elliott_> ais523: nope
15:48:09 <elliott_> they just save some seqs
15:48:13 <elliott_> it's all in the constructors, simple as that
15:55:32 <Taneb|Hovercraft> I'm making a stupid mistake over and over again
15:58:56 <elliott_> Taneb|Hovercraft discovers "life".
15:59:17 <elliott_> err <- wrapError $ raw_clEnqueueNDRangeKernel queue kernel (fromIntegral work_dim) nullPtr global_work_size local_work_size (fromIntegral num_events_in_wait_list) event_wait_list event
15:59:20 <elliott_> ais523: save me from suffering
15:59:46 <ais523> elliott_: that looks like Haskell as a wrapper around some imperative language
15:59:51 <Taneb|Hovercraft> http://hpaste.org/54317
16:00:08 <elliott_> Taneb|Hovercraft: OK, firstly that BFState definition is wrong.
16:00:11 <elliott_> You missed a constructor name.
16:00:22 <Taneb|Hovercraft> That will probably be the main problem
16:00:23 <elliott_> Taneb|Hovercraft: Secondly you really want to separate the [Int] [Int] tape into its own Tape data type.
16:00:34 <elliott_> And you probably want Word8, not Int (import Data.Word to get it); that's what most BF implementations use.
16:00:48 <elliott_> Taneb|Hovercraft: Also, you need parentheses around your applications of (:).
16:00:49 <elliott_> Right now itl ooks like
16:00:53 <elliott_> (BFState xs 1) : [] a b
16:00:55 <elliott_> which doesn't make much sense.
16:01:01 <elliott_> Also, a:[] is the same as [a], so write that instead.
16:01:08 <elliott_> (And [(-1)] the same as [-1].)
16:01:29 <elliott_> Taneb|Hovercraft: Also, I suggest you initialise the right hand side of the tape (ys) with (repeat 0).
16:01:37 <elliott_> Taneb|Hovercraft: Then you never have to handle the [] case, because there'll always be a value.
16:01:55 <elliott_> Having said all that, your code is really pretty damn good :P
16:01:58 <ais523> elliott_: ouch, infinite list should probably have a different type from finite list
16:02:04 <elliott_> ais523: >_<
16:02:07 <ais523> because the type constructors are different
16:02:07 -!- hagb4rd has joined.
16:02:12 <ais523> (there's a Cons, but no Nil)
16:02:18 <elliott_> ais523: That's not what a type constructor is.
16:02:38 * elliott_ will battle inanity with pedanticry.
16:02:41 <ais523> are you sure? those seem pretty typeconstructory to me
16:03:03 <elliott_> You might want to look up the definition of "type constructor".
16:03:48 <ais523> elliott_: I renamed them
16:03:55 <elliott_> What?
16:03:57 -!- Phantom__Hoover has joined.
16:04:00 <ais523> but I'd define a type list as list = Cons list list | Nil
16:04:19 <elliott_> You would?
16:04:21 <elliott_> 'Cuz, that's not a list.
16:04:25 <ais523> err, sorry
16:04:33 <ais523> 'a list = Cons 'a list | Nil
16:04:38 <ais523> thinko
16:04:44 -!- Taneb|Hovercraft has quit (Quit: Goodbye).
16:04:48 <ais523> * 'a list = Cons 'a ('a list) | Nil
16:06:01 <coppro> does the haskell vm implement cyclic lists by thunk or by actually creating a cyclic data structure?
16:06:20 -!- Phantom_Hoover has quit (Ping timeout: 248 seconds).
16:06:50 <ais523> my guess is by thunk, to avoid special-casing
16:07:02 <ais523> as infinite lists in Haskell (unlike OCaml) don't have to be cyclic
16:07:09 <ais523> but it might optimise them into cyclic lists, I guess
16:07:28 <elliott_> coppro: Cyclic structures are only really something that makes sense in the presence of mutation.
16:07:33 <elliott_> There is, however, sharing.
16:07:36 <elliott_> That is, in
16:07:41 <elliott_> ones = 1 : ones
16:07:48 <elliott_> there is only one "ones", not one for each tail.
16:08:18 <ais523> elliott_: I think the discussion's about internal representation
16:08:26 <elliott_> ais523: My answer was about internal representation.
16:08:46 <ais523> elliott_: I'm thinking of something like an immutable cyclic linked list, as a reasonable way to internally represent an infinite repeating list
16:09:00 <elliott_> I am talking about internal representations.
16:09:41 -!- Phantom__Hoover has quit (Ping timeout: 240 seconds).
16:09:51 <ais523> elliott_: cyclic structures make sense, as an internal representation, even in the absence of mutation
16:10:05 <ais523> in fact, they make more sense in the absence of mutation, as you don't have to worry about the compulsory sharing of every element
16:10:19 <ais523> (whereas without a cyclic list, it'd be possible for the elements to either share, or to not share0
16:10:22 <ais523> s/0/)/
16:10:37 <elliott_> In the absence of mutation, "cyclic structures" is either a weird name for sharing, or something that has limited to no applicability.
16:10:54 <ais523> elliott_: a cyclic structure is a structure which shares with an element of itself
16:11:01 <ais523> that's different from the normal form of sharing
16:11:08 -!- Slereah_ has quit (Ping timeout: 248 seconds).
16:11:19 <elliott_> That's a bad definition of either "cyclic structure" or "element", and no it isn't.
16:11:20 <ais523> where the thing being shared doesn't have a pointer back to itself
16:11:26 -!- Slereah_ has joined.
16:11:38 <elliott_> > let foo = 1 : 2 : 3 : foo in drop 10000 foo
16:11:53 <elliott_> The "foo" that is (1 : 2 : 3 : foo) is shared with the "foo" that is in the tail position of (3 : foo).
16:12:02 <elliott_> > let foo = 1 : 2 : 3 : foo in drop 1000 foo
16:12:11 <elliott_> Oh hurry up lam- oh, she's not here.
16:12:16 <ais523> elliott_: right; cyclic structure formation is a special case of sharing
16:12:34 <ais523> the more common form of sharing is along the lines of this:
16:12:47 <ais523> > let foo = (let x = 1 in [x,x])
16:13:13 <ais523> in that case, it's possible to break the sharing, e.g. to copy-on-write in a mutable language
16:13:30 <ais523> in the cyclic case, you can't fully break the sharing as the list would become infinitely long
16:13:35 <ais523> in memory
16:14:34 <elliott_> It's not possible to break the sharing without constructing a new list, and constructing a list can hardly change the semantics of an existing one.
16:15:00 <ais523> err, what? you can break sharing just by copying one of the things being shared, then moving the pointer to point to the copy
16:16:15 <elliott_> That only goes one level. { let ones = 1 : ones } requires infinity. I'm sure there are ones in-between.
16:16:36 <ais523> elliott_: well, my point is, normally with sharing, breaking one level of sharing is enough, or at least a finite number
16:16:46 <elliott_> No it's not:
16:16:48 <elliott_> ones = 1 : ones
16:16:50 <ais523> with a cyclic list, you can break sharing as many times as you want, but there'll still be sharing involved
16:17:06 <elliott_> That's sharing. It's not any less, or a different kind, or an unusual kind of sharing.
16:17:11 <ais523> elliott_: I'm arguing that ones = 1 : ones /is not the usual case of sharing, and it makes sense to have a different name for it/
16:17:23 <elliott_> Well, you're wrong.
16:17:45 -!- Ngevd has joined.
16:17:45 <elliott_> fix (\fac n -> if n == 0 then 1 else fac (n-1))
16:17:50 <elliott_> There's another case of sharing you can't break finitely!
16:17:52 <ais523> elliott_: I'm saying "A is different from B"; you're saying "no they aren't"; I'm saying "yes they are because I can do X with A and I can't with B"; and you're saying "saying you can do X with A is wrong because you can't do X with B and A is the same as B"
16:17:55 <elliott_> And you use it for every recursive definition!
16:18:03 <elliott_> So unusual.
16:18:15 <elliott_> ais523: I'm not saying that at all, but whatever.
16:18:17 <ais523> that isn't even a structure at all, in most languages
16:18:41 -!- Ngevd has changed nick to Taneb|Hovercraft.
16:18:56 <ais523> incidentally, in ICA there's no sharing involved at all there
16:19:14 <elliott_> Functions are structures.
16:20:01 <ais523> but they don't have accessible type constructors
16:20:18 <ais523> you can't say case function of If -> …
16:20:33 <ais523> and in general, forcing a function to have a particular concrete representation would be wrong anyway
16:20:51 <ais523> the fundamental difference of a function and a structure is that the structure can't be rearranged without changing its semantics
16:21:08 <ais523> hmm, that implies that there are probably things in-between, like self-balancing trees
16:21:14 <elliott_> This is ridiculous. Sharing is obviously an implementation detail.
16:21:42 <Taneb|Hovercraft> elliott_, I made the changes you suggested
16:21:46 <Taneb|Hovercraft> Except for word8
16:21:47 <elliott_> Taneb|Hovercraft: Yay.
16:21:48 <ais523> in a language with immutable data, I agree with that
16:21:51 <Taneb|Hovercraft> I don't like Word8
16:21:56 <Taneb|Hovercraft> http://hpaste.org/54321
16:21:57 <elliott_> Taneb|Hovercraft: Whaddya mean you don't like it?
16:22:02 <elliott_> That causes actual incompatibility with BF programs.
16:22:21 <ais523> sharing is definitely not an implementation detail when you're talking about something which is mutable, though (including retroactively)
16:22:22 <Taneb|Hovercraft> I don't know how to change it to a char!
16:22:29 <elliott_> Taneb|Hovercraft: You totally didn't do another one of my changes, too. :'(
16:22:36 <Taneb|Hovercraft> Which one?
16:22:54 -!- Phantom__Hoover has joined.
16:23:16 <elliott_> Taneb|Hovercraft: I'll annotate your paste with some small tweaks.
16:23:43 <elliott_> Taneb|Hovercraft: You have your left and right lists the wrong way around. :p
16:24:00 <Taneb|Hovercraft> THEY ARE THE PERFECT WAY ROUND
16:24:20 <elliott_> 'Fraid not!
16:24:29 <elliott_> Oh, hmm, what.
16:24:35 <elliott_> No, they're the right way around, your left and right functions are just wrong.
16:25:00 <Taneb|Hovercraft> THEY ARE PERFECTLY RIGHT
16:25:06 <ais523> if your tape's infinite both ways, it's impossible to observe < and > being switched in BF
16:25:25 <Taneb|Hovercraft> Unless they are switched half-way through execution
16:25:26 <elliott_> Taneb|Hovercraft: They're not; you access with ys=right but move with xs=right.
16:25:57 <Taneb|Hovercraft> How do I access?
16:26:22 -!- pikhq_ has quit (Read error: Operation timed out).
16:26:46 <Taneb|Hovercraft> Just spotted a stupid error
16:26:52 <Taneb|Hovercraft> Line 32
16:27:45 <elliott_> Taneb|Hovercraft: Also, you don't actually process input.
16:28:10 -!- pikhq has joined.
16:28:14 <Gregor> HEYOOO
16:28:17 <Gregor> Got the rest of the comparisons in.
16:29:04 <Taneb|Hovercraft> Woah, so I don't
16:29:52 <elliott_> Taneb|Hovercraft: Here's an improvement: http://hpaste.org/54323
16:30:13 <elliott_> Taneb|Hovercraft: I switched to Word8, added a separate Tape type, implified input handling by terminating input with (repeat 0), and make it actually handle input :-)
16:30:17 <elliott_> Plus a few minor cleanups.
16:31:16 <elliott_> getLoop can be made nicer, I think getBF too, and loop should really have the arguments the other way around, but this is still pretty close to what I'd write *shrugs*
16:32:31 <Taneb|Hovercraft> Your introduction of the Tape type...
16:33:12 <Taneb|Hovercraft> Well, you haven't adjusted the rest of the program to cope
16:33:26 <elliott_> Oops.
16:33:29 <ais523> elliott_: hmm, the pointer always being off by one is also not a detectable error
16:33:32 <elliott_> Taneb|Hovercraft: Fixing :P
16:34:56 <elliott_> Taneb|Hovercraft: http://hpaste.org/54325
16:35:03 <elliott_> I'll fiddle with this a little more and then I'll be done.
16:35:11 <elliott_> Oops.
16:35:15 <elliott_> Still got loop and the main pattern-match wrong.
16:35:19 <elliott_> But it's obvious what it should be. :p
16:38:34 <elliott_> Taneb|Hovercraft: BTW: Never use tab characters in Haskell source.
16:39:04 <Taneb|Hovercraft> Note taken
16:39:04 <elliott_> Taneb|Hovercraft: I'm bored twiddling, so here's a final version: http://hpaste.org/54326
16:40:25 <Taneb|Hovercraft> I've seen a pretty big problem
16:40:37 <Taneb|Hovercraft> Short version: the program doesn't work
16:41:52 <Taneb|Hovercraft> Long version: you've rewritten left, right, and plus to use Tape, but only half-done minus, and not changed getBF to accomodate
16:42:16 <elliott_> Oop, right, that's easy to fix
16:42:22 <elliott_> That's not a pretty big problem, one definition can fix that
16:43:07 <elliott_> Taneb|Hovercraft: http://hpaste.org/54327
16:43:11 <elliott_> The power of higher-order functions!
16:43:22 <elliott_> Er, that withTape should be below minus.
16:48:08 <Taneb|Hovercraft> Firstly, you need to retype the minus
16:48:30 <Taneb|Hovercraft> It's /still/ BFState -> BFState
16:52:10 <elliott_> Yeah yeah whoops :P
16:54:10 <Gregor> elliott_: My attempt to use your void(*)(void) trick fails nearly everywhere for various reasons :P
16:54:25 <Gregor> elliott_: Works on x86 though!
16:54:30 <elliott_> Gregor: Nice!
16:54:52 <Gregor> elliott_: I'm thinkin' I'll just live with a stupid function call in there.
16:57:46 <elliott_> Taneb|Hovercraft: Secondly???
16:58:49 <Taneb|Hovercraft> I'm working secondly
17:01:33 <Taneb|Hovercraft> Secondly, it doesn't seem to work
17:01:48 <Gregor> $ echo '1 p' | qemu-sparc32plus ./jitchards
17:01:48 <Gregor> 00
17:01:48 <Gregor> Segmentation fault
17:01:53 <elliott_> Taneb|Hovercraft: That's because either I or you made a mistake.
17:01:54 <Gregor> This is the closest SPARC has ever been to working.
17:03:43 -!- elliott_ has set topic: The IOCCC is back on! http://www.ioccc.org | http://esolangs.org/ | http://codu.org/logs/_esoteric/.
17:03:45 <elliott_> PREPARE FOR PRESENTABILITY
17:04:06 -!- lambdabot has joined.
17:04:45 -!- ais523 has quit (Remote host closed the connection).
17:05:13 <Gregor> Presentability is for losers.
17:05:29 <elliott_> I had to mention this place in #haskell again :P
17:06:09 -!- Gregor has set topic: The IOCCC is back on! http://www.ioccc.org | http://esolangs.org/ | #esoteric: A place that hates Haskell slightly more than C++ | http://codu.org/logs/_esoteric/.
17:06:18 -!- elliott_ has set topic: The IOCCC is back on! http://www.ioccc.org | http://esolangs.org/ | http://codu.org/logs/_esoteric/.
17:06:24 <elliott_> Even a Gregor can learn these topic changing techniques.
17:06:30 <Gregor> X-D
17:06:49 -!- derdon has quit (Remote host closed the connection).
17:07:15 <Taneb|Hovercraft> So, is #haskell going to invade us or what?
17:07:20 <elliott_> Yes.
17:07:22 <elliott_> We will all die.
17:07:30 <elliott_> Taneb|Hovercraft: Gonna expand on "doesn't work"? :P
17:07:33 <Taneb|Hovercraft> Nah
17:07:39 <Taneb|Hovercraft> I know about as much as you
17:07:52 <elliott_> Taneb|Hovercraft: You know slightly more: the error GHC spits out
17:07:56 <Taneb|Hovercraft> !brainfuck ++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.
17:08:03 <Taneb|Hovercraft> elliott_, that's the thing
17:08:08 <Taneb|Hovercraft> GHC is fine with it
17:08:11 <elliott_> Oh.
17:08:15 <elliott_> Then the implementation is just buggy somehow.
17:08:20 <Taneb|Hovercraft> !bf ++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.
17:08:22 <EgoBot> Hello World!
17:08:35 <elliott_> Taneb|Hovercraft: So what exactly happens?
17:08:38 <elliott_> I am suspicious of your loop parsing, because it's ugly and slow enough that I just ignored it.
17:08:39 <Taneb|Hovercraft> That program in our interpreter outputs:
17:08:40 <Taneb|Hovercraft>
17:08:40 <Taneb|Hovercraft> <CTCP>
17:09:05 <elliott_> Fancy.
17:09:31 <elliott_> Hmm.
17:10:18 <elliott_> I don't see anything wrong with the bits I've looked at, i.e. everything but the loop parsing :-)
17:10:47 <Taneb|Hovercraft> I have very handily looked at those exact bits and found nothing wrong
17:11:01 <Taneb|Hovercraft> But I wrote the loop parsing in a maddened daze
17:11:09 <Taneb|Hovercraft> And don't want anything to do with it
17:11:20 <elliott_> Taneb|Hovercraft: Test it in the REPL.
17:11:27 <elliott_> getLoop "abc[def]quux]blah"
17:11:54 <Taneb|Hovercraft> Aha!
17:12:27 <Taneb|Hovercraft> It works fine
17:12:32 <Taneb|Hovercraft> So does everything else
17:12:33 <elliott_> What return?
17:12:34 <Taneb|Hovercraft> EXCEPT FOR
17:12:39 <elliott_> ("abc[def]quux","blah")?
17:12:42 <Taneb|Hovercraft> Yes
17:12:47 <elliott_> getBF ('[':xs) = getBF a . loop (getBF b)
17:12:47 <elliott_> where (a,b) = getLoop xs
17:12:54 <elliott_> s/getBF a . loop (getBF b)/getBF b . loop (getBF a)/
17:13:23 <Taneb|Hovercraft> I changed "where (a,b") to "where (b,a)"
17:13:35 <Taneb|Hovercraft> Works just the same
17:13:39 <Taneb|Hovercraft> And reflects how I think
17:13:40 <elliott_> But I specified that fix to stop you doing that because that's so ugly :'(
17:14:19 <Taneb|Hovercraft> Now it works much better
17:14:38 <Taneb|Hovercraft> The Hello world! program outputs !dlrow olleH
17:15:36 <elliott_> Oh, right.
17:15:47 <elliott_> s/putStr/putStr . reverse/
17:15:53 <Phantom__Hoover> oh my god
17:16:15 <Phantom__Hoover> I've just noticed that currently on TV is a BBC programme dealing with offended people's letters.
17:16:28 <Taneb|Hovercraft> !!!
17:16:40 <Taneb|Hovercraft> Oh yeah, I watched a bit of that once
17:17:15 <Taneb|Hovercraft> Also, elliott_, EOF isn't handled
17:17:27 <elliott_> Taneb|Hovercraft: Yes, it is.
17:17:35 <elliott_> Oh, wait.
17:17:40 <elliott_> No it isn't because I introduced a regression.
17:17:44 <elliott_> WATCH AS I FIX THAT REGRESSION
17:17:51 <Taneb|Hovercraft> I CAN'T
17:18:02 <Taneb|Hovercraft> I DON'T KNOW WHERE YOU LIVE BEYOND THE TOWN
17:18:17 <Taneb|Hovercraft> AND I DON'T THINK YOU ARE STREAMING IT
17:18:27 <Taneb|Hovercraft> SO INSTEAD I ANXIOUSLY AWAIT THE RESULT
17:18:36 <elliott_> http://hpaste.org/54331
17:18:44 <Phantom__Hoover> Taneb|Hovercraft, how can it be this hard to find the Hird family.
17:21:26 <Taneb|Hovercraft> Phantom__Hoover, if I find him then he will know who I am!!!
17:21:48 <Phantom__Hoover> He already knows that you fool!
17:21:52 <Taneb|Hovercraft> Oh, right
17:22:20 <Taneb|Hovercraft> If I find him, he will know I'm looking for him!
17:22:42 <elliott_> Little does Taneb|Hovercraft know, but I actually live in Hexham, Australia.
17:22:52 <Taneb|Hovercraft> elliott_, which Hexham, Australia
17:22:56 <elliott_> Both.
17:22:59 <Taneb|Hovercraft> !!!
17:31:17 -!- Ngevd has joined.
17:33:11 -!- Taneb|Hovercraft has quit (Ping timeout: 258 seconds).
17:49:25 -!- Darth_Cliche has joined.
17:50:33 -!- derdon has joined.
17:51:24 -!- Ngevd has changed nick to Taneb|Hovercraft.
17:58:41 -!- Ngevd has joined.
17:58:51 -!- derrik has joined.
18:00:29 -!- MonkeyofDoom has quit (Ping timeout: 240 seconds).
18:01:30 -!- Taneb|Hovercraft has quit (Ping timeout: 245 seconds).
18:01:45 -!- sebbu2 has joined.
18:01:45 -!- sebbu2 has quit (Changing host).
18:01:45 -!- sebbu2 has joined.
18:05:22 -!- sebbu has quit (Ping timeout: 252 seconds).
18:10:45 -!- Taneb has joined.
18:14:37 -!- Ngevd has quit (Ping timeout: 244 seconds).
18:15:39 -!- Taneb has quit (Ping timeout: 244 seconds).
18:17:41 <Gregor> $ wc -c jitdc.c
18:17:41 <Gregor> 2734 jitdc.c
18:17:42 <Gregor> Grr
18:23:05 <oklopol> stop that right now
18:24:04 <Gregor> oklopol: Stop your face!
18:24:08 <Phantom__Hoover> Gregor, what's the limit?
18:24:29 <Deewiant> Phantom__Hoover: 2048 non-whitespace and something about not counting {;} in some cases
18:24:44 <Gregor> {;} aren't counted if immediately followed by whitespace.
18:24:55 <Deewiant> Right, or EOF.
18:27:55 <Gregor> Dang it, by that count I'm still at 2196
18:28:15 <Gregor> Need to shave off 148 bytes >_>
18:30:19 <Phantom__Hoover> Put in 148 ASCII delete characters at the end.
18:30:25 <Gregor> Yesssssssssssssss
18:36:16 -!- Ngevd has joined.
18:41:16 -!- kmc has joined.
18:45:07 <oklopol> my face is unstoppable.
18:45:48 -!- Ngevd has quit (Quit: Goodbye).
18:47:13 <elliott_> shachaf: Have I scared you with combineOr yet?
18:47:39 <shachaf> I don't believe so.
18:47:44 <elliott_> combineOr :: [a] -> a
18:47:45 <elliott_> combineOr x = unsafeCoerce $ foldl (\x y -> x .|. unsafeCoerce y) (0 :: CLuint) x
18:47:51 <elliott_> Seen in actual, real, live code.
18:48:01 <Gregor> 2133 ...
18:48:17 <elliott_> Its single use site ended up being equivalent to: foldl (.|.) 0 [ foo | NewtypeCons foo <- xs ].
18:48:42 <Deewiant> What real, live code?
18:48:47 <Deewiant> + actual
18:49:05 -!- Ngevd has joined.
18:49:38 <elliott_> Deewiant: OpenCLWrappers, almost certainly inherited from OpenCLRaw
18:51:14 -!- sebbu2 has changed nick to sebbu.
18:53:40 <Ngevd> "ex his Iason quos arbitratus est ad omnia pericula subeunda paratissimos esse, eos ad numerum quinquaginta delegit et socios sibi adiunxit;"
18:56:34 -!- Zuu has quit (Ping timeout: 244 seconds).
19:03:41 <elliott_> peekManyInfo :: Storable a => ([a] -> b) -> ForeignPtr () -> CLsizei -> IO b
19:03:41 <elliott_> peekManyInfo f x size = do
19:03:41 <elliott_> c <- return undefined
19:03:41 <elliott_> a <- withForeignPtr x (\y -> (peekArray ( div (fromIntegral size) $ sizeOf c) $ castPtr y))
19:03:41 <elliott_> return (c:a)
19:03:42 <elliott_> return $ f a
19:03:46 <elliott_> Deewiant: Challenge: Figure out what type "c" has
19:05:10 <Deewiant> ?hoogle withForeignPtr
19:05:11 <lambdabot> Foreign.ForeignPtr withForeignPtr :: ForeignPtr a -> (Ptr a -> IO b) -> IO b
19:05:13 <Deewiant> ?hoogle peekArray
19:05:14 <lambdabot> Foreign.Marshal.Array peekArray :: Storable a => Int -> Ptr a -> IO [a]
19:05:14 <lambdabot> Foreign.Marshal.Array peekArray0 :: (Storable a, Eq a) => a -> Ptr a -> IO [a]
19:05:26 <shachaf> elliott_: Aha.
19:05:39 <elliott_> shachaf: I hope it hurt.
19:05:41 <shachaf> elliott_: You know, that doesn't really scare me. I've come to expect that sort of thing from you.
19:05:45 <elliott_> shachaf: I DIDN'T WRITE THAT
19:05:47 * shachaf is desensitized.
19:05:48 <elliott_> SOMEONE ELSE WROTE THAT ENTIRELY
19:05:50 <elliott_> IT BOGGLES MY MIND
19:05:51 <shachaf> Oh.
19:06:00 <shachaf> What code?
19:06:15 <elliott_> OpenCLWrappers, but it almost certainly is inherited from its parent project OpenCLRaw which it's forked from.
19:06:16 <elliott_> I have excised it.
19:06:18 <Deewiant> elliott_: Storable a => a ?
19:06:29 <elliott_> Deewiant: Nah, it's the specific "a" in the type signature
19:06:34 <Deewiant> elliott_: That's what I meant
19:06:41 <elliott_> Deewiant: (That second-last "return" forces the type)
19:06:45 <shachaf> elliott_: Did you ever see those few instance snippets in Pugs?
19:06:48 <Deewiant> elliott_: It does, yep
19:06:48 <elliott_> (And you can determine the type of a by the application to f)
19:06:56 <elliott_> shachaf: I'm scared. Go on.
19:06:57 <Deewiant> Indeed
19:07:33 <shachaf> elliott_: https://github.com/perl6/Pugs.hs/blob/master/Pugs/src/Pugs/Types.hs
19:07:45 <shachaf> elliott_: It's the section that starts with "instance Ord".
19:08:05 <elliott_> shachaf: Very nice.
19:08:08 <elliott_> Very... safe.
19:08:15 <elliott_> Where's showAddressOf defined? Do I dare ask?
19:08:32 <shachaf> I'd be more worried about addressOf than showAddressOf if I were you.
19:08:52 <shachaf> https://github.com/perl6/Pugs.hs/blob/master/pugs-compat/src/Pugs/Compat/Cast.hs
19:09:01 <elliott_> clInvalidGlobalOffset = ErrorCode (-56)
19:09:01 <elliott_> clInvalidEventWaitList :: ErrorCode
19:09:01 <elliott_>
19:09:01 <elliott_> clInvalidEventWaitList = ErrorCode (-57)
19:09:01 <elliott_> clInvalidEvent :: ErrorCode
19:09:02 <elliott_>
19:09:04 <elliott_> clInvalidEvent = ErrorCode (-58)
19:09:06 <elliott_> clInvalidOperation :: ErrorCode
19:09:08 <elliott_>
19:09:10 <elliott_> clInvalidOperation = ErrorCode (-59)
19:09:12 <elliott_> clInvalidGLObject :: ErrorCode
19:09:14 <elliott_> Deewiant: shachaf: Look at this exciting new type signature layout style
19:09:16 <elliott_> Found in the same fucking project
19:09:49 * shachaf is glad to see that elliott_ is enjoying himself.
19:13:50 <elliott_> @tell oerjan speak of the devil: * hackagebot thrist 0.2.1 - Type-threaded list http://hackage.haskell.org/package/thrist-0.2.1 (GaborGreif)
19:13:51 <lambdabot> Consider it noted.
19:20:55 <elliott_> https://github.com/jkarlson/OpenCLWrappers/blob/master/LICENSE
19:20:58 <elliott_> Deewiant: Does this look like BSD3 to you?
19:21:02 -!- Rugxulo has joined.
19:21:23 <Rugxulo> who hosts the esolang wiki, Panu?
19:21:31 <elliott_> panu?
19:21:34 <elliott_> graue hosts the wiki, why?
19:21:42 <elliott_> (contacting him is likely to be fruitless, ask an admin instead)
19:21:51 <Rugxulo> I know it's lame, but I keep thinking there should be a Befunge-93 archive since a lot of stuff (e.g. Nthern's bigbef hacks) keep getting lost
19:22:05 <Deewiant> elliott_: Close enough
19:22:08 <elliott_> graue doesn't run the archive
19:22:12 <elliott_> afaik
19:22:16 <elliott_> oh hm wait
19:22:19 <elliott_> its on esolangs.org so i guess he does
19:22:30 <elliott_> Rugxulo: http://esolangs.org/files/befunge/src/
19:22:40 <elliott_> you could get someone with commit access to put stuff there.
19:22:45 <Rugxulo> four files is not exactly a lot
19:22:56 <Rugxulo> I've written ten times that alone :-P
19:22:57 <elliott_> <elliott_> you could get someone with commit access to put stuff there.
19:24:13 * Rugxulo is tired of visiting sites that have broken links
19:24:25 <Rugxulo> I guess they don't call it "esoteric" for nuthin' :-P
19:24:54 <Rugxulo> it's funny when my own local collection is 10x bigger than anything online :-P
19:25:18 * Rugxulo needs a scapegoat ... blames Gregor
19:34:37 <Gregor> Well it is true that I scour the internet for Befunge sources and eliminate them.
19:40:37 -!- Phantom__Hoover has changed nick to Phantom_Hoover.
19:44:12 <elliott_> :t lookup
19:44:13 <lambdabot> forall a b. (Eq a) => a -> [(a, b)] -> Maybe b
19:45:18 <Sgeo> Oh, that's not Map.lookup
19:45:21 <Sgeo> :t Map.lookup
19:45:22 <lambdabot> Couldn't find qualified module.
19:45:26 <Sgeo> :t Data.Map.lookup
19:45:27 <lambdabot> forall k a. (Ord k) => k -> M.Map k a -> Maybe a
19:52:11 -!- monqy has joined.
19:56:37 -!- z^ck has quit (Quit: Lost terminal).
20:08:00 -!- Zuu has joined.
20:12:49 -!- MonkeyofDoom has joined.
20:17:10 <Rugxulo> I'm crap for coding, but anyone else here interested in upcoming id Tech 4?
20:21:04 <Rugxulo> C++ not esoteric enough?? ;-)
20:23:30 <Gregor> C++ is too godawful.
20:24:29 <Rugxulo> ;-)
20:24:53 <elliott_> Deewiant: Oh no
20:25:00 <elliott_> Deewiant: The maintainer of this fork added combineOr
20:25:07 <elliott_> I... think I need my own fork...
20:25:14 -!- sebbu2 has joined.
20:25:14 -!- sebbu2 has quit (Changing host).
20:25:14 -!- sebbu2 has joined.
20:27:17 -!- sebbu has quit (Ping timeout: 276 seconds).
20:33:19 <Gregor> elliott_: I think I'mma let my JIT rest for awhile, but in retrospect I think a MIDI player would be insufficiently obfuscated.
20:33:42 <elliott_> Gregor: Obfuscation doesn't actually matter that much in IOCCC most of the time :P
20:33:48 <elliott_> It's mostly whitespace tricks and golfing.
20:34:02 <elliott_> Like, it's more "unconventionally (i.e. uselessly) pretty C code contest".
20:34:12 <Rugxulo> nah, originality seems heavily prized
20:34:16 <elliott_> At least that's my perception.
20:34:21 <elliott_> Rugxulo: Well yeah, I mean as far as code formatting goes.
20:37:27 <Gregor> But I mean, a JIT is going to be obtuse no matter how you write it.
20:37:35 <Gregor> A MIDI player would be pretty clear.
20:40:59 -!- oerjan has joined.
20:42:34 -!- Ngevd has quit (Ping timeout: 252 seconds).
20:42:39 <oerjan> hm
20:42:39 <lambdabot> oerjan: You have 1 new message. '/msg lambdabot @messages' to read it.
20:44:24 <elliott_> You guys, my bug reporting strategy works so well.
20:45:08 <CakeProphet> Gregor: check out some of the more complex winners in the past.
20:45:10 <elliott_> I'm just really impeccably nice and do fucktons of work unprompted and in return people bow to my every nee- GOD DAMMIT I'VE BEEN TURNED INTO AN OPEN SOURCE SLAVE BY MY DESPERATION
20:45:19 <CakeProphet> like text-based games. I believe there was an OS as well but I doubt it was very complicated.
20:45:33 <elliott_> CakeProphet: It was more complicated than you might think
20:45:41 <elliott_> CakeProphet: There's also that graphical flight sim
20:45:48 <CakeProphet> ah yes
20:45:55 <CakeProphet> see I think the purpose of the program is considered as well.
20:46:53 <CakeProphet> if the program does something really neat then it's more likely to be considered.
20:48:01 <Gregor> Yeah, but playing a MIDI file isn't all that neat :P
20:48:23 <CakeProphet> wait I thought you were writing a JIT compiler?
20:50:22 <oerjan> 19:03:41: <elliott_> peekManyInfo f x size = do
20:50:22 <oerjan> 19:03:41: <elliott_> c <- return undefined
20:50:22 <oerjan> 19:03:41: <elliott_> a <- withForeignPtr x (\y -> (peekArray ( div (fromIntegral size) $ sizeOf c) $ castPtr y))
20:50:25 <oerjan> 19:03:41: <elliott_> return (c:a)
20:50:28 <oerjan> 19:03:42: <elliott_> return $ f a
20:50:31 <oerjan> hm...
20:50:40 <elliott_> oerjan: Easier with the type signature one line above :P
20:50:45 <elliott_> oerjan: But um excuse me go back up and marvel at combineOr.
20:51:04 <oerjan> elliott_: i'm just thinking of a saner way to write that
20:51:14 <elliott_> oerjan: Here you go:
20:51:19 <elliott_> peekManyInfo :: forall a b. Storable a => ([a] -> b) -> ForeignPtr () -> CLsizei -> IO b
20:51:19 <elliott_> peekManyInfo f x size =
20:51:19 <elliott_> fmap f . withForeignPtr x $ \y ->
20:51:19 <elliott_> peekArray (fromIntegral size `div` sizeOf (undefined :: a)) $ castPtr y
20:51:22 <oerjan> NOOOOOOO
20:51:27 <elliott_> -XScopedTypeVariables, job done
20:51:32 <CakeProphet> c-c-c-combinators
20:51:35 <oerjan> *sigh* ok
20:51:44 * elliott_ pets oerjan, now go look at combineOr
20:53:06 * Gregor reappears.
20:53:18 <Gregor> <CakeProphet> wait I thought you were writing a JIT compiler? // the JIT compiler is more-or-less done, and I'm quite proud of it.
20:53:23 <Gregor> And like I said, <Gregor> But I mean, a JIT is going to be obtuse no matter how you write it.
20:53:33 <Gregor> I was talking about another submission.
20:53:40 <CakeProphet> Gregor: yeah but not in a visually appealing way.
20:53:43 <CakeProphet> ah.
20:54:36 <Gregor> CakeProphet: They don't have to be visually appealing, they have to be obfuscated, although formatting it interesting is surely a plus.
20:54:43 <oerjan> elliott_: hm, it's basically foldl (.|.) 0 :: [CLuint] -> CLuint except with mad coercion?
20:56:19 -!- Ngevd has joined.
20:56:33 <elliott_> oerjan: yep! it was used on a list of newtypes of CLulong
20:57:14 <elliott_> oerjan: i replaced the single usage site with foldl' (.|.) 0 [ foo | NewtypeCons foo <- xs ]
20:58:37 <oerjan> is NewtypeCons a synonym for the actual newtype constructor, or something insanely overloaded?
20:58:48 <elliott_> oerjan: former
20:58:55 <elliott_> you can't overload a constructor :P
20:59:00 <elliott_> or do you mean like
20:59:17 <elliott_> data NewtypeCons a = forall b. (Newtype a b) => NewtypeCons b
20:59:21 <elliott_> or sth ridiculous like that :P
20:59:24 <oerjan> yeah
20:59:36 -!- Phantom__Hoover has joined.
20:59:41 <oerjan> although i guess that wouldn't actually work in that context
21:00:11 <oerjan> since the b escapes in an illegal way
21:00:29 <oerjan> (and is not necessarily the same for all xs elements
21:00:30 <oerjan> )
21:00:53 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
21:04:53 <oerjan> 15:44:43: <elliott_> because it's a nop that subverts the type system
21:04:53 <oerjan> 15:44:50: <elliott_> which could easily break the forcing mechanism
21:05:08 <coppro> how can a nop do anything?
21:05:11 <oerjan> that's what i was trying to check with my seq experiment yesterday, i couldn't get it to break
21:05:20 <oerjan> coppro: it's a nop after compilation
21:05:21 <elliott_> coppro: it's not the nop, it's what it allows you to do
21:05:36 <elliott_> if you treat a banana as an orange by just doing nothing and pretending, it's still gonna blow up when you uh
21:05:38 <elliott_> press the button that uh
21:05:42 <elliott_> does good things to oranges
21:05:44 <elliott_> but makes bananas blow up
21:05:47 <elliott_> and that is
21:05:48 <elliott_> a real button ok
21:06:18 <CakeProphet> predictions for future Android versions: root beer float, pumpkin pie, vanilla milkshake, jelly, mint chocolate cookies
21:06:33 <elliott_> android sugar
21:06:53 <oerjan> i guess iPhone has dibs on the apple pie
21:07:28 <CakeProphet> I'm pretty sure they'll use jelly for the next version
21:07:36 <oerjan> u jelly?
21:07:37 <CakeProphet> as I don't know of many desserts or sugary things that start with j.
21:07:46 <CakeProphet> other than that.
21:08:08 <elliott_> <oerjan> u jelly?
21:08:11 <elliott_> why did they ever make you op :'(
21:08:34 <elliott_> come to think of it, who _did_ make you an op
21:08:34 <oerjan> so that i could MERCILESSLY TORTURE YOU, of course
21:08:56 <elliott_> I purchased any 37-inch LG 37LV5300 combined with picture had been excellent though the audio system ended up awful, there were a few action cloud (community . has also been 120hz) along with anytime the particular display had been supposed to be absolutely dark you could possibly see the LED bleeding via about the edges.
21:08:59 <oerjan> fizzie, i think
21:09:21 <oerjan> i don't think there were any other active ops at the time
21:09:39 <elliott_> oerjan: it is very hard for me to envision fizzie doing an opthing of his own accord :P
21:09:48 <elliott_> although not as hard as it is for me to imagine you doing that >:)
21:10:07 * CakeProphet is the primest candidate for ophood.
21:10:51 <oerjan> well after that antioptbot disaster i am somewhat leery of using ops for silly stuff
21:11:03 <oerjan> even more than before
21:11:28 <CakeProphet> I would op over my subjects with the kindness and wiseful tact of the philosopher kings of ancient times.
21:11:40 <CakeProphet> because op = king obviously
21:11:44 <elliott_> oerjan: looks like the ops before you were andreou, fizzie, lament and Aardappel. so the founder, fizzie, someone who has never heard of this channel, and a potato.
21:11:53 <elliott_> good ops
21:12:00 <Sgeo> antiopbot disaster?
21:12:12 <elliott_> someone made a bot to insult the ops
21:12:14 <elliott_> thus anti op bot
21:12:20 <elliott_> and then oerjan killed a baby
21:12:30 <oerjan> the disaster of misspelling
21:12:54 <CakeProphet> oerjan: let it be known that if elliott is ever considered for ophood then there is ONE VETO VOTE against him.
21:12:54 <Rugxulo> Aardappel is most likely Wouter van Oortmerssen (sp?), the FALSE dude
21:12:57 <CakeProphet> yes, that is totally a thing.
21:13:13 <Rugxulo> I don't think it's Mr. Potato Head
21:13:16 <oerjan> no i didn't, it was already dead when i ate it
21:13:41 <elliott_> Rugxulo: that much is obvious :P
21:13:58 <Rugxulo> well you called him a potato ("them's fightin' wurds!")
21:14:00 * elliott_ would rather wouter were known for his more interesting languages :(
21:14:07 <Rugxulo> such as?
21:14:07 <elliott_> Rugxulo: aardappel means potato.
21:14:13 <Rugxulo> yes, so I've read
21:14:15 -!- derdon has quit (Remote host closed the connection).
21:14:16 <Rugxulo> (though I don't speak Dutch)
21:14:23 <elliott_> Rugxulo: such as Aardappel, for one :P http://strlen.com/aardappel-language
21:14:36 <Rugxulo> he seems almost more proud of E than FALSE
21:14:46 <CakeProphet> you know what's funny about fighting words?
21:14:51 <CakeProphet> it's actually a thing in US law.
21:15:50 <Rugxulo> US law is the biggest kludge ever
21:15:58 <MonkeyofDoom> ^
21:16:08 <elliott_> do you know of any laws that aren't kludges
21:16:14 <oerjan> this reminds of how it's illegal in norway to insult a police officer, but _what_ you can say varies by region
21:16:23 <MonkeyofDoom> thermodynamics?
21:16:24 <Rugxulo> no, but how it even pretends to make any coherent sense is beyond me
21:16:44 <elliott_> i gather that's why we have lawyers.
21:16:47 <oerjan> because some places have a customarily more ... colorful ... way of speaking than others
21:16:56 <oerjan> *reminds me
21:17:04 <Rugxulo> "so how many gigolos did your mom have to bribe to get you that badge?"
21:17:49 <CakeProphet> I wonder if a your mom joke constitutes as fighting words.
21:18:06 <elliott_> your MOM constitutes fighting words.
21:18:35 <CakeProphet> Incitement is a related doctrine, allowing the government to prohibit advocacy of unlawful actions if the advocacy is both intended to and likely to cause immediate breach of the peace. The exception is defined in Brandenburg v. Ohio (1969), where the Court reversed the conviction of a Ku Klux Klan leader accused of advocating violence against racial minorities and the national government.
21:18:41 <CakeProphet> loooooool
21:19:14 <CakeProphet> advocating unlawful actions that breach the peace is bad, unless it's racist (???)
21:19:18 <oerjan> "please kill a nigger. but wait until tomorrow."
21:19:20 <Rugxulo> "so, how much does everybody *really* love Raymond?" (blank stare)
21:19:51 <oklopol> oerjan: don't be racist
21:20:11 <oerjan> oklopol: ok, you can kill a dyke or chink instead, if you want
21:20:20 <oklopol> you shouldn't kill niggers just because they're black just like you shouldn't hit a white guy just because they hit you first.
21:20:38 <CakeProphet> oerjan: meanwhile Julian Assange is most likely condemned to the death penalty if he ever steps foot on US soil, despite having not broken any laws.
21:20:59 <CakeProphet> THEY WILL FIND SOME VAGUE THING HE VIOLATED.
21:21:29 <oerjan> meanwhile, i don't want to touch that subject.
21:21:50 <CakeProphet> uh oh
21:22:04 <CakeProphet> subject-rape
21:22:05 <oklopol> did you know people in US have this thing called religion
21:22:19 <CakeProphet> oklopol: huh, weird.
21:22:20 <oklopol> i find that really weird
21:22:33 <CakeProphet> there's freedom of it too
21:22:51 <CakeProphet> within some reason that doesn't really seem to universal.
21:22:52 <Rugxulo> and weird anti-religion weirdos who sue just to get a water tower to lose its cross
21:23:03 <CakeProphet> for example the native american church can smoke peyote as part of its rituals
21:23:20 <CakeProphet> but Joe Asshole Peyote Cult with 150 members probably can't
21:24:05 <elliott_> joe asshole peyote cult is the best
21:24:42 <oklopol> no but seriously in the US you can apparently tell your friends you believe in god and no one will think that's weird
21:24:52 <CakeProphet> interestingly I'm pretty sure rastafarians would still get arrested for smoking weed
21:24:58 <CakeProphet> despite it being part of their religious practice.
21:25:14 <Rugxulo> in the U.S., you can dress up as a vampire and nobody will think it's weird
21:25:30 <oklopol> i'm pretty sure most people will think it's weird
21:25:47 <Rugxulo> no worse than default
21:26:05 -!- Phantom__Hoover has quit (Ping timeout: 240 seconds).
21:26:06 <Gregor> To be fair, I'm pretty sure that Native Americans could not have their peyote-smoking rituals out of reservations, which are in principle autonomous.
21:26:11 <CakeProphet> there are also several "marijuana churches" that are essentially trying to manipulate that bit of freedom of religion to allow them to smoke cannabis legally, but of course they've met less success than rastafarians.
21:26:53 <elliott_> More like Wile E. Coyote-smokin' rituals!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
21:26:54 <elliott_> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
21:26:54 <elliott_> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
21:26:59 <elliott_> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
21:27:00 <elliott_> <elliott_> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
21:27:03 <elliott_> <elliott_> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
21:27:04 <CakeProphet> elliott_: what?
21:27:06 <elliott_> <elliott_> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
21:27:08 <oklopol> okokokokokokokokokokoko
21:27:09 <elliott_> <elliott_> !!!!!!!
21:27:11 <oklopol> okokokokokokoko
21:27:11 <elliott_> Hi.
21:27:16 <oklopol> okokokokokokokokokokokokokoko
21:27:19 <oklopol> okokokokokokokoko
21:27:25 <oklopol> okokokokokokoko
21:27:30 <oklopol> okokokokokokokokokokokoko
21:27:33 <oklopol> okokokokokokokokoko
21:27:35 <oklopol> okokokokokoko
21:27:35 <Gregor> gregregregregregregregregregorgorgorgorgorgorgorgorgor
21:27:36 <elliott_> is this... freeform okoing
21:27:42 <Ngevd> oklopol, your name makes me think of creatures of the deep
21:27:42 <CakeProphet> Gregor: ah that's true.
21:27:42 <oklopol> okokokokokokokokokokokokokokokokokokokoko
21:27:42 <elliott_> its so beautiful
21:27:48 <oklopol> it should
21:27:53 <shachaf> "eliot" is clearly the best spelling variation of that name.
21:27:59 <elliott_> oerjan: kick shachaf
21:28:02 <oklopol> you don't even want to know what oklopol means
21:28:15 <oklopol> there's a whole mythology
21:28:20 <CakeProphet> oklopol is secretly lopolko
21:28:26 <Ngevd> O
21:28:27 <CakeProphet> WHO IS IN CAHOOTS WITH ROGER G.
21:28:28 <Gregor> La polka
21:28:28 <CakeProphet> I KNEW IT!
21:28:56 <Ngevd> "Taneb" actually comes from "Benat" <-- trivia
21:28:57 <shachaf> elliott_: Why don't you go read something by T. S. Elliott? Oh, wait, that person doesn't exist.
21:29:20 <elliott_> shachaf: What the fuck did T. S. Eliot ever do for us? Ruin the name Elliott, that's what.
21:29:23 -!- ais523 has joined.
21:29:30 <Ngevd> It was a portmantaeu for a shared account that I ended up using way more than Ben ever did
21:29:33 <shachaf> elliott_: He wrote all those cat poems, man.
21:29:42 <elliott_> The way the world ends is actually with me beating people who misspell my name to a bloody pulp.
21:29:47 <CakeProphet> elliott_: hey T. S. Eliot has some good poems.
21:29:50 <elliott_> And it becomes a black hole and gobbles up everything.
21:29:57 <shachaf> Also all those other poems.
21:30:02 <elliott_> More like: BAD-ems.
21:30:06 <Ngevd> I write poems
21:30:10 <elliott_> Oh no.
21:30:14 <Rugxulo> you mean poo-ems?
21:30:25 <Rugxulo> (funnier than bad-ems)
21:30:26 <elliott_> * Phantom__Hoover has quit (Ping timeout: 240 seconds)
21:30:27 <elliott_> Facepalm.
21:30:29 <CakeProphet> Ngevd: me too!
21:30:33 <CakeProphet> ESOTERIC POETRY CLub
21:30:38 <Ngevd> My best insults most people in the world in the first half of a line
21:30:39 <elliott_> No stop.
21:30:40 <elliott_> You're
21:30:41 <elliott_> Ruining life
21:30:58 <Ngevd> "All humans are bastards, that is the truth
21:31:05 <Ngevd> "All part of a perfect worlds spook
21:31:18 <Ngevd> s/ook/oof/
21:31:19 <shachaf> There's this great poem titled "O Eliotttt"
21:31:24 <elliott_> i
21:31:25 <elliott_> hate
21:31:25 <elliott_> life
21:31:26 <elliott_> and also
21:31:27 <Ngevd> "In this dark parody that is real life
21:31:27 <elliott_> shachaf
21:31:29 <elliott_> but
21:31:29 <elliott_> ok
21:31:34 <elliott_> im leaving until Ngevd is done with his uh
21:31:35 <shachaf> elliott_: shachaf = life
21:31:36 <elliott_> wonderful recitation
21:31:38 -!- elliott_ has quit (Quit: Leaving).
21:31:38 <Ngevd> "A world of poverty, greed, and Strife"
21:31:39 <shachaf> No need to be redundant.
21:31:40 <Ngevd> Am done
21:31:55 <CakeProphet> elliott_: am done
21:32:08 <CakeProphet> @tell elliott_ am done
21:32:08 <lambdabot> Consider it noted.
21:32:23 <shachaf> No more eliotttttttt.
21:32:40 -!- pikhq has quit (Read error: Operation timed out).
21:32:43 -!- elliott_ has joined.
21:32:47 <CakeProphet> elliott_: is done
21:32:56 <CakeProphet> am doont
21:33:00 <elliott_> @messages
21:33:00 <lambdabot> CakeProphet said 52s ago: am done
21:33:00 <CakeProphet> deet doot doit
21:33:27 -!- pikhq has joined.
21:33:29 <CakeProphet> lambdabot: yes that is what I said
21:33:46 <Ngevd> fungot, am done
21:33:46 <fungot> Ngevd: i met all the devs if they know nothing about articles though now that you have
21:34:08 <oerjan> <coppro> does the haskell vm implement cyclic lists by thunk or by actually creating a cyclic data structure?
21:34:19 <elliott_> oerjan: don't :P
21:34:28 <CakeProphet> elliott_: man these fetch modi keep getting more ridiculous and not burdening.
21:34:33 <oerjan> it's thunks, but they become actual cyclic once all of them have been evaluated.
21:34:35 <Ngevd> ^echo ais523 wiki spam
21:34:35 <fungot> ais523 wiki spam ais523 wiki spam
21:34:45 <elliott_> oerjan: that's an awfully weird way to describe sharing.
21:34:45 <ais523> Ngevd: heh, I was just checking that now
21:34:47 <shachaf> ^echo ^echo
21:34:47 <fungot> ^echo ^echo
21:34:59 <ais523> wait, are we still discussing cyclic structures in here?
21:35:13 <Ngevd> Don't some crystals have cyclic structures?
21:35:18 <oerjan> ok it's a cyclic thunk, which becomes an ordinary cyclic structure when sufficiently evaluated
21:35:19 <shachaf> We've moved on to bicyclic structures now.
21:35:40 <oerjan> "ordinary" in the sense of non-haskell structures
21:36:03 <CakeProphet> @src cycle
21:36:04 <lambdabot> cycle [] = undefined
21:36:04 <lambdabot> cycle xs = xs' where xs' = xs ++ xs'
21:36:33 <CakeProphet> does that form a cyclic linked list?
21:36:38 <oerjan> yep
21:36:49 <shachaf> Well, no guarantees in the Report. :-)
21:36:50 <CakeProphet> is it because of the weird xs' where xs' =
21:36:51 <CakeProphet> bit
21:37:01 <elliott_> CakeProphet: it would happen just the same if it used fix
21:37:03 <shachaf> That's what makes GHC do it, yes.
21:37:10 <CakeProphet> shachaf: for purposes of further discussion on Haskell it can be assumed we're talking about GHC.
21:37:15 <oerjan> yes, that (in practice) enforces sharing of xs' in the two spots
21:37:17 <CakeProphet> (asshole :P)
21:37:25 <elliott_> CakeProphet: it definitely can't.
21:37:33 <shachaf> cycle xs = fix (xs++)
21:37:45 <elliott_> > fix ([]++)
21:37:48 <oerjan> i'm pretty sure most/all other haskell compilers actually written will do that too
21:37:49 <lambdabot> mueval-core: Time limit exceeded
21:38:12 <elliott_> gah, i really want to know if this tehz guy on reddit is the wiki guy
21:38:13 <elliott_> because
21:38:15 <elliott_> he's really stupid
21:38:17 <elliott_> and i hate him
21:38:25 * elliott_ sugar coats things
21:38:27 <CakeProphet> grr
21:38:49 <elliott_> My thought is rather philosophical: Would it be possible to construct a compiler (in haskell or some future derivate) that doesn't require monads in the definition? For this to work I suppose that the compiler would have to be "compiled along with the program it is compiling". Then again what entity would compile both the compiler and the program?
21:39:06 <CakeProphet> wat
21:39:06 <shachaf> :-(
21:39:09 * elliott_ waits for someone to assume he wrote that.
21:39:12 <shachaf> Thanks for sharing, elliott_.
21:39:28 <elliott_> It's what I do best.
21:39:31 <elliott_> Sharing, and caring.
21:39:33 <elliott_> And hating.
21:39:43 <elliott_> Clarification: In order to not require monads in order to parse, interpret and emit code the input has to be known when interpreting the compiler. It has to be "part" of the compiler itself. That is somewhat impossible. Unless, I imagine, you postpone compilation of the actual compiler until you have the program. Thus the program that you want to compile becomes part of the compiler itself - and not an input to the compiler. Possibly the "what then compi
21:39:43 <elliott_> les the compiler"-problem could be solved making the compiler self-hosting. -> (Oh, I sense a rather strange loop here...)
21:40:02 <shachaf> Quis compiliet ipsos compiles?
21:40:04 <shachaf> Riddle me that.
21:40:10 <CakeProphet> what the hell this makes no sense.
21:40:21 <elliott_> Quid pro COMPILEUM, shachaf!!!
21:41:02 <shachaf> elliott_: Fortunately monads.
21:41:07 <elliott_> thank god monads
21:41:14 <elliott_> god bless you monads
21:41:17 <CakeProphet> I don't see how lack of monads requires any of that.
21:41:23 <shachaf> Bless you, monads. Blonads.
21:41:33 <elliott_> class Blonad a where ...
21:41:53 <CakeProphet> fuck :: Your Mom -> Fucked Mom
21:42:10 <CakeProphet> .. :>
21:42:17 <elliott_> class Blonad b where phase :: b (b a) -> a; glunt :: b a -> (a -> b c) -> b (b c)
21:42:43 <Rugxulo> where's oerjan, I forgot to ask (the .no cop): "Bonvolu alsendi la pordiston, estas rano en mia bideo."
21:42:43 <CakeProphet> oh my
21:42:53 <elliott_> thats not norwegiwngan
21:42:55 <shachaf> "Unfortunately, there's a radio connected to my brain"
21:43:01 <shachaf> "Actually, it's the BBC controlling us from London"
21:43:01 <Rugxulo> elliot, I know
21:43:25 <CakeProphet> BBC: the true ruler of the UK
21:43:27 <shachaf> That looks like Esperanto.
21:43:31 <shachaf> Which is an evil language.
21:43:52 <Rugxulo> what's the one where your mom's up against walls with sailors?
21:44:19 <CakeProphet> Sgeo: updottpplllwo3[]l[df[;]
21:45:12 <Sgeo> CakeProphet, I hate you. I should trust my notifier.
21:45:33 <elliott_> CakeProphet: you're my hero
21:45:49 <shachaf> conalelliotttcable_
21:46:47 <CakeProphet> elliott_: :3 :> 3>
21:46:53 <CakeProphet> er, <#
21:46:54 <CakeProphet> um
21:46:55 <CakeProphet> yeah
21:47:09 <CakeProphet> 3> butt cone
21:47:36 -!- MonkeyofDoom has quit (Ping timeout: 244 seconds).
21:48:35 <pikhq> shachaf: It's worse when put through the Japanese foreign language pedagogy filter.
21:48:46 <shachaf> pikhq: What?
21:48:57 <CakeProphet> a construct devised by pikhq himself.
21:49:09 <pikhq> "Bonboru arusenji ra porujisutonn, esutasu rano en mia bideo"
21:49:23 <pikhq> CakeProphet: No, just a comment on how foreign languages are taught in Japan.
21:49:42 <CakeProphet> !userinterps
21:49:42 <EgoBot> ​Installed user interpreters: acro aol austro bc bct bfbignum brit brooklyn bypass_ignore bytes chaos chiqrsx9p choo cpick ctcp dc decide drawl drome dubya echo ehird elmer fudd google graph hello id insanetemp jethro kraut lperl lsh map monqy num numberwang ook pansy pi pikhq ping pirate plot postmodern postmodern_aoler prefixes python redneck reverse rimshot rot13 rot47 sadbf sanetemp sfedeesh sffedeesh simplename slashes svedeesh swedish valspeak wacro warez
21:49:47 <CakeProphet> !sffedeesh Bonboru arusenji ra porujisutonn, esutasu rano en mia bideo
21:49:48 <EgoBot> Boooonbooooruuuu iruuuusenjee-a-a-a ra pooooruuuujeesuuuutoooonn, isuuuutesuuuu roooonoooo ie-a-a-a meea beedeoooo
21:50:32 <CakeProphet> !sffedeesh Bork
21:50:32 <EgoBot> Boooork
21:50:53 <pikhq> !pikhq The fuck is this?
21:50:54 <EgoBot> ​Þe fuck iſ þiſ?
21:51:02 <pikhq> Ah. Incorrect.
21:51:27 <CakeProphet> elliott_: quote pls I am lazy
21:51:52 -!- derrik has quit (Quit: ChatZilla 0.9.87-rdmsoft [XULRunner 1.9.0.17/2009122204]).
21:52:07 <CakeProphet> !redneck hello my friends how are you all doing?
21:52:08 <EgoBot> hey there muh frien's how are yew all doin'?
21:52:30 <CakeProphet> worst redneck ever.
21:53:18 <Rugxulo> y'all
21:53:30 <Rugxulo> howdy
21:53:47 <oerjan> Rugxulo: wat
21:53:53 <oerjan> that's esperanto, surely
21:54:04 <CakeProphet> vikigns don't understand the concept of redneck.
21:54:07 <Rugxulo> throw in a little Spanglish, too ... muchachos, amigos
21:54:26 <CakeProphet> Rugxulo: that's the horrid southwestern bastardization, you fool!
21:54:36 <Rugxulo> E-o? only the quote earlier
21:54:46 <CakeProphet> including "howdy", no one says howdy in the southeast (well, they probably do actually)
21:54:58 <Rugxulo> I can vouch for it
21:55:25 -!- elliott_ has quit (Read error: Operation timed out).
21:55:26 <Rugxulo> "melting pot"
21:56:33 <oerjan> Rugxulo: well of course. now what does it have to do with .no?
21:57:34 <Rugxulo> <oerjan> this reminds of how it's illegal in norway to insult a police officer, but _what_ you can say varies by region
21:58:08 <oerjan> Rugxulo: and what does that have to do with the esperanto quote
21:58:23 <Rugxulo> say that, see what happens ;-)
21:59:04 <oerjan> @_@
21:59:57 <CakeProphet> +_+
22:00:11 * Rugxulo doesn't think oerjan gets the joke
22:00:54 -!- Phantom__Hoover has joined.
22:01:00 <oerjan> you don't say.
22:02:10 <Rugxulo> http://www.imdb.com/title/tt0684161/quotes
22:03:46 <CakeProphet> man these quotes are HILARIOUS
22:03:56 <CakeProphet> I am dying from humor intake.
22:03:59 <CakeProphet> humor poisoning
22:04:15 <Ngevd> Also vowel deficiency
22:05:32 <Rugxulo> they're bringing the show back too (allegedly)
22:08:05 <CakeProphet> you know that feeling you get when a huge important paper is due tomorrow and you just now realized it?
22:08:58 * Rugxulo is afraid of the answer
22:09:47 * Sgeo has never seen Red Dwarf
22:10:01 * Sgeo also has never seen Ghostbusters
22:10:03 * Sgeo ducks
22:10:21 <oerjan> <Phantom__Hoover> I've just noticed that currently on TV is a BBC programme dealing with offended people's letters.
22:10:34 <oerjan> they should get john cleese for that.
22:10:36 <Phantom__Hoover> Sgeo, you are bad
22:10:50 <Ngevd> oerjan, you are good
22:10:57 <oerjan> Ngevd: hm?
22:11:04 <Ngevd> <oerjan> they should get john cleese for that.
22:12:10 <Phantom__Hoover> I thought Cleese was off his nut these days?
22:12:13 * oerjan crosses the streams at Sgeo
22:12:25 <Ngevd> Past John Cleese
22:12:40 <oerjan> Phantom__Hoover: oh no, he's working like mad to pay off his divorce
22:12:49 <andrew12> hi
22:12:55 <oerjan> or is that what "off his nut" means
22:12:59 <oerjan> `welcome andrew12
22:13:00 <CakeProphet> well
22:13:03 <HackEgo> andrew12: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page
22:13:05 <CakeProphet> time to load up on caffeine.
22:13:25 <andrew12> oerjan: did you see me join? i've been here since yesterday and already gotten that thrown at me
22:13:32 <andrew12> :P
22:13:44 <Ngevd> Andrew, is that you?
22:14:23 <andrew12> huh?
22:14:34 <Ngevd> No wait, I'm thinking of a different Andrew
22:15:02 <oerjan> andrew12: oh no, i'm going to have to switch to ais523's method of not telling who he's welcoming
22:15:04 <andrew12> probably
22:15:20 <shachaf> `welcome fungot
22:15:20 <fungot> shachaf: fnord were a huge hit in japan and people are fnord by theodore kaczynski, fnord fnord fnord
22:15:22 <HackEgo> fungot: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page
22:15:31 <Ngevd> ^style
22:15:31 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher fungot homestuck ic irc* iwcs jargon lovecraft nethack pa sms speeches ss wp youtube
22:15:35 <Ngevd> Bah
22:15:36 <shachaf> fungot knows to ignore other bots? :-(
22:15:36 <fungot> shachaf: well i do know that song.
22:15:48 <ais523> andrew12: I just welcome people at random, in the hope that when I do it to someone in your situation then people won't shout at me
22:15:55 <oklopol> shachaf: usually that's done after a few bot loops
22:15:58 <CakeProphet> shachaf: I got the last exploit by @telling lambdabot to say fungot
22:15:59 <fungot> CakeProphet: i tried making something that i probably won't be at the next update which is soon.
22:15:59 <andrew12> `welcome ais523
22:16:01 <CakeProphet> it was then corrected.
22:16:01 <HackEgo> ais523: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page
22:16:19 <shachaf> `echo ?where fungot
22:16:19 <fungot> shachaf: you'll *also* have some idea why it's different :) but i'm willing to convert my tabs to spaces from me hitting tab again and have it work
22:16:20 <HackEgo> ​?where fungot
22:16:29 <shachaf> lambdabot?
22:16:36 <shachaf> Oh, come on, lambdabot!
22:16:42 <ais523> > "I don't listen to people with 'bot' in their name, IIRC"
22:16:43 <lambdabot> "I don't listen to people with 'bot' in their name, IIRC"
22:16:55 -!- Ngevd has changed nick to Tanebbot.
22:16:57 <oerjan> shachaf: not only does fungot know to ignore bots, but HackEgo and EgoBot know how to be ignored by bots
22:16:57 <fungot> oerjan: to be honest, i'm not ruling that out. i have bad expirience with that from emacs)
22:16:59 -!- oklopol has changed nick to oklobot.
22:17:02 <Tanebbot> > "Let's put this to the test"
22:17:03 <lambdabot> "Let's put this to the test"
22:17:10 -!- Tanebbot has changed nick to Ngevd.
22:17:12 <ais523> hmm, apparently noy that
22:17:18 <oklobot> remember oklobot?
22:17:20 <ais523> besides, fungot /doesn't/ have "Bot" in its name
22:17:20 <fungot> ais523: it'd. it had a special form, not about this specific form
22:17:27 <oklobot> it was my first bot
22:17:37 <ais523> what did it do? oing?
22:17:39 <Ngevd> HackEgo prints a non-printing character first
22:17:40 <ais523> a bot could do that really well
22:17:47 <oklobot> it had that weird stack language that basically just had access to two integers
22:17:48 <shachaf> STupid bot.
22:17:53 <Ngevd> Remember Pietbot?
22:17:54 <oerjan> oh hm... there's a loophole isn't there
22:17:57 <Ngevd> That never did work
22:18:08 <oerjan> !echo lambdabot: > 2+2
22:18:09 <EgoBot> lambdabot: > 2+2
22:18:19 <oerjan> hm apparently not
22:18:23 <oerjan> lambdabot: > 2+2
22:18:26 <oerjan> oh
22:18:33 -!- pikhq_ has joined.
22:18:37 <oerjan> lambdabot: @hm
22:18:37 <lambdabot> Maybe you meant: . ? @ bf do ft ghc id pl rc thx v wn
22:18:49 -!- pikhq has quit (Ping timeout: 252 seconds).
22:18:49 <oerjan> !echo lambdabot: @run 2+2
22:18:49 <EgoBot> lambdabot: @run 2+2
22:18:50 <lambdabot> 4
22:18:52 <oerjan> yay
22:19:22 * oerjan leaves the rest as an exercise
22:19:31 <shachaf> ?where+ EgoBot !echo foo
22:19:31 <lambdabot> Okay.
22:19:38 <shachaf> !echo ?where EgoBot
22:19:38 <EgoBot> ​?where EgoBot
22:19:40 <Ngevd> EgoBot: !echo test
22:19:47 <shachaf> !echo lambdabot: ?where EgoBot
22:19:48 <EgoBot> lambdabot: ?where EgoBot
22:19:48 <lambdabot> !echo foo
22:19:49 <EgoBot> foo
22:20:14 -!- ChanServ has set channel mode: +o ais523.
22:20:22 <ais523> just in case I need to +m the channel for a few seconds to break botloops
22:20:29 <shachaf> I'm not going to do it!
22:21:10 -!- zzo38 has joined.
22:21:18 <Ngevd> `welcome
22:21:20 <HackEgo> Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page
22:21:43 <shachaf> > var "hello, and\n`welcome"
22:21:43 <lambdabot> hello, and
22:21:44 <lambdabot> `welcome
22:21:45 <Ngevd> We should just use `welcome as a generic greating
22:21:48 <shachaf> Phooey.
22:21:57 <shachaf> ?where+ EgoBot `welcome
22:21:58 <lambdabot> I will remember.
22:22:02 <shachaf> ?where EgoBot
22:22:02 <lambdabot> `welcome
22:22:04 <HackEgo> Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page
22:22:32 <Ngevd> ^echo ?where EgoBot
22:22:32 <fungot> ?where EgoBot ?where EgoBot
22:22:33 <lambdabot> `welcome
22:22:35 <HackEgo> Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page
22:23:06 <Ngevd> !echo ^echo ?where EgoBot
22:23:07 <EgoBot> ​^echo ?where EgoBot
22:23:17 <Ngevd> Ah yes
22:23:27 <Ngevd> fungot == clever bot
22:23:27 <fungot> Ngevd: it would probably be too simple to concern themselves with state. i think it would be
22:23:48 <Ngevd> It even thinks!
22:24:05 <zzo38> EgoBot inserts a zero-width character if the output starts with any punctuation mark
22:24:20 -!- Rugxulo has left ("Leaving").
22:24:34 <Ngevd> EgoBot.cleverness > fungot.cleverness
22:24:35 <fungot> Ngevd: as i said :p. but the original idea was to port the thing over to fnord. i can't imagine
22:24:42 <zzo38> On my computer, the zero-width character is visible, and it overlaps the colon before the message
22:24:44 <shachaf> ^echo ?where
22:24:44 <fungot> ?where ?where
22:24:45 <lambdabot> ?where ?where
22:24:53 <Ngevd> fungot even imagine
22:24:54 <fungot> Ngevd: are you using as a file pathname? should return t only for pathname objects. the fact that what is called ' consistency' before
22:25:04 * shachaf is so tempted to make a bot loop. :-(
22:25:19 -!- pagnol has quit (Ping timeout: 260 seconds).
22:26:54 -!- Phantom__Hoover has quit (Ping timeout: 240 seconds).
22:27:39 <oerjan> shachaf: it's traditional!
22:27:42 -!- Ngevd has quit (Read error: Connection reset by peer).
22:28:52 <oerjan> you cannot get a loop with fungot, since that has an ignore list
22:28:53 <fungot> oerjan: why do laptops suck for webdev? they run vim as graphical, although it isn't really
22:30:23 <Sgeo> ?where huh
22:30:24 <lambdabot> I know nothing about huh.
22:30:28 <Sgeo> ?where ?where
22:30:28 <lambdabot> ?where ?where
22:30:31 <Sgeo> ?where >
22:30:31 <lambdabot> I know nothing about >.
22:30:37 <Sgeo> What is ?where
22:31:07 <oerjan> ?list where
22:31:07 <lambdabot> where provides: where url what where+
22:31:18 <Sgeo> Helpful
22:31:21 <Sgeo> ?what ?where
22:31:21 <lambdabot> ?where ?where
22:31:41 <Sgeo> ?where Google
22:31:41 <lambdabot> Mountain View, California
22:31:44 <Sgeo> huh
22:31:50 <Sgeo> ?where lambdabot
22:31:50 <oerjan> it's like HackEgo's `?
22:31:50 <lambdabot> http://haskell.org/haskellwiki/Lambdabot
22:31:58 <shachaf> Oh, Mountain View, California. I've been there.
22:32:10 <Sgeo> ?where Microsoft
22:32:11 <lambdabot> I know nothing about microsoft.
22:32:15 <Sgeo> ?where Sgeo
22:32:15 <lambdabot> I know nothing about sgeo.
22:32:59 <shachaf> ?where haskell
22:32:59 <lambdabot> http://haskell.org
22:33:02 <shachaf> ?where oerjan
22:33:02 <lambdabot> I know nothing about oerjan.
22:33:04 <shachaf> ?where elliott
22:33:04 <lambdabot> elliott is tumbling around Northumberland
22:33:25 <shachaf> Is elliott actually in Northumberland?
22:33:29 <oerjan> yes.
22:35:15 <oerjan> Sgeo: Redmond, Washington.
22:35:27 <zzo38> Do not use this calculator as a card in a card game or as a meat in a hamburger.
22:35:34 <oerjan> where i've been, btw
22:37:45 <shachaf> Maybe I should go visit elliott.
22:37:59 <shachaf> What does he do wherever he is, anyway?
22:38:05 <oerjan> shachaf: wait, _you_ are in northumberland?
22:38:11 <shachaf> No.
22:38:15 <oerjan> whew
22:38:24 <shachaf> I may end up there one day, though! You can never tell with bees.
22:38:24 <oerjan> we don't have room for more esolangers there.
22:38:34 <shachaf> oerjan: Wait, *you* are in Northumberland?
22:38:38 <oerjan> no
22:38:43 <shachaf> Whew.
22:38:49 <shachaf> We don't have room for more esolangers there.
22:38:57 <oerjan> ah.
22:39:24 -!- Phantom__Hoover has joined.
22:39:24 -!- Phantom__Hoover has quit (Client Quit).
22:40:04 <oerjan> shachaf: wait, you are a bee?
22:40:46 * shachaf wonders whether to answer that question.
22:41:01 -!- Phantom__Hoover has joined.
22:41:03 <oerjan> ah, it's a secret? ok.
22:41:13 <shachaf> Something along those lines.
22:41:35 <oerjan> a bee from the land of milk and honey
22:42:28 <Phantom__Hoover> `? shachaf
22:42:30 <HackEgo> shachaf mad
22:42:38 <Phantom__Hoover> `learn shachaf is a bee.
22:42:40 <HackEgo> I knew that.
22:42:49 <Phantom__Hoover> `? oerjan
22:42:51 <HackEgo> Your future evil overlord oerjan is an expert in lazy computation.
22:42:54 <Phantom__Hoover> `? Phantom__Hoover
22:42:56 <HackEgo> Phantom__Hoover? ¯\(°_o)/¯
22:42:58 <Phantom__Hoover> `? Phantom_Hoover
22:43:01 <HackEgo> Phantom_Hoover? ¯\(°_o)/¯
22:43:05 <Phantom__Hoover> (
22:43:08 <Phantom__Hoover> :(
22:43:10 <oerjan> shocking
22:43:39 <oerjan> `learn Phantom_Hoover is a true scotsman and hatheist.
22:43:41 <HackEgo> I knew that.
22:44:09 <Gregor> `learn Phantom__Hoover can't decide what an appropriate number of underscores is.
22:44:12 <HackEgo> I knew that.
22:45:25 <oerjan> `learn Phantom_Hoover is a true Scotsman and hatheist.
22:45:28 <HackEgo> I knew that.
22:46:01 <Gregor> oerjan: You realize I used two _'s there X_X
22:46:06 <Gregor> Oh
22:46:07 <Gregor> Never mind :P
22:46:09 <oerjan> yes.
22:46:10 <Gregor> You were correcting caps.
22:46:19 <Gregor> I thought you were trying to reset, but I'm le'dumb.
22:46:27 <oerjan> `? Gregor
22:46:29 <HackEgo> Gregor took forty cakes. He took 40 cakes. That's as many as four tens. And that's terrible.
22:46:39 <shachaf> ?where Gregor
22:46:39 <lambdabot> I know nothing about gregor.
22:46:47 <shachaf> ?where zzo38
22:46:47 <lambdabot> I know nothing about zzo38.
22:47:18 <oerjan> ?where+ zzo38 is Canadian, eh
22:47:18 <lambdabot> Done.
22:48:07 <shachaf> zzo38 is Canadian?
22:48:10 <oerjan> yes.
22:48:14 -!- Patashu has joined.
22:48:15 <oerjan> shocking, isn't it
22:48:17 <Gregor> And what of the great Gregor Wertheimer?
22:48:25 * shachaf admits to being kind of surprised.
22:48:27 <shachaf> zzo38: What's your last name?
22:48:36 <Gregor> McCanadacle
22:49:06 <oerjan> shachaf: it's a quite european-sounding name
22:50:04 <oerjan> well, english actually
22:50:50 * CakeProphet made a Skyrim character.
22:50:51 <Gregor> England: No longer part of Europe. (Well, to be fair it never REALLY was)
22:51:10 <oerjan> Gregor: that was a narrowing, not a correction :P
22:51:13 <CakeProphet> Breton warrior-mage kind of dude. focusing on one-hand, block, heavy armor, conjuration, block, and alteration.
22:51:32 <CakeProphet> did I mention block?
22:51:51 <oerjan> no, just block and block
22:51:54 <shachaf> You should make an Uber smiter.
22:52:02 <CakeProphet> I don't know what that is, but okay.
22:52:12 <CakeProphet> basically he's kind of like a warlock knight.
22:52:14 <shachaf> You know, for the Ubers.
22:52:46 <CakeProphet> and probably kind of tankish because block + heavy armor + Breton magic resistance + armor spell
22:53:02 <CakeProphet> and summoned minion.
22:53:18 <shachaf> 20 points in Smite, Holy Shield, Fanaticism/Defiance, something like that.
22:53:22 <shachaf> I don't remember, it's been a while.
22:53:24 <CakeProphet> ah yes of course.
22:53:36 <CakeProphet> shachaf: that sounds like... Diablo?
22:53:49 <CakeProphet> paladin class in Diablo I think has those.
22:53:52 <shachaf> Yep.
22:53:56 <shachaf> Diablo II.
22:53:56 <CakeProphet> *Diablo II
22:53:57 <CakeProphet> yes
22:54:14 <shachaf> I had such a great smiter.
22:54:24 <shachaf> That's a complete lie. I had a barely adequeate smiter.
22:54:27 <shachaf> But I remember him fondly.
22:54:29 <CakeProphet> I usually played necro or sorc or... yeah that's pretty much it.
22:54:44 <shachaf> CakeProphet: Did you play online?
22:54:47 <CakeProphet> yep
22:54:53 <shachaf> Did you ever do the Ubers?
22:54:55 <CakeProphet> no.
22:54:58 <CakeProphet> I don't know what that is.
22:55:00 <shachaf> Aw.
22:55:23 <shachaf> It was an online-only thing with a super-powerful version of Diablo,Mephisto,Baal in one level.
22:55:49 <shachaf> Eventually they dropped a http://diablo.wikia.com/wiki/Hellfire_Torch
22:55:55 <CakeProphet> I do have a little bit of destruction but I don't really want to focus on it because fireballs and lightning bolts are boring.
22:56:06 <shachaf> A smiter was pretty much the safest way to kill them.
22:56:18 <CakeProphet> but setting people on fire as you smash them over the head with a mace is pretty enjoyable.
22:57:48 <CakeProphet> shachaf: sorceress was pretty much ridiculous.
22:57:54 <CakeProphet> with the ice orb thing.
22:58:09 <shachaf> CakeProphet: Sounds to me like you didn't play beyond the first difficulty level.
22:58:27 <shachaf> In Nightmare and especially in Hell there are lots of ice-immune monsters.
22:58:32 <CakeProphet> no I wasn't a h4rdc0r3 D2 person.
22:58:46 <shachaf> Also fire-immune and lightning-immune. A sorceress couldn't get far on her own without being very careful.
22:58:48 <Gregor> "Thus, 1 2>a will invoke register a's contents and 2 1>a will not."
22:58:49 <Gregor> >_<
22:58:57 <Gregor> I thought my comparisons were all off.
22:59:00 <Gregor> No, the universe is all off.
22:59:19 <Gregor> 10 2 / is 10/2, not 2/10. And yet 10 2 > is 2>10, not 10>2
22:59:22 <Gregor> DAMN YOU DC
22:59:35 <CakeProphet> occasionally I wonder, as I sit outside filling my lungs with carcinogens
22:59:43 <CakeProphet> what if some evil bug monster has evolved right at my house
22:59:50 <CakeProphet> like, the first few of its kind.
23:00:05 <CakeProphet> some giant hive of giant bees.
23:00:12 <CakeProphet> or like a giant scorpion thing.
23:00:28 <CakeProphet> with projectile stingers.
23:02:28 <Gregor> WHO JUST GOT SOME DUFF'S DEVICE IN THIS BITCH
23:02:34 <Gregor> GREGOR JUST GOT SOME DUFF'S DEVICE IN THIS BITCH
23:02:45 <Gregor> (Note: not actually Duff's device, just aesthetically similar)
23:05:15 <shachaf> Oh, the D2 ladder was just reset on Oct 25.
23:05:21 <shachaf> Maybe I should play...
23:10:54 <Phantom__Hoover> D2?
23:14:03 -!- Jafet has quit (Quit: Leaving.).
23:14:43 * Phantom__Hoover → sleep
23:14:44 -!- Phantom__Hoover has quit (Quit: Leaving).
23:16:12 <Gregor> OMG
23:16:13 <Gregor> BAHAHAHA
23:16:17 <Gregor> I am ONE BYTE below the limit.
23:16:19 <Gregor> 2047 code bytes.
23:16:34 -!- copumpkin has quit (Ping timeout: 252 seconds).
23:16:59 -!- copumpkin has joined.
23:19:11 <CakeProphet> Gregor: quick! find a problem that requires more code!
23:19:39 <Gregor> CakeProphet: This problem requires more code, but sadly I haven't the space.
23:22:46 <CakeProphet> Vorpal: hi
23:22:55 <CakeProphet> I played Skyrim. :3
23:23:13 <CakeProphet> Gregor: golf it up.
23:23:25 <Gregor> CakeProphet: It's golfed all to hell.
23:24:11 <Gregor> CakeProphet: I wrote a (tragically non-golf) program to give me recommendations on what to reduce with typedefs/#defines.
23:25:14 <CakeProphet> ah nice.
23:25:34 -!- ais523 has quit (Remote host closed the connection).
23:26:27 <CakeProphet> I wonder if I could devise a programming language based on big burly men wrestling.
23:26:48 <coppro> depends
23:26:52 <coppro> do you consider sumo wrestlers burly
23:26:55 <CakeProphet> sure.
23:27:00 <coppro> then yes
23:27:19 <CakeProphet> one challenger could be halt, the other could be non-halt
23:27:29 <CakeProphet> AND THEY BATTLE TO SEE WHO WINS.
23:27:34 <CakeProphet> (spoiler: non-halt never wins)
23:27:35 <coppro> no, it needs to be three ways
23:27:39 <Gregor> Halting problem: SOLVED
23:27:42 <coppro> no wait
23:27:49 <coppro> two ways between accept and reject
23:27:54 <coppro> a non-halting program is a draw
23:28:46 <CakeProphet> so I guess your input is like WEAPONS
23:28:52 <CakeProphet> or.. uh.. ADVANTAGES
23:30:28 <CakeProphet> http://www.npr.org/2011/11/20/142569472/how-one-man-played-moneyball-with-jeopardy?sc=fb&cc=fp
23:33:18 <CakeProphet> I enjoy the comments where people say he is cheating.
23:39:54 <CakeProphet> "Using data-mining and text-clustering techniques, Craig grouped questions by category to figure out which topics were statistically common — and which weren't."
23:40:03 <CakeProphet> shouldn't this be s/questions/answers/?
23:40:43 <Sgeo> elliott is not here
23:40:49 <CakeProphet> Sgeo: updoot
23:41:06 <Sgeo> CakeProphet, yes, that's what I wanted to tell elliott
23:41:18 <oerjan> brave sir elliott ran away, he bravely ran away away
23:41:28 <CakeProphet> I GUESS YOU JUST WON'T NOW, HUH?
23:41:30 <CakeProphet> OH NO.
23:41:53 <CakeProphet> Sgeo: the world
23:41:54 <CakeProphet> is ending
23:42:04 <CakeProphet> because you can't tell elliott
23:42:12 <CakeProphet> about the uhpdeet
23:42:53 * CakeProphet gentley shooshpaps Sgeo.
23:43:19 * Sgeo has to go
23:44:46 <CakeProphet> Sgeo: I'm going to ignore the previous thing you said and continue talking to you
23:44:54 <CakeProphet> Sgeo: is Dr. Brinner actually going to be a thing.
23:45:00 <CakeProphet> because it could possibly be a good idea.
23:45:10 <CakeProphet> though I'm pretty sure it's just a non-existent parody thing of homestuck.
23:46:32 <Sgeo> Bye
23:50:30 <Gregor> I'm out of platforms.
23:51:05 <CakeProphet> Gregor: what about PS2 and Nintendo 64?
23:52:36 <Gregor> CakeProphet: So, MIPS and MIPS?
23:52:40 <Gregor> CakeProphet: Covered and covered.
23:57:26 -!- Jafet has joined.
23:59:04 <Gregor> I want one more architecture so it's an even dozen.
23:59:06 <CakeProphet> Gregor: Super Nintendo?
23:59:21 <Gregor> Needs to be 32-bit :P
23:59:34 <CakeProphet> NOT PORTABLE ENOUGH
23:59:43 <Gregor> :'(
23:59:55 <CakeProphet> this shit needs to run on MOS Technology 6502.
←2011-11-19 2011-11-20 2011-11-21→ ↑2011 ↑all