00:00:04 -!- myndzi\ has joined. 00:00:17 -!- CakeProphet has joined. 00:03:31 -!- myndzi has quit (Ping timeout: 248 seconds). 00:05:24 -!- myndzi\ has quit (Ping timeout: 260 seconds). 00:37:26 -!- myndzi has joined. 00:38:51 -!- augur has quit (Read error: Connection reset by peer). 00:41:06 -!- augur has joined. 00:42:08 sheesh searching for I II III IIII IVI IIIVII IIIIIVIII gives only 3 google hits and one is to #esoteric logs 00:42:31 the two others are in french 00:43:47 oerjan: X-D 00:43:52 google translate? 00:44:36 also if i search for I II III IIV IIIIV instead i get two relevant references, one which links to the other, which is mistyped and by conway 00:45:07 and where he claims that there is a constant for it, with low algebraic degree 00:45:39 do you think it's tc? 00:45:56 oerjan: also, contact conway ;D 00:46:11 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 00:46:11 well it seems unlikely if it has a matrix to predict its growth 00:46:28 Does Conway know about Gemini? 00:46:40 what is gemini? 00:46:52 * Sgeo_ stares at oerjan 00:47:13 http://www.conwaylife.com/wiki/index.php?title=Gemini 00:47:28 Spaceship that moves by self-replication 00:48:03 Also moves obliquely 00:48:06 oh that one 00:48:10 (word taken from life wiki) 00:48:42 Sgeo_: the word conway does _not_ trigger gol as its first association in my mind 00:48:57 Ah 00:49:00 which means gemini is a couple steps too far 00:49:49 -!- sebbu has joined. 00:49:49 -!- sebbu has quit (Changing host). 00:49:49 -!- sebbu has joined. 00:50:15 lol i clicked conways wp talk page 00:50:19 read "John has indeed been married three times. First wife Eileen, second wife Larissa, third wife Diana. His son Alex was born in 1983, and Oliver in 1988, to answer the below question." 00:50:22 thought "whoa creepy" 00:50:24 next line 00:50:25 "Diana Conway 24.225.176.66 03:58, 22 November 2006 (UTC)" 00:53:31 -!- sebbu2 has quit (Ping timeout: 252 seconds). 00:53:46 * oerjan had forgotten that #esoteric discussion from last year 00:53:52 which discussion 00:54:06 about roman numeral look and say 00:54:14 http://codu.org/logs/_esoteric/2010-06-20.txt 00:54:20 istr having one of those 00:54:33 oh man ksf was an idiot even back then 00:54:39 why didn't i remember him so i could have ignored him sooner when he came here 00:54:43 well some discussion but maybe mostly me monologuing 00:54:59 oerjan: that's a discussion for us :) 00:55:08 -!- elliott_ has changed nick to fpa. 00:55:11 btw i'm holding this nick hostage 00:55:13 (by registering it) 00:55:55 the weird thing is i'm saying things on that page which i distinctly recall rederiving in the past week or two :D 00:58:11 aww 00:58:13 that's a sign of senility 00:58:16 -!- fpa has changed nick to elliott. 00:58:27 -!- elliott has quit (Changing host). 00:58:27 -!- elliott has joined. 01:11:00 -!- copumpkin has joined. 01:14:12 07:17:08: ooh, i got a _really_ stupid idea! 01:14:12 07:17:29: wow this will be retarded. 01:14:12 07:20:03: wow i'm like the genius of retarded. 01:23:44 -!- augur has quit (Remote host closed the connection). 01:40:34 Deewiant: Does Mycology test IMAP? 01:42:03 -!- augur has joined. 01:43:53 -!- hagb4rd has joined. 02:36:00 -!- madbr has joined. 02:36:02 hey 02:36:17 yeh 02:36:56 my brother brought a stm32 evaluation board from work and I'm trying to figure if it's possible to use it as a target platform for a demoscene demo 02:37:36 (arm cortex-m3 microcontroller board) 02:37:37 anything's a viable platform for a demo 02:37:42 jacquard loom? totally. 02:37:52 eh 02:38:16 Trying to figure if it's possible to get VGA or NTSC output 02:38:35 the kind of stuff that will look cool on a projector 02:39:34 bah, ASCII should be enough for anyone 02:40:25 well, the board's display is 16x2 ascii 02:41:41 plus a row of 16 LEDs 02:41:52 -!- oerjan has quit (Quit: Good night). 02:43:14 light show + ascii art problem solved 02:43:49 jesus CHRIST this code is ugly 02:44:10 ahem yeah right 02:44:39 more likely I'm trying to figure out if it's possible to get either the right sequence of bits out of one of the series port 02:44:42 s 02:44:50 to get NTSC 02:44:52 colors 02:45:04 (but it probably has the wrong clock rate for that) 02:45:04 -!- pikhq_ has joined. 02:45:12 Or alternatively 02:45:20 use a bunch of pins and output VGA 02:46:33 -!- pikhq has quit (Ping timeout: 240 seconds). 02:47:08 -!- hagb4rd has quit (Ping timeout: 246 seconds). 02:47:08 -!- wareya has quit (Read error: Connection reset by peer). 02:47:15 elliott: that thing runs at like 80mips 02:47:25 thats a lot of instructins 02:47:28 instructions 02:47:38 -!- wareya has joined. 02:47:42 72 mhz cut down ARM 02:49:17 at least the board has a sound output 02:49:25 which pretty much solves sound from the outset 02:49:37 use some of the bits of the sound port for video output :D 02:49:38 most of, even 02:50:06 I think the sound is done with PWM 02:50:32 -!- TeruFSX has quit (Read error: Operation timed out). 02:50:41 And thus probably doesn't run at the ridiculous speeds you need for video (6mhz) 02:51:31 -!- hagb4rd has joined. 02:52:19 12.6mhz = 320x400 or 320x480 VGA video pixel rate 02:52:53 who needs that kinda resolution 02:52:55 -!- augur has quit (Remote host closed the connection). 02:53:02 well 02:53:12 VGA has a minimum line rate :( 02:53:19 madbr: There's no real requirement for that to be analog. 02:53:47 Admittedly, it's not going to be doing color unless it's NTSC, but hey. 02:53:50 if the horiz rate isn't at least 30khz I'm pretty sure the projector won't show it 02:54:29 NTSC has a kinda more gentle rate of ~16khz 02:54:40 but its color encoding scheme is crazy 02:55:11 You can fake it with black and white output. 02:55:35 Also, crazy color encoding isn't unique to NTSC. 02:55:59 I don't think this board has the right clock rate to easily simulate ntsc colors unfortunately 02:56:06 All the color analog TV standards do a form of analog QAM encoded into the signal. 02:56:15 Which is approximately "fucking crazy". 02:56:17 pikhq: right 02:56:54 It has a 72 MHz ARM. Surely you can clock a digital output line at a reasonably fast rate with that sort of CPU. 02:57:03 as opposed to VGA's "put the right voltages on the R, G, B, Hsync, Vsync" pins 02:57:51 pikhq: yeah. Aparently the SPI ports run at "18Mhz max" 02:58:13 Plenty speedy for NTSC video. 02:58:22 well, yeah 02:58:37 And psuedocolor. 02:58:41 doesn't line up with the NTSC color carrier freq tho 02:59:49 which would probably produce weird rainbow shifts across the screen 03:00:22 that sounds pretty 03:01:41 like, if it was a 800mips processor you could probably just render in 32bpp and translate into bit patterns at the end 03:01:57 but it's more like ~80mips so dunno 03:02:03 * elliott mentally files "Landon Stewart" under "idiot". 03:02:26 madbr: how much faster is it than a commodore sixtyfour? :P 03:02:54 100 times probably 03:04:06 Actually, if you got an NTSC color burst that matched your used color carrier, it'd work just fine on common displays. 03:04:18 Not work for broadcasting, but oh well. 03:04:47 dunno how ntsc TVs implement color burst and how they react to frequency variation 03:05:24 since you have a burst every line then that locks the rate somewhat yeah 03:05:41 Well, a lot of computers and consoles in the 70s and 80s did something similar. 03:06:05 -!- augur has joined. 03:06:25 afaik NESes and AMIGAs have clock rates chosen specifically around the ntsc color carier 03:06:34 And if you could get analog black and white out, you could use the CGA trick. 03:06:44 madbr: csixtyfour too 03:06:49 yeah the CGA trick is the same thing 03:06:50 Oh, wait, never mind. 03:07:06 The CGA trick is just two-level output, but based on the color carrier. 03:07:30 still gets you 16 colors 03:07:39 hey pikhq_ 03:07:40 shiro 03:07:49 but I think you need to output at a specific clock rate for that 03:08:16 Rational multiplier of the color carrier. 03:08:50 Within a certain range, I'd imagine. 03:09:49 Could not deduce (Functor m) arising from a use of `<$>' 03:09:50 from the context (MonadShiro m) 03:09:51 oh fucking hell 03:10:34 No instance for (Applicative (MaybeT Shiro)) 03:10:34 arising from the superclasses of an instance declaration 03:10:34 asfdgh 03:10:43 ?src Applicative 03:10:43 class Functor f => Applicative f where 03:10:43 pure :: a -> f a 03:10:43 (<*>) :: f (a -> b) -> f a -> f b 03:12:45 wow ok this is a huge pain in the ass 03:17:17 pikhq: this arm thing seems to run at speeds that are various multiples of 6mhz 03:17:47 72mhz, 48mhz, 36mhz, 24mhz, 12mhz specifically mentioned in the datasheets 03:17:57 madbr: Guess you're not getting sane color, then. 03:18:11 right 03:18:20 Unless you've got a *few* such outputs, in which case you could probably do VGA or NTSC component. 03:19:09 I think a lot of the chip's pins can be reassigned as general purpose IOs 03:19:42 ?undo do { r <- liftShiro ((Just <$> io m) `catchShiro` \(e::IOException) -> return Nothing); MaybeT (return r) } 03:19:42 Parse error in pattern at "->" (column 71) 03:19:44 gah 03:19:54 Which might be able to get me 15bpp VGA color... but the cpu power requirements for that are probably kinda stiff 03:19:55 (aka "60000/1001 Hz 480 line analog component video, YPbPr, sync on Y") 03:19:57 ?undo do { r <- x; MaybeT (return r) } 03:19:57 x >>= \ r -> MaybeT (return r) 03:20:01 ?. pl undo do { r <- x; MaybeT (return r) } 03:20:01 MaybeT . return =<< x 03:20:19 ioMaybe :: IO a -> MaybeT Shiro a 03:20:19 ioMaybe m = MaybeT . return =<< liftShiro ((Just <$> io m) `catchShiro` \(e::IOException) -> return Nothing) 03:20:21 Surely I can do better than that. 03:21:01 Actually... 03:21:18 madbr: With just two outputs I think you could do S-Video. 03:22:33 ?hoogle guard 03:22:33 Control.Monad guard :: MonadPlus m => Bool -> m () 03:22:33 Language.Haskell.TH data Guard 03:22:33 Language.Haskell.TH.Syntax data Guard 03:23:09 fuck yes the code is getting so much better 03:23:39 maybeT :: Maybe a -> MaybeT m a 03:23:41 need a better name for this 03:23:43 any suggestions? 03:23:52 hmm wait 03:23:53 is that just MaybeT 03:23:55 no, it's not 03:24:38 pikhq: YPbPr might be a good idea 03:27:15 -!- augur has quit (Ping timeout: 248 seconds). 03:28:52 pikhq: mostly because it's similar to vga but lets you use half the horiz refresh rate and share sync info 03:29:10 The colorspace is a bit bizarre, though. 03:29:36 Okay, okay, so technically it's a change of basis of the RGB colorspace. But still annoying. 03:33:20 yeah 03:34:39 plus I'm not certain their video projector will have a YCrCb input 03:34:48 whereas all of them have a VGA input 03:35:13 -!- TeruFSX has joined. 03:35:46 did you know what's the best 03:38:24 second 03:41:09 -!- azaq23 has quit (Ping timeout: 276 seconds). 03:42:28 -!- azaq23 has joined. 03:51:52 omg tomorrow is the raptjure 03:52:12 No, tomorrow is Friday, you damned Britishman. 03:52:53 suht the fuck up americaevil 03:53:39 so when on saturday is the rapture 03:54:18 raptune 03:54:23 its................ 03:54:24 time party 03:54:34 it starts... in australia....or new zzealand...the timez0nes 03:54:38 (i am not joking they seriously believe this) 03:54:45 then it expands to less sheepfucking....areas of the....globe 03:55:24 does it expand in all directions or just a few 03:55:37 a gradual rapture sounds pretty inconvenient 03:55:50 its ok because 03:55:52 once you hear the news 03:55:55 SHEEPFUCKERS DECIMATED 03:55:57 just 03:56:00 become christain 03:56:03 and ull be taken 03:56:09 sounds like a deal 03:56:16 I'm pretty sure salvation is irrevocable. 03:56:22 what if I'm secretly a sheepfucker 03:56:24 So I win. 03:56:32 pikhq_: just go eat some babies 03:56:36 god will make an exception 03:56:55 elliott: What do you think I eat 3 meals a day? 03:56:56 Dood, it's the rapture! Dat shit gonna rapture everywhere bitch! 03:57:06 *Animal* flesh? That's disgusting, man. 03:57:25 hmmhmm go to bed now when its just getting light 03:57:27 or fix this code first 04:07:50 where's oerjan when you need him 04:11:14 so... it is five am... 04:11:16 i should 04:11:17 go to slepe 04:11:19 slepe 04:11:57 -!- variable has quit (Remote host closed the connection). 04:12:36 Sgeo_ 04:12:38 name my function 04:12:54 Your... function? 04:13:05 You mean like id? 04:13:53 -!- variable has joined. 04:14:08 what 04:14:13 ??? :: (Monad m) => Maybe a -> MaybeT m a 04:14:13 ??? = MaybeT . return 04:14:14 name it 04:14:26 i need to go to sleep but i can't until its named 04:14:45 [asterisk]it's 04:16:07 makeTransformer 04:16:13 generalize 04:16:28 ... 04:16:35 those are the worst fucking names ive veer heard im going back to hashhaskell 04:16:56 It makes it something more compattibible with use in a monad stack, right? 04:17:32 yeah no never mind 04:17:34 elliott: liftMaybe 04:17:39 pikhq_: its not a lift 04:17:55 Oh, right, perhaps I should sleep. 04:17:59 lower 04:18:08 lift :: M a -> MaybeT M a 04:18:08 Or perhaps I should listen to Animals again. 04:18:08 foo :: Maybe a -> MaybeT m a 04:18:11 Um no that maes no ense 04:18:26 Definitely the latter. 04:20:31 hey pikhq_ 04:20:32 it is five twenty 04:20:33 am 04:20:34 should i 04:20:36 bed-><_ 04:20:39 if so then 04:20:41 name my function 04:20:42 so i can 04:20:42 bed 04:21:00 -!- augur has joined. 04:21:23 elliott: maybe 04:22:12 :t maybe 04:22:12 forall b a. b -> (a -> b) -> Maybe a -> b 04:22:14 try again 04:22:54 meh 04:22:56 i guess ill go to bed 04:27:14 -!- elliott has quit (Ping timeout: 246 seconds). 04:31:12 -!- TeruFSX has quit (Quit: No Ping reply in 180 seconds.). 04:44:31 rapture? i don't wanna die :(( 04:49:23 after the rapture, the discoture 04:49:51 october 21 04:49:59 for you maybe, but i've had anal sex :( 04:50:25 I'm a filthy unbeliever 04:50:31 filthy atheist at that 04:50:41 supposedly jesus loves you, but here he is, blowing up the world 04:50:44 how is that love 04:51:12 he was just putting up a front until god gave him some powah 04:52:29 oklofok: The alternative is believing in *and worshipping* Yahweh, as interpreted by a particular form of Christianity. 04:53:13 I dunno about you, but I'm of the opinion that if Yahweh existed, he wouldn't be deserving of worship. 04:54:19 love everyone kill everyone send everyone to hell 04:54:20 any christians in here btw? 04:54:30 I hope not; I want my fun. 04:55:28 Does former Christian count? 04:55:30 heh no christians I guess 05:00:04 i barely believe in christianity 05:01:27 oklofok: "Barely"? 05:01:48 oklofok: Inquiry: what evidence is there for the claims of Christianity? 05:02:01 how do you solve #5225 in freecell? :\ it seems like the obvious approach is to empty the rightmost column right away without leaving anything up, but it seems like you get stuck if you do that 05:02:15 That's some bad evidence. :P 05:02:20 pikhq_: well people say they're christian sometimes 05:02:28 and i'm not completely sure they're lying 05:02:35 Oh, the *existence of the faith*. 05:02:38 i'm somewhat agnostic in that sense 05:02:40 yes 05:02:41 No argument. 05:02:56 -!- SgeoN2 has quit (Read error: Connection reset by peer). 05:02:57 what's christianity 05:03:44 monqy: In short: the belief that a God had a son who was also God, who died and became a zombie to save us from our sins. 05:04:35 I like the part where he kills people because he loves them 05:04:37 fucking insane 05:05:10 Yeah, the eternal torment for not believing combined with omnibenevolence is quite a trip. 05:06:19 well on an intellectual level i find it easy to believe in the existence of faith in general, everyone finds their own way to get out of circling the philosophical drain at times when you decide to realize life is sort of pointless, which i believe happens to all people who spend time thinking, occasionally. that people would choose the faith people next to them have is equally easy to believe. on an intellectual level. somehow i still have this feelin 05:07:01 well okay 05:07:05 you still have what feelin 05:07:40 it's certainly not easy to believe, on an intellectual level, that people actually believe the bible stories :P but you know the general feeling of "christian god" 05:07:55 monqy: i have this feeling christianity is just a big joke, we're just not in on it 05:08:14 "oh you were being SARCASTIC! sorry us atheists are kind of slow sometimes." 05:08:31 that is my dream 05:09:02 my theory: that's what "rapture" actually means, they just chicken out every time. 05:09:19 erm 05:09:25 i mean it means they tell us 05:11:56 reading the brick testament 05:12:55 3mg of melatonin taken 05:12:57 I remember reading its rendition of revelation 05:12:58 good stuff 05:14:32 http://www.bricktestament.com/the_teachings_of_jesus/on_anger_and_insults/mt05_21a.html 05:15:35 I like how it uses qui-gon jinn as jesus 05:17:08 I've got personal experience for the existence of Christians. 05:17:26 Having once been one, I can be sure that there at least *was* at least one person who actually believed it. 05:17:28 -!- augur has quit (Read error: Connection reset by peer). 05:17:40 Not that that helps others too much. 05:18:42 -!- augur has joined. 05:19:23 are you telling me there are christians who don't believe? 05:19:26 what?!? http://www.bricktestament.com/judges/samson_commits_mass_murder/jg14_01.html 05:19:37 what the... that's a joke right :D 05:19:48 why does this stuff keep surprising me 05:20:11 oklofok! :D 05:20:46 that story is the most horrible thing ever 05:20:47 hi augur 05:20:58 sup you 05:21:06 well i'm going to take a shower now 05:21:11 otherwise good 05:21:40 yeah the ending is like... wtf 05:21:50 oklofok: welcome to the old testament 05:22:26 yeah unlike the beginning where good took over the guy and made him wanna have sex with an unclean one. 05:22:33 *god 05:23:07 why don't they rename satan to bad and use baad instead of bad, would make much more sense 05:23:09 Yeah, the Old Testament is the land of God endorsing an absurd amount of reprehensible behavior. 05:23:41 i suppose the concept of free will was invented later? 05:23:48 The whole thing is a blend of confusing beliefs. 05:23:59 The concept of *monotheism* was invented after much of it was written. 05:24:47 old testament has way too much wars and "10000 men were killed" and so on 05:24:51 yeah god had sent most of the text down before realizing the retards didn't even get the basic framework yet 05:25:07 so he gave a few seminars and then send the new testament 05:25:15 *sent 05:27:35 madbr: There's also the obvious after-the-fact editing. 05:27:51 "So God spoke to God" 05:28:26 pikhq: didn't knew of that one 05:28:37 one classic is the 2 deaths of judah 05:29:02 It's all *over* the place. 05:29:12 japanese is like golfing for speech 05:29:15 When does he come around? 05:29:21 I need to give him a few internets. 05:30:54 and reading the revelation is like 05:31:00 no loving god would do that 05:31:09 actually that also applies to other parts of the bible 05:31:42 Some of the early Jewish deities: Asherah, El, Yahweh, Baal. 05:32:16 The first three are held to be names of God. 05:32:48 -!- copumpkin has quit (Remote host closed the connection). 05:33:06 Yes, the Old Testament still has the *names* of the pantheon. 05:35:52 el and baal are classic semitic gods afaik. don't know anything about the other ones 05:36:19 They're all fairly typical semitic gods. 05:36:52 The Jews are and were just a single group of semitic tribesmen, really. 05:40:15 right 05:40:26 this one is good: 05:40:26 http://www.bricktestament.com/king_david/god_kills_70000_israelites/2s24_01p1ch21_01.html 05:42:22 Aaaah, the stories you never hear a Christian talk about. 05:42:34 what sort of loving god is that 05:42:48 pikhq: that one is relatively well known I think 05:43:36 madbr: Relatively, sure. 05:43:44 It's still glossed over by most. 05:45:24 And, of course, the documentary hypothesis is something they're ignorant of, unless they went to seminary. 05:46:28 am i getting this right, god orders him to take a census and kills everyone because he does? 05:46:48 Yup. 05:46:56 it's a euphemism for kill everyone 05:47:00 God's a complete dick. 05:47:02 maybe this would indeed make more sense with two gods 05:47:17 why's taking a census bad exactly? 05:47:29 -!- azaq23 has quit (Quit: Leaving.). 05:47:40 i mean that's how you prove the polynomial hierarchy collapses to theta_2 if you have a sparse np-complete set :\ 05:48:16 (and various other things) 05:51:05 http://www.bricktestament.com/king_david/god_kills_70000_israelites/2s24_25b.html xD 05:54:49 Maybe some sort of reverse psychology attempt? 05:55:40 Works much better if you imagine there were two deities. Sadly, I think David takes place after monotheism. 05:56:58 Could be just one deity with some sort of personality disorder. I hear there's all kinds of. 05:58:21 Wilderness, and the part from Joshua to King Solomon is like... war pillage rape death 05:58:58 Yeah, but that's the history of just about everyone in that part of the world. 05:59:02 (in the brick testament) 05:59:18 well, yeah that's typical antiquity 05:59:21 -!- HackEgo has quit (Ping timeout: 264 seconds). 05:59:57 -!- Gregor has quit (Ping timeout: 264 seconds). 06:00:15 -!- EgoBot has quit (Ping timeout: 240 seconds). 06:00:27 -!- HackEgo has joined. 06:00:27 -!- EgoBot has joined. 06:04:02 -!- Gregor has joined. 06:04:31 -!- Gregor has changed nick to Guest52131. 06:20:03 -!- pikhq has joined. 06:20:29 -!- pikhq_ has quit (Ping timeout: 260 seconds). 06:33:59 "Lorsque Joram eut pris possession du royaume de son père et qu'il se fut fortifié, il fit mourir par l'épée tous ses frères et quelques-uns aussi des chefs d'Israël. " 06:34:02 nice guy 06:37:56 -!- hagb4rd has changed nick to h[a]gb4rd. 07:03:27 also maybe it's just me but the bible has lots of death and punishment but not quite as much for kings 07:04:44 -!- augur has quit (Ping timeout: 240 seconds). 07:06:37 -!- madbr has quit (Quit: Radiateur). 07:52:25 -!- augur has joined. 08:05:47 -!- Vorpal has joined. 08:23:53 -!- cheater79 has joined. 08:34:12 -!- augur has quit (Remote host closed the connection). 08:50:04 -!- Sgeo__ has joined. 08:53:16 -!- Sgeo_ has quit (Ping timeout: 260 seconds). 09:03:52 -!- monqy has quit (Quit: hello). 09:06:21 -!- augur has joined. 09:43:54 -!- cheater79 has quit (Quit: Leaving). 09:44:05 -!- cheater79 has joined. 09:57:22 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net). 10:13:56 -!- olsner_ has joined. 11:19:03 -!- Patashu has joined. 11:37:33 -!- oerjan has joined. 11:38:59 -!- ais523_ has quit (Ping timeout: 252 seconds). 11:41:43 -!- TeruFSX has joined. 11:50:28 What are you guys doing to prepare for the end of the world 11:53:18 eating breakfast 12:03:25 Can't be freed from your earthly shell on an empty stomach, huh? 12:04:42 No-one's yet told me how I can help to end the world, so I haven't prepared at all. 12:05:47 If you made the earth spin faster it'd end sooner 12:05:56 You don't have much time now 12:13:59 Let's nuke the world first. 12:14:27 did they ever say what time it would occur? 12:14:30 6 pm 12:14:43 GMT? 12:14:49 no let's _stop_ the world spinning. the side effects should be minimal compared to the apocalypse, right? 12:14:52 nope, in whatever time zone you're in 12:15:09 the earthquake is going to move all the way around the earth, forming a neat arc 12:15:19 but uh 12:15:20 or maybe it'll suddenly rush forward for time zones that are wide 12:15:23 it will move in discrete steps, no? 12:15:24 I really don't know 12:15:32 you should ask someone who knows more about this 12:15:34 entire time zones at a time 12:15:50 how did they even come up with this number? 12:15:53 http://www.google.com.au/search?sourceid=chrome&ie=UTF-8&q=rapture+6+pm 12:15:58 The US should declare that the year in that country is now 0 12:16:14 it's a mathematical calculation based on multiplying three numbers that represent heaven, atonement and (something else I forget) then squaring them 12:16:18 I once knew a guy who nowadays thinks he's the reincarnated Jesus, and he's very convinced it'll happen 12:16:20 then adding them to when jesus died on the cross 12:16:24 and it ends up exactly on may 21st 12:16:27 (he's also performed cunnilingus on dogs, so ...) 12:16:33 Patashu. 12:16:55 The solution is for a country to declare that the year there is 0, and that time will be based on 4 hour days from then on. 12:17:15 And spoil numerologists' fun? 12:17:18 shouldn't Israel be destroyed ages back in that case? 12:17:36 The 2011 end times prediction made by Christian radio host Harold Camping states that the Rapture (in premillennial theology, the taking up into heaven of God's elect people) will take place on May 21, 2011[1][2] at 6 p.m. local time (the rapture will sweep the globe time zone by time zone)[3] 12:17:36 the Hebrew calendar is on the year 6000ish by now 12:17:41 so yeah it's 6 pm in each time zone 12:17:55 Zwaarddijk: it was. several times. 12:18:06 oerjan: yeah but not properly 12:18:13 it's back! 12:18:20 Patashu, besides. 12:18:24 What about the people in space or the moon? 12:18:25 -!- variable has quit (Quit: /dev/io failed). 12:18:32 Hasn't the calendar been adjusted multiple times since 0 AD anyway 12:18:35 Patashu: I wonder if Camping thinks time zones are god-given or that they are a natural universal or something 12:18:57 Patashu: loads of times, and sometimes independently in different countries 12:19:03 Sweden, for instance, has had a february 30th once. 12:19:21 So. 12:19:27 When do people on the moon get raptured? 12:19:27 Also doesn't relativity screw up the idea of the rapture starting everywhere at once -anyway- 12:19:45 Patashu, I'm quite sure not. 12:19:46 Lymia: there aren't anyone on the moon other than that nazi base anyway 12:19:53 Only frames of reference are skewed, right? 12:20:09 oerjan: but those are all righteous men, and therefore will be raptured 12:20:13 oerjan, I'm talking theoreticals. 12:20:15 People on the earth are in a different frame of reference from people on the earth but in a supersonic jet or people on the moon 12:20:22 Zwaarddijk: sounds reasonable. 12:20:26 That's enough to make it ambiguous 12:20:58 Ask him what exactly "6PM" is defined as. 12:21:06 Besides. 12:21:09 They are clearly wrong. 12:21:10 Let's make a rapture themed esolang 12:21:12 Japan has already been raptured. 12:21:21 12:21:24 also relativity is rubbish, the earth is the center of the universe duh 12:21:24 You can make a prediction to schedule a thread to execute at a certain point in the future 12:21:37 Patashu. 12:21:37 Also. 12:21:40 So you can skip the rapturation part if you just wait until 5:30pm in your time zone, and then walk over the border to some place where it's already 6:30pm and it's gone past? 12:21:48 Japan has already been raptured! How does that work out? 12:21:54 Have they? 12:21:58 (due to the tentacle pron, nobody was saved) 12:22:02 It's not like japan had the first 9.0 earthquake 12:22:03 Patashu: shouldn't it be a lang that doesn't do what the source code tells it to at the point in the future, but presents an elaborate theological excuse why it didn't 12:22:11 Zwaarddijk that's what I was thinking 12:22:14 Lymia: not very many christians there anyway 12:22:16 So it never actually runs anything 12:22:21 Patashu. 12:22:23 It just acts as thouigh it's going to 12:22:39 Have it have a "savior" clause that is the conditional to start the thread. 12:23:17 .. 12:23:26 prime_sieve() failed to start because Jesus heard our sincere prayers and spared our CPU from its great burden. 12:23:32 Praise to the Lord! 12:24:16 "Insufficient faith, please pray again later." 12:24:56 out of faith error 12:25:02 Certain variables will be set as 'christian'. When the rapture starts they will be taken into heaven (stdout) and print out their contents 12:25:15 Sinners, however, stay on this earth and are static 12:25:53 until the great garbage collection, anyway 12:26:13 Sinners are corrupt, and so will randomly hold the wrong value to spite you 12:26:36 When Jesus finally comes the program exits otherwise it will run forever 12:26:51 If no prediction ever comes true this is fated to happen 12:28:50 You are only permitted to set String variables to contain verses of the bible. The KJB of course, the true English bible 12:29:10 Now internationalization is impossible, as it should be 12:29:37 http://pastebin.com/5kpZ9Z6n 12:29:53 Failure to set a String variable correctly throws a FalseTeachingException 12:29:55 Here is my proposal for the basic idea of said programming language. 12:30:16 And you probably get an alignment error if you try to read a blessed variable from a sinful context. 12:30:22 Hah 12:30:27 predictions and saviors are the only flow control systems. 12:30:47 fizzie, question is. 12:30:53 How do you define those contexts? 12:31:49 I like the manmade/godgiven idea 12:32:28 The best thing about rapture mania btw is the USA centricism of it 12:33:01 It could just be an inherited thread-local property, with the possibility of invoking some special script(ure)s to change it under suitable conditions. 12:33:22 LOL scriptures 12:33:35 Instead of packages, testaments? 12:33:54 Hmm... 12:33:57 Patashu. 12:34:04 How much of a nightmare can you make a programming language like this? 12:34:34 I propose that the only way to control code flow is to create new threads with a delay, and be able to stop delayed threads from executing. 12:34:45 And you can only schedule them in real time 12:35:02 Regarding the The Brick Testament page that was linked-to earlier on-channel, I had the tab left open, and misread one title as "Jacob's Wireless God". That sounded rather interesting. (In reality it was either the "Jacob's Wives Compete" or "Jacob Wrestles God" one.) 12:35:07 But you can waitfor(therapture) and do nothing until it executes 12:35:27 waitfor(therapture) sounds vaguely ~ATHish. 12:35:49 Hmm. 12:36:03 In each module, a variable is either christian, neutral, or sinful. 12:36:19 When a rapture command is used, all christian variables are printed in the order they are defined in the source file, with a new line between each. 12:36:44 i am sorry but i am sure neutral variables are against christian dogma 12:36:58 I.. guess so. 12:37:10 Anyways. 12:37:30 he's right 12:37:33 you're of god or you're not 12:37:37 There is a command sin([some point-to-variable mechanism]) and a command atone([same]) 12:37:43 These do the obvious. 12:37:56 Only variables accessable in the current scope are printed. 12:38:13 btw here's why may 21st: http://www.salon.com/news/feature/2011/05/10/rapture_may_21/index.html click the 'continue reading' link on the first story, 'Why the world might end next Saturday' 12:38:27 Patashu, is there any way to make it so that concurrency isn't just required, but required, and required to be messy? 12:38:58 By restricting how you can access variables? 12:39:04 What if you could only access them from a different thread 12:39:04 or something 12:39:11 Dunno. 12:39:13 fizzie, I think I figured it out. 12:39:34 godgiven variables are mutable. 12:39:39 However, if it's modified, the current context becomes sinful 12:40:03 How can this be made to be annoying? 12:40:35 There needs to be an incredibly detailed and functional Bible object in the main library 12:41:07 Should the language be functional, procedural, or what? 12:42:14 Hmm... 12:42:24 Lisp is clearly the purest language conceivable 12:42:26 Let's base it on that. 12:46:09 Patashu: the bible object must be ignoreable, and very very flexible 12:46:22 When you start a thread going by making a prediction, how does it communicate with other threads and/or return results? 12:46:27 What channels are available 12:46:33 Or is it part of the global scope 12:46:58 Patashu, it communicates via global variables. 12:46:59 Period. 12:47:06 That makes sense 12:47:15 After all, local scopes are moral relativism 12:47:19 Which the bible clearly forbids 12:48:01 but 12:48:04 If there's object orientation, there's no polymorphism because evolution is impossible (the bible guarantees it) 12:48:11 if you're going for rapture, you need dispensationalism 12:48:15 which is a kind of moral relativism 12:48:19 Can local variables be accessed by nested predictions? 12:48:24 viz. God makes different ethical demands at different times 12:48:35 Ssssshhhhhh 12:48:51 Patashu, use a sinful/pure mechanism. 12:48:58 Anything with a local context is "sinful" 12:49:03 Anything without one is "pure" 12:49:09 Most commands can only be used by pure threads. 12:49:17 Hah 12:49:42 If you want to, you can write this up or start a wikipage on it or whatever 12:49:48 I don't see myself getting around to it if it's up to me 12:49:51 why would a pure thread use most commands? 12:50:00 Because sinners have fallen from the grace of God 12:50:07 most commands are sinful in some way! 12:50:10 Implementing it is going to be NP-annoying 12:50:14 and hence thingss only sinners would want using 12:50:24 Anything in the math library? 12:50:25 Programming can be a Godly experience 12:50:38 Patashu, heh. 12:50:40 But we need math to figure out our rapture predictions 12:50:41 Well 12:50:42 Elementary math 12:50:46 And pow() 12:50:49 Make it annoying as possible, and make that the tag line? 12:50:54 Let's add a graphics library. 12:50:56 What about OpenGL? 12:51:03 Patashu, but. 12:51:12 Well, it doesn't have to be annoying, just thematic and different in some way 12:51:15 Annoying is just a bonus 12:51:33 Elementry math with pow means you can use this: http://www.xamuel.com/formula.php 12:51:48 You have flow control which can build a sum command. 12:52:01 ARGH 12:52:09 Begone, vile high level math 12:52:11 Also 12:52:21 If there's OpenGL support we need a WireCross() and SolidCross() function 12:52:37 :3 12:54:05 What about input 12:54:58 Logos 12:55:04 God spoke the command line arguments into existence 12:55:14 And they were good (assuming no malformed input) 12:56:01 Patashu: I think base-22 would be good, btw, since hebrew has 22 letters 12:56:17 Hebrew? 12:56:23 When was the last time a rapture monger read any hebrew 12:56:26 Otherwise I'd agree 12:56:45 (base-26, the KJB has 26 letters) 12:57:24 I wonder if we can work in begetting somehow. beget beget 12:57:30 maybe method chaining? 12:58:11 beget [object name] = constructor call? 13:00:08 Patashu: the rapture-guys tend to have a weird thing for jews, really. 13:00:16 yeah, but they don't read the stuff 13:00:24 they only care about jews so long as they bring about the end of the world 13:00:27 obviously not. 13:00:34 yes. 13:00:45 israel has to rebuild the great temple, I think 13:00:47 something like that 13:00:51 or maybe they need to be attacked? 13:00:55 but the jews also will be there after the rapture, and many of them think a third of them will be god's foot soldiers 13:00:59 How about we switch to lisp synax? 13:01:01 syntax* 13:01:04 do we want to make a wikipage for this? what's our language called again? 13:01:13 Patashu, let's work out the basics first. 13:01:31 Should we have a call/cc-style command? 13:01:35 I just want to make sure the idea is down somewhere 13:01:42 I really don't know what's most appropriate beyond that 13:02:22 Patashu, go ahead and make a page for it. 13:02:27 Put it under language ideas. 13:03:04 Need a name then 13:03:09 Rapture? 13:03:35 mmm. 13:03:41 Not Rapture related enough, but I guess. 13:03:51 How can you be more Rapture related than Rapture 13:03:52 I don't think I follow 13:03:55 Do we make it usable and annoying, or useless and buggy. 13:04:00 useless and annoying* 13:04:09 Or neither. 13:05:58 Patashu, I still suggest we use a lisp derived syntax. 13:08:44 I don't have any strong opinion on what the syntax is 13:08:47 Started the page http://esoteric.voxelperfect.net/wiki/Rapture 13:09:47 I do appreciate all the thought you're putting into it, but you probably have a better idea of how the language should look than I do at this point 13:10:14 Patashu, limit some critical functions to pure threads, and some critical functions to unpure threads. 13:10:22 You can force threading to be used then. 13:14:41 -!- BeholdMyGlory has joined. 13:18:27 Next act I guess, but I want to rewatch that 13:31:46 -!- Guest52131 has changed nick to Gregor. 13:33:04 -!- copumpkin has joined. 13:36:29 http://esoteric.voxelperfect.net/wiki/Rapture 13:36:37 feel free to add on 13:46:01 -!- Phantom_Hoover has joined. 13:56:37 Phantom_Hoover, remind me to rereat Intermission at a later time 13:56:45 I'm not quite following it 13:56:58 You mean with all the time shenanigans? 13:56:59 Phantom_Hoover: You have 5 new messages. '/msg lambdabot @messages' to read them. 13:57:01 Yes 13:57:16 Oh god it's not even like there was a big update or anything what can he have to say. 13:59:11 Don't skip it, though, it becomes plot-relevant. 14:10:24 Not skipping anything 14:10:41 Except those stupid comics by Dave (I'm clicking them, but barely reading) 14:22:33 -!- Sgeo_ has joined. 14:23:17 -!- Sgeo__ has quit (Ping timeout: 246 seconds). 14:23:19 When elliott reads this he is going to tear you a new one. 14:24:01 SBaHJ is the best thing ever and you should be ashamed for not liking it. 14:31:26 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 14:31:44 I think that's a little strong 14:32:16 -!- oerjan has quit (Quit: Later). 14:33:02 Patashu, have you ever read SBaHJ. 14:34:53 yes 14:35:02 THEN HOW CAN YOU DISAGREE 14:35:18 You're just being silly 14:35:39 NO I'M NOT 14:43:05 -!- Vorpal has joined. 14:49:54 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds). 14:53:14 Phantom_Hoover (even though you are gone): That was incredibly silly! 14:53:52 He left just as I PMed him some trivial junk 14:59:28 -!- copumpkin has joined. 15:00:00 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .). 15:02:48 -!- olsner_ has quit (Quit: olsner_). 15:03:15 -!- Phantom_Hoover has joined. 15:03:24 "£$"£$%ing connection. 15:05:30 -!- FireFly has joined. 15:09:44 -!- TOGoS has joined. 15:11:07 `quote 15:11:10 ​84) What do you call the husband of my first cousin once removed? Warrigal: "Hey, Sexy." 15:18:36 -!- pumpkin has joined. 15:19:21 -!- copumpkin has quit (Ping timeout: 250 seconds). 16:17:21 -!- ais523 has joined. 16:18:26 -!- ais523 has changed nick to ais523_. 16:18:33 -!- ais523_ has changed nick to ais523. 16:25:11 http://www.reddit.com/r/wikipedia/comments/d3kvs/interestingly_137_is_also_the_atomic_number_of/ 16:25:25 You know I think that might not be a coincidence. 16:40:19 It's called that on purpose it seems 16:40:48 It's a consequence of the calculations predicting the properties of trans-Feynmanium elements. 16:41:16 -!- cheater79 has quit (Ping timeout: 240 seconds). 16:41:19 i.e. the velocity of the 1s electron is given by v=Z\alpha c. 16:42:03 So if Z>1/\alpha, v > c, so the Bohr model breaks down. 16:42:35 205.172.19.193 16:42:47 Can somebody set an IRC bot to notify this channel if that IP goes down? 16:44:27 None of the channel bots allow programs indefinite execution time. 16:45:13 -!- elliott has joined. 16:45:34 i reinforced a ceiling today 16:45:35 it'd need to be a different bot 16:46:19 wat 16:47:11 elliott: Lymia wanted a bot set up to notify the channel if particular IPs went down 16:47:20 and Phantom_Hoover said that none of the existing bots would do that on their current codebases, more or less 16:47:43 -!- monqy has joined. 16:47:44 anyway, theory: the rapture will actually happen tomorrow, but there'll be sufficiently few perfectly devout Christians that nobody else will notice 16:48:09 why would we want a bot like that? 16:48:13 that just sounds spammy 16:48:15 We don't. 16:48:16 For fun. 16:48:17 Lymia does. 16:48:25 You know that whole rapture story? 16:48:25 Lymia: i find your definition of fun wanting? 16:48:38 They say it will spread across the time zones, right? 16:48:42 yeah 16:48:52 ais523: well, the Bible almost certainly has contradictory commandments, so the chances of anyone following them all is 0 even if there are people that devout 16:48:53 Let's set up a bot to ping a server on Hawaii 10 or so minutes after that time. 16:49:04 ais523: but I don't think you have to be free from sin to get rapture'd 16:49:12 Then returns a result of "oh crap" or "No rapture here, time to laugh." 16:49:23 Clearly God is in a synchronous orbit with Earth. 16:49:26 Lymia: we could just check the news to see "MAJORITY OF NEW ZEALAND DISAPPEARS" or something 16:49:30 pretty sure the people left there would notice 16:49:36 And needs to wait for people to rotate into range of his disappearifier. 16:49:39 Lymia: oh, the issue is that the Bible didn't specify a timezone? 16:49:50 ais523, Family News does. 16:49:53 and so we're not sure exactly when in the day it'll happen? 16:49:54 So we can laugh early. 16:49:58 ais523: I think it's something like it just /happens/ to follow the timezone 16:50:09 ais523: but they've said it will definitely start in New Zealand or Australia or thereabouts, IIRC 16:50:15 Sorry what about my space station theory. 16:50:16 which is a nice early warning system 16:50:20 Phantom_Hoover: yes it's good. 16:50:25 Lymia, wait, why would a server go down/ 16:50:36 It's not exactly going to get raptured. 16:50:38 X-D 16:50:41 Devout server 16:50:49 Apparently there's supposed to be earthquakes, right? 16:51:04 I think that comes afterwards. 16:51:07 well earthquakes aren't enough to bring a server down 16:51:09 but hey 16:51:10 get this 16:51:16 we get temporary peace from the Devil after all this 16:51:19 no more war 16:51:22 :3 16:51:27 satan is obviously very caring 16:52:43 Obviously! 16:52:48 Vorpal: btw, variant builds will be in the next tup release if all goes well 16:52:58 elliott: are you a tup fan? 16:53:03 Why else would he want us going around drinking, smoking, gambling and having sex? 16:53:17 While God tells us not to do anything interesting. 16:53:20 ais523: I like it a lot and subscribe to the list, so yeah, I guess so? 16:53:26 I mean come on, *shellfish*? 16:53:29 They're delicious! 16:53:39 Phantom_Hoover: I don't eat fish at all 16:53:44 elliott, also: WA crashes when I try to play it single-player. 16:53:54 Phantom_Hoover: Yeah, well... WA single player is terminally boring. 16:53:54 ais523, that's OK, shellfish aren't actually fish. 16:54:03 ais523: I mean, I'd be prepared to drop my loyalties if someone showed me a better build system. :p 16:54:08 But I've used an awful lot of them and tup is the best. 16:55:14 05:07:55: monqy: i have this feeling christianity is just a big joke, we're just not in on it 16:55:14 05:08:14: "oh you were being SARCASTIC! sorry us atheists are kind of slow sometimes." 16:55:18 05:09:02: my theory: that's what "rapture" actually means, they just chicken out every time. 16:55:19 05:09:19: erm 16:55:19 05:09:25: i mean it means they tell us 16:55:19 :D 16:55:40 so when they say "Sorry, the rapture is ACTUALLY on ...", they're not lying 16:57:22 ais523: hey do you want to name a function for me 16:57:33 elliott: with no other details? 16:58:02 or do you want something that's vaguely descriptive of what it actually does? 16:58:19 ??? :: (Monad m) => Maybe a -> MaybeT m a 16:58:20 ??? = MaybeT . return 16:58:21 elliott: Re. IMAP: Mycology has a readme, you know. :-P But yes, it does. 16:58:31 Deewiant: Yeah, I checked it right after asking :P 16:58:45 Working on Shiro again, since I figured out a pretty nice way to stop the leaning indentatino. 16:58:48 [asterisk]indentation. 16:59:00 Deewiant: BTW IMAP's spec has to be the absolute worst RC spec of them all. 16:59:01 What's that? 16:59:09 O(n -- )Return instruction n to its old function 16:59:09 Clarification 16:59:09 * This extension is intended to map instructions in the 0-255 range. Other interpreters may have a more limited or more expanded range 16:59:09 * Attempting to map instructions outside of the 0-255 range reflect. Some interpreters may ignore an out of range map without reflecting 16:59:09 * Chained remaps are not supported by this extension. Only a single level of mapping is supported. Other interpreters may have implemented chained remaps 16:59:13 It's like the /opposite/ of clarification. 16:59:17 I meant, the indentation. 16:59:20 I know. 16:59:23 Er, I meant, the way to stop it. 16:59:35 Deewiant: MaybeT + parameterising everything on a typeclass 16:59:37 class (Functor m, Applicative m, MonadState FungeState m, MonadIO m) => MonadShiro m where 16:59:37 liftShiro :: Shiro a -> m a 16:59:50 heh 16:59:57 Which is less painful than it sounded at first because the only functions I /use/ are the state ones and liftIO, and those are already typeclassed 17:00:18 Deewiant: So right now the only hold-up is naming that function that I just pasted :-P 17:00:30 Other than the "may ignore an out of range map" I think that's fine 17:00:43 Yeah, but it's not clarification of the spec :P 17:01:08 It's better than when none of that was there :-P 17:01:35 05:19:26: what?!? http://www.bricktestament.com/judges/samson_commits_mass_murder/jg14_01.html 17:01:37 is this actually real :D 17:01:59 gotta love god making you travel to kill thirty people just because some guys solved your shitty riddle 17:03:47 ais523: unfortunately the function fits none of the obvious patterns :( 17:03:51 it's not liftMaybe, it's not maybeT 17:05:26 hmm oh dear 17:05:31 i might wake up just before the rapture tomorrow 17:06:10 so wait 17:06:15 does the rapture respect daylight savings 17:06:57 I think so 17:07:04 awesome 17:07:04 So. 17:07:11 we just need a mega daylight savings bill passed QUICKLY 17:07:30 im just going to sleep all day then party it up 17:07:36 What happens if the government declares the date to be 5/21/0 and that time will be based on a 4 hour clock from then on. 17:08:03 Or heck, uses hextime, to which no concept of 6:00PM can exist. 17:08:03 Lymia: god will smite us all for being tricky 17:08:40 whats PM 17:08:52 anyway the rapture is no biggie 17:08:54 if it happens 17:09:02 convert to christianity, believing won't be particularly difficult at that point 17:09:06 wait until you die 17:09:08 problem solved 17:09:20 escape to outers pace 17:10:04 elliott, believing tends to not be very difficult when there's near unambiguous evidence of something... 17:10:10 world end only affects earth and a few unfortunate stars right 17:10:31 We need to fly to the moon. 17:10:43 elliott, I wonder. 17:10:43 monqy: poor ISS Christians 17:11:01 What happens to Christianity's ideas when ET is confirmed? 17:11:23 They'd probably demand ET's birth certificate 17:12:36 Extraterritorial life, dummy. 17:12:47 all of their birth certificates 17:12:50 all of them 17:12:59 Extratorrential life 17:13:24 even the microbes 17:14:52 Extraterrestrial* 17:14:56 opps 17:15:01 opopos 17:17:04 Lymia: Catholic church doctrine is that Jesus died for their sins, too. 17:17:54 alien sins :D 17:18:23 Do they have to follow the same commandments? 17:22:19 elliott, I'm up to the first recap 17:22:30 Sgeo_: Don't skip it. 17:44:04 Mmm, coffee. 17:46:50 -!- olsner_ has joined. 17:47:37 -!- azaq23 has joined. 17:49:24 elliott: I wonder: is there *any* way that tup could actually be made reasonably portable? 17:49:38 ("reasonably portable" here meaning "using a commonly supported subset of POSIX") 17:49:48 Well, the monitor isn't required. 17:50:07 Yeah, but it still needs to hook into programs to get dependency information. 17:50:24 Well... then no. 17:50:41 LD_PRELOAD is at least *more* portable, but not going to work in the face of static linking. 17:50:56 Not to mention that it needs at least *some* manual labor to get to work on new libcs. 17:52:09 what's tup doing that's nonportable? 17:52:42 ais523: LD_PRELOAD or FUSE. 17:53:20 ais523: It needs information about which tup rules accessed which files to generate a complete dependency tree. 17:54:42 oh, I see, you don't enter the dependencies by hand, but instead it calculates them based on actual open commands? 17:54:58 Yes. 17:55:07 So that it has the *complete* dependency tree. 17:55:26 One of its major design ideas is to make it nigh-impossible for you to have an inconsistent build. 17:57:08 Also, logarithmic time rebuilds. 17:59:30 ais523: better summary: the arrows go up, so it's faster 18:00:50 http://gittup.org/tup/make_vs_tup-nothing.png Better summary. 18:01:54 most projects aren't that large anyway 18:03:07 ais523: tell that to KDE 18:03:24 ais523: That's non non-recursive make. 18:03:26 anyway, the killer feature for tup is the rebuilder, imo 18:03:29 i.e. the best case scenario. 18:03:41 you can set it up so that it automatically rebuilds things whenever you change a file 18:03:44 If you add recursive make into the scenario it gets fucking horrifying. 18:03:44 elliott: pointing out something that isn't in a set is not a counterexample for most things being in that set 18:03:58 so you can switch from your editor to your terminal and see what you fucked up already :) 18:04:08 the logarithmic-time thing is only relevant from medium sized projects up 18:04:13 also, I'd probably turn the rebuilder off, it could lead to inconsistent builds really easily due to changing one file and not another 18:04:20 ...what? 18:04:25 How could it? 18:04:27 ok well for a start, the rebuilder is something you run explicitly 18:04:28 I mean, if I change what a function means in one file 18:04:36 I don't think you understand 18:04:37 but not all calls to it in another 18:04:42 then the resulting binary will be really messed up 18:04:46 erm, and? 18:04:48 Okay, then it'll be inconcistent until such time as you fix those calls. 18:04:52 you wouldn't switch to your terminal then to test it 18:04:54 so it doesn't matter 18:04:55 and if something happens to use it before I can fix those calls, then the program might do anything 18:04:58 since you'd fix the calls first 18:04:59 ais523: what?? 18:05:03 auto build does not equal auto run ... 18:05:09 elliott: but someone else might run it 18:05:16 from your /private source tree/? 18:05:17 Do people regularly run things out of your development tree? 18:05:29 i think i've found your problem and it's not the build system 18:05:38 elliott: I might switch to my terminal to test the previous version, only to find that the executable doesn't exist because it tried to get rebuilt but the build failed 18:05:40 pikhq: I run things out of my dev tree sometimes 18:05:49 ais523: you said someone else 18:05:52 imagine that the project's self-hosted 18:06:01 elliott: it's happened with source trees I've maintained 18:06:03 not on my computer 18:06:26 I supply updates to a program, they're compiled and the executables are updated, and the executable might be run by a third party at any time in between 18:06:41 If "make install" isn't a separate step, then your process is fucked, no question about it 18:06:49 Deewiant: I don't think tup removes old files on a failed build 18:06:50 ais523: I think I've found your problem and it's not the build system. 18:06:56 pikhq: line thief 18:07:05 elliott: If it builds into a tmp directory of some kind, then it works, of course 18:07:07 elliott: Repeated for truth. 18:07:19 and aren't most build systems designed to work without an install step? 18:07:26 elliott: I was thinking along the lines of 'gcc -o foo foo.c' failing and leaving foo an empty file 18:07:36 ais523: Uh? *What crazy shit automatically installs*? 18:07:36 ais523: the problem is not that, the problem is that people are running out of your unstable, volatile development tree 18:07:45 I'd used to run C-INTERCAL from my home dir more often than installed location before I made habitual installation tests 18:07:51 yes, /you/ 18:07:55 pikhq: I'm saying, that installing is not a separate step nowadays 18:08:01 stop being dishonest by using irrelevant arguments like that 18:08:05 until you make a final version of the program 18:10:00 show me an example of someone who isn't you regularly running an in-development program to do actual things straight out of your unstable, volatile development source tree, and I'll show you a completely broken process 18:10:18 Why the hell would you run something out of your build tree other than to test changes you just made? 18:10:33 We've got version control systems people, use them. 18:10:38 My ccbi install is a symlink to my build tree 18:11:02 Deewiant: You are either confident you will not make changes that break shit, or mad. 18:11:34 i disagree with pikhq in the general case btw, i run mcmap from the build tree 18:11:36 but what i said still stands 18:11:44 I'm confident that I won't run ccbi in such a case that it'd matter 18:12:09 -!- olsner_ has quit (Quit: olsner_). 18:12:59 Deewiant: right, but you wouldn't tell other people to run ccbi out of /home/deewiant/src/ccbi/ccbi on a shared server :-) 18:13:24 No, I wouldn't :-P 18:13:41 Anyways, it is so friggin' nice to just make changes and immediately see the build error. 18:15:14 Probably the only downside of tup vs. make is that make works literally everywhere. 18:18:18 Though tup at least covers Windows/Linux/OS X just fine. 18:19:42 Deewiant hates Funge and wants it to die (this is because he hates Shiro (this is because he hasn't named that function yet)) 18:19:47 you're all guilty 18:19:58 elliott: what does the function actually /do/? 18:20:09 ??? :: (Monad m) => Maybe a -> MaybeT m a 18:20:09 ??? = MaybeT . return 18:20:17 also, statistically speaking, you always reject my advice on naming things 18:20:30 good thing i asked Deewiant then >:) 18:20:43 hmm, now I have to figure out exactly what that's doing, given that I'm not too experienced with monad transformers 18:21:04 ais523: Just layering the functionality of a monad onto another monad. 18:21:14 not 18:21:14 it's like an inside-out monad transformer 18:21:24 ais523: it's a function, so it's not a monad transformer at all 18:21:35 as in, instead of becoming mT Maybe a, we're getting MaybeT m a 18:21:37 elliott: I was describing monad transformers. 18:21:43 elliott: I mean, it's like an inside-out lift 18:21:50 ais523: not really, no 18:22:04 lift :: M a -> MaybeT M a 18:22:07 ??? :: Maybe a -> MaybeT m a 18:22:13 (taken from kmc in hash-haskell) 18:22:18 elliott: toMaybeT? 18:22:23 pikhq: ugly :( 18:22:27 it's a common operation 18:22:34 It reads like a cast from Maybe to MaybeT m a, so... 18:22:42 it's like a flipped lift 18:22:49 it's a lift, but with the monads the other way round 18:23:01 If you'd generalize it, toT 18:23:19 Deewiant: Impossible to generalise without a typeclass. 18:23:26 I know 18:23:26 Deewiant: What is it again? maybe mzero return? 18:23:29 Or was it maybe mzero mplus 18:23:41 What is what 18:23:45 The generalised version 18:24:06 elliott: there's actually probably a category theory name for doing that 18:24:10 Ah, maybe mzero retur 18:24:12 Ah, maybe mzero return 18:24:12 ?ty maybe mzero return 18:24:13 forall (m :: * -> *) a. (MonadPlus m) => Maybe a -> m a 18:24:28 what does lowercase-m maybe do? 18:24:30 I think it's actually the same as (maybe (fail "") return) too, but let's pretend fail doesn't exist :-) 18:24:31 :t maybe 18:24:32 forall b a. b -> (a -> b) -> Maybe a -> b 18:24:46 ais523: it's the catamorphism :-P 18:24:52 morphacatism 18:25:34 oh, is it that maybe x f Nothing = x, maybe x f (Just y) = f y? 18:25:53 Yeah. 18:26:40 hey, rapture is in two hours for australias 18:26:41 australians 18:26:53 Hello everybody. 18:26:57 ooh, wait, "Kingston5:56NFT" 18:27:03 four minutes until the somewhere-in-Australia rapture 18:27:06 Maybe we should ask DMM. 18:27:10 oh, it's already happening in New Zealand 18:27:17 RIP New Zealand 18:27:35 Also: if it's real, which denomination do I convert to? 18:28:05 Phantom_Hoover: whichever one the doomsday prophets are doin'. 18:28:17 Apparently they think the world is over thirteen thousand years old, so that's a bit better than six thousand. 18:28:21 I'm already a baptised Catholic (my parents were idiots), so that would be the easiest route, but they're clearly not Catholic, so it mightn't come out too well. 18:28:25 "We just elected an Atheist PM, so we're all still here..." --suspected Australian 18:33:01 elliott: According to Family Radio, it will occur on 2011-05-21T18:00, local time. 18:33:11 pikhq: Yep. Already after that in New Zealand. 18:33:14 RIP. 18:33:21 Oh? Hmm. 18:33:55 Oh, they're UTC+13 right now. 18:34:16 UTC+13? 18:34:18 That exists? 18:34:24 I thought it was -12 to +12 18:34:31 They break the rules. 18:34:38 Uh. No, it's not T18:00 or past it in New Zealand. 18:34:49 http://www.google.com/search?client=ubuntu&channel=fs&q=time+in+new+zealand&ie=utf-8&oe=utf-8 18:34:50 Yes it is. 18:34:52 6:35 Saturday (NZST) - Time in Wellington, New Zealand 18:34:55 Oh wait. 18:34:56 Is that in the morning. 18:35:02 Yeees. 18:35:25 OK wait, where is it past six pm. 18:35:49 It not yet past 2011-05-21T18:00 anywhere. 18:35:56 Shiet. 18:36:10 Lymia: It's -12 to +14, actually. 18:36:35 pikhq: I'm going with toMaybeT for now, but I think I'll change it later. 18:36:53 ioMaybe :: IO a -> MaybeT Shiro a 18:36:53 ioMaybe m = 18:36:53 toMaybeT =<< 18:36:53 liftShiro ((Just <$> io m) `catchShiro` \(e::IOException) -> return Nothing) 18:36:55 Behold the ugly. 18:37:26 Lymia: Kiribati uses UTC+13 and UTC+14 for civil time. 18:37:51 Ah. 18:38:09 Sorry, UTC+12 through UTC+14. 18:38:18 They used to have the date line going through the middle of the country. 18:39:40 UTC+14 is just south of Hawaii... Which is UTC-10. 18:39:46 That's quite a difference in civil time. 18:39:54 elliott: Can't you do something like liftShiro $ (return <$> io m) `catchShiro` \(_::IOException) -> mzero 18:40:12 elliott: I mean, if you're using Just/Nothing explicitly there shouldn't be a need for toMaybeT :-P 18:40:14 Of course, Hawaii is south of Alaska, which is UTC-9. 18:40:18 Civil time makes no sense. 18:40:22 elliott: Just make a MaybeT directly 18:40:35 Deewiant: Well, yeah, but toMaybeT is just "MaybeT . return". 18:40:41 So making it directly would clutter up the two clauses. 18:40:48 ?pl guard . not 18:40:48 guard . not 18:40:50 Gotta love time zones not even containing their meridian. 18:41:28 elliott: How would it clutter it? Use something like what I gave (can't be bothered to figure out the types right myself), it should make the whole thing shorter 18:42:01 Shiro/Utils.hs:149:13: 18:42:01 Couldn't match type `a' with `m0 a' 18:42:01 `a' is a rigid type variable bound by 18:42:01 the type signature for ioMaybe :: IO a -> MaybeT Shiro a 18:42:01 at Shiro/Utils.hs:149:1 18:42:02 Expected type: MaybeT Shiro a 18:42:04 Actual type: MaybeT Shiro (m0 a) 18:42:07 Pretty sure that's not surmountable 18:42:47 Pretty sure that's just something I did wrong 18:43:01 (what the hell, France. You've got the Prime Meridian going through your country but you're UTC+1) 18:43:58 Deewiant: Pretty sure I reached the current solution after trying to get that working :P 18:44:07 In particular the 'return <$> io m' bit worries me, but I can't see the correct version in my head right now 18:44:35 Hmm, wtf 18:44:36 --ioMaybe :: IO a -> MaybeT Shiro a 18:44:36 ioMaybe m = liftShiro $ (return <$> io m) `catchShiro` \(_::IOException) -> mzero 18:44:38 Just started working 18:44:40 Oh, type signature 18:45:10 What's liftShiro's type? 18:47:35 It's 18:47:40 (MonadShiro m) => Shiro a -> m a 18:47:56 There's a (MonadShiro (MaybeT Shiro)) instance. 18:50:33 liftShiro $ liftIO (io m) `catchShiro` \(_::IOException) -> mzero ?? 18:51:08 Or wait, io is already liftIO 18:51:16 So just drop the outer one 18:52:35 But no, that won't work yet 18:52:36 Hmm, that works 18:52:40 Hmm, it does? 18:52:40 Well, it types 18:52:47 That's arguably not the same thing :) 18:52:52 Actually wait, why would that work 18:52:54 That makes no sense 18:53:05 I was thinking that the io lifts the IO to a Shiro 18:53:12 Which is then a type mismatch with the mzero 18:53:21 io :: (MonadShiro m) => IO a -> m a 18:53:21 io = liftIO 18:53:25 I guess it works because of that 18:53:36 I don't see how that changes anything 18:53:44 Is it just me, or does WINE use hand-written recursive make, too? 18:54:00 Does Shiro have a MonadPlus instance? 18:54:31 Oh, it's even worse. It uses makedep. 18:54:36 Deewiant: It's a StateT, so probably 18:54:39 (It's literally a type alias 18:54:49 MaybeT has no MonadPlus because there's two possible definitions 18:54:58 Sure it does? 18:55:10 Which monad package are you using :-D 18:55:53 Deewiant: The MaybeT one. 18:55:55 I hereby ban people from using makedepend. 18:55:56 Oh wait. 18:55:56 StateT m has MonadPlus iff m has MonadPlus 18:55:59 You mean which transformers thing 18:56:07 Deewiant: Well it's StateT dsjoisdfj IO 18:56:11 elliott: 'transformers' has Monad m => MonadPlus (MaybeT m) 18:56:19 elliott: Then Shiro doesn't have MonadPlus 18:56:20 I'm using the "regular" one 18:56:22 Isn't that mtl 18:56:38 I don't know what's regular these days 18:56:38 And my MaybeT is http://hackage.haskell.org/package/MaybeT 18:56:44 Haskell Platform :P 18:56:56 That has MonadPlus as well 18:57:03 I don't know what's in the Haskell Platform :-P 18:57:18 I just install ghc and cabal-install and install what I need 18:57:42 Just install the Haskell Platform, it contains what you need. 18:57:49 I doubt it 18:58:05 Haskell Platform, it's got what Haskellers crave. 18:58:11 Okay, well, it doesn't contain everything you could ever want, but it contains a reasonable number of commonly used Haskell libraries. 18:58:16 elliott: Anyway, despite the docs, that does have MonadPlus 18:58:36 Deewiant: It does? X_X 18:58:50 elliott: See the autogenerated 'instances' list :-P 18:58:53 Or the source 18:59:04 Deewiant: I just used it because it was the only one I could find :P 18:59:50 Well, anyway, it has MonadPlus 19:00:14 And Shiro shouldn't AFAICT, so I don't understand why that last one typed 19:00:44 It's bugging me :P 19:00:45 Sadly, distro packages of the Haskell Platform are sometimes a bit behind. Debian wheezy's still on 2010.1... 19:00:56 Though 2011.2 is in sid. 19:02:25 Oh, duh, there's a MonadShiro instance 19:02:26 So 19:03:07 liftShiro (((io m :: MaybeT Shiro a) `catchShiro` \(_::IOException) -> (mzero :: MaybeT Shiro a)) :: MaybeT Shiro a) :: MaybeT Shiro a 19:03:13 And the outer liftShiro is redundant 19:03:15 I think 19:03:33 Nope 19:03:34 Deewiant: catchShiro :: (Exception e) => Shiro a -> (e -> Shiro a) -> Shiro a 19:03:44 Hmm 19:03:46 Because it has to look like 19:03:48 catchShiro action handler = 19:03:48 StateT $ \s -> runStateT action s `catch` (flip runStateT s . handler) 19:03:52 and I don't think I can generalise that easily 19:04:00 In which case mzero has to be Shiro a 19:04:04 But I don't see how that's possible :-P 19:04:05 And io m too 19:04:19 *Shiro.Utils> mzero :: Shiro () 19:04:19 19:04:22 I'm using transformers /and/ mtl it seems 19:04:23 That's 19:04:25 That's not a good thing is it 19:04:29 Dunno 19:04:37 I think mtl depends on transformers these days 19:04:44 elliott: did you think of a name yet? 19:04:45 Yeah, it does 19:04:51 ais523: toMaybeT for now 19:04:52 *Shiro.Utils> runShiro (mzero :: Shiro ()) initialFungeState 19:04:52 *** Exception: user error (mzero) 19:05:07 that's correct, isn't it? 19:05:14 Oh, mzero just fails in IO then :-P Nice :-P 19:05:15 *Shiro.Utils> runShiro (runMaybeT (liftShiro (mzero :: Shiro ()) :: MaybeT Shiro ())) initialFungeState 19:05:15 *** Exception: user error (mzero) 19:05:17 Deewiant: Yeah :P 19:05:20 That won't work. 19:05:27 Deewiant: mzero /should/ just fail in IO, assuming it types at all 19:05:33 as mplus in IO = bad things happen 19:05:35 ais523: I was assuming it wouldn't type 19:05:53 elliott: If your catchShiro were more general this'd work nicely 19:06:14 Deewiant: I don't think it /can/ be generalised 19:06:18 well, all Haskell monads (as opposed to mathematical monads) have a way to respond to errors 19:06:30 ais523: I don't think you understand the problem being solved here 19:06:44 elliott: Control.Monad.Error.Class has a catchError that looks promising 19:07:43 Deewiant: Honestly, my old version worked fine and wasn't that ugly :P 19:08:17 elliott: my last sentence was meant to be more or less a non sequitur 19:08:29 there was context but I forgot to send it to the channel 19:08:52 which is along the lines of "all Haskell monads have to have an mzero equivalent anyway, even if they don't have an mplus equivalent, and even if actually using it is a Bad Idea" 19:09:54 elliott: There's no ugliness, you don't need the type signatures :-P 19:10:35 Deewiant: Ugliness in what 19:11:03 elliott: I thought you were calling the latest ioMaybe 'that ugly' 19:11:44 Deewiant: It wasn't ugly, it was broken :) 19:12:23 Make Shiro a MonadError and use catchError and it should work 19:12:43 Well, it already is, because it's an alias and not a newtype :-P 19:12:48 I'll finish MaybeT-ising the fingerprint code first :P 19:13:14 Oh dear GOD this code. 19:13:26 http://sprunge.us/eNNK 19:13:28 WHAT WAS I THINKING 19:14:07 Although nothing can ever beat the sheer ugly perfection of http://sprunge.us/hEDP 19:14:16 oh dear god that code 19:14:27 oh dear god that code 19:14:38 :D 19:15:58 B.foldl'? 19:16:14 Bytestring.foldl' 19:16:20 s/s/S/ 19:17:32 But hey, at least it's short! 19:17:51 Deewiant: And fast! 19:17:58 Nope! 19:18:00 -!- myndzi has quit (Ping timeout: 246 seconds). 19:18:15 Deewiant: Eh? 19:18:19 That mergeByteString /is/ fast :P 19:18:27 Compared to what :-P 19:18:34 Deewiant: Compared to everything before it? 19:18:45 I mean, it makes loading absolutely negligible as far as Mycology goes. 19:18:54 Instant to my perception. 19:18:54 Comparing it to slow Haskell doesn't make it fast as such ;-) 19:18:58 It previously took almost a second. 19:19:10 Deewiant: Well, no, but Mycology is still a big file. 19:19:21 To load it into a fairly-decent fungespace structure instantly certainly doesn't make it "not fast". 19:19:36 Psh, Mycology isn't even a megabyte 19:19:53 Deewiant: You're just trying to piss me off >:) 19:19:58 textify :: ByteString -> ByteString 19:19:58 textify = B8.unlines . reverse . takeWhile (/= B.empty) . reverse . map (fst . B.spanEnd (== space)) . B8.lines 19:20:03 I think I wrote this as penance for mergeByteString 19:20:09 -!- myndzi has joined. 19:20:17 Well, with some pointlessifying done by Deewiant because he can't stop himself :P 19:21:05 Hmm, I'm starting to think I should just make the instruction execution functions MaybeT, since I use ioReflect a lot 19:22:30 -- TODO: Also, if the least significant bit of the flags cell is 19:22:30 -- high, o treats the file as a linear text file; that is, any 19:22:30 -- spaces before each EOL, and any EOLs before the EOF, are not 19:22:30 -- written out. The resulting text file is identical in appearance 19:22:30 -- and takes up less storage space. 19:22:30 I... 19:22:32 Already did that. 19:23:27 SpecConstr 19:23:27 Function `$wa{v s77o} [lid]' 19:23:27 has two call patterns, but the limit is 1 19:23:27 Use -fspec-constr-count=n to set the bound 19:23:27 Use -dppr-debug to see specialisations 19:23:30 Why do these warnings even exist. 19:24:27 Deewiant: Woo, I think my MaybeT stuff has slowed down Mycology 19:24:36 -!- zzo38 has joined. 19:24:39 I guess GHC isn't smart enough to eliminate it all 19:24:56 real0m1.821s 19:25:46 Yeah, it's added .8 seconds, JESUS 19:25:50 That's not good 19:25:54 That's not good at all 19:26:46 heh 19:27:03 How can a minor structural improvement involving typeclasses add that much 19:27:10 Is it passing around the typeclass shit all the time?? 19:27:52 Uh... yes, when it doesn't inline? That's how typeclasses work :-P 19:28:01 Deewiant: Yeah, but GHC is meant to be smart :P 19:28:21 It should do whole program analysis and realise that I only ever have two instances, and all the functions I use in the typeclass can just be lifted instead when in the MaybeT. 19:28:23 IIRC JHC was the best at eliminating typeclass stuff :-P 19:28:51 This sucks, I want my fastness back :P 19:29:02 Hmm, maybe I'll try some strictness annotations, those are always good 19:30:48 Hmm 19:30:53 Maybe I'll tell GHC to inline some things 19:30:57 Can you tell GHC to inline a typeclass function? :P 19:32:36 Woot, inlining added point one seconds 19:32:40 I think the "recursive badness" algorithm for breaking paragraphs into lines would be at worst case, $O(n)$ space and $O(2^n)$ time. However there are shortcuts such as: * Tolerance setting, ignoring breaks with too much badness * Stop in case an overfull line would occur * Maximum paragraph height or number of lines 19:32:50 What do you think about this, what is your opinion about this? 19:33:34 (Unfortunately I don't know perfectly about big-O notation and could get some details wrong due to that) 19:35:49 Deewiant: So mergeByteString is somehow a cost centre now :P 19:36:09 I blame your foul language about it. 19:36:11 Who'da thunk it 19:36:17 zzo38: I think your big-O notation looks correct there 19:36:27 Deewiant: But it didn't use to be :( 19:36:38 but brute force seems the wrong way to go about this, as you pointed out 19:36:47 did you look at the algorithm TeX actually uses? 19:37:06 ais523: Yes I have, I read the entire book. 19:37:43 However I do not perfectly understand it. 19:38:08 zzo38: neither do I, unfortunately, although in my case because I haven't read the book 19:38:46 ais523: Do you have copies of all five books in Computers & Typesetting? 19:38:47 -!- elliott has quit (Remote host closed the connection). 19:38:51 zzo38: no 19:38:55 (Probably not, if you haven't read it) 19:39:10 Do you have any of the books? 19:39:31 -!- elliott has joined. 19:39:35 no 19:40:03 how strange 19:40:34 elliott: What is strange? 19:40:52 that ais523 doesn't own those books doesn't EVERYONE 19:41:15 elliott: I don't own as many books as you might expect 19:41:23 in fact, I hardly ever use paper at all nowadays 19:41:25 -!- oerjan has joined. 19:41:27 ais523: it was sarcasm 19:41:30 hey oerjan name my function 19:41:34 fred 19:41:45 perfect but no 19:41:54 ??? :: (Monad m) => Maybe a -> MaybeT m a 19:41:57 to the extent that whenever anyone gives me something on paper, or prints something out, or whatever, I'm confused for a moment and then think "oh, paper! I remember that" 19:41:57 ??? = MaybeT . return 19:42:00 ??? :: (Monad m) => Maybe a -> MaybeT m a 19:42:02 ??? = MaybeT . return 19:42:02 oops 19:42:07 oerjan: it's the same as (maybe return mzero) 19:42:23 " (Unfortunately I don't know perfectly about big-O notation and could get some details wrong due to that)" <<< f = O(g) if from some point on, f is smaller than some constant multiple of g 19:42:40 in formulas, O(something) means, well, that. 19:42:42 aha 19:42:57 oerjan: basically this is for using a Maybe value in a MaybeT block 19:43:00 i.e. you have a map lookup 19:43:01 and you can do 19:43:07 I doubt EVERYONE owns these books...... and book B can be generated from the file "tex.web" although footnotes will be missing and so will a few other things, although you can read the DVI file (which I used before purchasing the books) 19:43:08 foo <- ??? [dollar] Map.lookup blah 19:43:56 elliott: well by your definition it generalizes to any MonadPlus 19:44:12 oerjan: yes, indeed 19:44:15 I just need a name for it :) 19:44:34 well i saw liftMaybe mentioned 19:44:35 The line breaking algorithm is described in sections 813 to 890. (Page numbers depend on whether or not footnotes are included, though) 19:44:45 hm 19:44:52 @hoogle Maybe a => m a 19:44:53 Warning: Unknown class Maybe 19:44:53 Control.Applicative unwrapMonad :: WrappedMonad m a -> m a 19:44:53 Text.Regex.Base.RegexLike getAllTextSubmatches :: AllTextSubmatches f b -> f b 19:45:01 er 19:45:05 @hoogle Maybe a -> m a 19:45:05 Data.Monoid First :: Maybe a -> First a 19:45:05 Data.Monoid Last :: Maybe a -> Last a 19:45:05 Data.Maybe maybeToList :: Maybe a -> [a] 19:45:13 @more 19:45:20 it'd prompt if there was more 19:45:23 oerjan: liftMaybe is wrong 19:45:25 it's not a lift 19:45:26 @hoogle MonadPlus m => Maybe a -> m a 19:45:26 Control.Monad mplus :: MonadPlus m => m a -> m a -> m a 19:45:26 Control.Monad msum :: MonadPlus m => [m a] -> m a 19:45:26 Data.Foldable msum :: (Foldable t, MonadPlus m) => t (m a) -> m a 19:45:44 I think there's probably some weird category theory term for it that I could steal >:) 19:45:46 i guess you've checked whether it exists alrady 19:46:01 well, no, but thanks for the confirmation 19:46:03 oh hm 19:46:24 From what I can tell, the Pascal compiler that Knuth used requires numeric labels; I have seen later other Pascal programs that used named labels 19:46:44 @hoogle Cont r a -> ContT r m a 19:46:44 No results found 19:47:24 elliott: it's sort of a lift you consider MaybeT to be a _composition of Maybe with another monad 19:47:30 *if you 19:47:36 *_composition_ 19:47:43 oerjan: still not comfortable calling it liftMaybe though :) 19:47:46 just from the other factor monad 19:47:58 it just does not fit the type template i'd expect for something called that 19:47:59 :h mconcat 19:48:04 :t mconcat 19:48:04 forall a. (Monoid a) => [a] -> a 19:48:10 :t msum 19:48:10 forall (m :: * -> *) a. (MonadPlus m) => [m a] -> m a 19:48:50 i'm trying to see if there is a similar naming scheme already in use 19:49:40 Included in section 813 is a reference to another article, which might have another description of a similar algorithm, although I do not have access to that another article. 19:51:00 elliott: oh, liftMaybe is entirely consistent with the naming of liftIO 19:51:22 so there is some precedent 19:51:30 oerjan: um no. 19:51:41 yes it is. 19:51:44 :t liftIO 19:51:45 Ambiguous occurrence `liftIO' 19:51:45 It could refer to either `Control.Monad.Error.liftIO', imported from Control.Monad.Error 19:51:45 or `Control.Monad.Logic.liftIO', imported from Control.Monad.Logic 19:51:47 lift :: M a -> MaybeT M a 19:51:48 foo :: Maybe a -> MaybeT m a 19:51:49 --kmc 19:51:59 elliott: liftIO not lift you dolt 19:52:24 :t Control.Monad.Error.liftIO 19:52:24 forall a (m :: * -> *). (Control.Monad.Error.MonadIO m) => IO a -> m a 19:52:27 oerjan: hm right 19:52:49 :t Control.Monad.Instances.liftIO 19:52:50 Not in scope: `Control.Monad.Instances.liftIO' 19:53:02 I take it MonadIO is a set of monads that contain IO chains? 19:53:09 :t Control.Monad.Transform.liftIO 19:53:10 Couldn't find qualified module. 19:53:12 :t Control.Monad.Logic.liftIO 19:53:12 forall a (m :: * -> *). (Control.Monad.Logic.MonadIO m) => IO a -> m a 19:53:13 ais523: IO chains? 19:53:16 IO is always on the bottom 19:53:24 ais523: neither is the common one 19:53:29 elliott: well, things that "do IO", in a sense 19:53:45 @hoogle liftIO 19:53:45 Control.Monad.Trans liftIO :: MonadIO m => IO a -> m a 19:53:52 there you go 19:54:07 oerjan: amusingly I have io as an alias for liftIO in Shiro 19:54:10 because I do a lot of IO 19:54:25 wth lambdabot doesn't know that those are (or _should_ be) the same function, i don't know 19:54:40 elliott: yeah that's not uncommon i think 19:54:59 oerjan: apply the same logic to this and you get... maybe 19:55:00 darn :D 19:55:45 Well, you could import qualified Prelude or something. :P 19:57:55 heh 19:58:08 i guess liftMaybe if better than what I have now 19:58:10 (toMaybeT) 19:58:15 [asterisk]is 19:58:50 elliott: i note liftCont :: Cont r a -> ContT r t a doesn't exist either, although it would be easy. in fact you might want a typeclass/type family for liftable transformers in general... 19:59:09 oerjan: fuck that shit, I've increased my Mycology time by point eight seconds just by adding this MaybeT thing 19:59:13 because all my functions are now typeclassed 19:59:15 @hoogle t Identity a -> t m a 19:59:15 Did you mean: t (Identity t) a -> t m a /count=20 19:59:15 Data.Graph.Inductive.Basic grev :: DynGraph gr => gr a b -> gr a b 19:59:15 Data.Map deleteMax :: Map k a -> Map k a 19:59:22 even though the liftShiro contained within them is irrelevant 90 percent of the time 19:59:25 and so it shouldn't have to pass around anything 19:59:27 hmm 19:59:32 maybe i should have liftShiro separate 20:00:17 elliott: well can't you add specialize pragmas? 20:00:37 oerjan: oh right... how do they work again :D 20:00:38 or what they are called 20:00:42 specialize yeah 20:01:12 -!- olsner_ has joined. 20:01:29 real0m1.854s 20:01:33 real0m1.779s 20:01:33 real0m1.785s 20:01:33 now to separate out liftShiro 20:02:54 real0m1.801s 20:02:54 real0m1.911s 20:02:54 real0m1.797s 20:02:55 ok that didn't help 20:02:59 -!- zzo38 has left. 20:03:05 oerjan: unfortunately I think I'd have to specialize /every single function/ :( 20:03:07 hm i guess i've complained previously that liftState in this sense didn't exist 20:03:10 and there are a lot of them 20:03:30 (you have to use StateT . return or State) 20:04:10 actually for transformed state monads you need to write it with get and put 20:05:47 -!- olsner_ has quit (Client Quit). 20:06:05 oh it's actually specialise 20:06:14 oh 20:06:17 heh 20:06:19 7.13.9. SPECIALIZE pragma 20:06:19 (UK spelling also accepted.) 20:06:22 how thoughtful 20:06:51 wow, we've had this topic for three days 20:07:58 -!- Deewiant has set topic: Tropical discussion on the best way to enforce peelings | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 20:07:59 class (Monad m, MonadTrans t) => LiftableMonad m t where lift :: m a => t Identity a 20:08:36 oh and probably | t -> m, m -> t 20:09:08 elliott: wow, i didn't notice this topic at all before now 20:10:01 hm or maybe it should actually be Monad n => m a -> t n a 20:10:43 and drop the functional dependency. then it would actually generalize lift... 20:11:02 ...but probably cause heaps of overlapping instances at the same time 20:11:58 say if someone did MaybeT Maybe, it would unclear which side to lift an actual Maybe into 20:12:05 *be unclear 20:12:27 -!- zzo38 has joined. 20:12:40 this is not a problem for IO because there is no transformer corresponding to it 20:13:17 WHY NOT 20:17:20 there should totally have been an STT, anyway 20:17:52 does that even work? :) 20:17:55 although i vaguely recall the type trick that makes ST sane and pure doesn't work 20:18:15 hmm, can you implement ST with Data.Dynamic? 20:18:16 I think you can 20:18:25 (Integer, Map Integer Dynamic) 20:18:29 and just increment the integer each time 20:18:32 that's State, that is 20:18:44 elliott: you could imagine passing forked worlds around to make STT behave like a crazy State 20:18:54 then "newtype STRef r a = STRef Integer" 20:18:54 no? 20:19:31 elliott: yeah i think i've seen that alluded to 20:19:58 so ST is Haskell ninety-eight plus unsafeCoerce, then 20:20:05 hm i guess the type trick isn't really needed if you _actually_ pass a world state around... 20:20:09 which is pretty portable, considering it only requires unsafeCoerce in a very safe way 20:21:29 my head has an ache :( 20:21:39 please don't use caps k 20:21:43 O KAY 20:21:52 :< 20:22:10 _NOW_ WHAT?!!!!!!!!!!!!! 20:22:31 could you talk about something more soothing like the homotopy of cellular automata maps in the besicovitch topology instead of this haskell stuff? 20:23:25 -!- augur has quit (Remote host closed the connection). 20:23:33 http://hackage.haskell.org/packages/archive/STMonadTrans/0.2/doc/html/Control-Monad-ST-Trans.html is _so_ disappointingly giving up where it gets interesting... 20:26:16 heh 20:26:25 heh indeed, all maps are homotopic there 20:31:17 actually i'm not 100% on that but it seems clear enough 20:31:48 just do the usual toeplitz sequence thingie 20:33:08 oerjan: I'm tempted to write an STT now 20:33:16 as a break from this stupid slow code 20:33:50 i think it wouldn't work with Cont either, since that can rewind stuff... 20:33:58 (that package version) 20:35:00 newtype STT s m a = STT (StateT (ID, (Map ID Any)) m a) should do it, I think 20:35:04 ?unmtl StateT (ID, Map ID Any) m a 20:35:04 ID -> Map ID Any -> m (a, ID, Map ID Any) 20:35:27 newtype STT s m a = STT (STTState s -> m (a, STTState s)) 20:35:34 data STTState s = STTState ID (Map ID Any) 20:35:43 ok it might not be /fast/, and you can't GC the map 20:35:44 but... 20:35:49 actually wait doesn't ghc have some kind of weak map? 20:40:25 Then if you want to write fast program, don't use Haskell. 20:40:54 Haskell is great for writing fast programs. 20:40:59 just that approach to STT isn't. 20:42:01 i think ghc has weak references but they may be only in IO 20:42:51 oerjan: unsafePerformIO ;D 20:43:31 System.Mem.Weak 20:44:26 How fast is Haskell? I thought it is functional it cannot be entirely fast, although it would be faster than Javascript and stuff like that, I would think. I wouldn't know for sure? 20:44:49 zzo38: languages don't have speeds 20:44:57 implementations do, on certain implementations of certain algorithms 20:47:46 * Phantom_Hoover puts up the Gregor sign. 20:51:31 -!- oklofok has quit. 20:54:36 hm i wonder if in clean, with its uniqueness typing system, it might be possible to create an STT that could only be used on monads which don't duplicate state, and which was checked to do so... 20:55:28 probably 20:56:16 oerjan: hmm what's a safe thing to unsafeCoerce everything into? 20:56:18 Any isn't portable 20:56:20 I realise unsafeCoerce isn't either, but 20:56:43 or even better, which worked with both but only duplicated state when actually necessary 20:57:15 no idea 20:57:29 isn't unsafeCoerce in the ffi or something? 20:57:34 yeah 20:57:35 I think 20:57:48 which is as portable as something like that can be 20:57:50 or is it unsafePerformIO (equivalent though) 20:58:04 definitely the latter 20:58:35 http://www.cse.unsw.edu.au/~chak/haskell/ffi/ffi/ffise5.html#x8-230005 20:58:40 there's unsafePerformIO 20:58:48 unsafeForeignPtrToPtr :: ForeignPtr a -> Ptr a 20:58:48 unsafeLocalState :: IO a -> a 20:58:48 unsafePerformIO :: IO a -> a 20:58:56 are in Foreign 20:59:26 wtf is unsafeLocalState 21:00:03 unsafeLocalState = unsafePerformIO 21:00:20 is that it? 21:00:25 hmm, so unsafePerformIO's intended purpose is to allow pointers in other languages to be read from Haskell? 21:00:49 ais523: um not precisely 21:01:17 ais523: uh... 21:01:18 no. 21:01:18 ?hoogle Any 21:01:18 Data.Monoid newtype Any 21:01:18 Data.Monoid Any :: Bool -> Any 21:01:18 Prelude any :: (a -> Bool) -> [a] -> Bool 21:01:23 it's for allowing the ffi to treat foreign functions as pure i assume 21:01:25 ais523: it's for using pure functions 21:01:26 right 21:01:33 e.g. a fast C prime checker 21:01:40 grr, where is GHC's Any 21:01:56 although i _think_ there's a declaration for that without using unsafePerformIO, isn't there? 21:02:06 @hoogle Any 21:02:06 Data.Monoid newtype Any 21:02:06 Data.Monoid Any :: Bool -> Any 21:02:06 Prelude any :: (a -> Bool) -> [a] -> Bool 21:02:11 oerjan: I just did that, eejit 21:02:11 heh 21:02:25 although i _think_ there's a declaration for that without using unsafePerformIO, isn't there? 21:02:26 hey i'm trying to browse Foreign in the other window 21:02:29 well you could implement unsafePerformIO /with/ it 21:02:35 so might as well provide it :) 21:02:39 (I think) 21:02:54 elliott: "that" refers to declaring foreign functions as pure 21:03:11 ah, GHC.Prim.Any 21:04:28 ?hoogle newSTRef 21:04:28 Data.STRef newSTRef :: a -> ST s (STRef s a) 21:04:28 Data.STRef.Lazy newSTRef :: a -> ST s (STRef s a) 21:05:36 :t Map.insert 21:05:37 Couldn't find qualified module. 21:05:39 :t Data.Map.insert 21:05:40 forall k a. (Ord k) => k -> a -> M.Map k a -> M.Map k a 21:05:45 ais523: i don't think the trick of using unsafePerformIO to break the type system was part of its motivation, if it was even known when it was standardized 21:06:25 newSTTRef :: (Monad m) => a -> STT s m (STRef s a) 21:06:26 newSTTRef x = STT (\(STTState n m) -> return (STRef n, STTState (n+1) (Map.insert n (unsafeCoerce x) m))) 21:06:26 lovely 21:07:30 elliott: ah there is castForeignPtr :: ForeignPtr a -> ForeignPtr b 21:07:39 heh 21:07:39 nice 21:07:49 and a number of similar ones 21:08:06 exclamation mark plz 21:08:17 ! 21:08:21 thx 21:08:30 ? 21:08:31 That is not a exclamation mark 21:08:42 um yes? 21:09:00 ? isn't 21:09:06 well true 21:11:20 ?hoogle writeSTRef 21:11:20 Data.STRef writeSTRef :: STRef s a -> a -> ST s () 21:11:20 Data.STRef.Lazy writeSTRef :: STRef s a -> a -> ST s () 21:11:52 > toBool 1 21:11:52 Not in scope: `toBool' 21:12:23 ?hoogle update 21:12:23 Data.HashTable update :: HashTable key val -> key -> val -> IO Bool 21:12:23 Data.IntMap update :: (a -> Maybe a) -> Key -> IntMap a -> IntMap a 21:12:23 Data.Map update :: Ord k => (a -> Maybe a) -> k -> Map k a -> Map k a 21:12:43 ?src Monad StateT 21:12:43 Source not found. Take a stress pill and think things over. 21:12:46 ?src MonadTrans StateT 21:12:46 Source not found. Wrong! You cheating scum! 21:12:48 grr 21:13:12 ?src StateT >>= 21:13:12 Source not found. BOB says: You seem to have forgotten your passwd, enter another! 21:13:21 ?src Maybe >>= 21:13:21 Source not found. Wrong! You cheating scum! 21:13:24 ?src stateT (>>=) 21:13:24 Source not found. My pet ferret can type better than you! 21:13:25 ?src StateT (>>=) 21:13:25 Source not found. 21:13:27 -!- augur has joined. 21:13:31 ?src Maybe (>>=) 21:13:31 (Just x) >>= k = k x 21:13:31 Nothing >>= _ = Nothing 21:16:00 newtype STT s m a = STT (STTState s -> m (a, STTState s)) 21:16:02 oerjan: write >>= plz :P 21:16:04 i'm so lazy. 21:16:33 -!- cheater897 has joined. 21:18:12 never mind 21:18:42 dammit i just managed to get to mtl package documentation 21:18:50 (yeah i went a bad route) 21:19:01 m >>= k = StateT $ \s -> do 21:19:01 ~(a, s') <- runStateT m s 21:19:01 runStateT (k a) s' 21:19:05 it's all weird and lazy and shit 21:19:06 but actually 21:19:07 start minding again 21:19:12 actually 21:19:14 gimme a dollar 21:19:46 nope 21:19:47 Canadian or United States money? 21:19:50 $ 21:20:15 STT m >>= f = STT $ \s -> do 21:20:15 (x,s') <- m s 21:20:15 let STT m' = f x 21:20:15 m' s' 21:20:16 lovely and ugly 21:20:17 elliott: you already had one up there anyway 21:20:18 just the way I like it 21:21:11 oerjan: ok I have Monad and MonadTrans 21:21:17 oerjan: write a test program using the list monad or something so I can test this :P 21:22:13 > filterM (const [True,False]) [1,2,3] 21:22:13 [[1,2,3],[1,2],[1,3],[1],[2,3],[2],[3],[]] 21:24:10 Deewiant: with STT 21:24:11 do v <- newSTRef 1; x <- lift [1,2]; modifySTRef v (+x); readSTRef v 21:24:22 @hoogle modifySTRef 21:24:22 Data.STRef modifySTRef :: STRef s a -> (a -> a) -> ST s () 21:24:22 Data.STRef.Lazy modifySTRef :: STRef s a -> (a -> a) -> ST s () 21:24:23 elliott: Just modify a value in there :-P 21:25:21 elliott: ^ 21:25:38 oerjan: what should the result be? 21:25:39 ls -Qc1 art/*.html | perl -pe 's/\.html/\.txt/' | xargs -t touch 21:25:52 [2,3] i presume 21:25:53 for some reason xargs is dumping every file into the same touch invocation. Any idea why? 21:26:12 *STT> runSTT test' 21:26:13 [2,3] 21:26:14 oerjan: great success 21:26:22 yay 21:26:24 ofc I'm pretty sure this thing leaks like a sieve 21:26:25 but who cares 21:26:40 http://sprunge.us/iaYI 21:26:43 that's pretty much a given :D 21:26:52 dependencies: Rank2Types (unavoidable), GHC.Prim.Any, unsafeCoerce 21:26:59 that is, non-portable dependencies 21:28:48 elliott: you might avoid the Rank2Types by just supporting s = Map Integer Dynamic 21:29:00 or hm wait 21:29:33 oerjan: that'd allow things to leak out of "threads" 21:29:37 and thus the unsafeCoerce would be safe no more 21:29:41 yeah i realized 21:30:34 actually you are not using Dynamic are you 21:30:56 indeed 21:30:56 just Any 21:31:18 one _might_ do that, avoiding explicit unsafeCoerce, but that would be an additional restriction on all the functions 21:31:35 that would have runtime baggage too 21:31:41 Dynamic keeps the type around 21:31:41 hm yeah 21:32:08 so yeah, STT seems to be another case when the issue is just that Haskell has no real heterogeneous map 21:32:13 (similarly with Shiro's fingerprints) 21:43:22 @src IO mplus 21:43:22 m `mplus` n = m `catch` \_ -> n 21:43:27 ais523: ^ 21:44:11 Surprisingly, Steam has gotten to be entirely *tolerable* with wine 1.3.20. 21:44:12 oerjan: it switches from one IO chain to the next if the first errors? 21:44:13 that's clever 21:44:21 ais523: what? 21:44:28 that's not how mplus works... 21:44:33 Instead of being glitchy but starting games right. 21:44:33 @src IO mzero 21:44:33 mzero = ioError (userError "mzero") 21:44:49 I know what mplus does in general 21:44:54 just not what it does wrt IO in particular 21:45:06 also, I suspect that elliott and I have entirely different definitions of "IO chain" 21:45:31 i think s/chain/action/ is appropriate 21:51:15 pikhq: do the games themselves run? 21:51:49 CakeProphet: Have for ages. 21:52:12 really? That's surprising actually. I can never get games to run in wine. 21:52:37 Granted, I don't have a graphics card... 21:53:20 yes you do 21:53:33 elliott: ..you know exactly what I mean. 21:53:36 You might not have one that's any *good*, but you certainly have one. 21:57:16 "Rapture is a language inspired by the recent prediction that the world will end on May 21st, 2011, 6 p.m. on the dot (The Bible Guarantees It!)" 21:57:39 i'm not sure whether quibbling about the accuracy of that makes a whoosh sound or not 21:57:47 I'm going to create a talk page for that 21:57:50 and I will say 21:57:56 tomorrow is the fucking rapture 21:57:57 the last thing I need 21:57:59 is more shitty esolangs 21:58:02 to dampen the occasion 21:58:29 ais523: no thanks for reverting that talk page vandalism 21:58:36 ais523: I thought I got a new message but my talk page was unchanged :( 21:58:39 /cry 21:58:44 bah the japanese already dampened the occasion, why do you think that big earthquake there happened 21:58:55 elliott: unfortuntately I can't turn the new-message bar off 21:59:06 ais523: all I wanted was a message... even one from a spambot :'( 21:59:07 even though I didn't trigger it with my rollback, the original edit did trigger it 21:59:18 clearly they were relieving earth's crust of stress to prevent the rapture from happening 21:59:30 oerjan: why did you remove the link to the Givenchy Outlet site dedicated to helping people edit the esolang wiki? :D 21:59:49 Unfortunately, the full-screen mode of Steam seems buggy as *hell*. 22:00:00 Erm, Source. 22:00:00 # (diff) (hist) . . Fish‎; 21:10 . . (-7,644) . . Harpyon (Talk | contribs) (Moved documentation to GitHub repository.) 22:00:07 someone give me one reason not to revert this... 22:00:17 a wiki is meant to have information on it, not to outsource it to another (commercial) website 22:00:49 elliott: if you complain enough to add it back i _may_ actually check whether it _is_ spam before undoing it. maybe. 22:00:57 oerjan: ;D 22:01:42 oerjan: I check to see if things are spam before reverting them 22:01:46 Hmm, does GitHub have a licence? 22:02:01 Phantom_Hoover: what 22:02:03 Phantom_Hoover: all the stuff on Esolang is public domain, so it doesn't technically need one 22:02:17 Oh, yeah, it works the other way around. 22:03:06 elliott: feel free to revert it 22:03:14 although you'll have to do so by hand, because MediaWiki can't figure out how 22:03:31 ais523: I've left a note on their talk page instead 22:03:43 since it'd be nice if they updated it too 22:03:48 fair enough 22:03:59 Tomorrow I will be in Victoria. But if there is Rapture, probably it includes Victoria, too. 22:04:46 Victoria: A Land Untouched by Rapture 22:04:48 -!- variable has joined. 22:05:25 zzo38: well what you need to be careful about is to be in at least one timezone when it's 6 o'clock there (i don't remember if it's AM or PM) 22:05:59 some people are going to be _so_ pissed when they realize they missed the rapture because of a plane flight 22:06:04 Okay, so Source engine games seem to not work under WINE any more. Though Steam works well. 22:06:07 Fucking hell. 22:06:09 oerjan: :D 22:06:20 oerjan: you realise the rapture doesn't /end/ after six pm 22:06:22 Indeed, it segfaulted. 22:06:49 Do you guys have a convincing argument for why array indices conventionally begin at 0? I'm pretty sure it's a good idea, but I have no idea how to explain why to someone else when they ask about it. 22:06:57 CakeProphet: see Dijkstra 22:07:01 (Q.E.D.) 22:07:07 elliott: um the rapture is the precise even when people are lifted up to heaven, no? what comes after is the apocalypse, or something. 22:07:14 oerjan: hm well maybe 22:07:15 *event 22:07:30 which is what i was quibbling about the wiki page for, incidentally 22:07:32 oerjan: but hypothetically, assume a Christian spontaneously materialised during the apocalypse 22:07:34 or whatever 22:07:41 oerjan: what's to say they wouldn't immediately get raptured? 22:07:47 CakeProphet: it mostly just makes formulas involving them simpler, you find you have to do a lot of adjustment by 1 with 1-based arrays 22:07:52 by the same token, a plane flight wouldn't stop you getting rapture'd 22:07:56 as soon as you went past six pm somewhere 22:08:05 `addquote oerjan: but hypothetically, assume a Christian spontaneously materialised during the apocalypse 22:08:06 ​427) oerjan: but hypothetically, assume a Christian spontaneously materialised during the apocalypse 22:08:15 ais523: it's possible 22:08:31 elliott: it just seems a really absurd thing to say, especially in context 22:09:06 -!- elliott has quit (Remote host closed the connection). 22:09:14 elliott: that is as hypothetical as that thought experiment about when the earth would stop following its orbit if the sun suddenly disappeared (hint: general relativity requires energy/momentum to be locally conserved) 22:10:09 -!- elliott_ has joined. 22:10:24 Do you guys have a convincing argument for why array indices conventionally begin at 0? I'm pretty sure it's a good idea, but I have no idea how to explain why to someone else when they ask about it. 22:10:33 I assumed it was pointer arithmetic. 22:13:12 -!- ais523 has quit (Remote host closed the connection). 22:13:28 -!- variable has quit (Read error: Operation timed out). 22:17:07 -!- variable has joined. 22:17:16 Deewiant: Hey what was that slow self-interpreter? 22:17:18 slowdown or whatever. 22:17:46 slowdown.b98, yes 22:18:58 That's in fungicide right 22:19:06 Doubt it 22:19:09 But it depends on FIXP or one of those other nasty fingerprints I'm avoiding implementing I think 22:19:24 http://iki.fi/deewiant/files/befunge/programs/slowdown.b98 22:19:42 And yes, FIXP 22:19:50 Which will suck. 22:20:04 What's nasty about FIXP? :-P 22:20:30 Because I don't recall there being any nice fixed point things for Haskell that weren't based on decimal :) 22:20:34 Hmm, well, FIXP seems to be decimal too 22:20:41 But still, I don't know of any "nice" way to do it in Haskell 22:20:47 Why the fuck is xor in FIXP 22:20:49 Phantom_Hoover: I believe you too, I think pointer arithmetic is one reason, however there are other good reasons too, actually 22:20:50 FIXP is just divide by 10000 / multiply by 10000 22:20:51 That makes no sense, what 22:21:00 elliott_: I think it's logical, not binary, xor, too 22:21:13 N(a -- 0-a)Negate 22:21:15 r u serious 22:21:27 @source Data.Fixed 22:21:27 Data.Fixed not available 22:21:28 that's... the worst waste of a letter i've ever seen 22:21:35 @hoogle Data.Fixed 22:21:35 module Data.Fixed 22:21:35 Data.Fixed data Fixed a 22:21:35 Data.Fixed showFixed :: HasResolution a => Bool -> Fixed a -> String 22:21:47 oerjan: yah but no nice instances i do not think 22:21:51 oh hm 22:21:55 RealFrca at least 22:21:56 RealFrac 22:21:57 :t sqrt 22:21:58 forall a. (Floating a) => a -> a 22:22:00 but not Floating 22:22:04 so of very limited use 22:22:18 Why does it need to be floating 22:22:23 :t acos 22:22:24 forall a. (Floating a) => a -> a 22:22:29 Deewiant: if I want to use the existing Haskell functions... 22:22:30 It's probably implemented using int and casts to/from float in RC/Funge-98 22:22:50 I mean implementing acos by myself for Fixed doesn't sound useful 22:22:51 erm 22:22:52 I mean implementing acos by myself for Fixed doesn't sound fun 22:22:54 I was replying to oerjan 22:23:07 Just use integers 22:23:23 mhm 22:23:29 Yeah but that involves casting to like Double or something. 22:23:32 And that's grossssssssssssssssssssssssssssss 22:23:36 With lotsa ses 22:23:59 push . floor . (*10000) . sqrt . fromIntegral . pop 22:24:09 GROSSSSSSSSSSSSSSSSSSSSSSSSSSSS INACCURACYYYYYYYYYY 22:24:21 push . floor . (*10000) . sqrt . (/10000) . fromIntegral . pop 22:24:35 elliott_: Like said, the "reference implementation" probably uses (int) and (float) 22:24:59 Deewiant: The reference implementation is also written in C, what's your point 22:25:13 What's /your/ point 22:25:13 I'm meant to have class 22:25:21 Deewiant: Grossssssssssssssssssssssssssssss 22:25:30 Whatever :-P 22:25:37 Hmm, is there an easy way to turn a maybe-failing pattern match into a Maybe 22:25:49 I guess not 22:25:52 Like 22:25:53 case genericDrop n env of 22:25:53 value:_ -> pushStringAs0gnirts value 22:25:54 _ -> reflect 22:25:56 It'd be nice if I could say 22:26:03 Do it in a monad 22:26:06 value:_ <- magic (genericDrop n env) 22:26:12 Oh right, MaybeT's fail is Nothing 22:26:13 Swee 22:26:14 Maybe is a monad 22:26:15 Sweet 22:26:23 Deewiant: MaybeT is a monad (transformer) that I already use 22:26:32 Yep 22:26:44 MaybeT fails at Nothing 22:28:14 -!- TOGoS has quit (Quit: Leaving.). 22:29:10 Hey wait 22:29:17 That means that liftMaybe is totally pointless 22:29:23 "x <- liftMaybe y" == "Just x <- y" 22:29:28 Cool??? 22:29:32 Wait no. 22:29:33 It's actually 22:29:35 let Just x = y 22:29:37 But er 22:29:45 Do let statements actually come out as <- return?? 22:29:56 Or do they just implicitly "in" the rest of the block 22:33:46 oerjan knows, he wrote the Report 22:34:55 -!- zzo38 has quit (Remote host closed the connection). 22:37:02 implicitly "in" 22:37:10 they can be polymorphic, after all 22:37:48 so you need Just x <- y 22:37:56 oerjan: I need "Just x <- return y" 22:37:57 unfortunately 22:37:58 which is ugly 22:38:01 ah 22:38:05 :( 22:38:48 How can you need that? 22:39:14 his monad isn't Maybe itself 22:39:32 Deewiant: So that when the pattern-match fails it (fail "...")s 22:39:42 Rather than "let Just x = y" which wouldn't do that 22:39:44 How can return give Nothing? 22:40:02 Uh 22:40:05 Not sure you understand how monads work ;D 22:40:19 y is a (Maybe a) 22:40:25 > do Just x <- return Nothing; "Like this" 22:40:26 "" 22:40:39 oerjan: But the pattern-match succeeds there 22:40:43 I'm wondering how it can possibly fail 22:40:47 Deewiant: no it doesn't 22:40:57 Oh, woot 22:40:58 it failed, thus returning "" instead of "Like this" 22:40:59 Right 22:41:13 No, Just 22:41:19 Left 22:41:26 Nothing 22:41:49 > do Right x <- return (Left "hm..."); "Like this" 22:41:49 "" 22:44:06 > do Right (Left x) <- Left "hm..."; return x 22:44:06 Overlapping instances for GHC.Base.Monad 22:44:06 (Data... 22:44:18 wtf 22:44:38 maybe I'll give return a nicer name :D 22:44:47 > do x <- Left "hm..."; return x 22:44:47 Overlapping instances for GHC.Base.Monad 22:44:47 (Data... 22:44:50 I'll come back to EVAR to restructure it later 22:45:03 * elliott_ cleans up the work-in-progress FING code. 22:45:16 someone should do something about lambdabot's import mess 22:45:20 what a wonderful language Haskell is 22:45:47 case Map.lookup ins m of 22:45:48 Nothing -> return () 22:45:48 Just [] -> return () 22:45:48 Just (_:xs) -> modifyFPInstructions (Map.insert ins xs) 22:45:48 gah 22:45:55 now how to represent that without right-leaning indentation 22:45:56 I think I can't 22:47:06 bit awkward there, but is that really a case where you want to remove it? 22:47:10 indeed 22:47:23 how is this costing me almost a second :( 22:47:26 there are two Just branches after all 22:47:45 oh hm 22:47:59 oerjan: and it's return (), not reflect 22:48:04 elliott_: if you put the two first cases last you just need one _ -> return () 22:48:21 so then... 22:49:16 doesn't help anything but it doesn't matter :) 22:50:30 fromMaybe (return ()) $ do Just (_:_) <- Map.lookup ins m; return (modifyFPInstructions (Map.insert ins xs) 22:50:38 yeah that ... 22:50:40 isn't any nicer 22:50:44 it's still one level of indentation, too 22:50:54 hm monad comprehensions are nicer when you have a return in the last item 22:51:28 ...you want to do a pattern match without a single indentation level? 22:51:30 http://sprunge.us/hLNa ;; it's ridiculous how much less this is indented with MaybeT 22:51:38 oerjan: no, I've been saying for quite a while that there's no actual problem with it 22:51:41 you just ignored me ;D 22:52:00 your "indeed" was ambiguous :P 22:53:09 -!- h[a]gb4rd has quit (Quit: h[a]gb4rd). 22:53:55 -!- invariable has joined. 22:54:10 -!- variable has quit (Quit: Daemon escaped from pentagram). 22:54:15 -!- invariable has changed nick to variable. 22:54:26 invariably not constant 22:55:48 i guess this is the day for daemons to escape 22:55:53 -!- BeholdMyGlory has quit (Remote host closed the connection). 22:58:59 oerjan: hrm? 22:59:39 variable: it's such a raptuous day! 23:00:17 *rapturous 23:01:01 yay happy rapture 23:01:07 eighteen hours until we all perish 23:01:10 erm 23:01:10 or 23:01:11 not perish 23:01:15 it's not that eventful really 23:01:19 some earthquakes, buncha christians evaporate 23:02:21 Eva Porata 23:03:27 Deewiant: Do you have a link to slowdown? 23:04:57 Yes, it's in the lastlog 23:05:20 Oh right 23:05:21 I forgot 23:05:28 Wow, xchat has lastlog 23:06:47 -!- variable has quit (Read error: Operation timed out). 23:07:53 -!- variable has joined. 23:10:06 eighteen hours until we all perish <-- err, which one is it claiming that? 23:10:15 "which one"? 23:10:18 That's the only prediction 23:10:19 Six pm local time 23:10:21 Set your watches 23:10:41 Remind me if the Rapture happened in Australia. 23:10:51 elliott_, according to who? 23:10:55 Phantom_Hoover: It's not time yet. 23:11:00 Vorpal: according to the may twenty-first people. 23:11:14 Phantom_Hoover: 10:41 in Kingston which is on "NFT" and ostensibly in Australia. 23:11:16 *googles* 23:11:18 So still about seven hours to go. 23:11:21 I think it's later in NZ. 23:11:54 did you mean: my twenty-first people. 23:11:55 XD 23:12:41 11:13 Saturday (NZST) - Time in Wellington, New Zealand 23:12:41 Chatham Islands11:58CHAST 23:12:45 Phantom_Hoover: OK so about seven hours before we know. 23:12:51 Or, wait. 23:12:54 Kiritimati13:13LINT 23:13:07 Assuming they have Christians there, five hours. 23:13:15 Although whether the word would get out is arguable. 23:13:25 elliott_, is it supposed to happen in local time everywhere 23:13:27 how weird 23:13:28 http://en.wikipedia.org/wiki/Kiritimati 23:13:33 Keep an eye on 'em. 23:13:35 Vorpal: Yep. 23:13:57 Vorpal: Presumably to stop us crowding up the pearly gates. 23:14:08 elliott_, is that solar time or based on timezone? 23:14:16 Timezone apparently 23:14:22 how strange 23:14:29 I guess if you try and legally change it so that six pm just doesn't exist, God smites you for being a smartarse 23:14:39 XD 23:15:06 elliott_, I can't find much from googling these guys 23:15:12 Whaat? 23:15:15 There's shitloads about then. 23:15:16 them 23:15:24 may 21th 23:15:31 oh wait I typed it out 23:15:38 forgetting you did it due to 23:15:44 keyboard issues 23:15:53 may 21 gets more results 23:16:05 http://en.wikipedia.org/wiki/2011_end_times_prediction 23:16:16 -!- Patashu has joined. 23:16:47 Also see Google news "rapture", "May 21" 23:16:52 "Suicide prevention hotlines have been set up because experts fear despondent followers who are depressed that the expected event did not appear on May 21." 23:17:06 "I guess I'll have to FORCE my way in!" 23:17:15 "Camping previously claimed that the world would end in September 1994." 23:17:24 "An interview with a group of church leaders noted that all of them have scheduled services as usual for Sunday, May 22." 23:17:32 "SERVICE CANCELLED DUE TO RAPTURE" 23:18:07 what exactly are the effects of rapture? 23:18:25 "His followers claim that around 200 million people (approximately 3% of the world's population) will be raptured." 23:18:28 Hmm, well that's not all Christians 23:18:43 Vorpal: All the Christians evaporate, lots of earthquakes and shit, then Satan starts to rule the world 23:18:51 And it's peaceful for a while but then the world ends and there's all sort of apocalyptic wars and shit like that 23:18:51 ah 23:18:52 Quite fun 23:19:12 Vorpal: http://upload.wikimedia.org/wikipedia/commons/1/16/Tribulation_views.svg 23:19:13 HTH 23:19:52 "Christ is said to have hung on the cross on April 1, 33 AD. The time between April 1, 33 AD and April 1, 2011 is 1,978 years." <-- yes and how is that an argument...? XD 23:20:11 oh wait, more number mess further down "explaining" it 23:20:49 this logic is only marginally easier to follow than timecube 23:21:11 "- William Miller predicted Christ would return between March 21, 1843 and March 21, 1844, then revised his prediction, claiming to have miscalculated Scripture, to October 22, 1844. The realization that the predictions were incorrect resulted in a Great Disappointment." 23:21:15 Great Disappointment is the best name for anything ever. 23:21:19 elliott_, also I think we should combine this with jurrasic park to get velicorapture 23:21:28 Vorpal, OK that is the best. 23:21:34 Vorpal: you can't spell. 23:21:43 elliott_, oh indeed, modulo typos 23:22:17 elliott_, velocirapture then 23:22:50 hey guys 23:22:51 Phantom_Hoover, you mean velocirapture is the best or the bad "logic" is the best? 23:22:52 has the rapture come yet 23:22:54 I came up with that pun in two thousand and seven :P 23:23:04 Patashu: aren't you the one who made that language 23:23:08 elliott_, yeah but we all forgot it 23:23:16 Vorpal: hey i didn't _tell_ you guys 23:23:27 the Rapture language? 23:23:30 I suggested it 23:23:37 elliott_, ah 23:23:41 # (diff) (hist) . . N Rapture‎; 13:09 . . (+795) . . 122.106.155.219 (Talk) (started it up) 23:23:41 # (diff) (hist) . . List of ideas‎; 13:05 . . (+14) . . 122.106.155.219 (Talk) (adding Rapture) 23:23:45 Patashu: you can't fool us 23:23:46 yup 23:24:40 -!- FireFly has quit (Quit: swatted to death). 23:25:59 * Phantom_Hoover → sleep 23:26:08 Need to be up early if the Rapture starts! 23:26:12 -!- Phantom_Hoover has quit (Remote host closed the connection). 23:26:44 Deewiant: Hmm, I guess I ought to implement command-line arguments for slowdown :-) 23:27:43 elliott_, what are you doing with slowdown? 23:28:06 elliott_: What for? 23:28:09 Vorpal: Trying to run it. 23:28:11 Deewiant: Because it demands them. 23:28:25 Oh, you meant that, yes :-P 23:30:07 # a series of sequences of characters (strings), each terminated by a null, the series terminated by an additional double null, containing the command-line arguments. (env) 23:30:08 This means any isolated argument can be a null string, but no two consecutive arguments may be null strings - a rather contrived scenario, null string arguments being rare in themselves. 23:30:08 The first string is the name of the Funge source program being run. 23:30:09 -!- pikhq_ has joined. 23:30:11 * elliott_ cracks knuckles 23:30:18 Bleh, this makes me want to expand my monad stack 23:30:20 To include Reader 23:30:26 The arguments never change do they 23:30:32 Unless there's some argument-changing fingerprint I guess 23:30:44 But yeah, I need to have them passed to the interpreter because getArgs would be stupid unreliable with option arguments and the like 23:31:09 elliott_, this shows some humour (hopefully): The New York Police Department (NYPD) stated: "We don't plan any additional coverage for the end of the world. Indeed, if it happens, fewer officers will be required for streets that presumably will be empty." 23:31:10 -!- pikhq has quit (Ping timeout: 244 seconds). 23:31:33 5 more hours until the beginning of the end. 23:32:55 pikhq_, isn't it supposed to be at 6? 23:34:06 Sgeo_: Yes, and it's... 4 hours and 26 minutes until it is 18:00 somewhere. 23:34:40 cant wait 23:34:57 pikhq_: Actually, four and a half. 23:34:59 Oh, right. 23:35:03 In Kiritimati. 23:35:13 OTOH the news might not get out of there. 23:35:32 elliott_: They're predicting a massive earthquake when the festivities start. 23:35:57 True. 23:35:59 At the very least, the tsunami hitting Hawaii would be noticable. 23:47:46 -!- zzo38 has joined. 23:48:14 -!- TeruFSX has quit (Ping timeout: 240 seconds). 23:48:31 Deewiant: Hmm, is there any "system state" in Funge apart from the arguments and environment variables? I guess that's ill-defined 23:48:55 Ill-defined, yes :-P 23:49:07 -!- zzo38 has set topic: Discussion about how to be more insane without discarding your vision | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 23:49:15 Of course you can access the whole filesystem with i/o 23:49:24 I just mean that 23:49:25 FungeState { fungeSpace :: FungeSpace 23:49:25 , ipList :: ([IP],[IP]) 23:49:25 , maxIPNumber :: Value 23:49:25 , globalFPState :: GlobalFPState } 23:49:31 will look really weird if I tag "also, arguments" on to it 23:49:36 So I want an excuse to make a SystemState record :D 23:50:39 Can't think of anything else from the top of my head 23:50:53 * Patashu checks his watch 23:50:55 Anyone raptured yet? 23:51:17 Like we said, four and a half hours to go. 23:51:22 Maybe closer to four now. 23:51:27 Drat 23:51:31 Time zones have foiled me for the last time 23:51:42 Since I am a supervillain, I will solve this problem by UNROLLING THE EARTH!!! 23:52:13 When every country has the same normal vector, there will BE no time zones! 23:54:05 Patashu: Can you do that? 23:54:29 zzo38, he's a supervillian. He can't, because some hero will stop him. 23:54:40 I don't think there is rapture. I think the text in the Bible is not necessarily literal! Also there may be mistakes due to whatever 23:55:01 zzo38, I'm pretty sure no one here actually thinks the Rapture is coming. 23:55:19 Sgeo_: You are probably correct. 23:55:50 Blowing up the earth is so cliche. 23:55:56 I want to leave it intact, but disrupted in a fundamental way! 23:58:33 BAD: "foo"G failed 23:58:33 Argh 23:58:35 WHen did I break G 23:58:38 [asterisk]When 23:58:58 BAD: i misread or o miswrote 23:58:58 Eurgh 23:59:11 BAD: opening 'mycorand.bf' with i failed 23:59:11 The file is part of Mycology and should exist. 23:59:11 If it does, perhaps the system isn't giving permission to read it. 23:59:19 Deewiant: I see Mycology doesn't support, ehm, out of tree builds :-0 23:59:21 [asterisk]:-)