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